MCPcopy Create free account
hub / github.com/bytebase/bytebase / UndeleteInstance

Method UndeleteInstance

backend/api/v1/instance_service.go:702–734  ·  view source on GitHub ↗

UndeleteInstance undeletes an instance.

(ctx context.Context, req *connect.Request[v1pb.UndeleteInstanceRequest])

Source from the content-addressed store, hash-verified

700
701// UndeleteInstance undeletes an instance.
702func (s *InstanceService) UndeleteInstance(ctx context.Context, req *connect.Request[v1pb.UndeleteInstanceRequest]) (*connect.Response[v1pb.Instance], error) {
703 instance, err := getInstanceMessage(ctx, s.store, req.Msg.Name)
704 if err != nil {
705 return nil, err
706 }
707 // Idempotent: if already active, return the instance
708 if !instance.Deleted {
709 result := s.convertToV1Instance(ctx, instance)
710 return connect.NewResponse(result), nil
711 }
712 if err := s.instanceCountGuard(ctx); err != nil {
713 return nil, err
714 }
715
716 ins, err := s.store.UpdateInstance(ctx, &store.UpdateInstanceMessage{
717 ResourceID: &instance.ResourceID,
718 Workspace: instance.Workspace,
719 Deleted: &undeletePatch,
720 })
721 if err != nil {
722 return nil, connect.NewError(connect.CodeInternal, err)
723 }
724
725 // Handle sample instance undelete (restart) if applicable
726 if s.sampleInstanceManager != nil {
727 if err := s.sampleInstanceManager.HandleInstanceCreation(ctx, ins.ResourceID); err != nil {
728 slog.Warn("failed to handle sample instance undelete", log.BBError(err), slog.String("instance", ins.ResourceID))
729 }
730 }
731
732 result := s.convertToV1Instance(ctx, ins)
733 return connect.NewResponse(result), nil
734}
735
736// SyncInstance syncs the instance.
737func (s *InstanceService) SyncInstance(ctx context.Context, req *connect.Request[v1pb.SyncInstanceRequest]) (*connect.Response[v1pb.SyncInstanceResponse], error) {

Callers

nothing calls this directly

Calls 7

convertToV1InstanceMethod · 0.95
instanceCountGuardMethod · 0.95
BBErrorFunction · 0.92
getInstanceMessageFunction · 0.85
UpdateInstanceMethod · 0.65
StringMethod · 0.65

Tested by

no test coverage detected