Class: GCE::Host::HostData
- Inherits:
-
Object
- Object
- GCE::Host::HostData
- Defined in:
- lib/gce/host/host_data.rb
Overview
Represents each host
Instance Attribute Summary (collapse)
-
- (Object) instance
readonly
Returns the value of attribute instance.
Instance Method Summary (collapse)
- - (Object) creation_timestamp
- - (Object) hostname
- - (Object) info
-
- (HostData) initialize(instance)
constructor
:hostname, # hostname :roles, # roles.split(',') such as web:app1,db:app1 :instance, # Aws::GCE::Types::Instance itself.
- - (Object) inspect
- - (Object) instance_id
-
- (Object) ip
compatibility with dino-host.
- - (Object) machine_type
-
- (Boolean) match?(condition)
match with condition or not.
- - (Object) private_ip_address
- - (Object) private_ip_addresses
- - (Boolean) provisioning?
- - (Object) public_ip_address
- - (Object) public_ip_addresses
- - (Object) roles
- - (Boolean) running?
- - (Boolean) staging?
-
- (Object) start_date
compatibility with dino-host.
- - (Boolean) stopping?
- - (Boolean) terminated?
- - (Object) to_hash
-
- (Object) usages
compatibility with dino-host.
- - (Object) zone
Constructor Details
- (HostData) initialize(instance)
:hostname, # hostname :roles, # roles.split(',') such as web:app1,db:app1 :instance, # Aws::GCE::Types::Instance itself
and OPTIONAL_ARRAY_KEYS, OPTIONAL_STRING_KEYS
14 15 16 |
# File 'lib/gce/host/host_data.rb', line 14 def initialize(instance) @instance = instance end |
Instance Attribute Details
- (Object) instance (readonly)
Returns the value of attribute instance
7 8 9 |
# File 'lib/gce/host/host_data.rb', line 7 def instance @instance end |
Instance Method Details
- (Object) creation_timestamp
74 75 76 |
# File 'lib/gce/host/host_data.rb', line 74 def instance. end |
- (Object) hostname
18 19 20 |
# File 'lib/gce/host/host_data.rb', line 18 def hostname instance.name end |
- (Object) info
147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/gce/host/host_data.rb', line 147 def info if self.class.display_short_info? info = "#{hostname}:#{status}" info << "(#{roles.join(',')})" unless roles.empty? info << "[#{.join(',')}]" unless .empty? info << "{#{service}}" unless service.empty? info else to_hash.to_s end end |
- (Object) inspect
159 160 161 |
# File 'lib/gce/host/host_data.rb', line 159 def inspect sprintf "#<GCE::Host::HostData %s>", info end |
- (Object) instance_id
46 47 48 |
# File 'lib/gce/host/host_data.rb', line 46 def instance_id instance.id end |
- (Object) ip
compatibility with dino-host
79 80 81 |
# File 'lib/gce/host/host_data.rb', line 79 def ip private_ip_address end |
- (Object) machine_type
54 55 56 |
# File 'lib/gce/host/host_data.rb', line 54 def machine_type instance.machine_type.split('/').last end |
- (Boolean) match?(condition)
match with condition or not
116 117 118 119 120 121 122 |
# File 'lib/gce/host/host_data.rb', line 116 def match?(condition) return false if !condition[Config.status.to_sym] and (terminated? or stopping?) return false unless role_match?(condition) return false unless status_match?(condition) return false unless instance_match?(condition) true end |
- (Object) private_ip_address
58 59 60 |
# File 'lib/gce/host/host_data.rb', line 58 def private_ip_address instance.network_interfaces.first.network_ip end |
- (Object) private_ip_addresses
62 63 64 |
# File 'lib/gce/host/host_data.rb', line 62 def private_ip_addresses instance.network_interfaces.map(&:network_ip) end |
- (Boolean) provisioning?
109 110 111 |
# File 'lib/gce/host/host_data.rb', line 109 def provisioning? instance.status == "PROVISIONING" end |
- (Object) public_ip_address
66 67 68 |
# File 'lib/gce/host/host_data.rb', line 66 def public_ip_address instance.network_interfaces.first.access_configs.first.nat_ip end |
- (Object) public_ip_addresses
70 71 72 |
# File 'lib/gce/host/host_data.rb', line 70 def public_ip_addresses instance.network_interfaces.map {|i| i.access_configs.map(&:nat_ip) }.flatten(1) end |
- (Object) roles
22 23 24 25 26 |
# File 'lib/gce/host/host_data.rb', line 22 def roles return @roles if @roles roles = find_array_key(Config.roles_key) @roles = roles.map {|role| GCE::Host::RoleData.build(role) } end |
- (Boolean) running?
101 102 103 |
# File 'lib/gce/host/host_data.rb', line 101 def running? instance.status == "RUNNING" end |
- (Boolean) staging?
105 106 107 |
# File 'lib/gce/host/host_data.rb', line 105 def staging? instance.status == "STAGING" end |
- (Object) start_date
compatibility with dino-host
84 85 86 |
# File 'lib/gce/host/host_data.rb', line 84 def start_date end |
- (Boolean) stopping?
97 98 99 |
# File 'lib/gce/host/host_data.rb', line 97 def stopping? instance.status == "STOPPING" end |
- (Boolean) terminated?
93 94 95 |
# File 'lib/gce/host/host_data.rb', line 93 def terminated? instance.status == "TERMINATED" end |
- (Object) to_hash
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/gce/host/host_data.rb', line 124 def to_hash params = { "hostname" => hostname, "roles" => roles, } Config.optional_string_keys.each do |key| field = StringUtil.underscore(key) params[field] = send(field) end Config.optional_array_keys.each do |key| field = StringUtil.underscore(key) params[field] = send(field) end params.merge!( "zone" => zone, "machine_type" => machine_type, "private_ip_address" => private_ip_address, "public_ip_address" => public_ip_address, "creation_timestamp" => , Config.status => send(Config.status), ) end |
- (Object) usages
compatibility with dino-host
89 90 91 |
# File 'lib/gce/host/host_data.rb', line 89 def usages roles end |
- (Object) zone
50 51 52 |
# File 'lib/gce/host/host_data.rb', line 50 def zone instance.zone.split('/').last end |