mirror of https://github.com/apache/cloudstack.git
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
This commit is contained in:
parent
ca4c13c4a0
commit
bd4e652128
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ public class NetrisServiceMockTest implements NetrisService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean createLbRule(NetrisNetworkRule rule) {
|
||||
public boolean createOrUpdateLbRule(NetrisNetworkRule rule) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue