func()

in pkg/berglas/delete.go [90:118]


func (c *Client) secretManagerDelete(ctx context.Context, i *SecretManagerDeleteRequest) error {
	project := i.Project
	if project == "" {
		return fmt.Errorf("missing project")
	}

	name := i.Name
	if name == "" {
		return fmt.Errorf("missing secret name")
	}

	logger := logging.FromContext(ctx).With(
		"project", project,
		"name", name,
	)

	logger.DebugContext(ctx, "delete.start")
	defer logger.DebugContext(ctx, "delete.finish")

	if err := c.secretManagerClient.DeleteSecret(ctx, &secretspb.DeleteSecretRequest{
		Name: fmt.Sprintf("projects/%s/secrets/%s", project, name),
	}); err != nil {
		terr, ok := grpcstatus.FromError(err)
		if !ok || terr.Code() != grpccodes.NotFound {
			return fmt.Errorf("failed to delete secret: %w", err)
		}
	}
	return nil
}