#273 Prevent make backup with the same number before pod deletion
This commit is contained in:
parent
ae945fbd63
commit
6b96d2dd94
|
|
@ -158,7 +158,7 @@ func (bar *BackupAndRestore) Restore(jenkinsClient jenkinsclient.Jenkins) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// Backup performs Jenkins backup operation
|
// Backup performs Jenkins backup operation
|
||||||
func (bar *BackupAndRestore) Backup() error {
|
func (bar *BackupAndRestore) Backup(setBackupDoneBeforePodDeletion bool) error {
|
||||||
jenkins := bar.Configuration.Jenkins
|
jenkins := bar.Configuration.Jenkins
|
||||||
if len(jenkins.Spec.Backup.ContainerName) == 0 || jenkins.Spec.Backup.Action.Exec == nil {
|
if len(jenkins.Spec.Backup.ContainerName) == 0 || jenkins.Spec.Backup.Action.Exec == nil {
|
||||||
bar.logger.V(log.VDebug).Info("Skipping restore backup, backup restore not configured")
|
bar.logger.V(log.VDebug).Info("Skipping restore backup, backup restore not configured")
|
||||||
|
|
@ -176,11 +176,13 @@ func (bar *BackupAndRestore) Backup() error {
|
||||||
_, _, err := bar.Exec(podName, jenkins.Spec.Backup.ContainerName, command)
|
_, _, err := bar.Exec(podName, jenkins.Spec.Backup.ContainerName, command)
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
bar.logger.V(log.VDebug).Info(fmt.Sprintf("Backup completed '%d', updating status", backupNumber))
|
||||||
if jenkins.Status.RestoredBackup == 0 {
|
if jenkins.Status.RestoredBackup == 0 {
|
||||||
jenkins.Status.RestoredBackup = backupNumber
|
jenkins.Status.RestoredBackup = backupNumber
|
||||||
}
|
}
|
||||||
jenkins.Status.LastBackup = backupNumber
|
jenkins.Status.LastBackup = backupNumber
|
||||||
jenkins.Status.PendingBackup = backupNumber
|
jenkins.Status.PendingBackup = backupNumber
|
||||||
|
jenkins.Status.BackupDoneBeforePodDeletion = setBackupDoneBeforePodDeletion
|
||||||
return bar.Client.Update(context.TODO(), jenkins)
|
return bar.Client.Update(context.TODO(), jenkins)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -190,17 +190,13 @@ func (r *ReconcileJenkinsBaseConfiguration) ensureJenkinsMasterPod(meta metav1.O
|
||||||
backupAndRestore := backuprestore.New(r.Configuration, r.logger)
|
backupAndRestore := backuprestore.New(r.Configuration, r.logger)
|
||||||
if backupAndRestore.IsBackupTriggerEnabled() {
|
if backupAndRestore.IsBackupTriggerEnabled() {
|
||||||
backupAndRestore.StopBackupTrigger()
|
backupAndRestore.StopBackupTrigger()
|
||||||
|
return reconcile.Result{Requeue: true}, nil
|
||||||
}
|
}
|
||||||
if r.Configuration.Jenkins.Spec.Backup.MakeBackupBeforePodDeletion {
|
if r.Configuration.Jenkins.Spec.Backup.MakeBackupBeforePodDeletion && !r.Configuration.Jenkins.Status.BackupDoneBeforePodDeletion {
|
||||||
if r.Configuration.Jenkins.Status.LastBackup == r.Configuration.Jenkins.Status.PendingBackup && !r.Configuration.Jenkins.Status.BackupDoneBeforePodDeletion {
|
if r.Configuration.Jenkins.Status.LastBackup == r.Configuration.Jenkins.Status.PendingBackup {
|
||||||
r.Configuration.Jenkins.Status.PendingBackup = r.Configuration.Jenkins.Status.PendingBackup + 1
|
r.Configuration.Jenkins.Status.PendingBackup = r.Configuration.Jenkins.Status.PendingBackup + 1
|
||||||
r.Configuration.Jenkins.Status.BackupDoneBeforePodDeletion = true
|
|
||||||
err = r.Client.Update(context.TODO(), r.Configuration.Jenkins)
|
|
||||||
if err != nil {
|
|
||||||
return reconcile.Result{}, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if err = backupAndRestore.Backup(); err != nil {
|
if err = backupAndRestore.Backup(true); err != nil {
|
||||||
return reconcile.Result{}, err
|
return reconcile.Result{}, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ func (r *ReconcileUserConfiguration) Reconcile() (reconcile.Result, error) {
|
||||||
return reconcile.Result{}, err
|
return reconcile.Result{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := backupAndRestore.Backup(); err != nil {
|
if err := backupAndRestore.Backup(false); err != nil {
|
||||||
return reconcile.Result{}, err
|
return reconcile.Result{}, err
|
||||||
}
|
}
|
||||||
if err := backupAndRestore.EnsureBackupTrigger(); err != nil {
|
if err := backupAndRestore.EnsureBackupTrigger(); err != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue