Repository: cloudstack Updated Branches: refs/heads/feature/systemvm-persistent-config [created] 8620642fd
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7e1f47e/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 b6b9b7b..bbf9139 100644 --- a/server/src/com/cloud/network/router/NetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/NetworkHelperImpl.java @@ -28,7 +28,6 @@ import javax.annotation.PostConstruct; import javax.ejb.Local; import javax.inject.Inject; -import com.cloud.user.dao.UserDao; import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.cloudstack.framework.config.ConfigKey; @@ -87,6 +86,7 @@ import com.cloud.storage.dao.VolumeDao; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.User; +import com.cloud.user.dao.UserDao; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.NetUtils; import com.cloud.vm.DomainRouterVO; @@ -121,8 +121,6 @@ public class NetworkHelperImpl implements NetworkHelper { @Inject protected NetworkModel _networkModel; @Inject - private VirtualMachineManager _itMgr; - @Inject private AccountManager _accountMgr; @Inject private Site2SiteVpnManager _s2sVpnMgr; @@ -131,8 +129,6 @@ public class NetworkHelperImpl implements NetworkHelper { @Inject private VolumeDao _volumeDao; @Inject - private ServiceOfferingDao _serviceOfferingDao; - @Inject private VMTemplateDao _templateDao; @Inject private ResourceManager _resourceMgr; @@ -141,8 +137,6 @@ public class NetworkHelperImpl implements NetworkHelper { @Inject protected IPAddressDao _ipAddressDao; @Inject - private IpAddressManager _ipAddrMgr; - @Inject private UserIpv6AddressDao _ipv6Dao; @Inject private RouterControlHelper _routerControlHelper; @@ -150,6 +144,11 @@ public class NetworkHelperImpl implements NetworkHelper { protected NetworkOrchestrationService _networkMgr; @Inject private UserDao _userDao; + protected ServiceOfferingDao _serviceOfferingDao; + @Inject + protected VirtualMachineManager _itMgr; + @Inject + protected IpAddressManager _ipAddrMgr; protected final Map<HypervisorType, ConfigKey<String>> hypervisorsMap = new HashMap<>(); @@ -287,7 +286,7 @@ public class NetworkHelperImpl implements NetworkHelper { if (router.getTemplateVersion() == null) { return false; } - long dcid = router.getDataCenterId(); + final long dcid = router.getDataCenterId(); final String trimmedVersion = Version.trimRouterVersion(router.getTemplateVersion()); return Version.compare(trimmedVersion, NetworkOrchestrationService.MinVRVersion.valueIn(dcid)) >= 0; } @@ -530,9 +529,7 @@ public class NetworkHelperImpl implements NetworkHelper { router.setRole(Role.VIRTUAL_ROUTER); router = _routerDao.persist(router); - final LinkedHashMap<Network, List<? extends NicProfile>> networks = createRouterNetworks(routerDeploymentDefinition); - - _itMgr.allocate(router.getInstanceName(), template, routerOffering, networks, routerDeploymentDefinition.getPlan(), null); + reallocateRouterNetworks(routerDeploymentDefinition, router, template, null); router = _routerDao.findById(router.getId()); } catch (final InsufficientCapacityException ex) { if (allocateRetry < 2 && iter.hasNext()) { @@ -644,13 +641,66 @@ public class NetworkHelperImpl implements NetworkHelper { } @Override - public LinkedHashMap<Network, List<? extends NicProfile>> createRouterNetworks(final RouterDeploymentDefinition routerDeploymentDefinition) + public LinkedHashMap<Network, List<? extends NicProfile>> configureDefaultNics(final RouterDeploymentDefinition routerDeploymentDefinition) throws ConcurrentOperationException, InsufficientAddressCapacityException { + + final LinkedHashMap<Network, List<? extends NicProfile>> networks = configureGuestNic(routerDeploymentDefinition); + + // 2) Control network + s_logger.debug("Adding nic for Virtual Router in Control network "); + final List<? extends NetworkOffering> offerings = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork); + final NetworkOffering controlOffering = offerings.get(0); + final Network controlConfig = _networkMgr.setupNetwork(s_systemAccount, controlOffering, routerDeploymentDefinition.getPlan(), null, null, false).get(0); + networks.put(controlConfig, new ArrayList<NicProfile>()); + // 3) Public network + if (routerDeploymentDefinition.isPublicNetwork()) { + s_logger.debug("Adding nic for Virtual Router in Public network "); + // if source nat service is supported by the network, get the source + // nat ip address + final NicProfile defaultNic = new NicProfile(); + defaultNic.setDefaultNic(true); + final PublicIp sourceNatIp = routerDeploymentDefinition.getSourceNatIP(); + defaultNic.setIp4Address(sourceNatIp.getAddress().addr()); + defaultNic.setGateway(sourceNatIp.getGateway()); + defaultNic.setNetmask(sourceNatIp.getNetmask()); + defaultNic.setMacAddress(sourceNatIp.getMacAddress()); + // get broadcast from public network + final Network pubNet = _networkDao.findById(sourceNatIp.getNetworkId()); + if (pubNet.getBroadcastDomainType() == BroadcastDomainType.Vxlan) { + defaultNic.setBroadcastType(BroadcastDomainType.Vxlan); + defaultNic.setBroadcastUri(BroadcastDomainType.Vxlan.toUri(sourceNatIp.getVlanTag())); + defaultNic.setIsolationUri(BroadcastDomainType.Vxlan.toUri(sourceNatIp.getVlanTag())); + } else { + defaultNic.setBroadcastType(BroadcastDomainType.Vlan); + defaultNic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(sourceNatIp.getVlanTag())); + defaultNic.setIsolationUri(IsolationType.Vlan.toUri(sourceNatIp.getVlanTag())); + } + //If guest nic has already been addedd we will have 2 devices in the list. + if (networks.size() > 1) { + defaultNic.setDeviceId(2); + } + final NetworkOffering publicOffering = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0); + final List<? extends Network> publicNetworks = _networkMgr.setupNetwork(s_systemAccount, publicOffering, routerDeploymentDefinition.getPlan(), null, null, false); + final String publicIp = defaultNic.getIp4Address(); + // We want to use the identical MAC address for RvR on public + // interface if possible + final NicVO peerNic = _nicDao.findByIp4AddressAndNetworkId(publicIp, publicNetworks.get(0).getId()); + if (peerNic != null) { + s_logger.info("Use same MAC as previous RvR, the MAC is " + peerNic.getMacAddress()); + defaultNic.setMacAddress(peerNic.getMacAddress()); + } + networks.put(publicNetworks.get(0), new ArrayList<NicProfile>(Arrays.asList(defaultNic))); + } + + return networks; + } + + @Override + public LinkedHashMap<Network, List<? extends NicProfile>> configureGuestNic(final RouterDeploymentDefinition routerDeploymentDefinition) throws ConcurrentOperationException, InsufficientAddressCapacityException { // Form networks final LinkedHashMap<Network, List<? extends NicProfile>> networks = new LinkedHashMap<Network, List<? extends NicProfile>>(3); // 1) Guest network - boolean hasGuestNetwork = false; final Network guestNetwork = routerDeploymentDefinition.getGuestNetwork(); if (guestNetwork != null) { @@ -710,55 +760,18 @@ public class NetworkHelperImpl implements NetworkHelper { } networks.put(guestNetwork, new ArrayList<NicProfile>(Arrays.asList(gatewayNic))); - hasGuestNetwork = true; } + return networks; + } - // 2) Control network - s_logger.debug("Adding nic for Virtual Router in Control network "); - final List<? extends NetworkOffering> offerings = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork); - final NetworkOffering controlOffering = offerings.get(0); - final Network controlConfig = _networkMgr.setupNetwork(s_systemAccount, controlOffering, routerDeploymentDefinition.getPlan(), null, null, false).get(0); - networks.put(controlConfig, new ArrayList<NicProfile>()); - // 3) Public network - if (routerDeploymentDefinition.isPublicNetwork()) { - s_logger.debug("Adding nic for Virtual Router in Public network "); - // if source nat service is supported by the network, get the source - // nat ip address - final NicProfile defaultNic = new NicProfile(); - defaultNic.setDefaultNic(true); - final PublicIp sourceNatIp = routerDeploymentDefinition.getSourceNatIP(); - defaultNic.setIp4Address(sourceNatIp.getAddress().addr()); - defaultNic.setGateway(sourceNatIp.getGateway()); - defaultNic.setNetmask(sourceNatIp.getNetmask()); - defaultNic.setMacAddress(sourceNatIp.getMacAddress()); - // get broadcast from public network - final Network pubNet = _networkDao.findById(sourceNatIp.getNetworkId()); - if (pubNet.getBroadcastDomainType() == BroadcastDomainType.Vxlan) { - defaultNic.setBroadcastType(BroadcastDomainType.Vxlan); - defaultNic.setBroadcastUri(BroadcastDomainType.Vxlan.toUri(sourceNatIp.getVlanTag())); - defaultNic.setIsolationUri(BroadcastDomainType.Vxlan.toUri(sourceNatIp.getVlanTag())); - } else { - defaultNic.setBroadcastType(BroadcastDomainType.Vlan); - defaultNic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(sourceNatIp.getVlanTag())); - defaultNic.setIsolationUri(IsolationType.Vlan.toUri(sourceNatIp.getVlanTag())); - } - if (hasGuestNetwork) { - defaultNic.setDeviceId(2); - } - final NetworkOffering publicOffering = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0); - final List<? extends Network> publicNetworks = _networkMgr.setupNetwork(s_systemAccount, publicOffering, routerDeploymentDefinition.getPlan(), null, null, false); - final String publicIp = defaultNic.getIp4Address(); - // We want to use the identical MAC address for RvR on public - // interface if possible - final NicVO peerNic = _nicDao.findByIp4AddressAndNetworkId(publicIp, publicNetworks.get(0).getId()); - if (peerNic != null) { - s_logger.info("Use same MAC as previous RvR, the MAC is " + peerNic.getMacAddress()); - defaultNic.setMacAddress(peerNic.getMacAddress()); - } - networks.put(publicNetworks.get(0), new ArrayList<NicProfile>(Arrays.asList(defaultNic))); - } + @Override + public void reallocateRouterNetworks(final RouterDeploymentDefinition routerDeploymentDefinition, final VirtualRouter router, final VMTemplateVO template, final HypervisorType hType) + throws ConcurrentOperationException, InsufficientCapacityException { + final ServiceOfferingVO routerOffering = _serviceOfferingDao.findById(routerDeploymentDefinition.getServiceOfferingId()); - return networks; + final LinkedHashMap<Network, List<? extends NicProfile>> networks = configureDefaultNics(routerDeploymentDefinition); + + _itMgr.allocate(router.getInstanceName(), template, routerOffering, networks, routerDeploymentDefinition.getPlan(), hType); } public static void setSystemAccount(final Account systemAccount) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7e1f47e/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 462e1ae..278164b 100644 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -2632,8 +2632,11 @@ Configurable, StateListener<State, VirtualMachine.Event, VirtualMachine> { protected boolean aggregationExecution(final AggregationControlCommand.Action action, final Network network, final List<DomainRouterVO> routers) throws AgentUnavailableException, ResourceUnavailableException { for (final DomainRouterVO router : routers) { - final AggregationControlCommand cmd = new AggregationControlCommand(action, router.getInstanceName(), _routerControlHelper.getRouterControlIp(router.getId()), _routerControlHelper.getRouterIpInNetwork( - network.getId(), router.getId())); + + final String routerControlIp = _routerControlHelper.getRouterControlIp(router.getId()); + final String routerIpInNetwork = _routerControlHelper.getRouterIpInNetwork(network.getId(), router.getId()); + + final AggregationControlCommand cmd = new AggregationControlCommand(action, router.getInstanceName(), routerControlIp, routerIpInNetwork); final Commands cmds = new Commands(cmd); if (!_nwHelper.sendCommandsToRouter(router, cmds)) { return false; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7e1f47e/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java b/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java index 58537d1..069937d 100644 --- a/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java +++ b/server/src/com/cloud/network/router/VpcNetworkHelperImpl.java @@ -32,7 +32,7 @@ import org.cloud.network.router.deployment.RouterDeploymentDefinition; import com.cloud.dc.dao.VlanDao; import com.cloud.exception.ConcurrentOperationException; -import com.cloud.exception.InsufficientAddressCapacityException; +import com.cloud.exception.InsufficientCapacityException; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.network.IpAddress; import com.cloud.network.Network; @@ -43,6 +43,8 @@ import com.cloud.network.dao.IPAddressVO; import com.cloud.network.vpc.PrivateGateway; import com.cloud.network.vpc.VpcManager; import com.cloud.offering.NetworkOffering; +import com.cloud.service.ServiceOfferingVO; +import com.cloud.storage.VMTemplateVO; import com.cloud.vm.NicProfile; @@ -76,37 +78,34 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl { } @Override - public LinkedHashMap<Network, List<? extends NicProfile>> createRouterNetworks( - final RouterDeploymentDefinition vpcRouterDeploymentDefinition) - throws ConcurrentOperationException, InsufficientAddressCapacityException { + public void reallocateRouterNetworks(final RouterDeploymentDefinition vpcRouterDeploymentDefinition, final VirtualRouter router, final VMTemplateVO template, final HypervisorType hType) + throws ConcurrentOperationException, InsufficientCapacityException { final TreeSet<String> publicVlans = new TreeSet<String>(); publicVlans.add(vpcRouterDeploymentDefinition.getSourceNatIP().getVlanTag()); //1) allocate nic for control and source nat public ip - final LinkedHashMap<Network, List<? extends NicProfile>> networks = - super.createRouterNetworks(vpcRouterDeploymentDefinition); - + final LinkedHashMap<Network, List<? extends NicProfile>> networks = configureDefaultNics(vpcRouterDeploymentDefinition); final Long vpcId = vpcRouterDeploymentDefinition.getVpc().getId(); //2) allocate nic for private gateways if needed final List<PrivateGateway> privateGateways = vpcMgr.getVpcPrivateGateways(vpcId); if (privateGateways != null && !privateGateways.isEmpty()) { - for (PrivateGateway privateGateway : privateGateways) { - NicProfile privateNic = nicProfileHelper.createPrivateNicProfileForGateway(privateGateway); - Network privateNetwork = _networkModel.getNetwork(privateGateway.getNetworkId()); + for (final PrivateGateway privateGateway : privateGateways) { + final NicProfile privateNic = nicProfileHelper.createPrivateNicProfileForGateway(privateGateway); + final Network privateNetwork = _networkModel.getNetwork(privateGateway.getNetworkId()); networks.put(privateNetwork, new ArrayList<NicProfile>(Arrays.asList(privateNic))); } } //3) allocate nic for guest gateway if needed - List<? extends Network> guestNetworks = vpcMgr.getVpcNetworks(vpcId); - for (Network guestNetwork : guestNetworks) { + final List<? extends Network> guestNetworks = vpcMgr.getVpcNetworks(vpcId); + for (final Network guestNetwork : guestNetworks) { if (_networkModel.isPrivateGateway(guestNetwork.getId())) { continue; } if (guestNetwork.getState() == Network.State.Implemented || guestNetwork.getState() == Network.State.Setup) { - NicProfile guestNic = nicProfileHelper.createGuestNicProfileForVpcRouter(guestNetwork); + final NicProfile guestNic = nicProfileHelper.createGuestNicProfileForVpcRouter(guestNetwork); networks.put(guestNetwork, new ArrayList<NicProfile>(Arrays.asList(guestNic))); } } @@ -115,12 +114,12 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl { final List<IPAddressVO> ips = _ipAddressDao.listByAssociatedVpc(vpcId, false); final List<NicProfile> publicNics = new ArrayList<NicProfile>(); Network publicNetwork = null; - for (IPAddressVO ip : ips) { - PublicIp publicIp = PublicIp.createFromAddrAndVlan(ip, _vlanDao.findById(ip.getVlanId())); + for (final IPAddressVO ip : ips) { + final PublicIp publicIp = PublicIp.createFromAddrAndVlan(ip, _vlanDao.findById(ip.getVlanId())); if ((ip.getState() == IpAddress.State.Allocated || ip.getState() == IpAddress.State.Allocating) && vpcMgr.isIpAllocatedToVpc(ip) && !publicVlans.contains(publicIp.getVlanTag())) { s_logger.debug("Allocating nic for router in vlan " + publicIp.getVlanTag()); - NicProfile publicNic = new NicProfile(); + final NicProfile publicNic = new NicProfile(); publicNic.setDefaultNic(false); publicNic.setIp4Address(publicIp.getAddress().addr()); publicNic.setGateway(publicIp.getGateway()); @@ -129,9 +128,9 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl { publicNic.setBroadcastType(BroadcastDomainType.Vlan); publicNic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(publicIp.getVlanTag())); publicNic.setIsolationUri(IsolationType.Vlan.toUri(publicIp.getVlanTag())); - NetworkOffering publicOffering = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0); + final NetworkOffering publicOffering = _networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0); if (publicNetwork == null) { - List<? extends Network> publicNetworks = _networkMgr.setupNetwork(s_systemAccount, publicOffering, vpcRouterDeploymentDefinition.getPlan(), null, null, false); + final List<? extends Network> publicNetworks = _networkMgr.setupNetwork(s_systemAccount, publicOffering, vpcRouterDeploymentDefinition.getPlan(), null, null, false); publicNetwork = publicNetworks.get(0); } publicNics.add(publicNic); @@ -141,6 +140,7 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl { if (publicNetwork != null) { if (networks.get(publicNetwork) != null) { @SuppressWarnings("unchecked") + final List<NicProfile> publicNicProfiles = (List<NicProfile>)networks.get(publicNetwork); publicNicProfiles.addAll(publicNics); networks.put(publicNetwork, publicNicProfiles); @@ -149,6 +149,8 @@ public class VpcNetworkHelperImpl extends NetworkHelperImpl { } } - return networks; + final ServiceOfferingVO routerOffering = _serviceOfferingDao.findById(vpcRouterDeploymentDefinition.getServiceOfferingId()); + + _itMgr.allocate(router.getInstanceName(), template, routerOffering, networks, vpcRouterDeploymentDefinition.getPlan(), hType); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7e1f47e/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java ---------------------------------------------------------------------- diff --git a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java index 2ad9483..33ed9d0 100644 --- a/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java +++ b/server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java @@ -194,7 +194,7 @@ public class RouterDeploymentDefinitionBuilder { public RouterDeploymentDefinition build() { RouterDeploymentDefinition routerDeploymentDefinition = null; if (vpc != null) { - routerDeploymentDefinition = new VpcRouterDeploymentDefinition(vpc, dest, owner, params); + routerDeploymentDefinition = new VpcRouterDeploymentDefinition(guestNetwork, vpc, dest, owner, params); } else { routerDeploymentDefinition = new RouterDeploymentDefinition(guestNetwork, dest, owner, params); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7e1f47e/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java ---------------------------------------------------------------------- diff --git a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java index 8452d7f..514c37c 100644 --- a/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java +++ b/server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java @@ -29,6 +29,7 @@ import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.ResourceUnavailableException; +import com.cloud.network.Network; import com.cloud.network.PhysicalNetwork; import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.VirtualRouterProvider.Type; @@ -53,10 +54,10 @@ public class VpcRouterDeploymentDefinition extends RouterDeploymentDefinition { protected Vpc vpc; - protected VpcRouterDeploymentDefinition(final Vpc vpc, final DeployDestination dest, final Account owner, + protected VpcRouterDeploymentDefinition(final Network guestNetwork, final Vpc vpc, final DeployDestination dest, final Account owner, final Map<Param, Object> params) { - super(null, dest, owner, params); + super(guestNetwork, dest, owner, params); this.vpc = vpc; } @@ -197,7 +198,7 @@ public class VpcRouterDeploymentDefinition extends RouterDeploymentDefinition { } @Override - protected void generateDeploymentPlan() { + public void generateDeploymentPlan() { plan = new DataCenterDeployment(dest.getDataCenter().getId()); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7e1f47e/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDhcp.py ---------------------------------------------------------------------- diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDhcp.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDhcp.py index 33452e0..173be47 100644 --- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDhcp.py +++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsDhcp.py @@ -111,7 +111,7 @@ class CsDhcp(CsDataBag): for o in leases: if o['del']: - cmd = "dhcp_release eth%s %s %s" % (o.device, o.ip, o.mac) + cmd = "dhcp_release eth%s %s %s" % (o['device'], o['ip'], o['mac']) logging.info(cmd) CsHelper.execute(cmd) except IOError: http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7e1f47e/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ ---------------------------------------------------------------------- diff --git a/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ b/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ index 34d233c..a79f207 100644 --- a/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ +++ b/systemvm/patches/debian/config/opt/cloud/templates/keepalived.conf.templ @@ -52,7 +52,7 @@ vrrp_instance inside_network { } !That's the correct path of the master.py file. - notify_master "/root/cloud_scripts/opt/cloud/bin/master.py --master" - notify_backup "/root/cloud_scripts/opt/cloud/bin/master.py --backup" - notify_fault "/root/cloud_scripts/opt/cloud/bin/master.py --fault" + !notify_master "/opt/cloud/bin/master.py --master" + !notify_backup "/opt/cloud/bin/master.py --backup" + !notify_fault "/opt/cloud/bin/master.py --fault" }
