Alona Kaplan has uploaded a new change for review. Change subject: core: add NetworkWiring to AddVmInterfaceCommand ......................................................................
core: add NetworkWiring to AddVmInterfaceCommand - canDoAction- allow 'null' network just for 3.2 or upper cluster compatibility version. - 'linked' property of VmNetworkInterface should be stored in the DB Change-Id: I295dfb0af1bb7c6b2878f70344afd487aa2efbe1 Signed-off-by: Alona Kaplan <alkap...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmInterfaceCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmNetworkInterfaceDAODbFacadeImpl.java 3 files changed, 38 insertions(+), 14 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/47/9447/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmInterfaceCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmInterfaceCommand.java index 1a0269d..f17fcd6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmInterfaceCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmInterfaceCommand.java @@ -176,20 +176,26 @@ // check that the exists in current cluster List<Network> networks = DbFacade.getInstance().getNetworkDao().getAllForCluster(vm.getvds_group_id()); - Network interfaceNetwork = LinqUtils.firstOrNull(networks, new Predicate<Network>() { - @Override - public boolean eval(Network network) { - return network.getname().equals(getParameters().getInterface().getNetworkName()); - } - }); + if (getParameters().getInterface().getNetworkName() != null) { + Network interfaceNetwork = LinqUtils.firstOrNull(networks, new Predicate<Network>() { + @Override + public boolean eval(Network network) { + return network.getname().equals(getParameters().getInterface().getNetworkName()); + } + }); - if (interfaceNetwork == null) { - addCanDoActionMessage(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER); - return false; - } else if (!interfaceNetwork.isVmNetwork()) { - addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_NOT_A_VM_NETWORK); - addCanDoActionMessage(String.format("$networks %1$s", interfaceNetwork.getname())); - return false; + if (interfaceNetwork == null) { + addCanDoActionMessage(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER); + return false; + } else if (!interfaceNetwork.isVmNetwork()) { + addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_NOT_A_VM_NETWORK); + addCanDoActionMessage(String.format("$networks %1$s", interfaceNetwork.getname())); + return false; + } + } else { + if (!isLinkStateChangeable()) { + return false; + } } if (!StringUtils.isEmpty(getMacAddress())) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java index 4597909..a28ed8c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java @@ -474,7 +474,24 @@ } /** + * check that hotplug is enabled via the 3.1 config paramter {@literal ConfigValues.HotPlugEnabled, + * @return + */ + protected boolean isLinkStateChangeable() { + if (Config.<Boolean> GetValue(ConfigValues.LinkStateChangeable, getVds().getvds_group_compatibility_version() + .getValue())) { + return true; + } + addCanDoActionMessage(VdcBllMessages.LINK_STATE_IS_NOT_CHANGEABLE); + getReturnValue().getCanDoActionMessages().add(String.format("$version %1$s", + getVds().getvds_group_compatibility_version() + .getValue())); + return false; + } + + /** * The following method should check if os of guest is supported for hot plug/unplug operation + * * @return */ protected boolean isOsSupportingHotPlug() { diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmNetworkInterfaceDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmNetworkInterfaceDAODbFacadeImpl.java index 5ed06cf..43631f1 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmNetworkInterfaceDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmNetworkInterfaceDAODbFacadeImpl.java @@ -91,7 +91,8 @@ .addValue("vm_guid", stats.getVmId()) .addValue("vmt_guid", stats.getVmTemplateId()) .addValue("type", stats.getType()) - .addValue("port_mirroring", stats.isPortMirroring()); + .addValue("port_mirroring", stats.isPortMirroring()) + .addValue("linked", stats.isLinked()); getCallsHandler().executeModification("Insertvm_interface", parameterSource); } -- To view, visit http://gerrit.ovirt.org/9447 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I295dfb0af1bb7c6b2878f70344afd487aa2efbe1 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alona Kaplan <alkap...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches