Mike Kolesnik has uploaded a new change for review.

Change subject: engine: Block external networks in Setup Networks
......................................................................

engine: Block external networks in Setup Networks

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

Change-Id: If283ca8cf440fe02d257e93e755cd02d3eb60c3f
Signed-off-by: Mike Kolesnik <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.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
7 files changed, 40 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/39/14139/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java
index 75d4e4e..d5fb5db 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java
@@ -280,6 +280,7 @@
             // check if network exists on cluster
             if (getExistingClusterNetworks().containsKey(networkName)) {
                 Network network = 
getExistingClusterNetworks().get(networkName);
+                validateNetworkInternal(network);
                 validateNetworkExclusiveOnIface(iface,
                         determineNetworkType(network.getVlanId(), 
network.isVmNetwork()));
 
@@ -367,6 +368,20 @@
     }
 
     /**
+     * Make sure the network is not an external network, which we can't set up.
+     *
+     * @param iface
+     *            The interface.
+     * @param network
+     *            The network to check.
+     */
+    private void validateNetworkInternal(Network network) {
+        if (network.getProvidedBy() != null) {
+            
addViolation(VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED,
 network.getName());
+        }
+    }
+
+    /**
      * Checks if an unmanaged network changed.<br>
      * This can be either if there is no existing interface for this network, 
i.e. it is a unmanaged VLAN which was
      * moved to a different interface, or if the network name on the existing 
interface is not the same as it was
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java
index 60051ae..2f3d801 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java
@@ -26,6 +26,7 @@
 import org.ovirt.engine.core.common.businessentities.VDS;
 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.ProviderNetwork;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.compat.Guid;
@@ -262,6 +263,23 @@
                 
VdcBllMessages.ACTION_TYPE_FAILED_MANAGEMENT_NETWORK_ADDRESS_CANNOT_BE_CHANGED);
     }
 
+    /* --- Tests for external networks --- */
+
+    @Test
+    public void externalNetworkAttached() {
+        Network net = createNetwork("net");
+        net.setProvidedBy(new ProviderNetwork());
+        mockExistingNetworks(net);
+        VdsNetworkInterface nic = createNic("nic0", null);
+        mockExistingIfaces(nic);
+
+        nic.setNetworkName(net.getName());
+        SetupNetworksHelper helper = 
createHelper(createParametersForNics(nic));
+
+        validateAndExpectViolation(helper,
+                
VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED);
+    }
+
     /* --- Tests for sync network functionality --- */
 
     @Test
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 9cab968..843b613 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
@@ -449,6 +449,7 @@
     ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_PORT_MIRRORED,
     ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REWIRED,
     ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_HAVE_MTU,
+    ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED,
     ACTION_TYPE_FAILED_MANAGEMENT_NETWORK_REQUIRED,
     ACTION_TYPE_FAILED_MANAGEMENT_NETWORK_ADDRESS_CANNOT_BE_CHANGED,
     ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_IN_STORAGE_POOL,
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 edb7bf5..9275a7a 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -451,6 +451,7 @@
 NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER=The specified Logical Network doesn't 
exist in the current Cluster.
 NETWORKS_NOT_IN_SYNC=Cannot ${action} ${type}. The following Networks' 
definitions on the Network Interfaces are different than those on the Logical 
Networks. Please synchronize the Network Interfaces before editing the 
networks: ${NETWORKS_NOT_IN_SYNC}.
 NETWORK_INTERFACES_ALREADY_SPECIFIED=Cannot ${action} ${type}. The following 
Network Interfaces were specified more than once: 
${NETWORK_INTERFACES_ALREADY_SPECIFIED_LIST}.
+ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED=Cannot ${action} 
${type}. The following external networks cannot be configured on host via 
'Setup Networks': 
${ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED_LIST}.
 NETWORKS_ALREADY_ATTACHED_TO_IFACES=Cannot ${action} ${type}. The following 
Logical Networks are attached to more than one Network Interface: 
${NETWORKS_ALREADY_ATTACHED_TO_IFACES_LIST}.
 NETWORK_INTERFACES_DONT_EXIST=Cannot ${action} ${type}. The following Network 
Interfaces don't exist on the Host: ${NETWORK_INTERFACES_DONT_EXIST_LIST}.
 NETWORKS_DONT_EXIST_IN_CLUSTER=Cannot ${action} ${type}. The following Logical 
