in cli_tools/gce_image_publish/publish/publish.go [428:476]
func populateSteps(w *daisy.Workflow, prefix string, createImages *daisy.CreateImages, deprecateImages *daisy.DeprecateImages, deleteResources *daisy.DeleteResources) error {
var createStep *daisy.Step
var deprecateStep *daisy.Step
var deleteStep *daisy.Step
var err error
if createImages != nil {
createStep, err = w.NewStep("publish-" + prefix)
if err != nil {
return err
}
createStep.CreateImages = createImages
// The default of 10m is a bit low, 1h is excessive for most use cases.
// TODO(ajackura): Maybe add a timeout field override to the template?
createStep.Timeout = "1h"
}
if deprecateImages != nil {
deprecateStep, err = w.NewStep("deprecate-" + prefix)
if err != nil {
return err
}
deprecateStep.DeprecateImages = deprecateImages
}
if deleteResources != nil {
deleteStep, err = w.NewStep("delete-" + prefix)
if err != nil {
return err
}
deleteStep.DeleteResources = deleteResources
}
// Create before deprecate on
if deprecateStep != nil && createStep != nil {
w.AddDependency(deprecateStep, createStep)
}
// Create before delete on
if deleteStep != nil && createStep != nil {
w.AddDependency(deleteStep, createStep)
}
// Un-deprecate before delete on rollback.
if deleteStep != nil && deprecateStep != nil {
w.AddDependency(deleteStep, deprecateStep)
}
return nil
}