Skip to content

Commit fb78ece

Browse files
committed
support finish_planning event in release plan hook and callback
Signed-off-by: Patrick Zhao <[email protected]>
1 parent 98886db commit fb78ece

File tree

4 files changed

+133
-77
lines changed

4 files changed

+133
-77
lines changed

pkg/microservice/aslan/config/consts.go

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -633,38 +633,45 @@ const (
633633
type ReleasePlanStatus string
634634

635635
const (
636-
ReleasePlanStatusPlanning ReleasePlanStatus = "planning"
637-
ReleasePlanStatusWaitForApprove ReleasePlanStatus = "wait_for_approval"
638-
ReleasePlanStatusExecuting ReleasePlanStatus = "executing"
639-
ReleasePlanStatusApprovalDenied ReleasePlanStatus = "denied"
640-
ReleasePlanStatusWaitForApproveExternalCheck ReleasePlanStatus = "wait_for_approval_external_check"
641-
ReleasePlanStatusWaitForExecuteExternalCheck ReleasePlanStatus = "wait_for_execute_external_check"
642-
ReleasePlanStatusWaitForAllDoneExternalCheck ReleasePlanStatus = "wait_for_all_done_external_check"
643-
ReleasePlanStatusTimeoutForWindow ReleasePlanStatus = "timeout"
644-
ReleasePlanStatusSuccess ReleasePlanStatus = "success"
645-
ReleasePlanStatusWaitForApproveExternalCheckFailed ReleasePlanStatus = "wait_for_approval_external_check_failed"
636+
ReleasePlanStatusPlanning ReleasePlanStatus = "planning"
637+
ReleasePlanStatusFinishPlanning ReleasePlanStatus = "finish_planning"
638+
ReleasePlanStatusWaitForApprove ReleasePlanStatus = "wait_for_approval"
639+
ReleasePlanStatusExecuting ReleasePlanStatus = "executing"
640+
ReleasePlanStatusApprovalDenied ReleasePlanStatus = "denied"
641+
ReleasePlanStatusWaitForFinishPlanningExternalCheck ReleasePlanStatus = "wait_for_finish_planning_external_check"
642+
// ReleasePlanStatusWaitForApproveExternalCheck ReleasePlanStatus = "wait_for_approval_external_check"
643+
ReleasePlanStatusWaitForExecuteExternalCheck ReleasePlanStatus = "wait_for_execute_external_check"
644+
ReleasePlanStatusWaitForAllDoneExternalCheck ReleasePlanStatus = "wait_for_all_done_external_check"
645+
ReleasePlanStatusTimeoutForWindow ReleasePlanStatus = "timeout"
646+
ReleasePlanStatusSuccess ReleasePlanStatus = "success"
647+
ReleasePlanStatusWaitForFinishPlanningExternalCheckFailed ReleasePlanStatus = "wait_for_finish_planning_external_check_failed"
648+
// ReleasePlanStatusWaitForApproveExternalCheckFailed ReleasePlanStatus = "wait_for_approval_external_check_failed"
646649
ReleasePlanStatusWaitForExecuteExternalCheckFailed ReleasePlanStatus = "wait_for_execute_external_check_failed"
647650
ReleasePlanStatusWaitForAllDoneExternalCheckFailed ReleasePlanStatus = "wait_for_all_done_external_check_failed"
648651
ReleasePlanStatusCancel ReleasePlanStatus = "cancel"
649652
)
650653

651654
// ReleasePlanStatusMap is a map of status and its available next status
652655
var ReleasePlanStatusMap = map[ReleasePlanStatus][]ReleasePlanStatus{
653-
ReleasePlanStatusPlanning: {ReleasePlanStatusWaitForApprove, ReleasePlanStatusExecuting, ReleasePlanStatusWaitForApproveExternalCheck, ReleasePlanStatusWaitForExecuteExternalCheck, ReleasePlanStatusWaitForAllDoneExternalCheck},
654-
ReleasePlanStatusWaitForApprove: {ReleasePlanStatusPlanning, ReleasePlanStatusExecuting, ReleasePlanStatusWaitForAllDoneExternalCheck, ReleasePlanStatusCancel},
655-
ReleasePlanStatusExecuting: {ReleasePlanStatusPlanning, ReleasePlanStatusSuccess, ReleasePlanStatusCancel, ReleasePlanStatusWaitForExecuteExternalCheck},
656-
ReleasePlanStatusTimeoutForWindow: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
657-
ReleasePlanStatusApprovalDenied: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
658-
ReleasePlanStatusWaitForApproveExternalCheck: {ReleasePlanStatusWaitForApprove, ReleasePlanStatusWaitForApproveExternalCheckFailed, ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
659-
ReleasePlanStatusWaitForExecuteExternalCheck: {ReleasePlanStatusExecuting, ReleasePlanStatusWaitForExecuteExternalCheckFailed, ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
660-
ReleasePlanStatusWaitForAllDoneExternalCheck: {ReleasePlanStatusSuccess, ReleasePlanStatusWaitForAllDoneExternalCheckFailed, ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
661-
ReleasePlanStatusWaitForApproveExternalCheckFailed: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
656+
ReleasePlanStatusPlanning: {ReleasePlanStatusFinishPlanning},
657+
ReleasePlanStatusFinishPlanning: {ReleasePlanStatusPlanning, ReleasePlanStatusWaitForApprove, ReleasePlanStatusExecuting, ReleasePlanStatusWaitForFinishPlanningExternalCheck, ReleasePlanStatusWaitForExecuteExternalCheck},
658+
ReleasePlanStatusWaitForApprove: {ReleasePlanStatusPlanning, ReleasePlanStatusExecuting, ReleasePlanStatusWaitForAllDoneExternalCheck, ReleasePlanStatusCancel},
659+
ReleasePlanStatusExecuting: {ReleasePlanStatusPlanning, ReleasePlanStatusSuccess, ReleasePlanStatusCancel, ReleasePlanStatusWaitForExecuteExternalCheck},
660+
ReleasePlanStatusTimeoutForWindow: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
661+
ReleasePlanStatusApprovalDenied: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
662+
ReleasePlanStatusWaitForFinishPlanningExternalCheck: {ReleasePlanStatusFinishPlanning, ReleasePlanStatusWaitForFinishPlanningExternalCheckFailed, ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
663+
// ReleasePlanStatusWaitForApproveExternalCheck: {ReleasePlanStatusWaitForApprove, ReleasePlanStatusWaitForApproveExternalCheckFailed, ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
664+
ReleasePlanStatusWaitForExecuteExternalCheck: {ReleasePlanStatusExecuting, ReleasePlanStatusWaitForExecuteExternalCheckFailed, ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
665+
ReleasePlanStatusWaitForAllDoneExternalCheck: {ReleasePlanStatusSuccess, ReleasePlanStatusWaitForAllDoneExternalCheckFailed, ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
666+
ReleasePlanStatusWaitForFinishPlanningExternalCheckFailed: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
667+
// ReleasePlanStatusWaitForApproveExternalCheckFailed: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
662668
ReleasePlanStatusWaitForExecuteExternalCheckFailed: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
663669
ReleasePlanStatusWaitForAllDoneExternalCheckFailed: {ReleasePlanStatusPlanning, ReleasePlanStatusCancel},
664670
}
665671

666672
var ReleasePlanExternalCheckNextStatusMap = map[ReleasePlanStatus]ReleasePlanStatus{
667-
ReleasePlanStatusWaitForApproveExternalCheck: ReleasePlanStatusWaitForApprove,
673+
ReleasePlanStatusWaitForFinishPlanningExternalCheck: ReleasePlanStatusFinishPlanning,
674+
// ReleasePlanStatusWaitForApproveExternalCheck: ReleasePlanStatusWaitForApprove,
668675
ReleasePlanStatusWaitForExecuteExternalCheck: ReleasePlanStatusExecuting,
669676
ReleasePlanStatusWaitForAllDoneExternalCheck: ReleasePlanStatusSuccess,
670677
}

pkg/microservice/aslan/core/common/repository/models/release_plan.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,17 @@ type ReleasePlan struct {
4646

4747
Status config.ReleasePlanStatus `bson:"status" yaml:"status" json:"status"`
4848

49-
PlanningTime int64 `bson:"planning_time" yaml:"planning_time" json:"planning_time"`
50-
ApprovalTime int64 `bson:"approval_time" yaml:"approval_time" json:"approval_time"`
51-
ExecutingTime int64 `bson:"executing_time" yaml:"executing_time" json:"executing_time"`
52-
SuccessTime int64 `bson:"success_time" yaml:"success_time" json:"success_time"`
49+
PlanningTime int64 `bson:"planning_time" yaml:"planning_time" json:"planning_time"`
50+
FinishPlanningTime int64 `bson:"finish_planning_time" yaml:"finish_planning_time" json:"finish_planning_time"`
51+
ApprovalTime int64 `bson:"approval_time" yaml:"approval_time" json:"approval_time"`
52+
ExecutingTime int64 `bson:"executing_time" yaml:"executing_time" json:"executing_time"`
53+
SuccessTime int64 `bson:"success_time" yaml:"success_time" json:"success_time"`
5354

5455
InstanceCode string `bson:"instance_code" yaml:"instance_code" json:"instance_code"`
5556
HookSettings *HookSettings `bson:"hook_settings" yaml:"hook_settings" json:"hook_settings"`
5657

57-
WaitForApproveExternalCheckTime int64 `bson:"wait_for_approve_external_check_time" yaml:"wait_for_approve_external_check_time" json:"wait_for_approve_external_check_time"`
58+
WaitForFinishPlanningExternalCheckTime int64 `bson:"wait_for_finish_planning_external_check_time" yaml:"wait_for_finish_planning_external_check_time" json:"wait_for_finish_planning_external_check_time"`
59+
// WaitForApproveExternalCheckTime int64 `bson:"wait_for_approve_external_check_time" yaml:"wait_for_approve_external_check_time" json:"wait_for_approve_external_check_time"`
5860
WaitForExecuteExternalCheckTime int64 `bson:"wait_for_execute_external_check_time" yaml:"wait_for_execute_external_check_time" json:"wait_for_execute_external_check_time"`
5961
WaitForAllDoneExternalCheckTime int64 `bson:"wait_for_all_done_external_check_time" yaml:"wait_for_all_done_external_check_time" json:"wait_for_all_done_external_check_time"`
6062
ExternalCheckFailedReason string `bson:"external_check_failed_reason" yaml:"external_check_failed_reason" json:"external_check_failed_reason"`

pkg/microservice/aslan/core/common/repository/models/settings.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ func (r *ReleasePlanHookSettings) ToHookSettings() *HookSettings {
9090
type ReleasePlanHookEvent string
9191

9292
const (
93-
ReleasePlanHookEventSubmitApproval ReleasePlanHookEvent = "submit_approval"
93+
ReleasePlanHookEventFinishPlanning ReleasePlanHookEvent = "finish_planning"
94+
// ReleasePlanHookEventSubmitApproval ReleasePlanHookEvent = "submit_approval"
9495
ReleasePlanHookEventStartExecute ReleasePlanHookEvent = "start_execute"
9596
ReleasePlanHookEventAllJobDone ReleasePlanHookEvent = "all_job_done"
9697
)

0 commit comments

Comments
 (0)