From e53a1ceaf1fbf99ca7b31fe1b9bb90e77d86fb3c Mon Sep 17 00:00:00 2001 From: Felipe Evangelista Date: Mon, 30 Sep 2024 16:37:55 -0300 Subject: [PATCH 1/3] created a new column called previous_id in the table volumes to make it easier to track volumes after their migration --- .../src/main/java/com/cloud/storage/VolumeVO.java | 11 +++++++++++ .../resources/META-INF/db/schema-41900to41910.sql | 2 ++ .../motion/StorageSystemDataMotionStrategy.java | 2 ++ .../cloudstack/storage/volume/VolumeServiceImpl.java | 1 + 4 files changed, 16 insertions(+) diff --git a/engine/schema/src/main/java/com/cloud/storage/VolumeVO.java b/engine/schema/src/main/java/com/cloud/storage/VolumeVO.java index 0bd71ea6d866..e20868da7e29 100644 --- a/engine/schema/src/main/java/com/cloud/storage/VolumeVO.java +++ b/engine/schema/src/main/java/com/cloud/storage/VolumeVO.java @@ -48,6 +48,9 @@ public class VolumeVO implements Volume { @Column(name = "id") long id; + @Column(name = "previous_id") + private long previousId; + @Column(name = "name") String name; @@ -677,4 +680,12 @@ public void setExternalUuid(String externalUuid) { public String getEncryptFormat() { return encryptFormat; } public void setEncryptFormat(String encryptFormat) { this.encryptFormat = encryptFormat; } + + public long getPreviousId() { + return previousId; + } + + public void setPreviousId(long previousId) { + this.previousId = previousId; + } } diff --git a/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql b/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql index 0cb10f4a0ef9..a833822ffc59 100644 --- a/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql +++ b/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql @@ -70,3 +70,5 @@ CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.user_data', 'removed', 'datetime COM UPDATE `cloud`.`configuration` SET `options` = 'FirstFitRouting,RandomAllocator,TestingAllocator,FirstFitAllocator,RecreateHostAllocator' WHERE `name` = 'host.allocators.order'; + +CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('volumes','previous_id', 'bigint(20) unsigned DEFAULT NULL'); diff --git a/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java b/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java index c83d52c3d2b4..da58304322c0 100644 --- a/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java +++ b/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java @@ -2283,6 +2283,8 @@ private void handlePostMigration(boolean success, Map sr if (success) { VolumeVO volumeVO = _volumeDao.findById(destVolumeInfo.getId()); volumeVO.setFormat(ImageFormat.QCOW2); + volumeVO.setPreviousId(srcVolumeInfo.getId()); + _volumeDao.update(volumeVO.getId(), volumeVO); _volumeService.copyPoliciesBetweenVolumesAndDestroySourceVolumeAfterMigration(Event.OperationSuccessed, null, srcVolumeInfo, destVolumeInfo, false); diff --git a/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java index 63726b400936..7facdbe0dd28 100644 --- a/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java +++ b/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java @@ -1720,6 +1720,7 @@ protected VolumeVO duplicateVolumeOnAnotherStorage(Volume volume, StoragePool po newVol.setPassphraseId(volume.getPassphraseId()); newVol.setEncryptFormat(volume.getEncryptFormat()); } + newVol.setPreviousId(volume.getId()); return volDao.persist(newVol); } From 36c88d108a9e60af6fc64e4d05c3105347052bbe Mon Sep 17 00:00:00 2001 From: Felipe Evangelista Date: Tue, 8 Oct 2024 14:13:11 -0300 Subject: [PATCH 2/3] changed the name of the column previous_id to last_id --- .../src/main/java/com/cloud/storage/VolumeVO.java | 12 ++++++------ .../resources/META-INF/db/schema-41900to41910.sql | 2 +- .../motion/StorageSystemDataMotionStrategy.java | 2 +- .../cloudstack/storage/volume/VolumeServiceImpl.java | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/engine/schema/src/main/java/com/cloud/storage/VolumeVO.java b/engine/schema/src/main/java/com/cloud/storage/VolumeVO.java index e20868da7e29..5ccbf746b7eb 100644 --- a/engine/schema/src/main/java/com/cloud/storage/VolumeVO.java +++ b/engine/schema/src/main/java/com/cloud/storage/VolumeVO.java @@ -48,8 +48,8 @@ public class VolumeVO implements Volume { @Column(name = "id") long id; - @Column(name = "previous_id") - private long previousId; + @Column(name = "last_id") + private long lastId; @Column(name = "name") String name; @@ -681,11 +681,11 @@ public void setExternalUuid(String externalUuid) { public void setEncryptFormat(String encryptFormat) { this.encryptFormat = encryptFormat; } - public long getPreviousId() { - return previousId; + public long getLastId() { + return lastId; } - public void setPreviousId(long previousId) { - this.previousId = previousId; + public void setLastId(long lastId) { + this.lastId = lastId; } } diff --git a/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql b/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql index a833822ffc59..5b165f9949db 100644 --- a/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql +++ b/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql @@ -71,4 +71,4 @@ UPDATE `cloud`.`configuration` SET `options` = 'FirstFitRouting,RandomAllocator,TestingAllocator,FirstFitAllocator,RecreateHostAllocator' WHERE `name` = 'host.allocators.order'; -CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('volumes','previous_id', 'bigint(20) unsigned DEFAULT NULL'); +CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('volumes','last_id', 'bigint(20) unsigned DEFAULT NULL'); diff --git a/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java b/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java index da58304322c0..b07ac6cc6c9e 100644 --- a/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java +++ b/engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java @@ -2283,7 +2283,7 @@ private void handlePostMigration(boolean success, Map sr if (success) { VolumeVO volumeVO = _volumeDao.findById(destVolumeInfo.getId()); volumeVO.setFormat(ImageFormat.QCOW2); - volumeVO.setPreviousId(srcVolumeInfo.getId()); + volumeVO.setLastId(srcVolumeInfo.getId()); _volumeDao.update(volumeVO.getId(), volumeVO); diff --git a/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java index 7facdbe0dd28..65fe25fe3cf1 100644 --- a/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java +++ b/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java @@ -1720,7 +1720,7 @@ protected VolumeVO duplicateVolumeOnAnotherStorage(Volume volume, StoragePool po newVol.setPassphraseId(volume.getPassphraseId()); newVol.setEncryptFormat(volume.getEncryptFormat()); } - newVol.setPreviousId(volume.getId()); + newVol.setLastId(volume.getId()); return volDao.persist(newVol); } From 0c86f177e5e9e44417d4072c6d51de8f804b9367 Mon Sep 17 00:00:00 2001 From: Felipe <124818914+FelipeM525@users.noreply.github.com> Date: Sun, 20 Oct 2024 07:22:22 -0300 Subject: [PATCH 3/3] Update engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: João Jandre <48719461+JoaoJandre@users.noreply.github.com> --- .../src/main/resources/META-INF/db/schema-41900to41910.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql b/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql index 5b165f9949db..028c3f619db2 100644 --- a/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql +++ b/engine/schema/src/main/resources/META-INF/db/schema-41900to41910.sql @@ -71,4 +71,5 @@ UPDATE `cloud`.`configuration` SET `options` = 'FirstFitRouting,RandomAllocator,TestingAllocator,FirstFitAllocator,RecreateHostAllocator' WHERE `name` = 'host.allocators.order'; +-- Add last_id to the volumes table CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('volumes','last_id', 'bigint(20) unsigned DEFAULT NULL');