Mike Kolesnik has uploaded a new change for review.

Change subject: engine: Block external network for legacy network commands
......................................................................

engine: Block external network for legacy network commands

Since external networks are provisioned by the provider, we can't have a
possibility of provisioning the network manually.

Change-Id: I14899220a1907ecf16aaf9fb5b3ffec50da26947
Signed-off-by: Mike Kolesnik <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddBondCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
M 
frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
M 
frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
8 files changed, 24 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/14140/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddBondCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddBondCommand.java
index 69eb396..35a8c2d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddBondCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddBondCommand.java
@@ -136,16 +136,16 @@
         }
 
         // check that the network exists in current cluster
-        List<Network> networks = 
getNetworkDAO().getAllForCluster(getVds().getVdsGroupId());
-        if (null == LinqUtils.firstOrNull(networks, new Predicate<Network>() {
-            @Override
-            public boolean eval(Network network) {
-                return 
network.getName().equals(getParameters().getNetwork().getName());
-            }
-        })) {
+        Network network =
+                
getNetworkDAO().getByNameAndCluster(getParameters().getNetwork().getName(), 
getVds().getVdsGroupId());
+        if (network == null) {
             return 
failCanDoAction(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CLUSTER);
         }
 
+        if (network.getProvidedBy() != null) {
+            return 
failCanDoAction(VdcBllMessages.EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED);
+        }
+
         return true;
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
index f58bf03..e6c9666 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AttachNetworkToVdsInterfaceCommand.java
@@ -132,6 +132,10 @@
             logicalNetwork = networksByName.get(params.getNetwork().getName());
         }
 
+        if (logicalNetwork.getProvidedBy() != null) {
+            return 
failCanDoAction(VdcBllMessages.EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED);
+        }
+
         if (!networkConfigurationSupported(iface, networksByName)) {
             
addCanDoActionMessage(VdcBllMessages.NETWORK_INTERFACE_ALREADY_HAVE_NETWORK);
             return false;
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
index eb2ef4b..f26a5ef 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UpdateNetworkToVdsInterfaceCommand.java
@@ -9,6 +9,7 @@
 import org.ovirt.engine.core.common.action.UpdateNetworkToVdsParameters;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
 import org.ovirt.engine.core.common.config.Config;
@@ -236,6 +237,11 @@
             }
         }
 
+        Network network = 
getNetworkDAO().getByNameAndCluster(getNetworkName(), vds.getVdsGroupId());
+        if (network != null && network.getProvidedBy() != null) {
+            return 
failCanDoAction(VdcBllMessages.EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED);
+        }
+
         return true;
     }
 
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
index 843b613..9254665 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
@@ -387,6 +387,7 @@
     ACTION_TYPE_FAILED_NETWORK_NAME_IN_USE,
     ACTION_TYPE_FAILED_NETWORK_IN_USE,
     NETWORK_NOT_EXISTS,
+    EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED,
     NETWORK_NOT_EXISTS_IN_CLUSTER,
     NETWORK_OLD_NETWORK_NOT_SPECIFIED,
     NETWORK_ALREADY_ATTACHED_TO_CLUSTER,
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
index 9275a7a..6cd9856 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -384,6 +384,7 @@
 NETWORK_INTERFACE_ALREADY_HAVE_NETWORK=The Network Interface is already 
attached to a Logical Network.
 NETWORK_ALREADY_ATTACHED_TO_INTERFACE=Logical Network is already attached to a 
Network Interface.
 NETWORK_NOT_EXISTS=The specified Logical Network doesn't exist.
+EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED=The specified external network cannot 
be configured on the host's NIC.
 ERROR_CANNOT_RECOVERY_STORAGE_POOL_THERE_IS_ACTIVE_DATA_DOMAINS=Cannot recover 
Data Center with active Data Storage Domain in Data Center.
 ERROR_CANNOT_RECOVERY_STORAGE_POOL_STORAGE_TYPE_MISSMATCH=Cannot recover Data 
Center. Mismatch between Storage Domain type and Data Center type.
 ERROR_CANNOT_DETACH_LAST_STORAGE_DOMAIN=Cannot remove the master Storage 
Domain from the Data Center without another active Storage Domain to take its 
place.\n\
diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
index 03e0daf..ffc2c6c 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
@@ -1051,6 +1051,9 @@
     @DefaultStringValue("The specified Logical Network doesn't exist.")
     String NETWORK_NOT_EXISTS();
 
+    @DefaultStringValue("The specified external network cannot be configured 
on the host's NIC.")
+    String EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED();
+
     @DefaultStringValue("Cannot recover Data Center with active Data Storage 
Domain in Data Center.")
     String ERROR_CANNOT_RECOVERY_STORAGE_POOL_THERE_IS_ACTIVE_DATA_DOMAINS();
 
diff --git 
a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
 
b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
index 26440b9..072b0c9 100644
--- 
a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
+++ 
b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
@@ -380,6 +380,7 @@
 NETWORK_INTERFACE_ALREADY_HAVE_NETWORK=The Network Interface is already 
attached to a Logical Network.
 NETWORK_ALREAY_ATTACH_TO_INTERFACE=Logical Network is already attached to a 
Network Interface.
 NETWORK_NOT_EXISTS=The specified Logical Network doesn't exist.
+EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED=The specified external network cannot 
be configured on the host's NIC.
 ERROR_CANNOT_RECOVERY_STORAGE_POOL_THERE_IS_ACTIVE_DATA_DOMAINS=Cannot recover 
Data Center with active Data Storage Domain in Data Center.
 ERROR_CANNOT_RECOVERY_STORAGE_POOL_STORAGE_TYPE_MISSMATCH=Cannot recover Data 
Center. Mismatch between Storage Domain type and Data Center type.
 ERROR_CANNOT_DETACH_LAST_STORAGE_DOMAIN=Cannot remove the master Storage 
Domain from the Data Center without another active Storage Domain to take its 
place.\n\
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
 
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
index ad80823..4fae52a 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
+++ 
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
@@ -377,6 +377,7 @@
 NETWORK_INTERFACE_ALREADY_HAVE_NETWORK=The Network Interface is already 
attached to a Logical Network.
 NETWORK_ALREAY_ATTACH_TO_INTERFACE=Logical Network is already attached to a 
Network Interface.
 NETWORK_NOT_EXISTS=The specified Logical Network doesn't exist.
+EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED=The specified external network cannot 
be configured on the host's NIC.
 ERROR_CANNOT_RECOVERY_STORAGE_POOL_THERE_IS_ACTIVE_DATA_DOMAINS=Cannot recover 
Data Center with active Data Storage Domain in Data Center.
 ERROR_CANNOT_RECOVERY_STORAGE_POOL_STORAGE_TYPE_MISSMATCH=Cannot recover Data 
Center. Mismatch between Storage Domain type and Data Center type.
 ERROR_CANNOT_DETACH_LAST_STORAGE_DOMAIN=Cannot remove the master Storage 
Domain from the Data Center without another active Storage Domain to take its 
place.\n\


--
To view, visit http://gerrit.ovirt.org/14140
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I14899220a1907ecf16aaf9fb5b3ffec50da26947
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Mike Kolesnik <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to