Tomas Jelinek has uploaded a new change for review. Change subject: engine,frontend: don't check VM status right after VM creation ......................................................................
engine,frontend: don't check VM status right after VM creation Create a VM from template with big disk and couple of nics. In new vm dialog edit the nic->network assignment. Press OK. First the AddVmFromTemplate is called. After it returns the UpdateVmInterfaceCommand is called to edit the nic->network assignment. The problem is that the VM status can be "image locked" which prevents the nic editing. Solved by adding a parameter that in this case the VM status will not be checked. Change-Id: I478654d61ac69bee4a4252a7800fbe57bfa0b511 Bug-Url: https://bugzilla.redhat.com/988354 Signed-off-by: Tomas Jelinek <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmInterfaceParameters.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java 3 files changed, 27 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/17/17317/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java index bd44a02..962936e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java @@ -283,6 +283,10 @@ } private boolean updateVmNicAllowed(VMStatus vmStatus) { + if (!getParameters().isCheckVmStatus()) { + return true; + } + return vmStatus == VMStatus.Up || vmStatus == VMStatus.Down; } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmInterfaceParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmInterfaceParameters.java index 170f479..281ebd2 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmInterfaceParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmInterfaceParameters.java @@ -10,6 +10,11 @@ @Valid private VmNetworkInterface _interface; + /** + * If set to false do not check VM status and update the interface + */ + private boolean checkVmStatus = true; + public AddVmInterfaceParameters(Guid vmId, VmNetworkInterface iface) { super(vmId); _interface = iface; @@ -21,4 +26,12 @@ public AddVmInterfaceParameters() { } + + public boolean isCheckVmStatus() { + return checkVmStatus; + } + + public void setCheckVmStatus(boolean checkVmStatus) { + this.checkVmStatus = checkVmStatus; + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java index 9dd8ba1..26356d5 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java @@ -47,6 +47,9 @@ * ones are created according to the nicsWithLogicalNetworks. If the VM is created with nics - e.g. by copying from template update they're virtual * networks as edited by the user (again, according to the nicsWithLogicalNetworks). * + * Since this method is used only after the VM has been created it is not running but can have the status "image locked". For + * this reason the vm status will not be checked. + * * @param vmId The ID of the VM * @param nicsWithLogicalNetworks list of nics as edited in the window */ @@ -58,7 +61,7 @@ // there are no networks created - create according to the setup createNetworks(vmId, nicsWithLogicalNetworks); } - }.execute(vmId, nicsWithLogicalNetworks); + }.execute(vmId, nicsWithLogicalNetworks, false); } /** @@ -74,7 +77,7 @@ // nothing to do callback.networkCreated(vmId); } - }.execute(vmId, nicsWithLogicalNetworks); + }.execute(vmId, nicsWithLogicalNetworks, true); } /** @@ -130,7 +133,7 @@ abstract class UpdatedNicsUpdater { - public void execute(final Guid vmId, final List<NicWithLogicalNetworks> nicsWithLogicalNetworks) { + public void execute(final Guid vmId, final List<NicWithLogicalNetworks> nicsWithLogicalNetworks, final boolean checkStatus) { AsyncQuery getVmNicsQuery = new AsyncQuery(); getVmNicsQuery.asyncCallback = new INewAsyncCallback() { @Override @@ -157,7 +160,10 @@ if (sameNic && assignedNetworkChanged) { created.setNetworkName(edited.getNetworkInterface().getNetworkName()); - parameters.add(new AddVmInterfaceParameters(vmId, created)); + + AddVmInterfaceParameters param = new AddVmInterfaceParameters(vmId, created); + param.setCheckVmStatus(checkStatus); + parameters.add(param); break; } } -- To view, visit http://gerrit.ovirt.org/17317 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I478654d61ac69bee4a4252a7800fbe57bfa0b511 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
