Class: Fog::Compute::Google::InstanceGroup

Inherits:
Model
  • Object
show all
Defined in:
lib/fog/compute/google/models/instance_group.rb

Instance Method Summary collapse

Instance Method Details

#add_instances(instances) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/fog/compute/google/models/instance_group.rb', line 30

def add_instances(instances)
  requires :identity, :zone

  service.add_instance_group_instances(
    identity, zone_name, format_instance_list(instances)
  )
end

#destroy(_async = true) ⇒ Object



24
25
26
27
28
# File 'lib/fog/compute/google/models/instance_group.rb', line 24

def destroy(_async = true)
  requires :name, :zone

  service.delete_instance_group(name, zone_name)
end

#list_instancesObject



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/fog/compute/google/models/instance_group.rb', line 46

def list_instances
  requires :identity, :zone

  instance_list = []
  data = service.list_instance_group_instances(identity, zone_name).body
  if data["items"]
    data["items"].each do |instance|
      instance_list << service.servers.get(instance["instance"].split("/")[-1], zone_name)
    end
  end
  instance_list
end

#remove_instances(instances) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/fog/compute/google/models/instance_group.rb', line 38

def remove_instances(instances)
  requires :identity, :zone

  service.remove_instance_group_instances(
    identity, zone_name, format_instance_list(instances)
  )
end

#saveObject



18
19
20
21
22
# File 'lib/fog/compute/google/models/instance_group.rb', line 18

def save
  requires :name, :zone

  service.insert_instance_group(name, zone)
end

#zone_nameObject



59
60
61
# File 'lib/fog/compute/google/models/instance_group.rb', line 59

def zone_name
  zone.nil? ? nil : zone.split("/")[-1]
end