Piotr Kliczewski has uploaded a new change for review.

Change subject: core: edit host "advanced" parameters to change protocol
......................................................................

core: edit host "advanced" parameters to change protocol

Editting host protocol was no possible. This patch enables chaning
protocol for host in maintanace mode only. After the change connection
is be closed and new protocol is used when reconnecting.


Bug-Url: https://bugzilla.redhat.com/1124442
Change-Id: I8cbd88616ae156209deb3b4841fa6a67d93267f0
Signed-off-by: pkliczewski <piotr.kliczew...@gmail.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/EditHostModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NewHostModel.java
6 files changed, 22 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/42/31242/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
index 8eb7f31..e380cef 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsCommand.java
@@ -29,6 +29,7 @@
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
 import org.ovirt.engine.core.utils.transaction.TransactionSupport;
+import org.ovirt.engine.core.vdsbroker.ResourceManager;
 
 @NonTransactiveCommandAttribute(forceCompensation = true)
 public class UpdateVdsCommand<T extends UpdateVdsActionParameters>  extends 
VdsCommand<T>  implements RenamedEntityInfoProvider{
@@ -115,6 +116,9 @@
                     returnValue =
                             
validateNetworkProviderProperties(getParameters().getNetworkProviderId(),
                                     getParameters().getNetworkMappings());
+                } else if (getParameters().getVdsStaticData().getProtocol() != 
_oldVds.getProtocol()
+                        && _oldVds.getStatus() != VDSStatus.Maintenance) {
+                    
addCanDoActionMessage(VdcBllMessages.VDS_STATUS_NOT_VALID_FOR_UPDATE);
                 } else {
                     returnValue = true;
                 }
@@ -191,6 +195,10 @@
             }
         }
 
+        if (_oldVds.getProtocol() != 
getParameters().getVdsStaticData().getProtocol()) {
+            
ResourceManager.getInstance().reestablishConnection(_oldVds.getId());
+        }
+
         // set clusters network to be operational (if needed)
         if (_oldVds.getStatus() == VDSStatus.Up) {
             List<NetworkCluster> networkClusters = DbFacade.getInstance()
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
index 1aa1c52..1f544ff 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
@@ -382,7 +382,7 @@
             if (incoming.isSetOverrideIptables()) {
                 
updateParams.setOverrideFirewall(incoming.isOverrideIptables());
             }
-            // Update of Transport protocol not supported
+
             updateParams = (UpdateVdsActionParameters) getMapper
                     (Host.class, 
VdsOperationActionParameters.class).map(incoming, 
(VdsOperationActionParameters) updateParams);
             return updateParams;
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
index da36adf..46b1ccc 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
@@ -179,6 +179,12 @@
         return EjbUtils.findBean(BeanType.VDS_EVENT_LISTENER, 
BeanProxyType.LOCAL);
     }
 
+    public void reestablishConnection(Guid vdsId) {
+        VDS vds = DbFacade.getInstance().getVdsDao().get(vdsId);
+        RemoveVds(vds.getId());
+        AddVds(vds, false);
+    }
+
     public void AddVds(VDS vds, boolean isInternal) {
         VdsManager vdsManager = VdsManager.buildVdsManager(vds);
         if (isInternal) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/EditHostModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/EditHostModel.java
index b00ab3e..511cd41 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/EditHostModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/EditHostModel.java
@@ -82,7 +82,10 @@
     }
 
     @Override
-    protected boolean showTransportProperties() {
+    protected boolean showTransportProperties(VDS vds) {
+        if (VDSStatus.Maintenance.equals(vds.getStatus())) {
+            return true;
+        }
         return false;
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
index fa3a748..dc2039d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostModel.java
@@ -1756,6 +1756,7 @@
         setHostId(vds.getId());
         getOverrideIpTables().setIsAvailable(showInstallationProperties());
         getProtocol().setEntity(VdsProtocol.STOMP == vds.getProtocol());
+        getProtocol().setIsAvailable(showTransportProperties(vds));
         setSpmPriorityValue(vds.getVdsSpmPriority());
         setOriginalName(vds.getName());
         getName().setEntity(vds.getName());
@@ -1881,7 +1882,7 @@
 
     protected abstract boolean showInstallationProperties();
 
-    protected abstract boolean showTransportProperties();
+    protected abstract boolean showTransportProperties(VDS vds);
 
     public abstract boolean showExternalProviderPanel();
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NewHostModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NewHostModel.java
index a286807..d1b53a4 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NewHostModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NewHostModel.java
@@ -224,7 +224,7 @@
     }
 
     @Override
-    protected boolean showTransportProperties() {
+    protected boolean showTransportProperties(VDS vds) {
         return true;
     }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8cbd88616ae156209deb3b4841fa6a67d93267f0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczew...@gmail.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to