workspace status update api

This commit is contained in:
rushtehrani
2020-05-04 20:06:05 -07:00
parent 51699159c5
commit ab75bb1254
2 changed files with 23 additions and 13 deletions

View File

@@ -5,6 +5,7 @@ import (
"fmt"
sq "github.com/Masterminds/squirrel"
"github.com/asaskevich/govalidator"
"github.com/lib/pq"
"github.com/onepanelio/core/pkg/util"
"github.com/onepanelio/core/pkg/util/ptr"
"google.golang.org/grpc/codes"
@@ -103,13 +104,28 @@ func (c *Client) CreateWorkspace(namespace string, workspace *Workspace) (*Works
}
func (c *Client) UpdateWorkspaceStatus(namespace, uid string, status *WorkspaceStatus) (err error) {
_, err = sb.Update("workspaces").
SetMap(sq.Eq{
fieldMap := sq.Eq{
"phase": status.Phase,
"started_at": status.StartedAt,
"paused_at": status.PausedAt,
"terminated_at": status.TerminatedAt,
}).
}
switch status.Phase {
case WorkspaceStarted:
fieldMap["paused_at"] = pq.NullTime{}
fieldMap["started_at"] = time.Now().UTC()
break
case WorkspacePausing:
fieldMap["started_at"] = pq.NullTime{}
fieldMap["paused_at"] = time.Now().UTC()
break
case WorkspaceTerminating:
fieldMap["started_at"] = pq.NullTime{}
fieldMap["paused_at"] = pq.NullTime{}
fieldMap["terminated_at"] = time.Now().UTC()
break
}
_, err = sb.Update("workspaces").
SetMap(fieldMap).
Where(sq.Eq{
"namespace": namespace,
"uid": uid,

View File

@@ -67,14 +67,8 @@ func (s *WorkspaceServer) UpdateWorkspaceStatus(ctx context.Context, req *api.Up
return &empty.Empty{}, err
}
started, _ := time.Parse(TimeLayout, req.Status.StartedAt)
pausedAt, _ := time.Parse(TimeLayout, req.Status.PausedAt)
terminatedAt, _ := time.Parse(TimeLayout, req.Status.TerminatingAt)
status := &v1.WorkspaceStatus{
Phase: v1.WorkspacePhase(req.Status.Phase),
StartedAt: &started,
PausedAt: &pausedAt,
TerminatedAt: &terminatedAt,
}
err = client.UpdateWorkspaceStatus(req.Namespace, req.Uid, status)