14259: Add method to keep client to request remote block copy via HEAD request.
[arvados.git] / sdk / go / arvados / config.go
index 6edd18418bb8015087f8b486acf6ee21d2d26db4..c723be7d10d4013b04e7a8b75ff7176bfb8f58f3 100644 (file)
@@ -50,6 +50,11 @@ func (sc *Config) GetCluster(clusterID string) (*Cluster, error) {
        }
 }
 
+type RequestLimits struct {
+       MaxItemsPerResponse            int
+       MultiClusterRequestConcurrency int
+}
+
 type Cluster struct {
        ClusterID          string `json:"-"`
        ManagementToken    string
@@ -58,6 +63,7 @@ type Cluster struct {
        HTTPRequestTimeout Duration
        RemoteClusters     map[string]RemoteCluster
        PostgreSQL         PostgreSQL
+       RequestLimits      RequestLimits
 }
 
 type PostgreSQL struct {
@@ -192,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