17119: merge SharedGroupList into GroupList, which now gets an
authorWard Vandewege <ward@curii.com>
Mon, 22 Feb 2021 20:32:28 +0000 (15:32 -0500)
committerWard Vandewege <ward@curii.com>
Tue, 23 Feb 2021 22:09:23 +0000 (17:09 -0500)
       'Included' field (will be null unless used for shared groups).

Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@curii.com>

lib/controller/federation/conn.go
lib/controller/router/response.go
lib/controller/rpc/conn.go
sdk/go/arvados/api.go
sdk/go/arvados/group.go
sdk/go/arvadostest/api.go

index 63a05eb270b1611bc2c73208cea3aba0c87ed7a9..88648fbb191833767cda02baebe3c7d5db0c9996 100644 (file)
@@ -422,8 +422,9 @@ func (conn *Conn) GroupContents(ctx context.Context, options arvados.ContentsOpt
        return conn.chooseBackend(options.UUID).GroupContents(ctx, options)
 }
 
-func (conn *Conn) GroupShared(ctx context.Context, options arvados.SharedOptions) (arvados.SharedGroupList, error) {
-       return conn.chooseBackend(options.UUID).GroupShared(ctx, options)
+func (conn *Conn) GroupShared(ctx context.Context, options arvados.SharedOptions) (arvados.GroupList, error) {
+       // FIXME is this right?? We don't have options.UUID to cue the chooseBackend off
+       return conn.chooseBackend(conn.cluster.ClusterID).GroupShared(ctx, options)
 }
 
 func (conn *Conn) GroupDelete(ctx context.Context, options arvados.DeleteOptions) (arvados.Group, error) {
index 2a7bd9e6745ba9eecda72498e7463e77c17cd887..309ed48f64516be4211b0cd90950f09955fb5aa2 100644 (file)
@@ -71,11 +71,13 @@ func (rtr *router) sendResponse(w http.ResponseWriter, req *http.Request, resp i
        }
 
        respKind := kind(resp)
-       if respKind == "arvados#sharedGroupList" {
-               tmp["kind"] = "arvados#groupList"
-       } else if respKind != "" {
+       if respKind != "" {
                tmp["kind"] = respKind
        }
+       if included, ok := tmp["included"]; ok && included == nil {
+               tmp["included"] = make([]interface{}, 0)
+       }
+
        defaultItemKind := ""
        if strings.HasSuffix(respKind, "List") {
                defaultItemKind = strings.TrimSuffix(respKind, "List")
index fc2ca3c5a140385cd103e106bc90be1f8d565fb4..e44a8e2d3d5c10c3e519627bb8e191147d846694 100644 (file)
@@ -451,9 +451,9 @@ func (conn *Conn) GroupContents(ctx context.Context, options arvados.ContentsOpt
        return resp, err
 }
 
-func (conn *Conn) GroupShared(ctx context.Context, options arvados.SharedOptions) (arvados.SharedGroupList, error) {
+func (conn *Conn) GroupShared(ctx context.Context, options arvados.SharedOptions) (arvados.GroupList, error) {
        ep := arvados.EndpointGroupShared
-       var resp arvados.SharedGroupList
+       var resp arvados.GroupList
        err := conn.requestAndDecode(ctx, &resp, ep, nil, options)
        return resp, err
 }
index 9aaa3205b7d0515960b90da8b09d7e64b197c778..107d2b39260ecd96ee0c417446b07bc277d84f31 100644 (file)
@@ -240,7 +240,7 @@ type API interface {
        GroupGet(ctx context.Context, options GetOptions) (Group, error)
        GroupList(ctx context.Context, options ListOptions) (GroupList, error)
        GroupContents(ctx context.Context, options ContentsOptions) (ObjectList, error)
-       GroupShared(ctx context.Context, options SharedOptions) (SharedGroupList, error)
+       GroupShared(ctx context.Context, options SharedOptions) (GroupList, error)
        GroupDelete(ctx context.Context, options DeleteOptions) (Group, error)
        GroupUntrash(ctx context.Context, options UntrashOptions) (Group, error)
        SpecimenCreate(ctx context.Context, options CreateOptions) (Specimen, error)
index b46b596f4f5fceaceb01a143ac8f5b3a1fcf45a1..07632059e11f74c72e51e41f34f98410981544bf 100644 (file)
@@ -31,18 +31,11 @@ type Group struct {
 
 // GroupList is an arvados#groupList resource.
 type GroupList struct {
-       Items          []Group `json:"items"`
-       ItemsAvailable int     `json:"items_available"`
-       Offset         int     `json:"offset"`
-       Limit          int     `json:"limit"`
-}
-
-// SharedGroupList is an arvados#groupList resource.
-type SharedGroupList struct {
-       Included []interface{} `json:"included"`
-       Items    []Group       `json:"items"`
-       Offset   int           `json:"offset"`
-       Limit    int           `json:"limit"`
+       Items          []Group       `json:"items"`
+       ItemsAvailable int           `json:"items_available"`
+       Offset         int           `json:"offset"`
+       Limit          int           `json:"limit"`
+       Included       []interface{} `json:"included"`
 }
 
 // ObjectList is an arvados#objectList resource.
index 781ede1d5d3a84aa0409488e67a74a82ce99f11b..c90933bc1ebc79f53619ae845609cee8ddc22b32 100644 (file)
@@ -149,9 +149,9 @@ func (as *APIStub) GroupContents(ctx context.Context, options arvados.ContentsOp
        as.appendCall(ctx, as.GroupContents, options)
        return arvados.ObjectList{}, as.Error
 }
-func (as *APIStub) GroupShared(ctx context.Context, options arvados.SharedOptions) (arvados.SharedGroupList, error) {
+func (as *APIStub) GroupShared(ctx context.Context, options arvados.SharedOptions) (arvados.GroupList, error) {
        as.appendCall(ctx, as.GroupShared, options)
-       return arvados.SharedGroupList{}, as.Error
+       return arvados.GroupList{}, as.Error
 }
 func (as *APIStub) GroupDelete(ctx context.Context, options arvados.DeleteOptions) (arvados.Group, error) {
        as.appendCall(ctx, as.GroupDelete, options)