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

Reply via email to