Repository: cloudstack
Updated Branches:
  refs/heads/feature/minvrversion 552f2ae60 -> b586439c9


CLOUDSTACK-8197 create MinVRVersion config item


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b586439c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b586439c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b586439c

Branch: refs/heads/feature/minvrversion
Commit: b586439c9f20539c914693c5baef8d90877a34a3
Parents: 552f2ae
Author: Daan Hoogland <[email protected]>
Authored: Tue Feb 3 13:18:15 2015 +0100
Committer: Daan Hoogland <[email protected]>
Committed: Tue Feb 3 13:18:15 2015 +0100

----------------------------------------------------------------------
 .../com/cloud/network/VirtualNetworkApplianceService.java   | 2 --
 .../orchestration/service/NetworkOrchestrationService.java  | 7 ++++++-
 .../engine/orchestration/NetworkOrchestrator.java           | 9 ++++++---
 .../src/com/cloud/agent/manager/MockVmManagerImpl.java      | 5 ++---
 .../com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java    | 9 ++++-----
 server/src/com/cloud/network/router/NetworkHelperImpl.java  | 6 +++---
 6 files changed, 21 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b586439c/api/src/com/cloud/network/VirtualNetworkApplianceService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/VirtualNetworkApplianceService.java 
b/api/src/com/cloud/network/VirtualNetworkApplianceService.java
index 2984e3f..815ae4d 100644
--- a/api/src/com/cloud/network/VirtualNetworkApplianceService.java
+++ b/api/src/com/cloud/network/VirtualNetworkApplianceService.java
@@ -68,6 +68,4 @@ public interface VirtualNetworkApplianceService {
     VirtualRouter findRouter(long routerId);
 
     List<Long> upgradeRouterTemplate(UpgradeRouterTemplateCmd cmd);
-
-    public static final String MinVRVersion = "4.5.0";
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b586439c/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
----------------------------------------------------------------------
diff --git 
a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
 
b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
index 5412ee4..b71aa96 100644
--- 
a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
+++ 
b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
@@ -22,6 +22,7 @@ import java.util.Map;
 
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 import org.apache.cloudstack.framework.config.ConfigKey;
+import org.apache.cloudstack.framework.config.ConfigKey.Scope;
 
 import com.cloud.deploy.DataCenterDeployment;
 import com.cloud.deploy.DeployDestination;
@@ -62,9 +63,13 @@ public interface NetworkOrchestrationService {
     static final String NetworkLockTimeoutCK = "network.lock.timeout";
     static final String GuestDomainSuffixCK = "guest.domain.suffix";
     static final String NetworkThrottlingRateCK = "network.throttling.rate";
+    static final String MinVRVersionCK = "minreq.sysvmtemplate.version";
+
+    static final ConfigKey<String> MinVRVersion = new 
ConfigKey<String>(String.class, MinVRVersionCK, "Advanced", "4.6.0",
+            "What version should the Virtual Routers report", true, 
ConfigKey.Scope.Zone, null);
 
     static final ConfigKey<Integer> NetworkLockTimeout = new 
ConfigKey<Integer>(Integer.class, NetworkLockTimeoutCK, "Network", "600",
-        "Lock wait timeout (seconds) while implementing network", true);
+        "Lock wait timeout (seconds) while implementing network", true, 
Scope.Global, null);
     static final ConfigKey<String> GuestDomainSuffix = new 
ConfigKey<String>(String.class, GuestDomainSuffixCK, "Network", 
"cloud.internal",
         "Default domain name for vms inside virtualized networks fronted by 
router", true, ConfigKey.Scope.Zone, null);
     static final ConfigKey<Integer> NetworkThrottlingRate = new 
ConfigKey<Integer>("Network", Integer.class, NetworkThrottlingRateCK, "200",

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b586439c/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
----------------------------------------------------------------------
diff --git 
a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
 
b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
index 0c7b3ed..ead4682 100644
--- 
a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
+++ 
b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
@@ -38,6 +38,7 @@ import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
 import com.cloud.network.Networks;
+
 import org.apache.log4j.Logger;
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 import org.apache.cloudstack.context.CallContext;
@@ -47,6 +48,7 @@ import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationSe
 import org.apache.cloudstack.framework.config.ConfigDepot;
 import org.apache.cloudstack.framework.config.ConfigKey;
 import org.apache.cloudstack.framework.config.Configurable;
+import org.apache.cloudstack.framework.config.ConfigKey.Scope;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.framework.messagebus.MessageBus;
 import org.apache.cloudstack.framework.messagebus.PublishScope;
@@ -3327,12 +3329,13 @@ public class NetworkOrchestrator extends ManagerBase 
implements NetworkOrchestra
     }
 
     public static final ConfigKey<Integer> NetworkGcWait = new 
ConfigKey<Integer>(Integer.class, "network.gc.wait", "Advanced", "600",
-            "Time (in seconds) to wait before shutting down a network that's 
not in used", false);
+            "Time (in seconds) to wait before shutting down a network that's 
not in used", false, Scope.Global, null);
     public static final ConfigKey<Integer> NetworkGcInterval = new 
ConfigKey<Integer>(Integer.class, "network.gc.interval", "Advanced", "600",
-            "Seconds to wait before checking for networks to shutdown", true);
+            "Seconds to wait before checking for networks to shutdown", true, 
Scope.Global, null);
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {NetworkGcWait, NetworkGcInterval, 
NetworkLockTimeout, GuestDomainSuffix, NetworkThrottlingRate};
+        return new ConfigKey<?>[] {NetworkGcWait, NetworkGcInterval, 
NetworkLockTimeout, GuestDomainSuffix, NetworkThrottlingRate, MinVRVersion};
     }
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b586439c/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java
 
b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java
index 00cd108..f77e12b 100644
--- 
a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java
+++ 
b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java
@@ -26,8 +26,7 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
-import com.cloud.network.VirtualNetworkApplianceService;
-
+import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -551,7 +550,7 @@ public class MockVmManagerImpl extends ManagerBase 
implements MockVmManager {
 
     @Override
     public GetDomRVersionAnswer getDomRVersion(GetDomRVersionCmd cmd) {
-        String template_version = "CloudStack Release "+ 
VirtualNetworkApplianceService.MinVRVersion.toString();
+        String template_version = "CloudStack Release "+ 
NetworkOrchestrationService.MinVRVersion.defaultValue();
         return new GetDomRVersionAnswer(cmd, null, template_version, 
UUID.randomUUID().toString());
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b586439c/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java 
b/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
index b054b0e..6f7ef43 100644
--- a/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/DomainRouterJoinDaoImpl.java
@@ -22,18 +22,17 @@ import java.util.List;
 import javax.ejb.Local;
 import javax.inject.Inject;
 
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
 import org.apache.cloudstack.api.response.DomainRouterResponse;
 import org.apache.cloudstack.api.response.NicResponse;
+import 
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
 
 import com.cloud.api.ApiResponseHelper;
 import com.cloud.api.query.vo.DomainRouterJoinVO;
 import com.cloud.maint.Version;
 import com.cloud.network.Networks.TrafficType;
-import com.cloud.network.VirtualNetworkApplianceService;
 import com.cloud.network.router.VirtualRouter;
 import com.cloud.network.router.VirtualRouter.Role;
 import com.cloud.user.Account;
@@ -83,7 +82,7 @@ public class DomainRouterJoinDaoImpl extends 
GenericDaoBase<DomainRouterJoinVO,
         if (router.getTemplateVersion() != null) {
             String routerVersion = 
Version.trimRouterVersion(router.getTemplateVersion());
             routerResponse.setVersion(routerVersion);
-            routerResponse.setRequiresUpgrade((Version.compare(routerVersion, 
VirtualNetworkApplianceService.MinVRVersion) < 0));
+            routerResponse.setRequiresUpgrade((Version.compare(routerVersion, 
NetworkOrchestrationService.MinVRVersion.valueIn(router.getDataCenterId())) < 
0));
         } else {
             routerResponse.setVersion("UNKNOWN");
             routerResponse.setRequiresUpgrade(true);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b586439c/server/src/com/cloud/network/router/NetworkHelperImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/NetworkHelperImpl.java 
b/server/src/com/cloud/network/router/NetworkHelperImpl.java
index 968251c..eb6a609 100644
--- a/server/src/com/cloud/network/router/NetworkHelperImpl.java
+++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java
@@ -66,7 +66,6 @@ import com.cloud.network.Network;
 import com.cloud.network.NetworkModel;
 import com.cloud.network.Networks.BroadcastDomainType;
 import com.cloud.network.Networks.IsolationType;
-import com.cloud.network.VirtualNetworkApplianceService;
 import com.cloud.network.addr.PublicIp;
 import com.cloud.network.dao.IPAddressDao;
 import com.cloud.network.dao.NetworkDao;
@@ -163,7 +162,7 @@ public class NetworkHelperImpl implements NetworkHelper {
     public boolean sendCommandsToRouter(final VirtualRouter router, final 
Commands cmds) throws AgentUnavailableException, ResourceUnavailableException {
         if (!checkRouterVersion(router)) {
             s_logger.debug("Router requires upgrade. Unable to send command to 
router:" + router.getId() + ", router template version : " + 
router.getTemplateVersion()
-                    + ", minimal required version : " + 
VirtualNetworkApplianceService.MinVRVersion);
+                    + ", minimal required version : " + 
NetworkOrchestrationService.MinVRVersion.valueIn(router.getDataCenterId()));
             throw new ResourceUnavailableException("Unable to send command. 
Router requires upgrade", VirtualRouter.class, router.getId());
         }
         Answer[] answers = null;
@@ -284,8 +283,9 @@ public class NetworkHelperImpl implements NetworkHelper {
         if (router.getTemplateVersion() == null) {
             return false;
         }
+        long dcid = router.getDataCenterId();
         final String trimmedVersion = 
Version.trimRouterVersion(router.getTemplateVersion());
-        return Version.compare(trimmedVersion, 
VirtualNetworkApplianceService.MinVRVersion) >= 0;
+        return Version.compare(trimmedVersion, 
NetworkOrchestrationService.MinVRVersion.valueIn(dcid)) >= 0;
     }
 
     protected DomainRouterVO start(DomainRouterVO router, final User user, 
final Account caller, final Map<Param, Object> params, final DeploymentPlan 
planToDeploy)

Reply via email to