Conversation
|
@blueorangutan package |
|
@sureshanaparti a 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. |
|
Found UI changes, kicking a new UI QA build |
|
@acs-robot a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress. |
|
Packaging result: ✖️ el7 ✖️ el8 ✖️ debian ✖️ suse15. SL-JID 3847 |
|
UI build: ✔️ |
|
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
|
@atrocitytheme can you resolve the conflict? |
|
|
||
| import java.util.Optional; | ||
|
|
||
| @APICommand(name = "cloneVirtualMachine", responseObject = UserVmResponse.class, description = "clone a virtual VM", |
There was a problem hiding this comment.
| @APICommand(name = "cloneVirtualMachine", responseObject = UserVmResponse.class, description = "clone a virtual VM", | |
| @APICommand(name = "cloneVirtualMachine", responseObject = UserVmResponse.class, description = "clone a virtual machine", |
or
| @APICommand(name = "cloneVirtualMachine", responseObject = UserVmResponse.class, description = "clone a virtual VM", | |
| @APICommand(name = "cloneVirtualMachine", responseObject = UserVmResponse.class, description = "clone a VM", |
| VMTemplateVO finalTmpProduct = null; | ||
| SnapshotVO snapshot = null; | ||
| try { | ||
| TemplateInfo cloneTempalateInfp = _tmplFactory.getTemplate(templateId, DataStoreRole.Image); |
There was a problem hiding this comment.
| TemplateInfo cloneTempalateInfp = _tmplFactory.getTemplate(templateId, DataStoreRole.Image); | |
| TemplateInfo cloneTemplateInfo = _tmplFactory.getTemplate(templateId, DataStoreRole.Image); |
| store = snapStore; // pick snapshot image store to create template | ||
| } | ||
| } | ||
| future = _tmpltSvr.createTemplateFromSnapshotAsync(snapInfo, cloneTempalateInfp, store); |
There was a problem hiding this comment.
| future = _tmpltSvr.createTemplateFromSnapshotAsync(snapInfo, cloneTempalateInfp, store); | |
| future = _tmpltSvr.createTemplateFromSnapshotAsync(snapInfo, cloneTemplateInfo, store); |
| } catch (InterruptedException e) { | ||
| s_logger.debug("Failed to create template for id: " + templateId, e); | ||
| throw new CloudRuntimeException("Failed to create template" , e); | ||
| } catch (ExecutionException e) { | ||
| s_logger.debug("Failed to create template for id: " + templateId, e); | ||
| throw new CloudRuntimeException("Failed to create template ", e); | ||
| } |
There was a problem hiding this comment.
| } catch (InterruptedException e) { | |
| s_logger.debug("Failed to create template for id: " + templateId, e); | |
| throw new CloudRuntimeException("Failed to create template" , e); | |
| } catch (ExecutionException e) { | |
| s_logger.debug("Failed to create template for id: " + templateId, e); | |
| throw new CloudRuntimeException("Failed to create template ", e); | |
| } | |
| } catch (InterruptedException | ExecutionException e) { | |
| s_logger.debug("Failed to create template for id: " + templateId, e); | |
| throw new CloudRuntimeException("Failed to create template" , e); | |
| } |
|
@atrocitytheme are you taking care of this? can you resolve the conflicts? |
|
@atrocitytheme are you still having this in your scope? shall I move it to 4.19? |
|
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
|
Discussed it with GSoC mentors at the time. Considering the outstanding changes and manual testing, closing this for now. We will revisit this at a later stage. cc @rohityadavcloud @borisstoyanov @DaanHoogland |
Description/Report
This PR adds a Clone VM feature at the API level (as part of GSoC project #4818), which enables the creation of a fully-cloned virtual machine with ROOT / DATA disks, and the same system configuration as the original VM. (Currently Supported for KVM hypervisor only)
Steps involved:
Note: The template created in step 2 cannot be cleaned up as the newly created clone VM uses this template
Feature included:
Documentation
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
This has been manually tested with a mbx KVM setup on a local machine and mbx kvm setup on GCP
will start the cloning process, it'll create a new cloned VM and start it (with all copied data available), network Ip will be assigned to DB instantly and the actual VM will get this IP after a while
GCP environment setup