Skip to content

Commit 65a443c

Browse files
committed
small fixes
1 parent 0bdb92e commit 65a443c

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,7 @@ public BackupSchedule configureBackupSchedule(CreateBackupScheduleCmd cmd) {
842842
validateQuiesceAndIsolated(offering, quiesceVm, isolated);
843843

844844
validateMaxScheduleForIntervalType(offering, intervalType, vm);
845-
validateDifferentScheduleFromExistingSchedules(vm, intervalType, scheduleString);
845+
validateDifferentScheduleFromExistingSchedules(vm, intervalType, scheduleString, null);
846846

847847
final String timezoneId = timeZone.getID();
848848
if (!timezoneId.equals(cmd.getTimezone())) {
@@ -894,10 +894,12 @@ public BackupSchedule configureBackupSchedule(UpdateBackupScheduleCmd cmd) {
894894
boolean isolated = ObjectUtils.defaultIfNull(cmd.isIsolated(), schedule.isIsolated());
895895
validateQuiesceAndIsolated(offering, quiesceVm, isolated);
896896

897+
String scheduleString = ObjectUtils.defaultIfNull(cmd.getSchedule(), schedule.getSchedule());
898+
validateDifferentScheduleFromExistingSchedules(vm, intervalType, scheduleString, schedule);
899+
897900
String timeZoneString = ObjectUtils.defaultIfNull(cmd.getTimezone(), schedule.getTimezone());
898901
TimeZone timeZone = TimeZone.getTimeZone(timeZoneString);
899902
intervalType = ObjectUtils.defaultIfNull(intervalType, schedule.getScheduleType());
900-
String scheduleString = ObjectUtils.defaultIfNull(cmd.getSchedule(), schedule.getSchedule());
901903

902904
Date nextDateTime;
903905
try {
@@ -2708,8 +2710,11 @@ protected void validateMaxScheduleForIntervalType(BackupOffering offering, DateU
27082710
}
27092711
}
27102712

2711-
private void validateDifferentScheduleFromExistingSchedules(VMInstanceVO vm, DateUtil.IntervalType intervalType, String schedule) {
2713+
private void validateDifferentScheduleFromExistingSchedules(VMInstanceVO vm, DateUtil.IntervalType intervalType, String schedule, BackupScheduleVO scheduleBeingValidated) {
27122714
List<BackupScheduleVO> existingBackupSchedules = backupScheduleDao.listByVMAndIntervalType(vm.getId(), intervalType);
2715+
if (scheduleBeingValidated != null) {
2716+
existingBackupSchedules.removeIf(sched -> sched.getId() == scheduleBeingValidated.getId());
2717+
}
27132718
if (existingBackupSchedules.stream().anyMatch(existingSchedule -> existingSchedule.getSchedule().equals(schedule))) {
27142719
throw new CloudRuntimeException(String.format("VM [%s] already has a [%s] schedule at [%s]. Cannot have multiple schedules of the same type at the same time.",
27152720
vm.getUuid(), intervalType.name(), schedule));

ui/src/views/compute/backup/FormSchedule.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ export default {
288288
initForm () {
289289
this.formRef = ref()
290290
this.form = reactive({
291-
intervaltype: 'hourly',
291+
intervaltype: this.scheduleToEdit?.intervaltype?.toLowerCase() ?? 'hourly',
292292
isolated: false
293293
})
294294
this.rules = reactive({

0 commit comments

Comments
 (0)