X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d3b76845c740935f7474f535d308303c748b0b4a..ac2ea4ef187f7df369551a8cfa047fed8a1a2ba9:/sdk/go/arvados/config.go diff --git a/sdk/go/arvados/config.go b/sdk/go/arvados/config.go index 4a7c18b3e0..f0adcda5f1 100644 --- a/sdk/go/arvados/config.go +++ b/sdk/go/arvados/config.go @@ -10,6 +10,7 @@ import ( "fmt" "net/url" "os" + "time" "git.arvados.org/arvados.git/sdk/go/config" ) @@ -24,6 +25,8 @@ var DefaultConfigFile = func() string { type Config struct { Clusters map[string]Cluster AutoReloadConfig bool + SourceTimestamp time.Time + SourceSHA256 string } // GetConfig returns the current system config, loading it from @@ -63,7 +66,6 @@ type WebDAVCacheConfig struct { MaxBlockEntries int MaxCollectionEntries int MaxCollectionBytes int64 - MaxPermissionEntries int MaxUUIDEntries int MaxSessions int } @@ -78,6 +80,12 @@ type UploadDownloadRolePermissions struct { Admin UploadDownloadPermission } +type ManagedProperties map[string]struct { + Value interface{} + Function string + Protected bool +} + type Cluster struct { ClusterID string `json:"-"` ManagementToken string @@ -89,20 +97,24 @@ type Cluster struct { PostgreSQL PostgreSQL API struct { - AsyncPermissionsUpdateInterval Duration - DisabledAPIs StringSet - MaxIndexDatabaseRead int - MaxItemsPerResponse int - MaxConcurrentRequests int - MaxKeepBlobBuffers int - MaxRequestAmplification int - MaxRequestSize int - MaxTokenLifetime Duration - RequestTimeout Duration - SendTimeout Duration - WebsocketClientEventQueue int - WebsocketServerEventQueue int - KeepServiceRequestTimeout Duration + AsyncPermissionsUpdateInterval Duration + DisabledAPIs StringSet + MaxIndexDatabaseRead int + MaxItemsPerResponse int + MaxConcurrentRequests int + MaxKeepBlobBuffers int + MaxRequestAmplification int + MaxRequestSize int + MaxTokenLifetime Duration + RequestTimeout Duration + SendTimeout Duration + WebsocketClientEventQueue int + WebsocketServerEventQueue int + KeepServiceRequestTimeout Duration + VocabularyPath string + FreezeProjectRequiresDescription bool + FreezeProjectRequiresProperties StringSet + UnfreezeProjectRequiresAdmin bool } AuditLogs struct { MaxAge Duration @@ -110,23 +122,19 @@ type Cluster struct { UnloggedAttributes StringSet } Collections struct { - BlobSigning bool - BlobSigningKey string - BlobSigningTTL Duration - BlobTrash bool - BlobTrashLifetime Duration - BlobTrashCheckInterval Duration - BlobTrashConcurrency int - BlobDeleteConcurrency int - BlobReplicateConcurrency int - CollectionVersioning bool - DefaultTrashLifetime Duration - DefaultReplication int - ManagedProperties map[string]struct { - Value interface{} - Function string - Protected bool - } + BlobSigning bool + BlobSigningKey string + BlobSigningTTL Duration + BlobTrash bool + BlobTrashLifetime Duration + BlobTrashCheckInterval Duration + BlobTrashConcurrency int + BlobDeleteConcurrency int + BlobReplicateConcurrency int + CollectionVersioning bool + DefaultTrashLifetime Duration + DefaultReplication int + ManagedProperties ManagedProperties PreserveVersionIfIdle Duration TrashSweepInterval Duration TrustAllContent bool @@ -221,6 +229,7 @@ type Cluster struct { Insecure bool } Users struct { + ActivatedUsersAreVisibleToOthers bool AnonymousUserToken string AdminNotifierEmailFrom string AutoAdminFirstUser bool @@ -238,6 +247,7 @@ type Cluster struct { UserProfileNotificationAddress string PreferDomainForUsername string UserSetupMailText string + RoleGroupsVisibleToAll bool } StorageClasses map[string]StorageClassConfig Volumes map[string]Volume @@ -274,7 +284,6 @@ type Cluster struct { Options map[string]struct{} } UserProfileFormMessage string - VocabularyURL string WelcomePageHTML string InactivePageHTML string SSHHelpPageHTML string @@ -312,6 +321,7 @@ type S3VolumeDriverParameters struct { ReadTimeout Duration RaceWindow Duration UnsafeDelete bool + PrefixLength int } type AzureVolumeDriverParameters struct { @@ -407,6 +417,12 @@ type RemoteCluster struct { ActivateUsers bool } +type CUDAFeatures struct { + DriverVersion string + HardwareCapability string + DeviceCount int +} + type InstanceType struct { Name string ProviderType string @@ -417,24 +433,28 @@ type InstanceType struct { AddedScratch ByteSize Price float64 Preemptible bool + CUDA CUDAFeatures } type ContainersConfig struct { - CloudVMs CloudVMsConfig - CrunchRunCommand string - CrunchRunArgumentsList []string - DefaultKeepCacheRAM ByteSize - DispatchPrivateKey string - LogReuseDecisions bool - MaxComputeVMs int - MaxDispatchAttempts int - MaxRetryAttempts int - MinRetryPeriod Duration - ReserveExtraRAM ByteSize - StaleLockTimeout Duration - SupportedDockerImageFormats StringSet - UsePreemptibleInstances bool - RuntimeEngine string + CloudVMs CloudVMsConfig + CrunchRunCommand string + CrunchRunArgumentsList []string + DefaultKeepCacheRAM ByteSize + DispatchPrivateKey string + LogReuseDecisions bool + MaxComputeVMs int + MaxDispatchAttempts int + MaxRetryAttempts int + MinRetryPeriod Duration + ReserveExtraRAM ByteSize + StaleLockTimeout Duration + SupportedDockerImageFormats StringSet + AlwaysUsePreemptibleInstances bool + PreemptiblePriceFactor float64 + RuntimeEngine string + LocalKeepBlobBuffersPerVCPU int + LocalKeepLogsToContainerLog string JobsAPI struct { Enable string @@ -473,6 +493,7 @@ type ContainersConfig struct { LSF struct { BsubSudoUser string BsubArgumentsList []string + BsubCUDAArguments []string } } @@ -607,35 +628,37 @@ func (ss *StringSet) UnmarshalJSON(data []byte) error { type ServiceName string const ( - ServiceNameRailsAPI ServiceName = "arvados-api-server" ServiceNameController ServiceName = "arvados-controller" ServiceNameDispatchCloud ServiceName = "arvados-dispatch-cloud" ServiceNameDispatchLSF ServiceName = "arvados-dispatch-lsf" + ServiceNameGitHTTP ServiceName = "arvados-git-httpd" ServiceNameHealth ServiceName = "arvados-health" - ServiceNameWorkbench1 ServiceName = "arvados-workbench1" - ServiceNameWorkbench2 ServiceName = "arvados-workbench2" - ServiceNameWebsocket ServiceName = "arvados-ws" ServiceNameKeepbalance ServiceName = "keep-balance" - ServiceNameKeepweb ServiceName = "keep-web" ServiceNameKeepproxy ServiceName = "keepproxy" ServiceNameKeepstore ServiceName = "keepstore" + ServiceNameKeepweb ServiceName = "keep-web" + ServiceNameRailsAPI ServiceName = "arvados-api-server" + ServiceNameWebsocket ServiceName = "arvados-ws" + ServiceNameWorkbench1 ServiceName = "arvados-workbench1" + ServiceNameWorkbench2 ServiceName = "arvados-workbench2" ) // Map returns all services as a map, suitable for iterating over all // services or looking up a service by name. func (svcs Services) Map() map[ServiceName]Service { return map[ServiceName]Service{ - ServiceNameRailsAPI: svcs.RailsAPI, ServiceNameController: svcs.Controller, ServiceNameDispatchCloud: svcs.DispatchCloud, ServiceNameDispatchLSF: svcs.DispatchLSF, + ServiceNameGitHTTP: svcs.GitHTTP, ServiceNameHealth: svcs.Health, - ServiceNameWorkbench1: svcs.Workbench1, - ServiceNameWorkbench2: svcs.Workbench2, - ServiceNameWebsocket: svcs.Websocket, ServiceNameKeepbalance: svcs.Keepbalance, - ServiceNameKeepweb: svcs.WebDAV, ServiceNameKeepproxy: svcs.Keepproxy, ServiceNameKeepstore: svcs.Keepstore, + ServiceNameKeepweb: svcs.WebDAV, + ServiceNameRailsAPI: svcs.RailsAPI, + ServiceNameWebsocket: svcs.Websocket, + ServiceNameWorkbench1: svcs.Workbench1, + ServiceNameWorkbench2: svcs.Workbench2, } }