summaryrefslogtreecommitdiff
path: root/app/services/ci/fetch_gcp_operation_service.rb
blob: 0b68e4d6ea91f930713696bbf032238f81f83d12 (plain)
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.make_errored!("Failed to request to CloudPlatform; #{e.message}")
    end
  end
end