Top Level Namespace

Defined Under Namespace

Modules: Capistrano

Instance Method Summary collapse

Instance Method Details

#compute_serviceObject



11
12
13
14
15
16
17
18
# File 'lib/capistrano/gcp/autoscaling.rb', line 11

def compute_service
  @compute_service ||= Capistrano::Gcp::Autoscaling::Core::ComputeService.new(
    gcp_project_id: fetch(:gcp_project_id),
    gcp_private_key: fetch(:gcp_private_key),
    gcp_client_email: fetch(:gcp_client_email),
    gcp_scope: fetch(:gcp_scope)
  ).instance
end

#instance_group_manager(group_manager_name, properties = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/capistrano/gcp/autoscaling.rb', line 20

def instance_group_manager(group_manager_name, properties = {})
  instance_group_manager = Capistrano::Gcp::Autoscaling::Core::InstanceGroupManager.new(
    compute_service,
    gcp_project_id: fetch(:gcp_project_id),
    gcp_region: fetch(:gcp_region),
    group_manager_name: group_manager_name
  )

  instance_group_manager.instances.each_with_index do |instance, index|
    server instance.network_ip, block_given? ? yield(instance, index) : properties
  end
end