Martin Mucha has uploaded a new change for review.

Change subject: core,restapi: allow indetifying network by its name when adding 
network attachment allow indetifying network by its name.
......................................................................

core,restapi: allow indetifying network by its name
when adding network attachment allow indetifying network by its name.

Change-Id: I2b692915593a86e9ea4b8faa8056cbcafefe328e
Signed-off-by: Martin Mucha <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddNetworkAttachmentCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostSetupNetworksCommand.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/NetworkIdNetworkNameCompleter.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkAttachment.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/validation/NetworkIdOrNetworkNameIsSetConstraint.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/validation/annotation/NetworkIdOrNetworkNameIsSet.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResourceTest.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkAttachmentMapper.java
11 files changed, 206 insertions(+), 55 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/40359/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddNetworkAttachmentCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddNetworkAttachmentCommand.java
index 4e38557..6c5952a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddNetworkAttachmentCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/AddNetworkAttachmentCommand.java
@@ -26,6 +26,8 @@
 
 @NonTransactiveCommandAttribute
 public class AddNetworkAttachmentCommand<T extends 
NetworkAttachmentParameters> extends VdsCommand<T> {
+    @Inject
+    private NetworkIdNetworkNameCompleter networkIdNetworkNameCompleter;
 
     @Inject
     private ManagementNetworkUtil managementNetworkUtil;
@@ -56,6 +58,8 @@
         
completer.completeNetworkAttachment(getParameters().getNetworkAttachment());
         completer.completeNetworkAttachments(networkAttachmentsForVds);
 
+        
networkIdNetworkNameCompleter.completeNetworkAttachment(getParameters().getNetworkAttachment());
+
         return validateNetworkAttachment() && validateHostInterface() && 
validateCrossAttachments(networkAttachmentsForVds);
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostSetupNetworksCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostSetupNetworksCommand.java
index 9290497..878f207 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostSetupNetworksCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostSetupNetworksCommand.java
@@ -14,8 +14,8 @@
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.Validate;
-import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
 import org.ovirt.engine.core.bll.FailingValidationResults;
+import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
 import org.ovirt.engine.core.bll.VdsCommand;
 import org.ovirt.engine.core.bll.VdsHandler;
 import org.ovirt.engine.core.bll.context.CommandContext;
@@ -81,6 +81,9 @@
     @Inject
     private ManagementNetworkUtil managementNetworkUtil;
 
+    @Inject
+    private NetworkIdNetworkNameCompleter networkIdNetworkNameCompleter;
+
     public HostSetupNetworksCommand(T parameters) {
         this(parameters, null);
     }
@@ -118,6 +121,8 @@
         completer.completeBonds(getParameters().getRemovedBonds());
         completer.completeNetworkAttachments(getExistingAttachments());
 
+        
networkIdNetworkNameCompleter.completeNetworkAttachments(getParameters().getNetworkAttachments(),
 getNetworkBusinessEntityMap());
+
         validator = new HostSetupNetworksValidator(host,
                         getParameters(),
                         getExistingNics(),
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/NetworkIdNetworkNameCompleter.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/NetworkIdNetworkNameCompleter.java
new file mode 100644
index 0000000..5d1acd6
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/NetworkIdNetworkNameCompleter.java
@@ -0,0 +1,78 @@
+package org.ovirt.engine.core.bll.network.host;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import org.ovirt.engine.core.common.businessentities.BusinessEntityMap;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.businessentities.network.NetworkAttachment;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.network.NetworkDao;
+
+
+@Singleton
+public class NetworkIdNetworkNameCompleter {
+
+    private final NetworkDao networkDao;
+
+    @Inject
+    public NetworkIdNetworkNameCompleter(NetworkDao networkDao) {
+        this.networkDao = networkDao;
+    }
+
+    public void completeNetworkAttachment(NetworkAttachment networkAttachment) 
{
+        completeNetworkAttachment(networkAttachment, null);
+    }
+
+    public void completeNetworkAttachments(List<NetworkAttachment> 
networkAttachments, BusinessEntityMap<Network> clusterNetworks) {
+        for (NetworkAttachment networkAttachment : networkAttachments) {
+            completeNetworkAttachment(networkAttachment, clusterNetworks);
+        }
+    }
+
+    private void completeNetworkAttachment(NetworkAttachment 
networkAttachment, BusinessEntityMap<Network> clusterNetworks) {
+        Guid networkId = networkAttachment.getNetworkId();
+        String networkName = networkAttachment.getNetworkName();
+
+        if (networkId == null && networkName == null) {
+            throw new IllegalArgumentException("network name or network id 
must be set.");
+        }
+
+        if (networkName != null) {
+            Network network = getNetworkByName(networkName, clusterNetworks);
+            if (network != null) {
+                if (networkId == null) {
+                    networkAttachment.setNetworkId(network.getId());
+                } else {
+                    if (!network.getId().equals(networkId)) {
+                        throw new IllegalArgumentException("Both nicId and 
nicName was specified, "
+                                + "but they does not denote same nic.");
+                    }
+                }
+            }
+        } else {
+            //TODO MM: this is not actually required, but it may be confusing 
why there's sometime unset fields.
+            Network network = getNetworkById(networkId, clusterNetworks);
+            networkAttachment.setNetworkName(network.getName());
+        }
+    }
+
+    private Network getNetworkById(Guid networkId, BusinessEntityMap<Network> 
clusterNetworks) {
+        if (clusterNetworks != null) {
+            return clusterNetworks.get(networkId);
+        } else {
+            return networkDao.get(networkId);
+        }
+    }
+
+    private Network getNetworkByName(String networkName, 
BusinessEntityMap<Network> clusterNetworks) {
+        if (clusterNetworks != null) {
+            return clusterNetworks.get(networkName);
+        } else {
+            return networkDao.getByName(networkName);
+        }
+
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkAttachment.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkAttachment.java
index 09f3902..6d55ab6 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkAttachment.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkAttachment.java
@@ -8,11 +8,13 @@
 import 
org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions;
 import org.ovirt.engine.core.common.businessentities.BusinessEntity;
 import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
+import 
org.ovirt.engine.core.common.validation.annotation.NetworkIdOrNetworkNameIsSet;
 import org.ovirt.engine.core.common.validation.group.CreateEntity;
 import org.ovirt.engine.core.common.validation.group.RemoveEntity;
 import org.ovirt.engine.core.common.validation.group.UpdateEntity;
 import org.ovirt.engine.core.compat.Guid;
 
+@NetworkIdOrNetworkNameIsSet(groups = { CreateEntity.class })
 public class NetworkAttachment extends IVdcQueryable implements 
BusinessEntity<Guid> {
 
     private static final long serialVersionUID = -8052325342869681284L;
@@ -20,8 +22,10 @@
     @NotNull(groups = { UpdateEntity.class, RemoveEntity.class })
     private Guid id;
 
-    @NotNull(groups = { CreateEntity.class, UpdateEntity.class })
+    @NotNull(groups = { UpdateEntity.class })
     private Guid networkId;
+
+    private String networkName;
 
     private Guid nicId;
 
@@ -115,6 +119,7 @@
         result = prime * result + ((id == null) ? 0 : id.hashCode());
         result = prime * result + ((ipConfiguration == null) ? 0 : 
ipConfiguration.hashCode());
         result = prime * result + ((networkId == null) ? 0 : 
networkId.hashCode());
+        result = prime * result + ((networkName == null) ? 0 : 
networkName.hashCode());
         result = prime * result + ((nicId == null) ? 0 : nicId.hashCode());
         result = prime * result + ((nicName == null) ? 0 : nicName.hashCode());
         result = prime * result + ((properties == null) ? 0 : 
properties.hashCode());
@@ -145,6 +150,11 @@
                 return false;
         } else if (!networkId.equals(other.networkId))
             return false;
+        if (networkName == null) {
+            if (other.networkName != null)
+                return false;
+        } else if (!networkName.equals(other.networkName))
+            return false;
         if (nicId == null) {
             if (other.nicId != null)
                 return false;
@@ -167,9 +177,18 @@
     public String toString() {
         return "NetworkAttachment [id=" + id
                 + ", networkId=" + networkId
+                + ", networkName=" + networkName
                 + ", nicId=" + nicId
                 + ", nicName=" + nicName
                 + ", ipConfiguration=" + ipConfiguration
                 + ", properties=" + properties + "]";
     }
+
+    public String getNetworkName() {
+        return networkName;
+    }
+
+    public void setNetworkName(String networkName) {
+        this.networkName = networkName;
+    }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/validation/NetworkIdOrNetworkNameIsSetConstraint.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/validation/NetworkIdOrNetworkNameIsSetConstraint.java
new file mode 100644
index 0000000..29162f6
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/validation/NetworkIdOrNetworkNameIsSetConstraint.java
@@ -0,0 +1,23 @@
+package org.ovirt.engine.core.common.validation;
+
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+import org.ovirt.engine.core.common.businessentities.network.NetworkAttachment;
+import 
org.ovirt.engine.core.common.validation.annotation.NetworkIdOrNetworkNameIsSet;
+
+public class NetworkIdOrNetworkNameIsSetConstraint
+        implements ConstraintValidator<NetworkIdOrNetworkNameIsSet, 
NetworkAttachment> {
+
+    @Override
+    public void initialize(NetworkIdOrNetworkNameIsSet constraintAnnotation) {
+    }
+
+    @Override
+    public boolean isValid(NetworkAttachment value, ConstraintValidatorContext 
context) {
+        boolean networkIdNotSet = value.getNetworkId() == null;
+        boolean networkNameNotSet = value.getNetworkName() == null;
+
+        return !(networkIdNotSet && networkNameNotSet);
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/validation/annotation/NetworkIdOrNetworkNameIsSet.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/validation/annotation/NetworkIdOrNetworkNameIsSet.java
new file mode 100644
index 0000000..7f97787
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/validation/annotation/NetworkIdOrNetworkNameIsSet.java
@@ -0,0 +1,24 @@
+package org.ovirt.engine.core.common.validation.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+import 
org.ovirt.engine.core.common.validation.NetworkIdOrNetworkNameIsSetConstraint;
+
+@Constraint(validatedBy = NetworkIdOrNetworkNameIsSetConstraint.class)
+@Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface NetworkIdOrNetworkNameIsSet {
+    String message() default 
"VALIDATION_NETWORK_ID_OR_NETWORK_NAME_MUST_BE_SET";
+
+    Class<?>[] groups() default { };
+
+    Class<? extends Payload>[] payload() default { };
+}
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 b245577..f953ca2 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -888,6 +888,7 @@
 VALIDATION.DATA_CENTER.DESCRIPTION.INVALID="Data Center description must be 
formed of ASCII charis only"
 VALIDATION.DATA_CENTER.NAME.INVALID=Data Center name must be formed of 
alphanumeric characters, numbers or "-_"
 VALIDATION_ID_NULL=ID is required.
+VALIDATION_NETWORK_ID_OR_NETWORK_NAME_MUST_BE_SET=Either network id or network 
name must be provided.
 VALIDATION_NAME_NULL=Name is required.
 VALIDATION_NAME_INVALID=Name must be formed of alphanumeric characters, 
numbers or "-_".
 VALIDATION_NAME_INVALID_WITH_DOT=Name must be formed of alphanumeric 
characters, numbers or "-_.".
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
index 6cccee6..28ab4e1 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
@@ -2701,17 +2701,17 @@
       parameterType: NetworkAttachment
       signatures:
       - mandatoryArguments:
-          network_attachment.network.id: 'xs:string'
+          network_attachment.network.name|id: 'xs:string'
         optionalArguments:
-            network_attachment.ip_configuration.ipv4s.boot_protocol: 
'xs:string'
-            network_attachment.ip_configuration.ipv4s.ipv4--COLLECTION:
-                ipv4.address: 'xs:string'
-                ipv4.netmask: 'xs:string'
-                ipv4.gateway: 'xs:string'
-            network_attachment.properties.property--COLLECTION:
-                property.name: 'xs:string'
-                property.value: 'xs:string'
-            network_attachment.override_configuration: 'xs:boolean'
+          network_attachment.ip_configuration.ipv4s.boot_protocol: 'xs:string'
+          network_attachment.ip_configuration.ipv4s.ipv4--COLLECTION:
+            ipv4.address: 'xs:string'
+            ipv4.netmask: 'xs:string'
+            ipv4.gateway: 'xs:string'
+          network_attachment.properties.property--COLLECTION:
+            property.name: 'xs:string'
+            property.value: 'xs:string'
+          network_attachment.override_configuration: 'xs:boolean'
 - name: /hosts/{host:id}/networkattachments|rel=get
   description: get the list of network attachments of the host
   request:
@@ -2732,17 +2732,17 @@
       parameterType: NetworkAttachment
       signatures:
       - optionalArguments:
-            network_attachment.host_nic.id: 'xs:string'
-            network_attachment.host_nic.name: 'xs:string'
-            network_attachment.ip_configuration.ipv4s.boot_protocol: 
'xs:string'
-            network_attachment.ip_configuration.ipv4s.ipv4--COLLECTION:
-                ipv4.address: 'xs:string'
-                ipv4.netmask: 'xs:string'
-                ipv4.gateway: 'xs:string'
-            network_attachment.properties.property--COLLECTION:
-                property.name: 'xs:string'
-                property.value: 'xs:string'
-            network_attachment.override_configuration: 'xs:boolean'
+          network_attachment.host_nic.id: 'xs:string'
+          network_attachment.host_nic.name: 'xs:string'
+          network_attachment.ip_configuration.ipv4s.boot_protocol: 'xs:string'
+          network_attachment.ip_configuration.ipv4s.ipv4--COLLECTION:
+            ipv4.address: 'xs:string'
+            ipv4.netmask: 'xs:string'
+            ipv4.gateway: 'xs:string'
+          network_attachment.properties.property--COLLECTION:
+            property.name: 'xs:string'
+            property.value: 'xs:string'
+          network_attachment.override_configuration: 'xs:boolean'
 - name: /hosts/{host:id}/networkattachments|rel=add
   description: add a new network attachment to the host
   request:
@@ -2750,19 +2750,19 @@
       parameterType: NetworkAttachment
       signatures:
       - mandatoryArguments:
-          network_attachment.network.id: 'xs:string'
+          network_attachment.network.name|id: 'xs:string'
         optionalArguments:
-            network_attachment.host_nic.id: 'xs:string'
-            network_attachment.host_nic.name: 'xs:string'
-            network_attachment.ip_configuration.ipv4s.boot_protocol: 
'xs:string'
-            network_attachment.ip_configuration.ipv4s.ipv4--COLLECTION:
-                ipv4.address: 'xs:string'
-                ipv4.netmask: 'xs:string'
-                ipv4.gateway: 'xs:string'
-            network_attachment.properties.property--COLLECTION:
-                property.name: 'xs:string'
-                property.value: 'xs:string'
-            network_attachment.override_configuration: 'xs:boolean'
+          network_attachment.host_nic.id: 'xs:string'
+          network_attachment.host_nic.name: 'xs:string'
+          network_attachment.ip_configuration.ipv4s.boot_protocol: 'xs:string'
+          network_attachment.ip_configuration.ipv4s.ipv4--COLLECTION:
+            ipv4.address: 'xs:string'
+            ipv4.netmask: 'xs:string'
+            ipv4.gateway: 'xs:string'
+          network_attachment.properties.property--COLLECTION:
+            property.name: 'xs:string'
+            property.value: 'xs:string'
+          network_attachment.override_configuration: 'xs:boolean'
 - name: /hosts/{host:id}/unmanagednetworks|rel=get
   description: get a list of unmanaged networks
   request:
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResource.java
index 616a76e..a7ba8a1 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResource.java
@@ -46,7 +46,6 @@
 
     @Override
     public Response add(NetworkAttachment attachment) {
-        validateParameters(attachment, "network.id");
         
org.ovirt.engine.core.common.businessentities.network.NetworkAttachment 
networkAttachment = map(attachment);
         NetworkAttachmentParameters params = new 
NetworkAttachmentParameters(hostId, networkAttachment);
         return performCreate(VdcActionType.AddNetworkAttachment,
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResourceTest.java
index f62036c..e4964ca 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendNetworkAttachmentsResourceTest.java
@@ -121,19 +121,6 @@
     }
 
     @Test
-    public void testAddIncompleteParameters() throws Exception {
-        org.ovirt.engine.api.model.NetworkAttachment model = 
createIncompleteNetworkAttachment();
-        setUriInfo(setUpBasicUriExpectations());
-        control.replay();
-        try {
-            collection.add(model);
-            fail("expected WebApplicationException on incomplete parameters");
-        } catch (WebApplicationException wae) {
-            verifyIncompleteException(wae, "NetworkAttachment", "add", 
getIncompleteFields());
-        }
-    }
-
-    @Test
     @Ignore
     @Override
     public void testQuery() throws Exception {
@@ -220,10 +207,6 @@
         } catch (WebApplicationException wae) {
             verifyFault(wae, detail);
         }
-    }
-
-    protected String[] getIncompleteFields() {
-        return new String[] { "network.id" };
     }
 
     protected org.ovirt.engine.api.model.NetworkAttachment 
createIncompleteNetworkAttachment() {
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkAttachmentMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkAttachmentMapper.java
index 4d10036..e9b2808 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkAttachmentMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/NetworkAttachmentMapper.java
@@ -24,8 +24,15 @@
             entity.setId(GuidUtils.asGuid(model.getId()));
         }
 
-        if (model.isSetNetwork() && model.getNetwork().isSetId()) {
-            entity.setNetworkId(GuidUtils.asGuid(model.getNetwork().getId()));
+        if (model.isSetNetwork()) {
+            Network networkModel = model.getNetwork();
+            if (networkModel.isSetId()) {
+                entity.setNetworkId(GuidUtils.asGuid(networkModel.getId()));
+            }
+
+            if (networkModel.isSetName()) {
+                entity.setNetworkName(networkModel.getName());
+            }
         }
 
         if (model.isSetHostNic()) {
@@ -97,6 +104,14 @@
             model.getNetwork().setId(entity.getNetworkId().toString());
         }
 
+        if (entity.getNetworkName() != null) {
+            if (model.getNetwork() == null) {
+                model.setNetwork(new Network());
+            }
+
+            model.getNetwork().setName(entity.getNetworkName());
+        }
+
         if (entity.getNicId() != null) {
             model.setHostNic(new HostNIC());
             model.getHostNic().setId(entity.getNicId().toString());


-- 
To view, visit https://gerrit.ovirt.org/40359
To unsubscribe, visit https://gerrit.ovirt.org/settings

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

Reply via email to