This is an automated email from the ASF dual-hosted git repository. pearl11594 pushed a commit to branch netris-update-vpc-and-tier-names in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit bd4e652128c4a149fd8d59e3296d8a10ab95db7f Author: Nicolas Vazquez <nicovazque...@gmail.com> AuthorDate: Thu Feb 13 12:14:30 2025 -0300 Enable Autoscaling on Netris for CPU and memory (#51) * Enable Autoscaling on Netris for CPU and memory * Fix monitor autoscale group and cleanup * Rename autoscaling group method * Integrate Autoscaling by allowing to update LB rules * Refactor according to the SDK changes --- .../com/cloud/network/netris/NetrisService.java | 2 +- .../resources/META-INF/db/schema-41910to42000.sql | 4 +++ .../apache/cloudstack/resource/NetrisResource.java | 2 +- .../apache/cloudstack/service/NetrisApiClient.java | 2 +- .../cloudstack/service/NetrisApiClientImpl.java | 41 +++++++++++++--------- .../apache/cloudstack/service/NetrisElement.java | 18 +++++++++- .../cloudstack/service/NetrisServiceImpl.java | 2 +- .../com/cloud/network/as/AutoScaleManagerImpl.java | 14 ++++---- .../network/lb/LoadBalancingRulesManagerImpl.java | 1 + .../com/cloud/server/ConfigurationServerImpl.java | 31 ++++++++-------- .../cloud/network/as/AutoScaleManagerImplTest.java | 16 ++++----- .../cloudstack/service/NetrisServiceMockTest.java | 2 +- 12 files changed, 84 insertions(+), 51 deletions(-) diff --git a/api/src/main/java/com/cloud/network/netris/NetrisService.java b/api/src/main/java/com/cloud/network/netris/NetrisService.java index d386d4f8d58..43f94e0c6b7 100644 --- a/api/src/main/java/com/cloud/network/netris/NetrisService.java +++ b/api/src/main/java/com/cloud/network/netris/NetrisService.java @@ -55,6 +55,6 @@ public interface NetrisService { boolean releaseNatIp(long zoneId, String publicIp); - boolean createLbRule(NetrisNetworkRule rule); + boolean createOrUpdateLbRule(NetrisNetworkRule rule); boolean deleteLbRule(NetrisNetworkRule rule); } diff --git a/engine/schema/src/main/resources/META-INF/db/schema-41910to42000.sql b/engine/schema/src/main/resources/META-INF/db/schema-41910to42000.sql index 739c5644859..be98ec33d33 100644 --- a/engine/schema/src/main/resources/META-INF/db/schema-41910to42000.sql +++ b/engine/schema/src/main/resources/META-INF/db/schema-41910to42000.sql @@ -459,3 +459,7 @@ CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.static_routes', 'next_hop', 'varchar -- Add `for_router` to `user_ip_address` table CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.user_ip_address', 'for_router', 'tinyint(1) DEFAULT 0 COMMENT "True if the ip address is used by Domain Router to expose services"'); + +-- Add Netris Autoscaling rules +INSERT IGNORE INTO `cloud`.`counter` (uuid, provider, source, name, value, created) VALUES (UUID(), 'Netris', 'cpu', 'VM CPU - average percentage', 'vm.cpu.average.percentage', NOW()); +INSERT IGNORE INTO `cloud`.`counter` (uuid, provider, source, name, value, created) VALUES (UUID(), 'Netris', 'memory', 'VM Memory - average percentage', 'vm.memory.average.percentage', NOW()); diff --git a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/resource/NetrisResource.java b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/resource/NetrisResource.java index 5d4777d610c..2a02b5de1b4 100644 --- a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/resource/NetrisResource.java +++ b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/resource/NetrisResource.java @@ -359,7 +359,7 @@ public class NetrisResource implements ServerResource { } private Answer executeRequest(CreateOrUpdateNetrisLoadBalancerRuleCommand cmd) { - boolean result = netrisApiClient.createLbRule(cmd); + boolean result = netrisApiClient.createOrUpdateLbRule(cmd); if (!result) { return new NetrisAnswer(cmd, false, String.format("Failed to create Netris LB rule for %s: %s, " + "for private port: %s and public port: %s", getNetworkType(cmd.isVpc()), cmd.getName(), cmd.getPrivatePort(), cmd.getPublicPort(), cmd.getPublicPort())); diff --git a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClient.java b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClient.java index 91351bf21f7..5957805d22d 100644 --- a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClient.java +++ b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClient.java @@ -86,6 +86,6 @@ public interface NetrisApiClient { boolean addOrUpdateStaticRoute(AddOrUpdateNetrisStaticRouteCommand cmd); boolean deleteStaticRoute(DeleteNetrisStaticRouteCommand cmd); boolean releaseNatIp(ReleaseNatIpCommand cmd); - boolean createLbRule(CreateOrUpdateNetrisLoadBalancerRuleCommand cmd); + boolean createOrUpdateLbRule(CreateOrUpdateNetrisLoadBalancerRuleCommand cmd); boolean deleteLbRule(DeleteNetrisLoadBalancerRuleCommand cmd); } diff --git a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java index e49c7c5882a..0136a96cb79 100644 --- a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java +++ b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java @@ -56,11 +56,13 @@ import io.netris.model.IpTreeAllocationTenant; import io.netris.model.IpTreeSubnet; import io.netris.model.IpTreeSubnetSites; import io.netris.model.L4LBSite; +import io.netris.model.L4LbAddItem; +import io.netris.model.L4LbEditItem; import io.netris.model.L4LbTenant; import io.netris.model.L4LbVpc; import io.netris.model.L4LoadBalancerBackendItem; import io.netris.model.L4LoadBalancerItem; -import io.netris.model.L4lbAddItem; +import io.netris.model.L4lbAddOrUpdateItem; import io.netris.model.L4lbresBody; import io.netris.model.NatBodySiteSite; import io.netris.model.NatBodyVpcVpc; @@ -97,6 +99,7 @@ import io.netris.model.VnetResDeleteBody; import io.netris.model.VnetResListBody; import io.netris.model.VnetsBody; import io.netris.model.response.AuthResponse; +import io.netris.model.response.L4LbEditResponse; import io.netris.model.response.TenantResponse; import io.netris.model.response.TenantsResponse; import org.apache.cloudstack.agent.api.CreateNetrisACLCommand; @@ -116,6 +119,7 @@ import org.apache.cloudstack.agent.api.ReleaseNatIpCommand; import org.apache.cloudstack.agent.api.SetupNetrisPublicRangeCommand; import org.apache.cloudstack.resource.NetrisResourceObjectUtils; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -612,7 +616,7 @@ public class NetrisApiClientImpl implements NetrisApiClient { } @Override - public boolean createLbRule(CreateOrUpdateNetrisLoadBalancerRuleCommand cmd) { + public boolean createOrUpdateLbRule(CreateOrUpdateNetrisLoadBalancerRuleCommand cmd) { boolean isVpc = cmd.isVpc(); Long networkResourceId = cmd.getId(); String networkResourceName = cmd.getName(); @@ -641,16 +645,21 @@ public class NetrisApiClientImpl implements NetrisApiClient { if (Boolean.FALSE.equals(result)) { logger.warn("Could not find the Netris LB rule with name {}", lbName); } - if (!matchingLbId.isEmpty()) { - logger.warn("LB rule by name: {} already exists", lbName); - return true; - } - - L4lbAddItem l4lbAddItem = getL4LbRule(cmd, vpcResource, lbName, publicIp, lbBackends); + boolean updateRule = !matchingLbId.isEmpty(); + L4lbAddOrUpdateItem l4lbAddItem = getL4LbRule(cmd, vpcResource, lbName, publicIp, lbBackends, updateRule); L4LoadBalancerApi loadBalancerApi = apiClient.getApiStubForMethod(L4LoadBalancerApi.class); - ResAddEditBody response = loadBalancerApi.apiV2L4lbPost(l4lbAddItem); - if (Objects.isNull(response) || Boolean.FALSE.equals(response.isIsSuccess())) { - throw new CloudRuntimeException("Failed to create Netris LB rule"); + boolean success; + L4LbEditResponse editResponse = null; + ResAddEditBody createResponse = null; + if (updateRule) { + editResponse = loadBalancerApi.apiV2L4lbIdPut((L4LbEditItem) l4lbAddItem, matchingLbId.get(0).intValue()); + success = editResponse.isIsSuccess(); + } else { + createResponse = loadBalancerApi.apiV2L4lbPost((L4LbAddItem) l4lbAddItem); + success = createResponse.isIsSuccess(); + } + if (ObjectUtils.allNull(editResponse, createResponse) || Boolean.FALSE.equals(success)) { + throw new CloudRuntimeException(String.format("Failed to %s Netris LB rule", updateRule ? "update" : "create")); } } catch (ApiException e) { logAndThrowException("Failed to create Netris load balancer rule", e); @@ -658,9 +667,9 @@ public class NetrisApiClientImpl implements NetrisApiClient { return true; } - private L4lbAddItem getL4LbRule(CreateOrUpdateNetrisLoadBalancerRuleCommand cmd, VPCListing vpcResource, String lbName, - String publicIp, List<NetrisLbBackend> lbBackends) { - L4lbAddItem l4lbAddItem = new L4lbAddItem(); + private L4lbAddOrUpdateItem getL4LbRule(CreateOrUpdateNetrisLoadBalancerRuleCommand cmd, VPCListing vpcResource, String lbName, + String publicIp, List<NetrisLbBackend> lbBackends, boolean updateRule) { + L4lbAddOrUpdateItem l4lbAddItem = updateRule ? new L4LbEditItem() : new L4LbAddItem(); try { l4lbAddItem.setName(lbName); @@ -685,7 +694,7 @@ public class NetrisApiClientImpl implements NetrisApiClient { l4lbAddItem.setVpc(vpc); l4lbAddItem.setAutomatic(false); - l4lbAddItem.setIpFamily(NetUtils.isIpv4(publicIp) ? L4lbAddItem.IpFamilyEnum.IPv4 : L4lbAddItem.IpFamilyEnum.IPv6); + l4lbAddItem.setIpFamily(NetUtils.isIpv4(publicIp) ? L4lbAddOrUpdateItem.IpFamilyEnum.IPv4 : L4lbAddOrUpdateItem.IpFamilyEnum.IPv6); l4lbAddItem.setIp(publicIp); l4lbAddItem.setStatus("enable"); @@ -698,7 +707,7 @@ public class NetrisApiClientImpl implements NetrisApiClient { } l4lbAddItem.setBackend(backends); l4lbAddItem.setPort(Integer.valueOf(cmd.getPublicPort())); - l4lbAddItem.setHealthCheck(L4lbAddItem.HealthCheckEnum.NONE); + l4lbAddItem.setHealthCheck(L4lbAddOrUpdateItem.HealthCheckEnum.NONE); } catch (Exception e) { throw new CloudRuntimeException("Failed to create Netris load balancer rule", e); } diff --git a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisElement.java b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisElement.java index 12e7239a8ee..27f8c99fcd0 100644 --- a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisElement.java +++ b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisElement.java @@ -44,6 +44,7 @@ import com.cloud.network.PhysicalNetworkServiceProvider; import com.cloud.network.PublicIpAddress; import com.cloud.network.SDNProviderNetworkRule; import com.cloud.network.SDNProviderOpObject; +import com.cloud.network.as.AutoScaleCounter; import com.cloud.network.dao.IPAddressDao; import com.cloud.network.dao.IPAddressVO; import com.cloud.network.dao.LoadBalancerVMMapDao; @@ -91,6 +92,7 @@ import com.cloud.vm.ReservationContext; import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.dao.VMInstanceDao; +import com.google.gson.Gson; import org.apache.cloudstack.StartupNetrisCommand; import org.apache.cloudstack.api.ApiConstants; import com.cloud.network.netris.NetrisNetworkRule; @@ -147,6 +149,16 @@ public class NetrisElement extends AdapterBase implements DhcpServiceProvider, D private final Map<Network.Service, Map<Network.Capability, String>> capabilities = initCapabilities(); + protected static List<AutoScaleCounter> getNetrisAutoScaleCounters() { + AutoScaleCounter counter; + final List<AutoScaleCounter> counterList = new ArrayList<>(); + counter = new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Cpu); + counterList.add(counter); + counter = new AutoScaleCounter(AutoScaleCounter.AutoScaleCounterType.Memory); + counterList.add(counter); + return counterList; + } + private static Map<Network.Service, Map<Network.Capability, String>> initCapabilities() { Map<Network.Service, Map<Network.Capability, String>> capabilities = new HashMap<>(); @@ -166,6 +178,10 @@ public class NetrisElement extends AdapterBase implements DhcpServiceProvider, D lbCapabilities.put(Network.Capability.SupportedProtocols, "tcp, udp"); lbCapabilities.put(Network.Capability.SupportedStickinessMethods, VirtualRouterElement.getHAProxyStickinessCapability()); lbCapabilities.put(Network.Capability.LbSchemes, String.join(",", LoadBalancerContainer.Scheme.Internal.name(), LoadBalancerContainer.Scheme.Public.name())); + final Gson gson = new Gson(); + final String autoScaleCounterList = gson.toJson(getNetrisAutoScaleCounters()); + lbCapabilities.put(Network.Capability.AutoScaleCounters, autoScaleCounterList); + lbCapabilities.put(Network.Capability.VmAutoScaling, "true"); capabilities.put(Network.Service.Lb, lbCapabilities); capabilities.put(Network.Service.PortForwarding, null); @@ -750,7 +766,7 @@ public class NetrisElement extends AdapterBase implements DhcpServiceProvider, D .lbBackends(lbBackends) .build(); if (Arrays.asList(FirewallRule.State.Add, FirewallRule.State.Active).contains(loadBalancingRule.getState())) { - result &= netrisService.createLbRule(networkRule); + result &= netrisService.createOrUpdateLbRule(networkRule); } else if (loadBalancingRule.getState() == FirewallRule.State.Revoke) { result &= netrisService.deleteLbRule(networkRule); } diff --git a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java index 62064c1ac07..45e9147d632 100644 --- a/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java +++ b/plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisServiceImpl.java @@ -458,7 +458,7 @@ public class NetrisServiceImpl implements NetrisService, Configurable { } @Override - public boolean createLbRule(NetrisNetworkRule rule) { + public boolean createOrUpdateLbRule(NetrisNetworkRule rule) { SDNProviderNetworkRule baseRule = rule.getBaseRule(); CreateOrUpdateNetrisLoadBalancerRuleCommand cmd = new CreateOrUpdateNetrisLoadBalancerRuleCommand(baseRule.getZoneId(), baseRule.getAccountId(), baseRule.getDomainId(), baseRule.getNetworkResourceName(), baseRule.getNetworkResourceId(), baseRule.isVpcResource(), diff --git a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java index 5e7a4a0c4ef..83b747cf830 100644 --- a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java +++ b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java @@ -2257,8 +2257,9 @@ public class AutoScaleManagerImpl extends ManagerBase implements AutoScaleManage Network.Provider provider = getLoadBalancerServiceProvider(asGroup.getLoadBalancerId()); if (Network.Provider.Netscaler.equals(provider)) { checkNetScalerAsGroup(asGroup); - } else if (Network.Provider.VirtualRouter.equals(provider) || Network.Provider.VPCVirtualRouter.equals(provider)) { - checkVirtualRouterAsGroup(asGroup); + } else if (Network.Provider.VirtualRouter.equals(provider) || Network.Provider.VPCVirtualRouter.equals(provider) || + Network.Provider.Netris.equals(provider)) { + checkAutoscalingGroup(asGroup); } } } @@ -2633,7 +2634,7 @@ public class AutoScaleManagerImpl extends ManagerBase implements AutoScaleManage countersNumberMap.put(key, countersNumberMap.get(key) + 1); } - protected void monitorVirtualRouterAsGroup(AutoScaleVmGroupVO asGroup) { + protected void monitorAutoscalingGroup(AutoScaleVmGroupVO asGroup) { if (!checkAsGroupMaxAndMinMembers(asGroup)) { return; } @@ -2663,7 +2664,7 @@ public class AutoScaleManagerImpl extends ManagerBase implements AutoScaleManage } } - protected void checkVirtualRouterAsGroup(AutoScaleVmGroupVO asGroup) { + protected void checkAutoscalingGroup(AutoScaleVmGroupVO asGroup) { AutoScaleVmGroupTO groupTO = lbRulesMgr.toAutoScaleVmGroupTO(asGroup); Map<String, Double> countersMap = new HashMap<>(); @@ -3005,8 +3006,9 @@ public class AutoScaleManagerImpl extends ManagerBase implements AutoScaleManage Network.Provider provider = getLoadBalancerServiceProvider(asGroup.getLoadBalancerId()); if (Network.Provider.Netscaler.equals(provider)) { logger.debug("Skipping the monitoring on AutoScale VmGroup with Netscaler provider: " + asGroup); - } else if (Network.Provider.VirtualRouter.equals(provider) || Network.Provider.VPCVirtualRouter.equals(provider)) { - monitorVirtualRouterAsGroup(asGroup); + } else if (Network.Provider.VirtualRouter.equals(provider) || Network.Provider.VPCVirtualRouter.equals(provider) || + Network.Provider.Netris.equals(provider)) { + monitorAutoscalingGroup(asGroup); } } } catch (final Exception e) { diff --git a/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index bb1f4ec1b9b..c1ec91e69b9 100644 --- a/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -1005,6 +1005,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements return false; } if (provider.get(0) == Provider.Netscaler || provider.get(0) == Provider.F5BigIp || + provider.get(0) == Provider.Netris || provider.get(0) == Provider.VirtualRouter || provider.get(0) == Provider.VPCVirtualRouter) { return true; } diff --git a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java index 33b8db99bb3..dfc0e23f645 100644 --- a/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java +++ b/server/src/main/java/com/cloud/server/ConfigurationServerImpl.java @@ -1199,51 +1199,52 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio // Offering #9 - network offering for NSX provider - NATTED mode createAndPersistDefaultProviderOffering(NetworkOffering.DEFAULT_NAT_NSX_OFFERING, "Offering for NSX enabled networks - NAT mode", - NetworkOffering.NetworkMode.NATTED, false, true, Provider.Nsx); + NetworkOffering.NetworkMode.NATTED, false, true, false, Provider.Nsx); // Offering #10 - network offering for NSX provider - ROUTED mode createAndPersistDefaultProviderOffering(NetworkOffering.DEFAULT_ROUTED_NSX_OFFERING, "Offering for NSX enabled networks - ROUTED mode", - NetworkOffering.NetworkMode.ROUTED, false, true, Provider.Nsx); + NetworkOffering.NetworkMode.ROUTED, false, true, false, Provider.Nsx); // Offering #11 - network offering for NSX provider for VPCs - NATTED mode createAndPersistDefaultProviderOffering(NetworkOffering.DEFAULT_NAT_NSX_OFFERING_FOR_VPC, "Offering for NSX enabled networks on VPCs - NAT mode", - NetworkOffering.NetworkMode.NATTED, true, true, Provider.Nsx); + NetworkOffering.NetworkMode.NATTED, true, true, false, Provider.Nsx); // Offering #12 - network offering for NSX provider for VPCs - ROUTED mode createAndPersistDefaultProviderOffering(NetworkOffering.DEFAULT_ROUTED_NSX_OFFERING_FOR_VPC, "Offering for NSX enabled networks on VPCs - ROUTED mode", - NetworkOffering.NetworkMode.ROUTED, true, true, Provider.Nsx); + NetworkOffering.NetworkMode.ROUTED, true, true, false, Provider.Nsx); // Offering #13 - network offering for NSX provider for VPCs with Internal LB - NATTED mode createAndPersistDefaultProviderOffering(NetworkOffering.DEFAULT_NAT_NSX_OFFERING_FOR_VPC_WITH_ILB, "Offering for NSX enabled networks on VPCs with internal LB - NAT mode", - NetworkOffering.NetworkMode.NATTED, true, false, Provider.Nsx); + NetworkOffering.NetworkMode.NATTED, true, false, false, Provider.Nsx); // Offering #14 - network offering for Netris provider for VPCs - ROUTED mode createAndPersistDefaultProviderOffering(NetworkOffering.DEFAULT_ROUTED_NETRIS_OFFERING_FOR_VPC, "Offering for Netris enabled networks on VPCs - ROUTED mode", - NetworkOffering.NetworkMode.ROUTED, true, true, Provider.Netris); + NetworkOffering.NetworkMode.ROUTED, true, true, false, Provider.Netris); // Offering #15 - network offering for Netris provider for VPCs - NATTED mode createAndPersistDefaultProviderOffering(NetworkOffering.DEFAULT_NAT_NETRIS_OFFERING_FOR_VPC, "Offering for Netris enabled networks on VPCs - NAT mode", - NetworkOffering.NetworkMode.NATTED, true, true, Provider.Netris); + NetworkOffering.NetworkMode.NATTED, true, true, true, Provider.Netris); } }); } private void createAndPersistDefaultProviderOffering(String name, String displayText, NetworkOffering.NetworkMode networkMode, - boolean forVpc, boolean publicLB, Provider provider) { - NetworkOfferingVO defaultNatProviderNetworkOffering = + boolean forVpc, boolean publicLB, boolean supportVmAutoscaling, Provider provider) { + NetworkOfferingVO providerNetworkOffering = new NetworkOfferingVO(name, displayText, TrafficType.Guest, false, false, null, null, true, Availability.Optional, null, GuestType.Isolated, false, false, false, false, false, forVpc); - defaultNatProviderNetworkOffering.setPublicLb(publicLB); - defaultNatProviderNetworkOffering.setInternalLb(!publicLB); - defaultNatProviderNetworkOffering.setNetworkMode(networkMode); - defaultNatProviderNetworkOffering.setState(NetworkOffering.State.Enabled); - defaultNatProviderNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(defaultNatProviderNetworkOffering); + providerNetworkOffering.setPublicLb(publicLB); + providerNetworkOffering.setInternalLb(!publicLB); + providerNetworkOffering.setNetworkMode(networkMode); + providerNetworkOffering.setState(NetworkOffering.State.Enabled); + providerNetworkOffering.setSupportsVmAutoScaling(supportVmAutoscaling); + providerNetworkOffering = _networkOfferingDao.persistDefaultNetworkOffering(providerNetworkOffering); Map<Service, Provider> serviceProviderMap = getServicesAndProvidersForProviderNetwork(networkMode, forVpc, provider); for (Map.Entry<Network.Service, Network.Provider> service : serviceProviderMap.entrySet()) { NetworkOfferingServiceMapVO offService = - new NetworkOfferingServiceMapVO(defaultNatProviderNetworkOffering.getId(), service.getKey(), service.getValue()); + new NetworkOfferingServiceMapVO(providerNetworkOffering.getId(), service.getKey(), service.getValue()); _ntwkOfferingServiceMapDao.persist(offService); logger.trace("Added service for the network offering: " + offService); } diff --git a/server/src/test/java/com/cloud/network/as/AutoScaleManagerImplTest.java b/server/src/test/java/com/cloud/network/as/AutoScaleManagerImplTest.java index b391aeb9f07..23f5a2a05e9 100644 --- a/server/src/test/java/com/cloud/network/as/AutoScaleManagerImplTest.java +++ b/server/src/test/java/com/cloud/network/as/AutoScaleManagerImplTest.java @@ -1572,11 +1572,11 @@ public class AutoScaleManagerImplTest { when(asVmGroupMock.getState()).thenReturn(AutoScaleVmGroup.State.ENABLED); when(asVmGroupMock.getLoadBalancerId()).thenReturn(loadBalancerId); Mockito.doReturn(Network.Provider.VirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); - Mockito.doNothing().when(autoScaleManagerImplSpy).checkVirtualRouterAsGroup(asVmGroupMock); + Mockito.doNothing().when(autoScaleManagerImplSpy).checkAutoscalingGroup(asVmGroupMock); autoScaleManagerImplSpy.checkAutoScaleVmGroup(asVmGroupMock); - Mockito.verify(autoScaleManagerImplSpy).checkVirtualRouterAsGroup(asVmGroupMock); + Mockito.verify(autoScaleManagerImplSpy).checkAutoscalingGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy, never()).checkNetScalerAsGroup(asVmGroupMock); } @@ -1585,11 +1585,11 @@ public class AutoScaleManagerImplTest { when(asVmGroupMock.getState()).thenReturn(AutoScaleVmGroup.State.ENABLED); when(asVmGroupMock.getLoadBalancerId()).thenReturn(loadBalancerId); Mockito.doReturn(Network.Provider.VPCVirtualRouter).when(autoScaleManagerImplSpy).getLoadBalancerServiceProvider(loadBalancerId); - Mockito.doNothing().when(autoScaleManagerImplSpy).checkVirtualRouterAsGroup(asVmGroupMock); + Mockito.doNothing().when(autoScaleManagerImplSpy).checkAutoscalingGroup(asVmGroupMock); autoScaleManagerImplSpy.checkAutoScaleVmGroup(asVmGroupMock); - Mockito.verify(autoScaleManagerImplSpy).checkVirtualRouterAsGroup(asVmGroupMock); + Mockito.verify(autoScaleManagerImplSpy).checkAutoscalingGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy, never()).checkNetScalerAsGroup(asVmGroupMock); } @@ -1602,7 +1602,7 @@ public class AutoScaleManagerImplTest { autoScaleManagerImplSpy.checkAutoScaleVmGroup(asVmGroupMock); - Mockito.verify(autoScaleManagerImplSpy, never()).checkVirtualRouterAsGroup(asVmGroupMock); + Mockito.verify(autoScaleManagerImplSpy, never()).checkAutoscalingGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).checkNetScalerAsGroup(asVmGroupMock); } @@ -1984,7 +1984,7 @@ public class AutoScaleManagerImplTest { Mockito.doNothing().when(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); Mockito.doNothing().when(autoScaleManagerImplSpy).cleanupAsVmGroupStatistics(groupTO); - autoScaleManagerImplSpy.checkVirtualRouterAsGroup(asVmGroupMock); + autoScaleManagerImplSpy.checkAutoscalingGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).doScaleUp(vmGroupId, 1); } @@ -2000,7 +2000,7 @@ public class AutoScaleManagerImplTest { Mockito.doNothing().when(autoScaleManagerImplSpy).doScaleDown(vmGroupId); Mockito.doNothing().when(autoScaleManagerImplSpy).cleanupAsVmGroupStatistics(groupTO); - autoScaleManagerImplSpy.checkVirtualRouterAsGroup(asVmGroupMock); + autoScaleManagerImplSpy.checkAutoscalingGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).doScaleDown(vmGroupId); } @@ -2211,7 +2211,7 @@ public class AutoScaleManagerImplTest { Mockito.doNothing().when(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.doNothing().when(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); - autoScaleManagerImplSpy.monitorVirtualRouterAsGroup(asVmGroupMock); + autoScaleManagerImplSpy.monitorAutoscalingGroup(asVmGroupMock); Mockito.verify(autoScaleManagerImplSpy).getVmStatsFromHosts(groupTO); Mockito.verify(autoScaleManagerImplSpy).getNetworkStatsFromVirtualRouter(groupTO); diff --git a/server/src/test/java/org/apache/cloudstack/service/NetrisServiceMockTest.java b/server/src/test/java/org/apache/cloudstack/service/NetrisServiceMockTest.java index 99f319d6de7..7dbfc0b9cbb 100644 --- a/server/src/test/java/org/apache/cloudstack/service/NetrisServiceMockTest.java +++ b/server/src/test/java/org/apache/cloudstack/service/NetrisServiceMockTest.java @@ -107,7 +107,7 @@ public class NetrisServiceMockTest implements NetrisService { } @Override - public boolean createLbRule(NetrisNetworkRule rule) { + public boolean createOrUpdateLbRule(NetrisNetworkRule rule) { return true; }