Networks don't exist in the Host's Cluster: 
${NETWORKS_DONT_EXIST_IN_CLUSTER_LIST}.
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 86a599d..03e0daf 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
@@ -1207,6 +1207,9 @@
     @DefaultStringValue("Cannot ${action} ${type}. The following Network 
Interfaces were specified more than once: 
${NETWORK_INTERFACES_ALREADY_SPECIFIED_LIST}.")
     String NETWORK_INTERFACES_ALREADY_SPECIFIED();
 
+    @DefaultStringValue("Cannot ${action} ${type}. The following external 
networks cannot be configured on host via 'Setup Networks': 
${ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED_LIST}")
+    String ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED();
+
     @DefaultStringValue("Cannot ${action} ${type}. The following Logical 
Networks are attached to more than one Network Interface: 
${NETWORKS_ALREADY_ATTACHED_TO_IFACES_LIST}.")
     String NETWORKS_ALREADY_ATTACHED_TO_IFACES();
 
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 df79049..26440b9 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
@@ -448,6 +448,7 @@
 NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER=The specified Logical Network doesn't 
exist in the current Cluster.
 NETWORKS_NOT_IN_SYNC=Cannot ${action} ${type}. The following Networks' 
definitions on the Network Interfaces are different than those on the Logical 
Networks. Please synchronize the Network Interfaces before editing the 
networks: ${NETWORKS_NOT_IN_SYNC}.
 NETWORK_INTERFACES_ALREADY_SPECIFIED=Cannot ${action} ${type}. The following 
Network Interfaces were specified more than once: 
${NETWORK_INTERFACES_ALREADY_SPECIFIED_LIST}.
+ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED=Cannot ${action} 
${type}. The following external networks cannot be configured on host via 
'Setup Networks': 
${ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED_LIST}.
 NETWORKS_ALREADY_ATTACHED_TO_IFACES=Cannot ${action} ${type}. The following 
Logical Networks are attached to more than one Network Interface: 
${NETWORKS_ALREADY_ATTACHED_TO_IFACES_LIST}.
 NETWORK_INTERFACES_DONT_EXIST=Cannot ${action} ${type}. The following Network 
Interfaces don't exist on the Host: ${NETWORK_INTERFACES_DONT_EXIST_LIST}.
 NETWORKS_DONT_EXIST_IN_CLUSTER=Cannot ${action} ${type}. The following Logical 
Networks don't exist in the Host's Cluster: 
${NETWORKS_DONT_EXIST_IN_CLUSTER_LIST}.
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 a4fae9a..ad80823 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
@@ -444,6 +444,7 @@
 NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER=The specified Logical Network doesn't 
exist in the current Cluster.
 NETWORKS_NOT_IN_SYNC=Cannot ${action} ${type}. The following Networks' 
definitions on the Network Interfaces are different than those on the Logical 
Networks. Please synchronize the Network Interfaces before editing the 
networks: ${NETWORKS_NOT_IN_SYNC}.
 NETWORK_INTERFACES_ALREADY_SPECIFIED=Cannot ${action} ${type}. The following 
Network Interfaces were specified more than once: 
${NETWORK_INTERFACES_ALREADY_SPECIFIED_LIST}.
+ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED=Cannot ${action} 
${type}. The following external networks cannot be configured on host via 
'Setup Networks': 
${ACTION_TYPE_FAILED_EXTERNAL_NETWORKS_CANNOT_BE_PROVISIONED_LIST}.
 NETWORKS_ALREADY_ATTACHED_TO_IFACES=Cannot ${action} ${type}. The following 
Logical Networks are attached to more than one Network Interface: 
${NETWORKS_ALREADY_ATTACHED_TO_IFACES_LIST}.
 NETWORK_INTERFACES_DONT_EXIST=Cannot ${action} ${type}. The following Network 
Interfaces don't exist on the Host: ${NETWORK_INTERFACES_DONT_EXIST_LIST}.
 NETWORKS_DONT_EXIST_IN_CLUSTER=Cannot ${action} ${type}. The following Logical 
Networks don't exist in the Host's Cluster: 
${NETWORKS_DONT_EXIST_IN_CLUSTER_LIST}.


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If283ca8cf440fe02d257e93e755cd02d3eb60c3f
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