Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // CredentialsNotResolvedErr is the error where a container needs to wait for // credentials before it can process by agent CredentialsNotResolvedErr = errors.New("dependency graph: container execution credentials not available") // DependentContainerNotResolvedErr is the error where a dependent container isn't in expected state DependentContainerNotResolvedErr = errors.New("dependency graph: dependent container not in expected state") // ContainerPastDesiredStatusErr is the error where the container status is bigger than desired status ContainerPastDesiredStatusErr = errors.New("container transition: container status is equal or greater than desired status") // ErrContainerDependencyNotResolved is when the container's dependencies // on other containers are not resolved ErrContainerDependencyNotResolved = errors.New("dependency graph: dependency on containers not resolved") // ErrResourceDependencyNotResolved is when the container's dependencies // on task resources are not resolved ErrResourceDependencyNotResolved = errors.New("dependency graph: dependency on resources not resolved") )
Functions ¶
func DependenciesAreResolved ¶
func DependenciesAreResolved(target *apicontainer.Container, by []*apicontainer.Container, id string, manager credentials.Manager, resources []taskresource.TaskResource) (*apicontainer.DependsOn, error)
DependenciesAreResolved validates that the `target` container can be transitioned given the current known state of the containers in `by`. If this function returns true, `target` should be technically able to launch without issues. Transitions are between known statuses (whether the container can move to the next known status), not desired statuses; the desired status typically is either RUNNING or STOPPED.
func ValidDependencies ¶
ValidDependencies takes a task and verifies that it is possible to allow all containers within it to reach the desired status by proceeding in some order.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.