14259: Add method to keep client to request remote block copy via HEAD request.
[arvados.git] / sdk / go / arvados / config.go
index f309ac7bd130306cc6a2acb721374eb59612e2f9..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
-       ParallelRemoteRequests 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