Skip to content

Commit b9b097d

Browse files
committed
cluster - use workspaceRef in terminal methods
1 parent cdab4a5 commit b9b097d

13 files changed

Lines changed: 1922 additions & 2006 deletions

File tree

apis/main/cordiumv1/cordiumv1.pb.go

Lines changed: 1847 additions & 1898 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/cordium/commands/create/workspace/cmd.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/octelium/octelium/apis/main/metav1"
2525
"github.com/octelium/octelium/client/common/client"
2626
"github.com/octelium/octelium/client/common/cliutils"
27+
"github.com/octelium/octelium/pkg/apiutils/umetav1"
2728
"github.com/octelium/octelium/pkg/common/pbutils"
2829
"github.com/spf13/cobra"
2930
)
@@ -185,7 +186,7 @@ func DoCreateWorkspace(ctx context.Context, c pb.MainServiceClient, o *DoCreateW
185186

186187
if o.Start {
187188
if _, err := c.StartWorkspace(ctx, &pb.StartWorkspaceRequest{
188-
Uid: ws.Metadata.Uid,
189+
WorkspaceRef: umetav1.GetObjectReference(ws),
189190
}); err != nil {
190191
return nil, err
191192
}

client/cordium/commands/run/cmd.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/octelium/octelium/apis/main/metav1"
2727
"github.com/octelium/octelium/client/common/client"
2828
"github.com/octelium/octelium/client/common/cliutils"
29+
"github.com/octelium/octelium/pkg/apiutils/umetav1"
2930
"github.com/pkg/errors"
3031
"github.com/spf13/cobra"
3132
"go.uber.org/zap"
@@ -115,8 +116,7 @@ func doRun(ctx context.Context, conn *grpc.ClientConn, ws *pb.Workspace) error {
115116
return errors.Errorf("Workspace is stopping")
116117
case ucordiumv1.ToWorkspace(ws).IsStopped():
117118
if _, err := c.StartWorkspace(ctx, &pb.StartWorkspaceRequest{
118-
Uid: ws.Metadata.Uid,
119-
Name: ws.Metadata.Name,
119+
WorkspaceRef: umetav1.GetObjectReference(ws),
120120
}); err != nil {
121121
return err
122122
}

client/cordium/commands/start/cmd.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package start
1818

1919
import (
2020
pb "github.com/octelium/octelium/apis/main/cordiumv1"
21+
"github.com/octelium/octelium/apis/main/metav1"
2122
"github.com/octelium/octelium/client/common/client"
2223
"github.com/octelium/octelium/client/common/cliutils"
2324
"github.com/spf13/cobra"
@@ -60,7 +61,9 @@ func doCmd(cmd *cobra.Command, args []string) error {
6061
c := pb.NewMainServiceClient(conn)
6162

6263
if _, err := c.StartWorkspace(ctx, &pb.StartWorkspaceRequest{
63-
Name: i.FirstArg(),
64+
WorkspaceRef: &metav1.ObjectReference{
65+
Name: i.FirstArg(),
66+
},
6467
}); err != nil {
6568
return err
6669
}

client/cordium/commands/stop/cmd.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package stop
1818

1919
import (
2020
pb "github.com/octelium/octelium/apis/main/cordiumv1"
21+
"github.com/octelium/octelium/apis/main/metav1"
2122
"github.com/octelium/octelium/client/common/client"
2223
"github.com/octelium/octelium/client/common/cliutils"
2324
"github.com/spf13/cobra"
@@ -55,15 +56,14 @@ func doCmd(cmd *cobra.Command, args []string) error {
5556
if err != nil {
5657
return err
5758
}
58-
if err != nil {
59-
return err
60-
}
6159
defer conn.Close()
6260

6361
c := pb.NewMainServiceClient(conn)
6462

6563
if _, err := c.StopWorkspace(ctx, &pb.StopWorkspaceRequest{
66-
Name: i.FirstArg(),
64+
WorkspaceRef: &metav1.ObjectReference{
65+
Name: i.FirstArg(),
66+
},
6767
}); err != nil {
6868
return err
6969
}

client/cordium/commands/terminal/cmd.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"time"
2525

2626
pb "github.com/octelium/octelium/apis/main/cordiumv1"
27+
"github.com/octelium/octelium/apis/main/metav1"
2728
"github.com/octelium/octelium/client/common/client"
2829
"github.com/octelium/octelium/client/common/cliutils"
2930
"github.com/spf13/cobra"
@@ -96,7 +97,9 @@ func DoCmdTerminal(ctx context.Context, conn *grpc.ClientConn, wsName string) er
9697
zap.L().Debug("init window size", zap.Int("cols", cols), zap.Int("rows", rows))
9798

9899
t, err := c.CreateTerminal(ctx, &pb.CreateTerminalRequest{
99-
Name: wsName,
100+
WorkspaceRef: &metav1.ObjectReference{
101+
Name: wsName,
102+
},
100103
Width: uint32(cols),
101104
Height: uint32(rows),
102105
})

cluster/apiserver/apiserver/mains/space.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -496,22 +496,18 @@ func (s *Server) LeaveSpace(ctx context.Context, req *cordiumv1.LeaveSpaceReques
496496
return nil, err
497497
}
498498

499-
if err := apivalidation.CheckGetOptions(&metav1.GetOptions{
500-
Uid: req.Uid,
501-
Name: req.Name,
502-
}, &apivalidation.CheckGetOptionsOpts{}); err != nil {
499+
if err := apivalidation.CheckObjectRef(getFullResourceRefSpace(ctx, req.SpaceRef),
500+
&apivalidation.CheckGetOptionsOpts{}); err != nil {
503501
return nil, err
504502
}
505503

506-
spc, err := s.octeliumC.CordiumC().GetSpace(ctx, &rmetav1.GetOptions{
507-
Uid: req.Uid,
508-
Name: req.Name,
509-
})
504+
spc, err := s.octeliumC.CordiumC().GetSpace(ctx, apivalidation.ObjectReferenceToRGetOptions(req.SpaceRef))
510505
if err != nil {
511506
return nil, serr.K8sNotFoundOrInternalWithErr(err)
512507
}
513508

514-
mem, err := commonw.GetMembership(ctx, s.octeliumC, umetav1.GetObjectReference(usrCtx.User), umetav1.GetObjectReference(spc))
509+
mem, err := commonw.GetMembership(ctx, s.octeliumC,
510+
umetav1.GetObjectReference(usrCtx.User), umetav1.GetObjectReference(spc))
515511
if err != nil {
516512
return nil, err
517513
}

cluster/apiserver/apiserver/mains/space_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func TestSpace(t *testing.T) {
100100
}
101101
{
102102
_, err := srv.LeaveSpace(usr.Ctx(), &cordiumv1.LeaveSpaceRequest{
103-
Uid: org.Metadata.Uid,
103+
SpaceRef: umetav1.GetObjectReference(org),
104104
})
105105

106106
assert.NotNil(t, err)

cluster/apiserver/apiserver/mains/utils.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,3 +269,21 @@ func getFullGetOptionsSpace(ctx context.Context, req *metav1.GetOptions) *metav1
269269
req.Name = getFullGetOptionsUserCtx(i, req.Name, 1)
270270
return req
271271
}
272+
273+
func getFullResourceRefSpace(ctx context.Context, req *metav1.ObjectReference) *metav1.ObjectReference {
274+
if req == nil || req.Name == "" {
275+
return req
276+
}
277+
278+
if isNameFQDN(req.Name, 1) {
279+
return req
280+
}
281+
282+
i, err := commonw.GetUserCtx(ctx)
283+
if err != nil {
284+
return req
285+
}
286+
287+
req.Name = getFullGetOptionsUserCtx(i, req.Name, 1)
288+
return req
289+
}

cluster/apiserver/apiserver/mains/workspace.go

Lines changed: 8 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -488,10 +488,7 @@ func (s *Server) StartWorkspace(ctx context.Context, req *cordiumv1.StartWorkspa
488488
return nil, err
489489
}
490490

491-
if err := apivalidation.CheckGetOptions(&metav1.GetOptions{
492-
Uid: req.Uid,
493-
Name: req.Name,
494-
}, &apivalidation.CheckGetOptionsOpts{}); err != nil {
491+
if err := apivalidation.CheckObjectRef(req.WorkspaceRef, &apivalidation.CheckGetOptionsOpts{}); err != nil {
495492
return nil, err
496493
}
497494

@@ -504,10 +501,7 @@ func (s *Server) StartWorkspace(ctx context.Context, req *cordiumv1.StartWorkspa
504501
return nil, err
505502
}
506503

507-
ws, err := s.octeliumC.CordiumC().GetWorkspace(ctx, &rmetav1.GetOptions{
508-
Uid: req.Uid,
509-
Name: req.Name,
510-
})
504+
ws, err := s.octeliumC.CordiumC().GetWorkspace(ctx, apivalidation.ObjectReferenceToRGetOptions(req.WorkspaceRef))
511505
if err != nil {
512506
return nil, serr.K8sNotFoundOrInternalWithErr(err)
513507
}
@@ -648,18 +642,11 @@ func (s *Server) StopWorkspace(ctx context.Context, req *cordiumv1.StopWorkspace
648642
return nil, err
649643
}
650644

651-
if err := apivalidation.CheckGetOptions(&metav1.GetOptions{
652-
Uid: req.Uid,
653-
Name: req.Name,
654-
}, &apivalidation.CheckGetOptionsOpts{}); err != nil {
645+
if err := apivalidation.CheckObjectRef(req.WorkspaceRef, &apivalidation.CheckGetOptionsOpts{}); err != nil {
655646
return nil, err
656647
}
657648

658-
ws, err := s.octeliumC.CordiumC().GetWorkspace(ctx,
659-
&rmetav1.GetOptions{
660-
Uid: req.Uid,
661-
Name: req.Name,
662-
})
649+
ws, err := s.octeliumC.CordiumC().GetWorkspace(ctx, apivalidation.ObjectReferenceToRGetOptions(req.WorkspaceRef))
663650
if err != nil {
664651
return nil, serr.K8sNotFoundOrInternalWithErr(err)
665652
}
@@ -680,38 +667,6 @@ func (s *Server) StopWorkspace(ctx context.Context, req *cordiumv1.StopWorkspace
680667
return &cordiumv1.StopWorkspaceResponse{}, nil
681668
}
682669

683-
if len(req.Tags) > 0 {
684-
if len(req.Tags) > 10 {
685-
return nil, grpcutils.InvalidArg("Too many tags")
686-
}
687-
688-
checkTag := func(arg string) error {
689-
if err := apivalidation.CheckGetOptions(&metav1.GetOptions{
690-
Name: arg,
691-
}, nil); err != nil {
692-
return grpcutils.InvalidArg("Invalid tag: %s", arg)
693-
}
694-
695-
if len(arg) > 16 {
696-
return grpcutils.InvalidArg("Tag: %s is too long", arg)
697-
}
698-
699-
return nil
700-
}
701-
702-
for _, tag := range req.Tags {
703-
if err := checkTag(tag); err != nil {
704-
return nil, err
705-
}
706-
}
707-
}
708-
709-
// run := ucordiumv1.ToWorkspace(ws).GetCurrentRun()
710-
/*
711-
run.IsEphemeral = req.IsEphemeral
712-
run.Tags = req.Tags
713-
*/
714-
715670
ws.Status.State = cordiumv1.Workspace_Status_STOPPING_REQUEST
716671
ws.Status.StoppingReason = cordiumv1.Workspace_Status_STOPPING_REASON_API
717672

@@ -812,17 +767,11 @@ func (s *Server) ShareWorkspacePort(ctx context.Context, req *cordiumv1.ShareWor
812767
return nil, grpcutils.InvalidArg("Application name must be set")
813768
}
814769

815-
if err := apivalidation.CheckGetOptions(&metav1.GetOptions{
816-
Uid: req.Uid,
817-
Name: req.Name,
818-
}, &apivalidation.CheckGetOptionsOpts{}); err != nil {
770+
if err := apivalidation.CheckObjectRef(req.WorkspaceRef, &apivalidation.CheckGetOptionsOpts{}); err != nil {
819771
return nil, err
820772
}
821773

822-
ws, err := s.GetWorkspace(ctx, &metav1.GetOptions{
823-
Uid: req.Uid,
824-
Name: req.Name,
825-
})
774+
ws, err := s.GetWorkspace(ctx, apivalidation.ObjectReferenceToGetOptions(req.WorkspaceRef))
826775
if err != nil {
827776
return nil, err
828777
}
@@ -863,17 +812,11 @@ func (s *Server) UnshareWorkspacePort(ctx context.Context, req *cordiumv1.Unshar
863812
return nil, grpcutils.InvalidArg("Application name must be set")
864813
}
865814

866-
if err := apivalidation.CheckGetOptions(&metav1.GetOptions{
867-
Uid: req.Uid,
868-
Name: req.Name,
869-
}, &apivalidation.CheckGetOptionsOpts{}); err != nil {
815+
if err := apivalidation.CheckObjectRef(req.WorkspaceRef, &apivalidation.CheckGetOptionsOpts{}); err != nil {
870816
return nil, err
871817
}
872818

873-
ws, err := s.GetWorkspace(ctx, &metav1.GetOptions{
874-
Uid: req.Uid,
875-
Name: req.Name,
876-
})
819+
ws, err := s.GetWorkspace(ctx, apivalidation.ObjectReferenceToGetOptions(req.WorkspaceRef))
877820
if err != nil {
878821
return nil, err
879822
}

0 commit comments

Comments
 (0)