17702: Federated lists supports cluster_id parameter
[arvados.git] / lib / controller / federation / generated.go
index 49a2e5b7513f537f0f129fac6c8ba81103e72a29..3ede1f1154900256bcda9e589013fafe1e30e52a 100755 (executable)
@@ -18,6 +18,12 @@ import (
 //
 
 func (conn *Conn) generated_ContainerList(ctx context.Context, options arvados.ListOptions) (arvados.ContainerList, error) {
+       if options.ClusterID != "" {
+               // explicitly selected cluster
+               options.ForwardedFor = conn.cluster.ClusterID + "-" + options.ForwardedFor
+               return conn.chooseBackend(options.ClusterID).ContainerList(ctx, options)
+       }
+
        var mtx sync.Mutex
        var merged arvados.ContainerList
        var needSort atomic.Value
@@ -59,6 +65,12 @@ func (conn *Conn) generated_ContainerList(ctx context.Context, options arvados.L
 }
 
 func (conn *Conn) generated_ContainerRequestList(ctx context.Context, options arvados.ListOptions) (arvados.ContainerRequestList, error) {
+       if options.ClusterID != "" {
+               // explicitly selected cluster
+               options.ForwardedFor = conn.cluster.ClusterID + "-" + options.ForwardedFor
+               return conn.chooseBackend(options.ClusterID).ContainerRequestList(ctx, options)
+       }
+
        var mtx sync.Mutex
        var merged arvados.ContainerRequestList
        var needSort atomic.Value
@@ -100,6 +112,12 @@ func (conn *Conn) generated_ContainerRequestList(ctx context.Context, options ar
 }
 
 func (conn *Conn) generated_GroupList(ctx context.Context, options arvados.ListOptions) (arvados.GroupList, error) {
+       if options.ClusterID != "" {
+               // explicitly selected cluster
+               options.ForwardedFor = conn.cluster.ClusterID + "-" + options.ForwardedFor
+               return conn.chooseBackend(options.ClusterID).GroupList(ctx, options)
+       }
+
        var mtx sync.Mutex
        var merged arvados.GroupList
        var needSort atomic.Value
@@ -141,6 +159,12 @@ func (conn *Conn) generated_GroupList(ctx context.Context, options arvados.ListO
 }
 
 func (conn *Conn) generated_SpecimenList(ctx context.Context, options arvados.ListOptions) (arvados.SpecimenList, error) {
+       if options.ClusterID != "" {
+               // explicitly selected cluster
+               options.ForwardedFor = conn.cluster.ClusterID + "-" + options.ForwardedFor
+               return conn.chooseBackend(options.ClusterID).SpecimenList(ctx, options)
+       }
+
        var mtx sync.Mutex
        var merged arvados.SpecimenList
        var needSort atomic.Value
@@ -182,6 +206,12 @@ func (conn *Conn) generated_SpecimenList(ctx context.Context, options arvados.Li
 }
 
 func (conn *Conn) generated_UserList(ctx context.Context, options arvados.ListOptions) (arvados.UserList, error) {
+       if options.ClusterID != "" {
+               // explicitly selected cluster
+               options.ForwardedFor = conn.cluster.ClusterID + "-" + options.ForwardedFor
+               return conn.chooseBackend(options.ClusterID).UserList(ctx, options)
+       }
+
        var mtx sync.Mutex
        var merged arvados.UserList
        var needSort atomic.Value