fetch_gcp_operation_service.rb 557 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
module Ci
  class FetchGcpOperationService
    def execute(cluster)
      api_client = 
        GoogleApi::CloudPlatform::Client.new(cluster.gcp_token, nil)

      operation = api_client.projects_zones_operations(
        cluster.gcp_project_id,
        cluster.gcp_cluster_zone,
        cluster.gcp_operation_id)

      yield(operation) if block_given?
    rescue Google::Apis::ServerError, Google::Apis::ClientError, Google::Apis::AuthorizationError => e
      return cluster.errored!("Failed to request to CloudPlatform; #{e.message}")
    end
  end
end