mirror of https://github.com/apache/cloudstack.git
backport of CLOUDSTACK-8197 create MinVRVersion config item
Conflicts: api/src/com/cloud/network/VirtualNetworkApplianceService.java engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com> This closes #244
This commit is contained in:
parent
9e3c7d309a
commit
06de2d6292
|
|
@ -68,6 +68,4 @@ public interface VirtualNetworkApplianceService {
|
|||
VirtualRouter findRouter(long routerId);
|
||||
|
||||
List<Long> upgradeRouterTemplate(UpgradeRouterTemplateCmd cmd);
|
||||
|
||||
public static final String MinVRVersion = "4.5.0";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.5.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",
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ import org.apache.cloudstack.engine.cloud.entity.api.db.dao.VMNetworkMapDao;
|
|||
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||
import org.apache.cloudstack.framework.config.ConfigDepot;
|
||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||
import org.apache.cloudstack.framework.config.ConfigKey.Scope;
|
||||
import org.apache.cloudstack.framework.config.Configurable;
|
||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||
import org.apache.cloudstack.framework.messagebus.MessageBus;
|
||||
|
|
@ -3328,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};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -3792,7 +3792,7 @@ VirtualMachineGuru, Listener, Configurable, StateListener<State, VirtualMachine.
|
|||
protected boolean sendCommandsToRouter(final VirtualRouter router, final Commands cmds) throws AgentUnavailableException {
|
||||
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 : " + MinVRVersion);
|
||||
+ ", minimal required version : " + NetworkOrchestrationService.MinVRVersion.valueIn(router.getDataCenterId()));
|
||||
throw new CloudRuntimeException("Unable to send command. Upgrade in progress. Please contact administrator.");
|
||||
}
|
||||
Answer[] answers = null;
|
||||
|
|
@ -4427,8 +4427,10 @@ VirtualMachineGuru, Listener, Configurable, StateListener<State, VirtualMachine.
|
|||
if(router.getTemplateVersion() == null){
|
||||
return false;
|
||||
}
|
||||
long dcid = router.getDataCenterId();
|
||||
final String dcVersion = NetworkOrchestrationService.MinVRVersion.valueIn(dcid);
|
||||
final String trimmedVersion = Version.trimRouterVersion(router.getTemplateVersion());
|
||||
return (Version.compare(trimmedVersion, MinVRVersion) >= 0);
|
||||
return (Version.compare(trimmedVersion, dcVersion) >= 0);
|
||||
}
|
||||
|
||||
private List<Long> rebootRouters(List<DomainRouterVO> routers){
|
||||
|
|
|
|||
Loading…
Reference in New Issue