X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/cdaca3963cf2d07e81eb71ac33e4c0966dec9b93..15623db9b12d8ac1b0b44a3eb53358896254b28a:/sdk/go/arvados/config.go diff --git a/sdk/go/arvados/config.go b/sdk/go/arvados/config.go index 7101693f3f..e2e9907d5d 100644 --- a/sdk/go/arvados/config.go +++ b/sdk/go/arvados/config.go @@ -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 { @@ -157,6 +161,7 @@ func (cc *Cluster) GetNodeProfile(node string) (*NodeProfile, error) { type NodeProfile struct { Controller SystemServiceInstance `json:"arvados-controller"` Health SystemServiceInstance `json:"arvados-health"` + Keepbalance SystemServiceInstance `json:"keep-balance"` Keepproxy SystemServiceInstance `json:"keepproxy"` Keepstore SystemServiceInstance `json:"keepstore"` Keepweb SystemServiceInstance `json:"keep-web"` @@ -174,6 +179,7 @@ const ( ServiceNameNodemanager ServiceName = "arvados-node-manager" ServiceNameWorkbench ServiceName = "arvados-workbench" ServiceNameWebsocket ServiceName = "arvados-ws" + ServiceNameKeepbalance ServiceName = "keep-balance" ServiceNameKeepweb ServiceName = "keep-web" ServiceNameKeepproxy ServiceName = "keepproxy" ServiceNameKeepstore ServiceName = "keepstore" @@ -188,12 +194,27 @@ func (np *NodeProfile) ServicePorts() map[ServiceName]string { ServiceNameNodemanager: np.Nodemanager.Listen, ServiceNameWorkbench: np.Workbench.Listen, ServiceNameWebsocket: np.Websocket.Listen, + ServiceNameKeepbalance: np.Keepbalance.Listen, ServiceNameKeepweb: np.Keepweb.Listen, ServiceNameKeepproxy: np.Keepproxy.Listen, ServiceNameKeepstore: np.Keepstore.Listen, } } +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