Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions internal/core/services/container.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
appcontext "github.com/poyrazk/thecloud/internal/core/context"
"github.com/poyrazk/thecloud/internal/core/domain"
"github.com/poyrazk/thecloud/internal/core/ports"
"github.com/poyrazk/thecloud/internal/errors"
)

// ContainerService manages deployments and their containers.
Expand Down Expand Up @@ -55,7 +56,7 @@ func (s *ContainerService) CreateDeployment(ctx context.Context, name, image str
}

if err := s.repo.CreateDeployment(ctx, dep); err != nil {
return nil, err
return nil, errors.Wrap(errors.Internal, "failed to create deployment", err)
}

if err := s.eventSvc.RecordEvent(ctx, "DEPLOYMENT_CREATED", dep.ID.String(), "DEPLOYMENT", nil); err != nil {
Expand Down Expand Up @@ -91,7 +92,12 @@ func (s *ContainerService) GetDeployment(ctx context.Context, id uuid.UUID) (*do
return nil, err
}

return s.repo.GetDeploymentByID(ctx, id, userID)
dep, err := s.repo.GetDeploymentByID(ctx, id, userID)
if err != nil {
return nil, errors.Wrap(errors.Internal, "failed to get deployment", err)
}

return dep, nil
}

func (s *ContainerService) ScaleDeployment(ctx context.Context, id uuid.UUID, replicas int) error {
Expand All @@ -104,13 +110,13 @@ func (s *ContainerService) ScaleDeployment(ctx context.Context, id uuid.UUID, re

dep, err := s.repo.GetDeploymentByID(ctx, id, userID)
if err != nil {
return err
return errors.Wrap(errors.Internal, "failed to get deployment", err)
}

dep.Replicas = replicas
dep.Status = domain.DeploymentStatusScaling
if err := s.repo.UpdateDeployment(ctx, dep); err != nil {
return err
return errors.Wrap(errors.Internal, "failed to update deployment", err)
}

if err := s.auditSvc.Log(ctx, userID, "container.deployment_scale", "deployment", id.String(), map[string]interface{}{
Expand All @@ -132,12 +138,12 @@ func (s *ContainerService) DeleteDeployment(ctx context.Context, id uuid.UUID) e

dep, err := s.repo.GetDeploymentByID(ctx, id, userID)
if err != nil {
return err
return errors.Wrap(errors.Internal, "failed to get deployment", err)
}

dep.Status = domain.DeploymentStatusDeleting
if err := s.repo.UpdateDeployment(ctx, dep); err != nil {
return err
return errors.Wrap(errors.Internal, "failed to update deployment", err)
}

if err := s.auditSvc.Log(ctx, userID, "container.deployment_delete", "deployment", id.String(), map[string]interface{}{}); err != nil {
Expand Down
Loading