MCPcopy Create free account
hub / github.com/OctopusDeploy/cli / askCommonAdvancedOptions

Function askCommonAdvancedOptions

pkg/cmd/runbook/run/run.go:600–665  ·  view source on GitHub ↗

askCommonAdvancedOptions prompts for advanced options that are common across all runbook run scenarios. This includes schedule time, guided failure mode, and package download options. It does NOT handle excluded steps or run targets as those are runbook-specific.

(
	asker question.Asker,
	now func() time.Time,
	scheduledStartTime *string,
	scheduledExpiryTime *string,
	guidedFailureMode *string,
	forcePackageDownload *bool,
	isScheduledStartTimeSpecified bool,
	isGuidedFailureModeSpecified bool,
	isForcePackageDownloadSpecified bool,
)

Source from the content-addressed store, hash-verified

598// This includes schedule time, guided failure mode, and package download options.
599// It does NOT handle excluded steps or run targets as those are runbook-specific.
600func askCommonAdvancedOptions(
601 asker question.Asker,
602 now func() time.Time,
603 scheduledStartTime *string,
604 scheduledExpiryTime *string,
605 guidedFailureMode *string,
606 forcePackageDownload *bool,
607 isScheduledStartTimeSpecified bool,
608 isGuidedFailureModeSpecified bool,
609 isForcePackageDownloadSpecified bool,
610) error {
611 if !isScheduledStartTimeSpecified {
612 referenceNow := now()
613 maxSchedStartTime := referenceNow.Add(30 * 24 * time.Hour)
614
615 var answer surveyext.DatePickerAnswer
616 err := asker(&surveyext.DatePicker{
617 Message: "Scheduled start time",
618 Help: "Enter the date and time that this runbook should run. A value less than 1 minute in the future means 'now'",
619 Default: referenceNow,
620 Min: referenceNow,
621 Max: maxSchedStartTime,
622 OverrideNow: referenceNow,
623 AnswerFormatter: executionscommon.ScheduledStartTimeAnswerFormatter,
624 }, &answer)
625 if err != nil {
626 return err
627 }
628 schedTime := answer.Time
629 if schedTime.After(referenceNow.Add(1 * time.Minute)) {
630 *scheduledStartTime = schedTime.Format(time.RFC3339)
631
632 startPlusFiveMin := schedTime.Add(5 * time.Minute)
633 err = asker(&surveyext.DatePicker{
634 Message: "Scheduled expiry time",
635 Help: "At the start time, the run will be queued. If it does not begin before 'expiry' time, it will be cancelled. Minimum of 5 minutes after start time",
636 Default: startPlusFiveMin,
637 Min: startPlusFiveMin,
638 Max: maxSchedStartTime.Add(24 * time.Hour),
639 OverrideNow: referenceNow,
640 }, &answer)
641 if err != nil {
642 return err
643 }
644 *scheduledExpiryTime = answer.Time.Format(time.RFC3339)
645 }
646 }
647
648 if !isGuidedFailureModeSpecified {
649 gfm, err := executionscommon.AskGuidedFailureMode(asker)
650 if err != nil {
651 return err
652 }
653 *guidedFailureMode = gfm
654 }
655
656 if !isForcePackageDownloadSpecified {
657 fpd, err := executionscommon.AskPackageDownload(asker)

Callers 3

AskDbRunbookRunQuestionsFunction · 0.85
runRunbooksByTagFunction · 0.85

Calls 2

AskGuidedFailureModeFunction · 0.92
AskPackageDownloadFunction · 0.92

Tested by

no test coverage detected