X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/745a7e253326a2b8e292dbd928c76320ce320216..b9e8e790912565619289540a8dc546a5c9c60f6e:/sdk/go/arvados/config.go diff --git a/sdk/go/arvados/config.go b/sdk/go/arvados/config.go index 2871356e98..e2ad7b089d 100644 --- a/sdk/go/arvados/config.go +++ b/sdk/go/arvados/config.go @@ -5,6 +5,7 @@ package arvados import ( + "crypto/tls" "encoding/json" "errors" "fmt" @@ -98,7 +99,11 @@ type Cluster struct { DisabledAPIs StringSet MaxIndexDatabaseRead int MaxItemsPerResponse int + MaxConcurrentRailsRequests int MaxConcurrentRequests int + MaxQueuedRequests int + MaxQueueTimeForLockRequests Duration + LogCreateRequestFraction float64 MaxKeepBlobBuffers int MaxRequestAmplification int MaxRequestSize int @@ -112,6 +117,7 @@ type Cluster struct { FreezeProjectRequiresDescription bool FreezeProjectRequiresProperties StringSet UnfreezeProjectRequiresAdmin bool + LockBeforeUpdate bool } AuditLogs struct { MaxAge Duration @@ -144,6 +150,8 @@ type Cluster struct { BalanceCollectionBuffers int BalanceTimeout Duration BalanceUpdateLimit int + BalancePullLimit int + BalanceTrashLimit int WebDAVCache WebDAVCacheConfig @@ -162,6 +170,7 @@ type Cluster struct { URL URL StartTLS bool InsecureTLS bool + MinTLSVersion TLSVersion StripDomain string AppendDomain string SearchAttribute string @@ -217,9 +226,10 @@ type Cluster struct { EmailFrom string } SystemLogs struct { - LogLevel string - Format string - MaxRequestLogParamsSize int + LogLevel string + Format string + MaxRequestLogParamsSize int + RequestQueueDumpDirectory string } TLS struct { Certificate string @@ -249,7 +259,14 @@ type Cluster struct { PreferDomainForUsername string UserSetupMailText string RoleGroupsVisibleToAll bool + CanCreateRoleGroups bool ActivityLoggingPeriod Duration + SyncIgnoredGroups []string + SyncRequiredGroups []string + SyncUserAccounts bool + SyncUserAPITokens bool + SyncUserGroups bool + SyncUserSSHKeys bool } StorageClasses map[string]StorageClassConfig Volumes map[string]Volume @@ -292,7 +309,7 @@ type Cluster struct { SSHHelpPageHTML string SSHHelpHostSuffix string IdleTimeout Duration - BannerURL string + BannerUUID string } } @@ -302,12 +319,13 @@ type StorageClassConfig struct { } type Volume struct { - AccessViaHosts map[URL]VolumeAccess - ReadOnly bool - Replication int - StorageClasses map[string]bool - Driver string - DriverParameters json.RawMessage + AccessViaHosts map[URL]VolumeAccess + ReadOnly bool + AllowTrashWhenReadOnly bool + Replication int + StorageClasses map[string]bool + Driver string + DriverParameters json.RawMessage } type S3VolumeDriverParameters struct { @@ -319,7 +337,6 @@ type S3VolumeDriverParameters struct { Bucket string LocationConstraint bool V2Signature bool - UseAWSS3v2Driver bool IndexPageSize int ConnectTimeout Duration ReadTimeout Duration @@ -403,6 +420,51 @@ func (su URL) String() string { return (*url.URL)(&su).String() } +type TLSVersion uint16 + +func (v TLSVersion) MarshalText() ([]byte, error) { + switch v { + case 0: + return []byte{}, nil + case tls.VersionTLS10: + return []byte("1.0"), nil + case tls.VersionTLS11: + return []byte("1.1"), nil + case tls.VersionTLS12: + return []byte("1.2"), nil + case tls.VersionTLS13: + return []byte("1.3"), nil + default: + return nil, fmt.Errorf("unsupported TLSVersion %x", v) + } +} + +func (v *TLSVersion) UnmarshalJSON(text []byte) error { + if len(text) > 0 && text[0] == '"' { + var s string + err := json.Unmarshal(text, &s) + if err != nil { + return err + } + text = []byte(s) + } + switch string(text) { + case "": + *v = 0 + case "1.0": + *v = tls.VersionTLS10 + case "1.1": + *v = tls.VersionTLS11 + case "1.2": + *v = tls.VersionTLS12 + case "1.3": + *v = tls.VersionTLS13 + default: + return fmt.Errorf("unsupported TLSVersion %q", text) + } + return nil +} + type ServiceInstance struct { ListenURL URL Rendezvous string `json:",omitempty"` @@ -449,7 +511,6 @@ type ContainersConfig struct { DefaultKeepCacheRAM ByteSize DispatchPrivateKey string LogReuseDecisions bool - MaxComputeVMs int MaxDispatchAttempts int MaxRetryAttempts int MinRetryPeriod Duration @@ -458,6 +519,7 @@ type ContainersConfig struct { SupportedDockerImageFormats StringSet AlwaysUsePreemptibleInstances bool PreemptiblePriceFactor float64 + MaximumPriceFactor float64 RuntimeEngine string LocalKeepBlobBuffersPerVCPU int LocalKeepLogsToContainerLog string @@ -508,11 +570,16 @@ type CloudVMsConfig struct { Enable bool BootProbeCommand string + InstanceInitCommand string DeployRunnerBinary string + DeployPublicKey bool ImageID string MaxCloudOpsPerSecond int MaxProbesPerSecond int MaxConcurrentInstanceCreateOps int + MaxInstances int + InitialQuotaEstimate int + SupervisorFraction float64 PollInterval Duration ProbeInterval Duration SSHPort string