-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Support of snapshot copy to StorPool primary storage in different zones #9478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #9478 +/- ##
============================================
- Coverage 16.30% 16.29% -0.02%
- Complexity 13447 13457 +10
============================================
Files 5676 5676
Lines 499231 499930 +699
Branches 60374 60491 +117
============================================
+ Hits 81415 81440 +25
- Misses 408745 409408 +663
- Partials 9071 9082 +11
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
8cc7b49
to
0df6764
Compare
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
0df6764
to
e0f4283
Compare
@blueorangutan package |
@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 10756 |
@blueorangutan test |
@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
[SF] Trillian test result (tid-11155)
|
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
e0f4283
to
6f209d8
Compare
api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CopySnapshotCmd.java
Show resolved
Hide resolved
.../src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreCapabilities.java
Outdated
Show resolved
Hide resolved
api/src/main/java/org/apache/cloudstack/api/command/user/snapshot/CopySnapshotCmd.java
Outdated
Show resolved
Hide resolved
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
.../src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreCapabilities.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clgtm, lots of style comments but no blockers
...chestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
Show resolved
Hide resolved
@@ -177,6 +107,74 @@ | |||
import com.cloud.vm.dao.UserVmCloneSettingDao; | |||
import com.cloud.vm.dao.UserVmDao; | |||
import com.cloud.vm.dao.UserVmDetailsDao; | |||
import org.apache.cloudstack.api.ApiCommandResourceType; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
import org.apache.cloudstack.api.ApiCommandResourceType; | |
import org.apache.cloudstack.api.ApiCommandResourceType; |
...chema/src/main/java/org/apache/cloudstack/storage/datastore/db/SnapshotDataStoreDaoImpl.java
Show resolved
Hide resolved
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine; | ||
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event; | ||
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.State; | ||
import org.apache.commons.collections.CollectionUtils; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
import org.apache.commons.collections.CollectionUtils; | |
import org.apache.commons.collections.CollectionUtils; |
import com.cloud.utils.db.TransactionCallbackNoReturn; | ||
import com.cloud.utils.db.TransactionStatus; | ||
import com.cloud.utils.exception.CloudRuntimeException; | ||
import com.cloud.utils.fsm.NoTransitionException; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
import com.cloud.utils.fsm.NoTransitionException; | |
import com.cloud.utils.fsm.NoTransitionException; | |
server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
Outdated
Show resolved
Hide resolved
server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
Outdated
Show resolved
Hide resolved
@@ -174,6 +108,73 @@ | |||
import com.cloud.vm.snapshot.VMSnapshotVO; | |||
import com.cloud.vm.snapshot.dao.VMSnapshotDao; | |||
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao; | |||
import org.apache.cloudstack.acl.SecurityChecker; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
import org.apache.cloudstack.acl.SecurityChecker; | |
import org.apache.cloudstack.acl.SecurityChecker; |
server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
Outdated
Show resolved
Hide resolved
server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java
Outdated
Show resolved
Hide resolved
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
88d13d2
to
ab01358
Compare
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
ab01358
to
46695f8
Compare
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
46695f8
to
129a1b4
Compare
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
4d03837
to
6aa6e65
Compare
…n zones Added support to copy a snapshot to another StorPool primary storage in different zones.
Added drop down to choose the primary storage pools to copy a snapshot Small fixes
hide the primary storage from the users in the UI refactor smoke test
6aa6e65
to
e93e17d
Compare
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
Description
This PR supports copying a snapshot to StorPool primary storage in different zones.
Added additional API param
usestoragereplication
for Admin usersstorageids
in CloudStack API calls:The option
snapshot.backup.to.secondary
does not apply to the copy functionality. The snapshots will be copied only to the required primary storage in a different zone.The user can create volumes/templates from the copied snapshots. The user can make copies only to a primary or to a secondary storage - at the moment, there is no option to do the copy on both.
The destination zone is a mandatory parameter if the users want to copy a snapshot, and the
usestoragereplication
if the copy has to be on the primary storageFor Admin users:



Those users can define the primary destination storage for the copy or to enable the setting
use.storage.replication
in the Primary storage settings.For regular Users:



The Admin should enable the configuration setting
use.storage.replication
in the Primary storage settings.For other storage plugins that want to adopt this functionality:
CAN_COPY_SNAPSHOT_BETWEEN_ZONES
copySnapshot
method in their SnapshotStrategy and that the driver can handle the COPY operationTypes of changes
Feature/Enhancement Scale
Screenshots (if appropriate):
How Has This Been Tested?
Manual and smoke tests with StorPool primary storage on multiple zones