MCPcopy Index your code
hub / github.com/rilldata/rill / StartDeployment

Method StartDeployment

admin/server/deployment.go:393–430  ·  view source on GitHub ↗

StartDeployment starts a deployment by ID.

(ctx context.Context, req *adminv1.StartDeploymentRequest)

Source from the content-addressed store, hash-verified

391
392// StartDeployment starts a deployment by ID.
393func (s *Server) StartDeployment(ctx context.Context, req *adminv1.StartDeploymentRequest) (*adminv1.StartDeploymentResponse, error) {
394 observability.AddRequestAttributes(ctx,
395 attribute.String("args.deployment_id", req.DeploymentId),
396 )
397
398 depl, err := s.admin.DB.FindDeployment(ctx, req.DeploymentId)
399 if err != nil {
400 return nil, err
401 }
402
403 proj, err := s.admin.DB.FindProject(ctx, depl.ProjectID)
404 if err != nil {
405 return nil, err
406 }
407
408 claims := auth.GetClaims(ctx)
409 permissions := claims.ProjectPermissions(ctx, proj.OrganizationID, proj.ID)
410 if depl.Environment == "dev" {
411 if !permissions.ManageDev {
412 return nil, status.Error(codes.PermissionDenied, "does not have permission to manage dev deployment")
413 }
414 } else {
415 if !permissions.ManageProd {
416 return nil, status.Error(codes.PermissionDenied, "does not have permission to manage prod deployment")
417 }
418 }
419
420 depl, err = s.admin.StartDeployment(ctx, depl)
421 if err != nil {
422 return nil, err
423 }
424
425 s.admin.Used.Deployment(depl.ID)
426
427 return &adminv1.StartDeploymentResponse{
428 Deployment: deploymentToDTO(depl),
429 }, nil
430}
431
432// StopDeployment stops a deployment by ID.
433func (s *Server) StopDeployment(ctx context.Context, req *adminv1.StopDeploymentRequest) (*adminv1.StopDeploymentResponse, error) {

Callers

nothing calls this directly

Calls 10

AddRequestAttributesFunction · 0.92
GetClaimsFunction · 0.92
deploymentToDTOFunction · 0.85
DeploymentMethod · 0.80
StringMethod · 0.65
FindDeploymentMethod · 0.65
FindProjectMethod · 0.65
ProjectPermissionsMethod · 0.65
StartDeploymentMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected