Class: CapComputeEngine::InstanceList

Inherits:
Object
  • Object
show all
Defined in:
lib/cap_compute_engine/instance_list.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(instances = []) ⇒ InstanceList

Returns a new instance of InstanceList.



5
6
7
# File 'lib/cap_compute_engine/instance_list.rb', line 5

def initialize(instances = [])
  @instances = instances
end

Class Method Details

.getObject



9
10
11
12
13
14
# File 'lib/cap_compute_engine/instance_list.rb', line 9

def self.get
  json = `gcloud compute instances list --format json`

  array = JSON.parse(json)
  InstanceList.new(array.map { |instance_hash| Instance.new(instance_hash) })
end

Instance Method Details

#authorize_cloud_sql(name) ⇒ Object



24
25
26
# File 'lib/cap_compute_engine/instance_list.rb', line 24

def authorize_cloud_sql(name)
  `gcloud sql instances patch #{name} --authorized-networks "#{external_ips.join(',')}"`
end

#external_ipsObject



20
21
22
# File 'lib/cap_compute_engine/instance_list.rb', line 20

def external_ips
  @instances.map(&:external_ip).compact
end

#with_tag(tag_name) ⇒ Object



16
17
18
# File 'lib/cap_compute_engine/instance_list.rb', line 16

def with_tag(tag_name)
  InstanceList.new(@instances.select { |ins| ins.has_tag?(tag_name) })
end