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)
 }
 
        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) {
 }
 
 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)
        }
 
        respKind := kind(resp)
-       if respKind == "arvados#sharedGroupList" {
-               tmp["kind"] = "arvados#groupList"
-       } else if respKind != "" {
+       if respKind != "" {
                tmp["kind"] = 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")
        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
 }
 
        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
        ep := arvados.EndpointGroupShared
-       var resp arvados.SharedGroupList
+       var resp arvados.GroupList
        err := conn.requestAndDecode(ctx, &resp, ep, nil, options)
        return resp, err
 }
        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)
        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)
        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 {
 
 // 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.
 }
 
 // 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
 }
        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)
        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)
 }
 func (as *APIStub) GroupDelete(ctx context.Context, options arvados.DeleteOptions) (arvados.Group, error) {
        as.appendCall(ctx, as.GroupDelete, options)