Need WaitingForJob special state for SnapshotKind
This commit is contained in:
parent
61f45a7940
commit
8975f77e58
@ -24,15 +24,16 @@ import (
|
|||||||
type SessionState string
|
type SessionState string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
New SessionState = "New"
|
New SessionState = "New"
|
||||||
Initializing SessionState = "Initializing"
|
Initializing SessionState = "Initializing"
|
||||||
Initialized SessionState = "Initialized"
|
Initialized SessionState = "Initialized"
|
||||||
Running SessionState = "Running"
|
Running SessionState = "Running"
|
||||||
Waiting SessionState = "Waiting"
|
Waiting SessionState = "Waiting"
|
||||||
Finalize SessionState = "Finalize"
|
WaitingForJob SessionState = "WaitingForJob"
|
||||||
Success SessionState = "Success"
|
Finalize SessionState = "Finalize"
|
||||||
Failure SessionState = "Failure"
|
Success SessionState = "Success"
|
||||||
Deleted SessionState = "Deleted"
|
Failure SessionState = "Failure"
|
||||||
|
//Deleted SessionState = "Deleted"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TargetStatus struct {
|
type TargetStatus struct {
|
||||||
|
|||||||
@ -54,7 +54,7 @@ func (s Session) checkSessionState(
|
|||||||
backupConf formolv1alpha1.BackupConfiguration,
|
backupConf formolv1alpha1.BackupConfiguration,
|
||||||
currentState formolv1alpha1.SessionState,
|
currentState formolv1alpha1.SessionState,
|
||||||
waitState formolv1alpha1.SessionState,
|
waitState formolv1alpha1.SessionState,
|
||||||
nextState formolv1alpha1.SessionState) formolv1alpha1.SessionState {
|
nextState formolv1alpha1.SessionState) (sessionState formolv1alpha1.SessionState) {
|
||||||
for i, targetStatus := range tss {
|
for i, targetStatus := range tss {
|
||||||
s.Log.V(0).Info("Target status", "target", targetStatus.TargetName, "session state", targetStatus.SessionState)
|
s.Log.V(0).Info("Target status", "target", targetStatus.TargetName, "session state", targetStatus.SessionState)
|
||||||
switch targetStatus.SessionState {
|
switch targetStatus.SessionState {
|
||||||
@ -77,6 +77,14 @@ func (s Session) checkSessionState(
|
|||||||
// target is still busy with its current state. Wait until it is done.
|
// target is still busy with its current state. Wait until it is done.
|
||||||
s.Log.V(0).Info("Waiting for one target to finish", "waitState", waitState)
|
s.Log.V(0).Info("Waiting for one target to finish", "waitState", waitState)
|
||||||
return ""
|
return ""
|
||||||
|
case formolv1alpha1.WaitingForJob:
|
||||||
|
// SnapshotKind special case
|
||||||
|
// A Job is scheduled to do the backup from a Volume Snapshot. It might take some time.
|
||||||
|
// We still want to run Finalize for all the targets (continue)
|
||||||
|
// but we also don't want to move the global BackupSession to Success (rewrite sessionState)
|
||||||
|
// When the Job is over, it will move the target state to Finalized and we'll be fine
|
||||||
|
defer func() { sessionState = "" }()
|
||||||
|
continue
|
||||||
default:
|
default:
|
||||||
if i == len(tss)-1 {
|
if i == len(tss)-1 {
|
||||||
s.Log.V(0).Info("Moving to next state", "nextState", nextState)
|
s.Log.V(0).Info("Moving to next state", "nextState", nextState)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user