Documentation ¶
Overview ¶
Package distro models an environment configuration for a host. Distros can be used for hosts with different purposes, such as running tasks and virtual workstations.
Index ¶
- Constants
- Variables
- func ById(id string) bson.M
- func ByIds(ids []string) bson.M
- func ByNeedsHostsPlanning(containerPools []evergreen.ContainerPool) bson.M
- func ByNeedsPlanning(containerPools []evergreen.ContainerPool) bson.M
- func BySpawnAllowed() bson.M
- func FindApplicableDistroIDs(ctx context.Context, id string) ([]string, error)
- func GetImageIDFromDistro(ctx context.Context, distro string) (string, error)
- func Remove(ctx context.Context, ID string) error
- func ValidateArch(arch string) error
- func ValidateContainerPoolDistros(ctx context.Context, s *evergreen.Settings) error
- type AliasLookupTable
- type BootstrapSettings
- type DispatcherSettings
- type Distro
- func AllDistros(ctx context.Context) ([]Distro, error)
- func Find(ctx context.Context, query bson.M, options ...*options.FindOptions) ([]Distro, error)
- func FindByIdWithDefaultSettings(ctx context.Context, id string) (*Distro, error)
- func FindOne(ctx context.Context, query bson.M, options ...*options.FindOneOptions) (*Distro, error)
- func FindOneId(ctx context.Context, id string) (*Distro, error)
- func GetDistrosForImage(ctx context.Context, imageID string) ([]Distro, error)
- func GetHostCreateDistro(ctx context.Context, createHost apimodels.CreateHost) (*Distro, error)
- func (d *Distro) AbsPathCygwinCompatible(path ...string) string
- func (d *Distro) AbsPathNotCygwinCompatible(path ...string) string
- func (d *Distro) Add(ctx context.Context, creator *user.DBUser) error
- func (d *Distro) AddPermissions(creator *user.DBUser) error
- func (d *Distro) BinaryName() string
- func (d *Distro) DistroData() DistroData
- func (d *Distro) ExecutableSubPath() string
- func (d *Distro) GenerateName() string
- func (d *Distro) GetAuthorizedKeysFile() string
- func (d *Distro) GetDefaultAMI() string
- func (d *Distro) GetImageID() (string, error)
- func (d *Distro) GetPoolSize() int
- func (d *Distro) GetProviderSettingByRegion(region string) (*birch.Document, error)
- func (d *Distro) GetRegionsList(allowedRegions []string) []string
- func (d *Distro) GetResolvedHostAllocatorSettings(s *evergreen.Settings) (HostAllocatorSettings, error)
- func (d *Distro) GetResolvedPlannerSettings(s *evergreen.Settings) (PlannerSettings, error)
- func (d *Distro) GetTargetTime() time.Duration
- func (d *Distro) HomeDir() string
- func (d *Distro) Insert(ctx context.Context) error
- func (d *Distro) IsEphemeral() bool
- func (d *Distro) IsLinux() bool
- func (d *Distro) IsMacOS() bool
- func (d *Distro) IsParent(s *evergreen.Settings) bool
- func (d *Distro) IsPowerShellSetup() bool
- func (d *Distro) IsWindows() bool
- func (d *Distro) JasperCommunication() bool
- func (d *Distro) LegacyBootstrap() bool
- func (d *Distro) LegacyCommunication() bool
- func (d *Distro) MaxDurationPerHost() time.Duration
- func (d *Distro) Platform() (string, string)
- func (d *Distro) ReplaceOne(ctx context.Context) error
- func (d *Distro) S3ClientURL(env evergreen.Environment) string
- func (d *Distro) SetBSON(raw mgobson.Raw) error
- func (d *Distro) SetUserdata(userdata, region string) error
- func (d *Distro) ShellBinary() string
- func (d *Distro) ValidateBootstrapSettings() error
- type DistroData
- type DistroGroup
- type EnvVar
- type Expansion
- type FinderSettings
- type HomeVolumeSettings
- type HostAllocatorSettings
- type IceCreamSettings
- type PlannerSettings
- func (s *PlannerSettings) GetCommitQueueFactor() int64
- func (s *PlannerSettings) GetExpectedRuntimeFactor() int64
- func (s *PlannerSettings) GetGenerateTaskFactor() int64
- func (s *PlannerSettings) GetMainlineTimeInQueueFactor() int64
- func (s *PlannerSettings) GetNumDependentsFactor() float64
- func (s *PlannerSettings) GetPatchFactor() int64
- func (s *PlannerSettings) GetPatchTimeInQueueFactor() int64
- func (s *PlannerSettings) GetStepbackTaskFactor() int64
- func (s *PlannerSettings) ShouldGroupVersions() bool
- type PreconditionScript
- type ResourceLimits
Constants ¶
const ( DockerImageBuildTypeImport = "import" DockerImageBuildTypePull = "pull" // Bootstrapping mechanisms // BootstrapMethodNone is for internal use only. BootstrapMethodNone = "none" BootstrapMethodLegacySSH = "legacy-ssh" BootstrapMethodSSH = "ssh" BootstrapMethodUserData = "user-data" // Means of communicating with hosts CommunicationMethodLegacySSH = "legacy-ssh" CommunicationMethodSSH = "ssh" CommunicationMethodRPC = "rpc" )
const Collection = "distro"
Variables ¶
var ( // bson fields for the Distro struct IdKey = bsonutil.MustHaveTag(Distro{}, "Id") AliasesKey = bsonutil.MustHaveTag(Distro{}, "Aliases") NoteKey = bsonutil.MustHaveTag(Distro{}, "Note") ArchKey = bsonutil.MustHaveTag(Distro{}, "Arch") ProviderKey = bsonutil.MustHaveTag(Distro{}, "Provider") ProviderSettingsListKey = bsonutil.MustHaveTag(Distro{}, "ProviderSettingsList") SetupAsSudoKey = bsonutil.MustHaveTag(Distro{}, "SetupAsSudo") SetupKey = bsonutil.MustHaveTag(Distro{}, "Setup") AuthorizedKeysFileKey = bsonutil.MustHaveTag(Distro{}, "AuthorizedKeysFile") UserKey = bsonutil.MustHaveTag(Distro{}, "User") SSHOptionsKey = bsonutil.MustHaveTag(Distro{}, "SSHOptions") BootstrapSettingsKey = bsonutil.MustHaveTag(Distro{}, "BootstrapSettings") DispatcherSettingsKey = bsonutil.MustHaveTag(Distro{}, "DispatcherSettings") WorkDirKey = bsonutil.MustHaveTag(Distro{}, "WorkDir") SpawnAllowedKey = bsonutil.MustHaveTag(Distro{}, "SpawnAllowed") ExpansionsKey = bsonutil.MustHaveTag(Distro{}, "Expansions") DisabledKey = bsonutil.MustHaveTag(Distro{}, "Disabled") ContainerPoolKey = bsonutil.MustHaveTag(Distro{}, "ContainerPool") PlannerSettingsKey = bsonutil.MustHaveTag(Distro{}, "PlannerSettings") FinderSettingsKey = bsonutil.MustHaveTag(Distro{}, "FinderSettings") HomeVolumeSettingsKey = bsonutil.MustHaveTag(Distro{}, "HomeVolumeSettings") HostAllocatorSettingsKey = bsonutil.MustHaveTag(Distro{}, "HostAllocatorSettings") DisableShallowCloneKey = bsonutil.MustHaveTag(Distro{}, "DisableShallowClone") ValidProjectsKey = bsonutil.MustHaveTag(Distro{}, "ValidProjects") IsVirtualWorkstationKey = bsonutil.MustHaveTag(Distro{}, "IsVirtualWorkstation") IsClusterKey = bsonutil.MustHaveTag(Distro{}, "IsCluster") IceCreamSettingsKey = bsonutil.MustHaveTag(Distro{}, "IceCreamSettings") // ImageID is not equivalent to AMI. It is the identifier of the base image for the distro. ImageIDKey = bsonutil.MustHaveTag(Distro{}, "ImageID") )
var ( // bson fields for the BootstrapSettings struct BootstrapSettingsMethodKey = bsonutil.MustHaveTag(BootstrapSettings{}, "Method") BootstrapSettingsCommunicationKey = bsonutil.MustHaveTag(BootstrapSettings{}, "Communication") BootstrapSettingsClientDirKey = bsonutil.MustHaveTag(BootstrapSettings{}, "ClientDir") BootstrapSettingsJasperBinaryDirKey = bsonutil.MustHaveTag(BootstrapSettings{}, "JasperBinaryDir") BootstrapSettingsJasperCredentialsPathKey = bsonutil.MustHaveTag(BootstrapSettings{}, "JasperCredentialsPath") BootstrapSettingsServiceUserKey = bsonutil.MustHaveTag(BootstrapSettings{}, "ServiceUser") BootstrapSettingsShellPathKey = bsonutil.MustHaveTag(BootstrapSettings{}, "ShellPath") BootstrapSettingsRootDirKey = bsonutil.MustHaveTag(BootstrapSettings{}, "RootDir") BootstrapSettingsEnvKey = bsonutil.MustHaveTag(BootstrapSettings{}, "Env") BootstrapSettingsResourceLimitsKey = bsonutil.MustHaveTag(BootstrapSettings{}, "ResourceLimits") ResourceLimitsNumFilesKey = bsonutil.MustHaveTag(ResourceLimits{}, "NumFiles") ResourceLimitsNumProcessesKey = bsonutil.MustHaveTag(ResourceLimits{}, "NumProcesses") ResourceLimitsNumTasksKey = bsonutil.MustHaveTag(ResourceLimits{}, "NumTasks") ResourceLimitsVirtualMemoryKBKey = bsonutil.MustHaveTag(ResourceLimits{}, "VirtualMemoryKB") ResourceLimitsLockedMemoryKBKey = bsonutil.MustHaveTag(ResourceLimits{}, "LockedMemoryKB") )
var ( IceCreamSettingsSchedulerHostKey = bsonutil.MustHaveTag(IceCreamSettings{}, "SchedulerHost") IceCreamSettingsConfigPathKey = bsonutil.MustHaveTag(IceCreamSettings{}, "ConfigPath") )
var ( // bson fields for the HostAllocatorSettings struct // HostAllocatorSettingsVersionKey = bsonutil.MustHaveTag(HostAllocatorSettings{}, "Version") // HostAllocatorSettingsMinimumHostsKey = bsonutil.MustHaveTag(HostAllocatorSettings{}, "MinimumHosts") HostAllocatorSettingsMaximumHostsKey = bsonutil.MustHaveTag(HostAllocatorSettings{}, "MaximumHosts") )
Functions ¶
func ByIds ¶
ByIds creates a query that finds all distros for the given ids and implicitly returns them ordered by {"_id": 1}
func ByNeedsHostsPlanning ¶
func ByNeedsHostsPlanning(containerPools []evergreen.ContainerPool) bson.M
ByNeedsHostsPlanning returns a query that selects distros that don't run containers
func ByNeedsPlanning ¶
func ByNeedsPlanning(containerPools []evergreen.ContainerPool) bson.M
ByNeedsPlanning returns a query that selects only active or static distros that don't run containers
func BySpawnAllowed ¶
BySpawnAllowed returns a query that contains the SpawnAllowed selector.
func FindApplicableDistroIDs ¶
func GetImageIDFromDistro ¶
GetImageIDFromDistro returns the imageID corresponding to the given distro.
func ValidateArch ¶
ValidateArch checks that the architecture is one of the supported architectures.
Types ¶
type AliasLookupTable ¶
func NewDistroAliasesLookupTable ¶
func NewDistroAliasesLookupTable(ctx context.Context) (AliasLookupTable, error)
func (AliasLookupTable) Expand ¶
func (da AliasLookupTable) Expand(in []string) []string
type BootstrapSettings ¶
type BootstrapSettings struct { // Required Method string `bson:"method" json:"method" mapstructure:"method"` Communication string `bson:"communication,omitempty" json:"communication,omitempty" mapstructure:"communication,omitempty"` // Optional Env []EnvVar `bson:"env,omitempty" json:"env,omitempty" mapstructure:"env,omitempty"` ResourceLimits ResourceLimits `bson:"resource_limits,omitempty" json:"resource_limits,omitempty" mapstructure:"resource_limits,omitempty"` PreconditionScripts []PreconditionScript `bson:"precondition_scripts,omitempty" json:"precondition_scripts,omitempty" mapstructure:"precondition_scripts,omitempty"` // Required for new provisioning ClientDir string `bson:"client_dir,omitempty" json:"client_dir,omitempty" mapstructure:"client_dir,omitempty"` JasperBinaryDir string `bson:"jasper_binary_dir,omitempty" json:"jasper_binary_dir,omitempty" mapstructure:"jasper_binary_dir,omitempty"` JasperCredentialsPath string `` /* 130-byte string literal not displayed */ // Windows-specific ServiceUser string `bson:"service_user,omitempty" json:"service_user,omitempty" mapstructure:"service_user,omitempty"` ShellPath string `bson:"shell_path,omitempty" json:"shell_path,omitempty" mapstructure:"shell_path,omitempty"` RootDir string `bson:"root_dir,omitempty" json:"root_dir,omitempty" mapstructure:"root_dir,omitempty"` }
BootstrapSettings encapsulates all settings related to bootstrapping hosts.
type DispatcherSettings ¶
type DispatcherSettings struct {
Version string `bson:"version" json:"version" mapstructure:"version"`
}
type Distro ¶
type Distro struct { Id string `bson:"_id" json:"_id,omitempty" mapstructure:"_id,omitempty"` AdminOnly bool `bson:"admin_only,omitempty" json:"admin_only,omitempty" mapstructure:"admin_only,omitempty"` Aliases []string `bson:"aliases,omitempty" json:"aliases,omitempty" mapstructure:"aliases,omitempty"` Arch string `bson:"arch" json:"arch,omitempty" mapstructure:"arch,omitempty"` WorkDir string `bson:"work_dir" json:"work_dir,omitempty" mapstructure:"work_dir,omitempty"` Provider string `bson:"provider" json:"provider,omitempty" mapstructure:"provider,omitempty"` ProviderSettingsList []*birch.Document `bson:"provider_settings,omitempty" json:"provider_settings,omitempty" mapstructure:"provider_settings,omitempty"` SetupAsSudo bool `bson:"setup_as_sudo,omitempty" json:"setup_as_sudo,omitempty" mapstructure:"setup_as_sudo,omitempty"` Setup string `bson:"setup,omitempty" json:"setup,omitempty" mapstructure:"setup,omitempty"` User string `bson:"user,omitempty" json:"user,omitempty" mapstructure:"user,omitempty"` BootstrapSettings BootstrapSettings `bson:"bootstrap_settings" json:"bootstrap_settings" mapstructure:"bootstrap_settings"` SSHOptions []string `bson:"ssh_options,omitempty" json:"ssh_options,omitempty" mapstructure:"ssh_options,omitempty"` AuthorizedKeysFile string `bson:"authorized_keys_file,omitempty" json:"authorized_keys_file,omitempty" mapstructure:"authorized_keys_file,omitempty"` SpawnAllowed bool `bson:"spawn_allowed" json:"spawn_allowed,omitempty" mapstructure:"spawn_allowed,omitempty"` Expansions []Expansion `bson:"expansions,omitempty" json:"expansions,omitempty" mapstructure:"expansions,omitempty"` Disabled bool `bson:"disabled,omitempty" json:"disabled,omitempty" mapstructure:"disabled,omitempty"` ContainerPool string `bson:"container_pool,omitempty" json:"container_pool,omitempty" mapstructure:"container_pool,omitempty"` FinderSettings FinderSettings `bson:"finder_settings" json:"finder_settings" mapstructure:"finder_settings"` PlannerSettings PlannerSettings `bson:"planner_settings" json:"planner_settings" mapstructure:"planner_settings"` DispatcherSettings DispatcherSettings `bson:"dispatcher_settings" json:"dispatcher_settings" mapstructure:"dispatcher_settings"` HostAllocatorSettings HostAllocatorSettings `bson:"host_allocator_settings" json:"host_allocator_settings" mapstructure:"host_allocator_settings"` DisableShallowClone bool `bson:"disable_shallow_clone" json:"disable_shallow_clone" mapstructure:"disable_shallow_clone"` Note string `bson:"note" json:"note" mapstructure:"note"` WarningNote string `bson:"warning_note,omitempty" json:"warning_note,omitempty" mapstructure:"warning_note,omitempty"` ValidProjects []string `bson:"valid_projects,omitempty" json:"valid_projects,omitempty" mapstructure:"valid_projects,omitempty"` IsVirtualWorkstation bool `bson:"is_virtual_workstation" json:"is_virtual_workstation" mapstructure:"is_virtual_workstation"` IsCluster bool `bson:"is_cluster" json:"is_cluster" mapstructure:"is_cluster"` HomeVolumeSettings HomeVolumeSettings `bson:"home_volume_settings" json:"home_volume_settings" mapstructure:"home_volume_settings"` IceCreamSettings IceCreamSettings `bson:"icecream_settings,omitempty" json:"icecream_settings,omitempty" mapstructure:"icecream_settings,omitempty"` Mountpoints []string `bson:"mountpoints,omitempty" json:"mountpoints,omitempty" mapstructure:"mountpoints,omitempty"` // ImageID is not equivalent to AMI. It is the identifier of the base image for the distro. ImageID string `bson:"image_id,omitempty" json:"image_id,omitempty" mapstructure:"image_id,omitempty"` // ExecUser is the user to run shell.exec and subprocess.exec processes as. If unset, processes are run as the regular distro User. ExecUser string `bson:"exec_user,omitempty" json:"exec_user,omitempty" mapstructure:"exec_user,omitempty"` }
func GetDistrosForImage ¶
GetDistrosForImage returns the distros for a given image.
func GetHostCreateDistro ¶
GetHostCreateDistro returns the distro based on the name and provider. If the provider is Docker, passing in the distro is required, and the distro must be a Docker distro. If the provider is EC2, the distro name is optional.
func (*Distro) AbsPathCygwinCompatible ¶
AbsPathCygwinCompatible creates an absolute path from the given path that is compatible with the host's provisioning settings.
For example, in the context of an SSH session with Cygwin, if you invoke the "/usr/bin/echo" binary, Cygwin uses the binary located relative to Cygwin's filesystem root directory, so it will use the binary at "$ROOT_DIR/usr/bin/echo". Similarly, Cygwin binaries like "ls" will resolve filepaths as paths relative to the Cygwin root directory, so "ls /usr/bin", will correctly list the directory contents of "$ROOT_DIR/usr/bin".
However, in almost all other cases, Windows binaries expect native Windows paths for everything. For example, if the evergreen binary accepts a filepath given in the command line flags, the Golang standard library uses native paths. Therefore, giving a path like "/home/Administrator/my_file" will fail, because the library has no awareness of the Cygwin filesystem context. The correct path would be to give an absolute native path, "$ROOT_DIR/home/Administrator/evergreen".
Documentation for Cygwin paths: https://www.cygwin.com/cygwin-ug-net/using-effectively.html
func (*Distro) AbsPathNotCygwinCompatible ¶
AbsPathNotCygwinCompatible creates a Cygwin-incompatible absolute path using RootDir to get around the fact that Cygwin binaries use POSIX paths relative to the Cygwin filesystem root directory, but most other paths require absolute filepaths using native Windows absolute paths. See (*Distro).AbsPathCygwinCompatible for more details.
func (*Distro) BinaryName ¶
func (*Distro) DistroData ¶
func (d *Distro) DistroData() DistroData
DistroData creates distro data from this distro. The provider settings are converted into maps instead of Birch BSON documents.
func (*Distro) ExecutableSubPath ¶
ExecutableSubPath returns the directory containing the compiled agents.
func (*Distro) GenerateName ¶
GenerateName generates a unique instance name for a host in a distro.
func (*Distro) GetAuthorizedKeysFile ¶
GetAuthorizedKeysFile returns the path to the SSH authorized keys file for the distro. If not explicitly set for the distro, it returns the default location of the SSH authorized keys file in the home directory.
func (*Distro) GetDefaultAMI ¶
func (*Distro) GetImageID ¶
GetImageID returns the distro provider's image.
func (*Distro) GetPoolSize ¶
func (*Distro) GetProviderSettingByRegion ¶
func (*Distro) GetRegionsList ¶
func (*Distro) GetResolvedHostAllocatorSettings ¶
func (d *Distro) GetResolvedHostAllocatorSettings(s *evergreen.Settings) (HostAllocatorSettings, error)
GetResolvedHostAllocatorSettings combines the distro's HostAllocatorSettings fields with the SchedulerConfig defaults to resolve and validate a canonical set of HostAllocatorSettings' field values.
func (*Distro) GetResolvedPlannerSettings ¶
func (d *Distro) GetResolvedPlannerSettings(s *evergreen.Settings) (PlannerSettings, error)
GetResolvedPlannerSettings combines the distro's PlannerSettings fields with the SchedulerConfig defaults to resolve and validate a canonical set of PlannerSettings' field values.
func (*Distro) GetTargetTime ¶
func (*Distro) HomeDir ¶
HomeDir gets the absolute path to the home directory for this distro's user. This is compatible with Cygwin (see (*Distro).AbsPathCygwinCompatible for details).
func (*Distro) IsEphemeral ¶
func (*Distro) IsParent ¶
IsParent returns whether the distro is the parent distro for any container pool
func (*Distro) IsPowerShellSetup ¶
IsPowerShellSetup returns whether or not the setup script is a powershell script based on the header shebang line.
func (*Distro) JasperCommunication ¶
JasperCommunication returns whether or not the app server is communicating with hosts of this distro's Jasper service.
func (*Distro) LegacyBootstrap ¶
LegacyBootstrap returns whether hosts of this distro are bootstrapped using the legacy method.
func (*Distro) LegacyCommunication ¶
LegacyCommunication returns whether the app server is communicating with hosts of this distro using the legacy method.
func (*Distro) MaxDurationPerHost ¶
func (*Distro) ReplaceOne ¶
ReplaceOne replaces one distro.
func (*Distro) S3ClientURL ¶
func (d *Distro) S3ClientURL(env evergreen.Environment) string
S3ClientURL returns the URL in S3 where the Evergreen client version can be retrieved for this server's particular Evergreen build version.
func (*Distro) SetUserdata ¶
func (*Distro) ShellBinary ¶
ShellPath returns the native path to the shell binary.
func (*Distro) ValidateBootstrapSettings ¶
ValidateBootstrapSettings checks if all of the bootstrap settings are valid for legacy or non-legacy bootstrapping.
type DistroData ¶
type DistroData struct { Distro Distro `bson:",inline"` ProviderSettingsMap []map[string]interface{} `bson:"provider_settings_list" json:"provider_settings_list"` }
DistroData is the same as a distro, with the only difference being that all the provider settings are stored as maps instead of Birch BSON documents.
type DistroGroup ¶
type DistroGroup []Distro
func (DistroGroup) GetDistroIds ¶
func (distros DistroGroup) GetDistroIds() []string
GetDistroIds returns a slice of distro IDs for the given group of distros
type FinderSettings ¶
type FinderSettings struct {
Version string `bson:"version" json:"version" mapstructure:"version"`
}
type HomeVolumeSettings ¶
type HomeVolumeSettings struct {
FormatCommand string `bson:"format_command" json:"format_command" mapstructure:"format_command"`
}
type HostAllocatorSettings ¶
type HostAllocatorSettings struct { Version string `bson:"version" json:"version" mapstructure:"version"` MinimumHosts int `bson:"minimum_hosts" json:"minimum_hosts" mapstructure:"minimum_hosts"` MaximumHosts int `bson:"maximum_hosts" json:"maximum_hosts" mapstructure:"maximum_hosts"` RoundingRule string `bson:"rounding_rule" json:"rounding_rule" mapstructure:"rounding_rule"` FeedbackRule string `bson:"feedback_rule" json:"feedback_rule" mapstructure:"feedback_rule"` HostsOverallocatedRule string `bson:"hosts_overallocated_rule" json:"hosts_overallocated_rule" mapstructure:"hosts_overallocated_rule"` // AcceptableHostIdleTime is the amount of time we wait for an idle host to be marked as idle. AcceptableHostIdleTime time.Duration `bson:"acceptable_host_idle_time" json:"acceptable_host_idle_time" mapstructure:"acceptable_host_idle_time"` FutureHostFraction float64 `bson:"future_host_fraction" json:"future_host_fraction" mapstructure:"future_host_fraction"` }
type IceCreamSettings ¶
type IceCreamSettings struct { SchedulerHost string `bson:"scheduler_host,omitempty" json:"scheduler_host,omitempty" mapstructure:"scheduler_host,omitempty"` ConfigPath string `bson:"config_path,omitempty" json:"config_path,omitempty" mapstructure:"config_path,omitempty"` }
func (IceCreamSettings) GetUpdateConfigScript ¶
func (s IceCreamSettings) GetUpdateConfigScript() string
WriteConfigScript returns the shell script to update the icecream config file.
func (IceCreamSettings) Populated ¶
func (s IceCreamSettings) Populated() bool
type PlannerSettings ¶
type PlannerSettings struct { Version string `bson:"version" json:"version" mapstructure:"version"` TargetTime time.Duration `bson:"target_time" json:"target_time" mapstructure:"target_time,omitempty"` GroupVersions *bool `bson:"group_versions" json:"group_versions" mapstructure:"group_versions,omitempty"` PatchFactor int64 `bson:"patch_zipper_factor" json:"patch_factor" mapstructure:"patch_factor"` PatchTimeInQueueFactor int64 `bson:"patch_time_in_queue_factor" json:"patch_time_in_queue_factor" mapstructure:"patch_time_in_queue_factor"` CommitQueueFactor int64 `bson:"commit_queue_factor" json:"commit_queue_factor" mapstructure:"commit_queue_factor"` MainlineTimeInQueueFactor int64 `bson:"mainline_time_in_queue_factor" json:"mainline_time_in_queue_factor" mapstructure:"mainline_time_in_queue_factor"` ExpectedRuntimeFactor int64 `bson:"expected_runtime_factor" json:"expected_runtime_factor" mapstructure:"expected_runtime_factor"` GenerateTaskFactor int64 `bson:"generate_task_factor" json:"generate_task_factor" mapstructure:"generate_task_factor"` NumDependentsFactor float64 `bson:"num_dependents_factor" json:"num_dependents_factor" mapstructure:"num_dependents_factor"` StepbackTaskFactor int64 `bson:"stepback_task_factor" json:"stepback_task_factor" mapstructure:"stepback_task_factor"` // contains filtered or unexported fields }
func (*PlannerSettings) GetCommitQueueFactor ¶
func (s *PlannerSettings) GetCommitQueueFactor() int64
func (*PlannerSettings) GetExpectedRuntimeFactor ¶
func (s *PlannerSettings) GetExpectedRuntimeFactor() int64
func (*PlannerSettings) GetGenerateTaskFactor ¶
func (s *PlannerSettings) GetGenerateTaskFactor() int64
func (*PlannerSettings) GetMainlineTimeInQueueFactor ¶
func (s *PlannerSettings) GetMainlineTimeInQueueFactor() int64
func (*PlannerSettings) GetNumDependentsFactor ¶
func (s *PlannerSettings) GetNumDependentsFactor() float64
func (*PlannerSettings) GetPatchFactor ¶
func (s *PlannerSettings) GetPatchFactor() int64
func (*PlannerSettings) GetPatchTimeInQueueFactor ¶
func (s *PlannerSettings) GetPatchTimeInQueueFactor() int64
func (*PlannerSettings) GetStepbackTaskFactor ¶
func (s *PlannerSettings) GetStepbackTaskFactor() int64
func (*PlannerSettings) ShouldGroupVersions ¶
func (s *PlannerSettings) ShouldGroupVersions() bool
type PreconditionScript ¶
type PreconditionScript struct { Path string `bson:"path,omitempty" json:"path,omitempty" mapstructure:"path,omitempty"` Script string `bson:"script,omitempty" json:"script,omitempty" mapstructure:"script,omitempty"` }
PreconditionScript represents a script that must run and succeed before the Jasper service can start on a provisioning host.
type ResourceLimits ¶
type ResourceLimits struct { NumFiles int `bson:"num_files,omitempty" json:"num_files,omitempty" mapstructure:"num_files,omitempty"` NumProcesses int `bson:"num_processes,omitempty" json:"num_processes,omitempty" mapstructure:"num_processes,omitempty"` NumTasks int `bson:"num_tasks,omitempty" json:"num_tasks,omitempty" mapstructure:"num_tasks,omitempty"` LockedMemoryKB int `bson:"locked_memory,omitempty" json:"locked_memory,omitempty" mapstructure:"locked_memory,omitempty"` VirtualMemoryKB int `bson:"virtual_memory,omitempty" json:"virtual_memory,omitempty" mapstructure:"virtual_memory,omitempty"` }
ResourceLimits represents resource limits in Linux.