chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
package stackutils
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
portainer "github.com/portainer/portainer/api"
|
||||
)
|
||||
|
||||
// PrepareStackStatusForDeployment transitions a stack into the deploying state before a deployment begins.
|
||||
// It saves the current status in DeploymentStartStatus so that pre-deployment actions can be determined
|
||||
// (e.g. whether to undeploy before redeploying), sets Status to StackStatusDeploying, and resets the
|
||||
// DeploymentStatus history with a single deploying entry.
|
||||
func PrepareStackStatusForDeployment(stack *portainer.Stack) {
|
||||
stack.DeploymentStartStatus = stack.Status
|
||||
stack.Status = portainer.StackStatusDeploying
|
||||
stack.DeploymentStatus = []portainer.StackDeploymentStatus{
|
||||
{Status: portainer.StackStatusDeploying, Time: time.Now().Unix()},
|
||||
}
|
||||
}
|
||||
|
||||
// UpdateStackStatusFromDeploymentResult updates a stack's status after a deployment attempt completes.
|
||||
// On success (err == nil) the stack is marked active; on failure it is marked as errored with the error message recorded.
|
||||
func UpdateStackStatusFromDeploymentResult(stack *portainer.Stack, err error) {
|
||||
if err != nil {
|
||||
stack.Status = portainer.StackStatusError
|
||||
stack.DeploymentStatus = append(stack.DeploymentStatus, portainer.StackDeploymentStatus{
|
||||
Status: portainer.StackStatusError,
|
||||
Time: time.Now().Unix(),
|
||||
Message: err.Error(),
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
stack.Status = portainer.StackStatusActive
|
||||
stack.DeploymentStatus = append(stack.DeploymentStatus, portainer.StackDeploymentStatus{
|
||||
Status: portainer.StackStatusActive,
|
||||
Time: time.Now().Unix(),
|
||||
})
|
||||
}
|
||||
|
||||
// UpdateStackStatusFromUndeploymentResult updates a stack's status after an undeployment attempt completes.
|
||||
// On success (err == nil) the stack is marked inactive; on failure it is marked as errored with the error message recorded.
|
||||
func UpdateStackStatusFromUndeploymentResult(stack *portainer.Stack, err error) {
|
||||
if err != nil {
|
||||
stack.Status = portainer.StackStatusError
|
||||
stack.DeploymentStatus = append(stack.DeploymentStatus, portainer.StackDeploymentStatus{
|
||||
Status: portainer.StackStatusError,
|
||||
Time: time.Now().Unix(),
|
||||
Message: err.Error(),
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
stack.Status = portainer.StackStatusInactive
|
||||
stack.DeploymentStatus = append(stack.DeploymentStatus, portainer.StackDeploymentStatus{
|
||||
Status: portainer.StackStatusInactive,
|
||||
Time: time.Now().Unix(),
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user