class CapComputeEngine::InstanceList

Public Class Methods

get() click to toggle source
# 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
new(instances = []) click to toggle source
# File lib/cap_compute_engine/instance_list.rb, line 5
def initialize(instances = [])
  @instances = instances
end

Public Instance Methods

authorize_cloud_sql(name) click to toggle source
# 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_ips() click to toggle source
# File lib/cap_compute_engine/instance_list.rb, line 20
def external_ips
  @instances.map(&:external_ip).compact
end
with_tag(tag_name) click to toggle source
# 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