Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Fixed tenant name bug
......................................................................

webadmin: Fixed tenant name bug

Seems like I messed something up in ProviderModel, which caused the
tenant name to not be retrieved from the database when editing a
provider. This is fixed here, in a way that will hopefully render
maintenance easier as further types of tenant-oriented providers are
added.

Change-Id: I42b58137af760f4fe59985b4b7c59460264fa232
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
2 files changed, 29 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/17074/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
index 620463b..ae9a326 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/EditProviderModel.java
@@ -9,6 +9,7 @@
 import org.ovirt.engine.core.common.action.VdcActionType;
 import 
org.ovirt.engine.core.common.businessentities.OpenstackNetworkProviderProperties;
 import org.ovirt.engine.core.common.businessentities.Provider;
+import org.ovirt.engine.core.common.businessentities.TenantProviderProperties;
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
@@ -45,6 +46,10 @@
         getUsername().setEntity(provider.getUsername());
         getPassword().setEntity(provider.getPassword());
 
+        if (provider.getAdditionalProperties() instanceof 
TenantProviderProperties) {
+            getTenantName().setEntity(((TenantProviderProperties) 
provider.getAdditionalProperties()).getTenantName());
+        }
+
         if (isTypeOpenStackNetwork()) {
             getNeutronAgentModel().init(((OpenstackNetworkProviderProperties) 
provider.getAdditionalProperties()).
                     getAgentConfiguration());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
index aea213b..684a5c1 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/ProviderModel.java
@@ -4,10 +4,10 @@
 import org.ovirt.engine.core.common.action.ProviderParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
-import 
org.ovirt.engine.core.common.businessentities.OpenstackImageProviderProperties;
 import 
org.ovirt.engine.core.common.businessentities.OpenstackNetworkProviderProperties;
 import org.ovirt.engine.core.common.businessentities.Provider;
 import org.ovirt.engine.core.common.businessentities.ProviderType;
+import org.ovirt.engine.core.common.businessentities.TenantProviderProperties;
 import org.ovirt.engine.core.common.errors.VdcBllErrors;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.compat.StringHelper;
@@ -125,8 +125,9 @@
         return (ProviderType) getType().getSelectedItem() == 
ProviderType.OPENSTACK_NETWORK;
     }
 
-    private boolean isTypeOpenStackImage() {
-        return (ProviderType) getType().getSelectedItem() == 
ProviderType.OPENSTACK_IMAGE;
+    private boolean isTypeTenantAware() {
+        ProviderType type = (ProviderType) getType().getSelectedItem();
+        return type == ProviderType.OPENSTACK_NETWORK || type == 
ProviderType.OPENSTACK_IMAGE;
     }
 
     private String getDefaultUrl(ProviderType type) {
@@ -175,9 +176,10 @@
         getType().getSelectedItemChangedEvent().addListener(new 
IEventListener() {
             @Override
             public void eventRaised(Event ev, Object sender, EventArgs args) {
+                getTenantName().setIsAvailable(isTypeTenantAware());
+
                 boolean providerNeutron = isTypeOpenStackNetwork();
                 getApiVersion().setIsAvailable(providerNeutron);
-                getTenantName().setIsAvailable(providerNeutron || 
isTypeOpenStackImage());
                 if (providerNeutron) {
                     OpenstackNetworkProviderProperties properties =
                             (OpenstackNetworkProviderProperties) 
provider.getAdditionalProperties();
@@ -240,23 +242,29 @@
                     getPluginNameForDisplayString((String) 
getPluginType().getSelectedItem()));
             properties.setAgentConfiguration(getNeutronAgentModel().flush());
             provider.setAdditionalProperties(properties);
-        } else if (isTypeOpenStackImage()) {
-            OpenstackImageProviderProperties properties = new 
OpenstackImageProviderProperties();
-            provider.setAdditionalProperties(properties);
         }
 
         boolean authenticationRequired = (Boolean) 
requiresAuthentication.getEntity();
         provider.setRequiringAuthentication(authenticationRequired);
         if (authenticationRequired) {
-            provider.setUsername((String) username.getEntity());
-            provider.setPassword((String) password.getEntity());
-
-            if (isTypeOpenStackNetwork()) {
-                ((OpenstackNetworkProviderProperties) 
provider.getAdditionalProperties()).setTenantName(
-                        (String) getTenantName().getEntity());
-            } else if (isTypeOpenStackImage()) {
-                ((OpenstackImageProviderProperties) 
provider.getAdditionalProperties()).setTenantName(
-                        (String) getTenantName().getEntity());
+            provider.setUsername((String) getUsername().getEntity());
+            provider.setPassword((String) getPassword().getEntity());
+            if (getTenantName().getIsAvailable()) {
+                TenantProviderProperties properties = 
(TenantProviderProperties) provider.getAdditionalProperties();
+                if (properties == null) {
+                    properties = new TenantProviderProperties();
+                    provider.setAdditionalProperties(properties);
+                }
+                properties.setTenantName((String) getTenantName().getEntity());
+            }
+        } else {
+            provider.setUsername(null);
+            provider.setPassword(null);
+            if (getTenantName().getIsAvailable()) {
+                TenantProviderProperties properties = 
(TenantProviderProperties) provider.getAdditionalProperties();
+                if (properties != null) {
+                    properties.setTenantName(null);
+                }
             }
         }
     }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I42b58137af760f4fe59985b4b7c59460264fa232
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <lver...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to