class Fog::Compute::Google::InstanceGroup

Public Instance Methods

add_instance(instance_id) click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 36
def add_instance(instance_id)
  add_instances [instance_id]
end
add_instances(instances) click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 40
def add_instances(instances)
  requires :identity, :zone

  service.add_instance_group_instances(
    identity, zone_name, format_instance_list(instances)
  )
end
destroy(_async = true) click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 30
def destroy(_async = true)
  requires :name, :zone

  service.delete_instance_group(name, zone_name)
end
list_instances() click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 56
def list_instances
  requires :identity, :zone

  instance_list = []
  data = service.list_instance_group_instances(identity, zone_name)
  if data.items
    data.items.each do |instance|
      instance_list << service.servers.get(instance.instance.split("/")[-1], zone_name)
    end
  end
  instance_list
end
network_name() click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 73
def network_name
  network.nil? ? nil : network.split("/")[-1]
end
remove_instances(instances) click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 48
def remove_instances(instances)
  requires :identity, :zone

  service.remove_instance_group_instances(
    identity, zone_name, format_instance_list(instances)
  )
end
save() click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 19
def save
  requires :name, :zone

  options = {
    "network" => network_name,
    "subnetwork" => subnetwork_name
  }

  service.insert_instance_group(name, zone, options)
end
subnetwork_name() click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 77
def subnetwork_name
  subnetwork.nil? ? nil : subnetwork.split("/")[-1]
end
zone_name() click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 69
def zone_name
  zone.nil? ? nil : zone.split("/")[-1]
end

Private Instance Methods

format_instance_list(instance_list) click to toggle source
# File lib/fog/compute/google/models/instance_group.rb, line 83
def format_instance_list(instance_list)
  instance_list = Array(instance_list)
  instance_list.map { |i| i.class == String ? i : i.self_link }
end