14259: Add method to keep client to request remote block copy via HEAD request.
[arvados.git] / sdk / go / arvados / config.go
index 7101693f3fbd9cbd2d2e8df4ac3f45cca0f0907b..c723be7d10d4013b04e7a8b75ff7176bfb8f58f3 100644 (file)
@@ -50,16 +50,20 @@ func (sc *Config) GetCluster(clusterID string) (*Cluster, error) {
        }
 }
 
+type RequestLimits struct {
+       MaxItemsPerResponse            int
+       MultiClusterRequestConcurrency int
+}
+
 type Cluster struct {
-       ClusterID                   string `json:"-"`
-       ManagementToken             string
-       NodeProfiles                map[string]NodeProfile
-       InstanceTypes               InstanceTypeMap
-       HTTPRequestTimeout          Duration
-       RemoteClusters              map[string]RemoteCluster
-       PostgreSQL                  PostgreSQL
-       MaxItemsPerResponse         int
-       FederatedRequestConcurrency int
+       ClusterID          string `json:"-"`
+       ManagementToken    string
+       NodeProfiles       map[string]NodeProfile
+       InstanceTypes      InstanceTypeMap
+       HTTPRequestTimeout Duration
+       RemoteClusters     map[string]RemoteCluster
+       PostgreSQL         PostgreSQL
+       RequestLimits      RequestLimits
 }
 
 type PostgreSQL struct {
@@ -194,6 +198,20 @@ func (np *NodeProfile) ServicePorts() map[ServiceName]string {
        }
 }
 
+func (h RequestLimits) GetMultiClusterRequestConcurrency() int {
+       if h.MultiClusterRequestConcurrency == 0 {
+               return 4
+       }
+       return h.MultiClusterRequestConcurrency
+}
+
+func (h RequestLimits) GetMaxItemsPerResponse() int {
+       if h.MaxItemsPerResponse == 0 {
+               return 1000
+       }
+       return h.MaxItemsPerResponse
+}
+
 type SystemServiceInstance struct {
        Listen   string
        TLS      bool