...

Source file src/edge-infra.dev/pkg/edge/api/services/gcp_client_service.go

Documentation: edge-infra.dev/pkg/edge/api/services

     1  package services
     2  
     3  import (
     4  	"context"
     5  
     6  	"edge-infra.dev/pkg/edge/api/services/gcp"
     7  	"edge-infra.dev/pkg/edge/api/types"
     8  	"edge-infra.dev/pkg/lib/gcp/pubsub"
     9  	secretMgrApi "edge-infra.dev/pkg/lib/gcp/secretmanager"
    10  )
    11  
    12  //go:generate mockgen -destination=../mocks/mock_gcp_client_service.go -package=mocks edge-infra.dev/pkg/edge/api/services GcpClientService
    13  type GcpClientService interface {
    14  	GetComputeClient(ctx context.Context, projectID string) (types.ComputeService, error)
    15  	GetContainerClient(ctx context.Context, projectID string) (types.ContainerService, error)
    16  	GetSecretClient(ctx context.Context, projectID string) (types.SecretManagerService, error)
    17  	GetPubSubClient(ctx context.Context, projectID string) (types.PubSubService, error)
    18  }
    19  
    20  type gcpClientService struct {
    21  	PubSubClientMap map[string]types.PubSubService
    22  }
    23  
    24  func (s *gcpClientService) GetComputeClient(ctx context.Context, projectID string) (types.ComputeService, error) {
    25  	return gcp.NewCompute(ctx, projectID)
    26  }
    27  
    28  func (s *gcpClientService) GetContainerClient(ctx context.Context, projectID string) (types.ContainerService, error) {
    29  	return gcp.NewContainer(ctx, projectID)
    30  }
    31  
    32  func (s *gcpClientService) GetSecretClient(ctx context.Context, projectID string) (types.SecretManagerService, error) {
    33  	return secretMgrApi.NewWithOptions(ctx, projectID)
    34  }
    35  
    36  func (s *gcpClientService) GetPubSubClient(ctx context.Context, projectID string) (types.PubSubService, error) {
    37  	if pubSubService := s.PubSubClientMap[projectID]; pubSubService != nil {
    38  		return pubSubService, nil
    39  	}
    40  	pubSubService, err := pubsub.NewWithOptions(ctx, projectID)
    41  	if err == nil {
    42  		s.PubSubClientMap[projectID] = pubSubService
    43  	}
    44  	return pubSubService, err
    45  }
    46  
    47  func NewGcpClientService() *gcpClientService { //nolint stupid
    48  	return &gcpClientService{
    49  		PubSubClientMap: map[string]types.PubSubService{},
    50  	}
    51  }
    52  

View as plain text