Merge branch 'master' into internallb1 Conflicts: server/src/com/cloud/network/NetworkModelImpl.java server/src/com/cloud/network/NetworkServiceImpl.java server/src/com/cloud/server/ManagementServerImpl.java server/test/com/cloud/network/MockNetworkManagerImpl.java server/test/com/cloud/vpc/MockNetworkManagerImpl.java
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1cff6093 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1cff6093 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1cff6093 Branch: refs/heads/internallb Commit: 1cff609347eed3fb3a5e2e3a76b2f36404ea0b81 Parents: 053e184 a3a5c13 Author: Alena Prokharchyk <alena.prokharc...@citrix.com> Authored: Fri May 3 11:23:08 2013 -0700 Committer: Alena Prokharchyk <alena.prokharc...@citrix.com> Committed: Fri May 3 12:50:59 2013 -0700 ---------------------------------------------------------------------- .../agent/api/storage/CreateVolumeOVAAnswer.java | 26 + .../agent/api/storage/CreateVolumeOVACommand.java | 60 ++ .../agent/api/storage/PrepareOVAPackingAnswer.java | 26 + .../api/storage/PrepareOVAPackingCommand.java | 48 ++ api/src/com/cloud/network/NetworkService.java | 4 +- api/src/com/cloud/network/rules/RulesService.java | 2 +- api/src/com/cloud/network/vpc/PrivateIp.java | 1 + api/src/com/cloud/network/vpc/VpcGateway.java | 4 + api/src/com/cloud/network/vpc/VpcService.java | 4 +- api/src/com/cloud/vm/UserVmService.java | 2 +- .../command/admin/vpc/CreatePrivateGatewayCmd.java | 14 +- .../api/command/user/nat/EnableStaticNatCmd.java | 2 +- .../command/user/snapshot/CreateSnapshotCmd.java | 2 + .../cloudstack/api/command/user/vm/ScaleVMCmd.java | 10 +- .../user/vmsnapshot/RevertToSnapshotCmd.java | 92 --- .../user/vmsnapshot/RevertToVMSnapshotCmd.java | 92 +++ .../api/response/PrivateGatewayResponse.java | 10 + .../api/command/test/ScaleVMCmdTest.java | 35 +- client/tomcatconf/commands.properties.in | 2 +- .../virtualnetwork/VirtualRoutingResource.java | 15 +- .../storage/resource/StoragePoolResource.java | 4 + docs/en-US/elastic-ip.xml | 47 +- docs/en-US/images/eip-ns-basiczone.png | Bin 55568 -> 63227 bytes patches/systemvm/debian/config/etc/dnsmasq.conf | 634 --------------- .../systemvm/debian/config/etc/dnsmasq.conf.tmpl | 634 +++++++++++++++ .../debian/config/etc/init.d/cloud-early-config | 3 + .../config/opt/cloud/bin/vpc_privateGateway.sh | 2 +- patches/systemvm/debian/config/root/edithosts.sh | 3 +- .../kvm/resource/LibvirtComputingResource.java | 2 +- .../src/com/cloud/hypervisor/guru/VMwareGuru.java | 12 + .../vmware/manager/VmwareStorageManager.java | 4 + .../vmware/manager/VmwareStorageManagerImpl.java | 401 ++++++++-- .../hypervisor/vmware/resource/VmwareResource.java | 67 ++ .../VmwareSecondaryStorageResourceHandler.java | 24 + .../xen/resource/CitrixResourceBase.java | 14 + .../cloud/network/element/NetscalerElement.java | 70 ++- .../cloud/network/resource/NetscalerResource.java | 45 + pom.xml | 2 +- server/src/com/cloud/api/ApiResponseHelper.java | 1 + .../ExternalLoadBalancerDeviceManagerImpl.java | 2 +- server/src/com/cloud/network/NetworkModelImpl.java | 15 +- .../src/com/cloud/network/NetworkServiceImpl.java | 52 +- .../VpcVirtualNetworkApplianceManagerImpl.java | 4 +- .../com/cloud/network/rules/RulesManagerImpl.java | 13 +- .../cloud/network/vpc/PrivateGatewayProfile.java | 5 + .../com/cloud/network/vpc/PrivateIpAddress.java | 7 + server/src/com/cloud/network/vpc/PrivateIpVO.java | 12 +- server/src/com/cloud/network/vpc/VpcGatewayVO.java | 16 +- .../src/com/cloud/network/vpc/VpcManagerImpl.java | 8 +- .../resourcelimit/ResourceLimitManagerImpl.java | 2 +- .../src/com/cloud/server/ManagementServerImpl.java | 95 +++- .../com/cloud/storage/dao/VMTemplateDaoImpl.java | 19 +- .../cloud/template/HypervisorTemplateAdapter.java | 78 ++ server/src/com/cloud/template/TemplateAdapter.java | 3 + .../com/cloud/template/TemplateAdapterBase.java | 13 + .../com/cloud/template/TemplateManagerImpl.java | 7 + .../src/com/cloud/upgrade/dao/Upgrade2214to30.java | 24 +- server/src/com/cloud/vm/UserVmManagerImpl.java | 10 +- .../com/cloud/vm/VirtualMachineManagerImpl.java | 11 + .../com/cloud/network/MockNetworkManagerImpl.java | 24 +- .../com/cloud/network/MockRulesManagerImpl.java | 3 +- .../test/com/cloud/vm/MockUserVmManagerImpl.java | 4 +- .../test/com/cloud/vpc/MockNetworkManagerImpl.java | 26 +- server/test/com/cloud/vpc/MockVpcManagerImpl.java | 2 +- setup/db/db/schema-410to420.sql | 3 + test/integration/smoke/test_vm_snapshots.py | 308 +++++++ test/selenium/ReadMe.txt | 36 +- test/selenium/lib/initialize.py | 17 +- test/selenium/smoke/Login_and_Accounts.py | 5 +- test/selenium/smoke/main.py | 2 +- tools/marvin/marvin/integration/lib/base.py | 37 + ui/index.jsp | 1 + ui/scripts/accounts.js | 51 ++ ui/scripts/instanceWizard.js | 10 +- ui/scripts/instances.js | 8 +- ui/scripts/storage.js | 44 +- ui/scripts/system.js | 384 +++++++--- ui/scripts/templates.js | 106 +-- ui/scripts/ui-custom/granularSettings.js | 46 + ui/scripts/ui-custom/instanceWizard.js | 30 +- ui/scripts/ui/widgets/multiEdit.js | 5 + ui/scripts/vm_snapshots.js | 2 +- ui/scripts/vpc.js | 6 + utils/src/com/cloud/utils/net/NetUtils.java | 10 +- .../hypervisor/vmware/mo/VirtualMachineMO.java | 6 +- .../cloud/hypervisor/vmware/util/VmwareClient.java | 2 +- 86 files changed, 2806 insertions(+), 1188 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/client/tomcatconf/commands.properties.in ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/patches/systemvm/debian/config/etc/init.d/cloud-early-config ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java ---------------------------------------------------------------------- diff --cc plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java index 1242be6,7bd9c2e..cc1cd1b --- a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java +++ b/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java @@@ -840,11 -810,75 +842,75 @@@ public class NetscalerElement extends E return null; } + public List<LoadBalancerTO> getElasticLBRulesHealthCheck(Network network, List<? extends FirewallRule> rules) + throws ResourceUnavailableException { + + HealthCheckLBConfigAnswer answer = null; + List<LoadBalancingRule> loadBalancingRules = new ArrayList<LoadBalancingRule>(); + for (FirewallRule rule : rules) { + if (rule.getPurpose().equals(Purpose.LoadBalancing)) { + loadBalancingRules.add((LoadBalancingRule) rule); + } + } + + if (loadBalancingRules == null || loadBalancingRules.isEmpty()) { + return null; + } + + String errMsg = null; + ExternalLoadBalancerDeviceVO lbDeviceVO = getExternalLoadBalancerForNetwork(network); + + if (lbDeviceVO == null) { + s_logger.warn("There is no external load balancer device assigned to this network either network is not implement are already shutdown so just returning"); + return null; + } + + if (!isNetscalerDevice(lbDeviceVO.getDeviceName())) { + errMsg = "There are no NetScaler load balancer assigned for this network. So NetScaler element can not be handle elastic load balancer rules."; + s_logger.error(errMsg); + throw new ResourceUnavailableException(errMsg, this.getClass(), 0); + } + + List<LoadBalancerTO> loadBalancersToApply = new ArrayList<LoadBalancerTO>(); + for (int i = 0; i < loadBalancingRules.size(); i++) { + LoadBalancingRule rule = loadBalancingRules.get(i); + boolean revoked = (rule.getState().equals(FirewallRule.State.Revoke)); + String protocol = rule.getProtocol(); + String algorithm = rule.getAlgorithm(); + String lbUuid = rule.getUuid(); + String srcIp = _networkMgr.getIp(rule.getSourceIpAddressId()).getAddress().addr(); + int srcPort = rule.getSourcePortStart(); + List<LbDestination> destinations = rule.getDestinations(); + + if ((destinations != null && !destinations.isEmpty()) || rule.isAutoScaleConfig()) { + LoadBalancerTO loadBalancer = new LoadBalancerTO(lbUuid, srcIp, srcPort, protocol, algorithm, revoked, + false, false, destinations, null, rule.getHealthCheckPolicies()); + loadBalancersToApply.add(loadBalancer); + } + } + + if (loadBalancersToApply.size() > 0) { + int numLoadBalancersForCommand = loadBalancersToApply.size(); + LoadBalancerTO[] loadBalancersForCommand = loadBalancersToApply + .toArray(new LoadBalancerTO[numLoadBalancersForCommand]); + HealthCheckLBConfigCommand cmd = new HealthCheckLBConfigCommand(loadBalancersForCommand); + HostVO externalLoadBalancer = _hostDao.findById(lbDeviceVO.getHostId()); + answer = (HealthCheckLBConfigAnswer) _agentMgr.easySend(externalLoadBalancer.getId(), cmd); + return answer.getLoadBalancers(); + } + return null; + } + public List<LoadBalancerTO> updateHealthChecks(Network network, List<LoadBalancingRule> lbrules) { - if (canHandle(network, Service.Lb)) { + if (canHandle(network, Service.Lb) && canHandleLbRules(lbrules)) { try { - return getLBHealthChecks(network, lbrules); + + if (isBasicZoneNetwok(network)) { + return getElasticLBRulesHealthCheck(network, lbrules); + } else { + return getLBHealthChecks(network, lbrules); + } } catch (ResourceUnavailableException e) { s_logger.error("Error in getting the LB Rules from NetScaler " + e); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/src/com/cloud/api/ApiResponseHelper.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/src/com/cloud/network/NetworkModelImpl.java ---------------------------------------------------------------------- diff --cc server/src/com/cloud/network/NetworkModelImpl.java index c44ff8e,fdf722c..01fa252 --- a/server/src/com/cloud/network/NetworkModelImpl.java +++ b/server/src/com/cloud/network/NetworkModelImpl.java @@@ -1667,22 -1663,20 +1667,19 @@@ public class NetworkModelImpl extends M @Override public Set<Long> getAvailableIps(Network network, String requestedIp) { String[] cidr = network.getCidr().split("/"); - List<String> ips = _nicDao.listIpAddressInNetwork(network.getId()); - List<String> secondaryIps = _nicSecondaryIpDao.listSecondaryIpAddressInNetwork(network.getId()); - ips.addAll(secondaryIps); + List<String> ips = getUsedIpsInNetwork(network); Set<Long> usedIps = new TreeSet<Long>(); - + for (String ip : ips) { if (requestedIp != null && requestedIp.equals(ip)) { s_logger.warn("Requested ip address " + requestedIp + " is already in use in network" + network); return null; } - + usedIps.add(NetUtils.ip2Long(ip)); } - - Set<Long> allPossibleIps = NetUtils.getAllIpsFromCidr(cidr[0], Integer.parseInt(cidr[1])); - if (usedIps.size() != 0) { - allPossibleIps.removeAll(usedIps); - } ++ + Set<Long> allPossibleIps = NetUtils.getAllIpsFromCidr(cidr[0], Integer.parseInt(cidr[1]), usedIps); String gateway = network.getGateway(); if ((gateway != null) && (allPossibleIps.contains(NetUtils.ip2Long(gateway)))) http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/src/com/cloud/network/NetworkServiceImpl.java ---------------------------------------------------------------------- diff --cc server/src/com/cloud/network/NetworkServiceImpl.java index 8c38904,d8f8d5d..85a8086 --- a/server/src/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/com/cloud/network/NetworkServiceImpl.java @@@ -16,38 -16,6 +16,39 @@@ // under the License. package com.cloud.network; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.security.InvalidParameterException; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; ++import java.util.TreeSet; +import java.util.UUID; + +import javax.ejb.Local; +import javax.inject.Inject; +import javax.naming.ConfigurationException; + +import org.apache.cloudstack.acl.ControlledEntity.ACLType; +import org.apache.cloudstack.acl.SecurityChecker; +import org.apache.cloudstack.acl.SecurityChecker.AccessType; +import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd; +import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd; +import org.apache.cloudstack.api.command.user.network.ListNetworksCmd; +import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd; +import org.apache.cloudstack.api.command.user.vm.ListNicsCmd; +import org.apache.cloudstack.network.element.InternalLoadBalancerElementService; +import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; + import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; import com.cloud.configuration.dao.ConfigurationDao; @@@ -2128,6 -2062,32 +2131,29 @@@ public class NetworkServiceImpl extend return getNetwork(network.getId()); } + - - + protected Set<Long> getAvailableIps(Network network, String requestedIp) { + String[] cidr = network.getCidr().split("/"); + List<String> ips = _nicDao.listIpAddressInNetwork(network.getId()); + Set<Long> usedIps = new TreeSet<Long>(); + + for (String ip : ips) { + if (requestedIp != null && requestedIp.equals(ip)) { + s_logger.warn("Requested ip address " + requestedIp + " is already in use in network" + network); + return null; + } + + usedIps.add(NetUtils.ip2Long(ip)); + } + Set<Long> allPossibleIps = NetUtils.getAllIpsFromCidr(cidr[0], Integer.parseInt(cidr[1]), usedIps); + + String gateway = network.getGateway(); + if ((gateway != null) && (allPossibleIps.contains(NetUtils.ip2Long(gateway)))) + allPossibleIps.remove(NetUtils.ip2Long(gateway)); + + return allPossibleIps; + } + - protected boolean canUpgrade(Network network, long oldNetworkOfferingId, long newNetworkOfferingId) { NetworkOffering oldNetworkOffering = _networkOfferingDao.findByIdIncludingRemoved(oldNetworkOfferingId); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/src/com/cloud/network/vpc/VpcManagerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/src/com/cloud/server/ManagementServerImpl.java ---------------------------------------------------------------------- diff --cc server/src/com/cloud/server/ManagementServerImpl.java index 07f86c8,efd51e6..675cf26 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@@ -204,206 -90,6 +204,205 @@@ import org.apache.cloudstack.api.comman import org.apache.cloudstack.api.command.user.affinitygroup.ListAffinityGroupTypesCmd; import org.apache.cloudstack.api.command.user.affinitygroup.ListAffinityGroupsCmd; import org.apache.cloudstack.api.command.user.affinitygroup.UpdateVMAffinityGroupCmd; +import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScalePolicyCmd; +import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScaleVmGroupCmd; +import org.apache.cloudstack.api.command.user.autoscale.CreateAutoScaleVmProfileCmd; +import org.apache.cloudstack.api.command.user.autoscale.CreateConditionCmd; +import org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScalePolicyCmd; +import org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScaleVmGroupCmd; +import org.apache.cloudstack.api.command.user.autoscale.DeleteAutoScaleVmProfileCmd; +import org.apache.cloudstack.api.command.user.autoscale.DeleteConditionCmd; +import org.apache.cloudstack.api.command.user.autoscale.DisableAutoScaleVmGroupCmd; +import org.apache.cloudstack.api.command.user.autoscale.EnableAutoScaleVmGroupCmd; +import org.apache.cloudstack.api.command.user.autoscale.ListAutoScalePoliciesCmd; +import org.apache.cloudstack.api.command.user.autoscale.ListAutoScaleVmGroupsCmd; +import org.apache.cloudstack.api.command.user.autoscale.ListAutoScaleVmProfilesCmd; +import org.apache.cloudstack.api.command.user.autoscale.ListConditionsCmd; +import org.apache.cloudstack.api.command.user.autoscale.ListCountersCmd; +import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScalePolicyCmd; +import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmGroupCmd; +import org.apache.cloudstack.api.command.user.autoscale.UpdateAutoScaleVmProfileCmd; +import org.apache.cloudstack.api.command.user.config.ListCapabilitiesCmd; +import org.apache.cloudstack.api.command.user.event.ArchiveEventsCmd; +import org.apache.cloudstack.api.command.user.event.DeleteEventsCmd; +import org.apache.cloudstack.api.command.user.event.ListEventTypesCmd; +import org.apache.cloudstack.api.command.user.event.ListEventsCmd; +import org.apache.cloudstack.api.command.user.firewall.CreateEgressFirewallRuleCmd; +import org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd; +import org.apache.cloudstack.api.command.user.firewall.CreatePortForwardingRuleCmd; +import org.apache.cloudstack.api.command.user.firewall.DeleteEgressFirewallRuleCmd; +import org.apache.cloudstack.api.command.user.firewall.DeleteFirewallRuleCmd; +import org.apache.cloudstack.api.command.user.firewall.DeletePortForwardingRuleCmd; +import org.apache.cloudstack.api.command.user.firewall.ListEgressFirewallRulesCmd; +import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd; +import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd; +import org.apache.cloudstack.api.command.user.firewall.UpdatePortForwardingRuleCmd; +import org.apache.cloudstack.api.command.user.guest.ListGuestOsCategoriesCmd; +import org.apache.cloudstack.api.command.user.guest.ListGuestOsCmd; +import org.apache.cloudstack.api.command.user.iso.AttachIsoCmd; +import org.apache.cloudstack.api.command.user.iso.CopyIsoCmd; +import org.apache.cloudstack.api.command.user.iso.DeleteIsoCmd; +import org.apache.cloudstack.api.command.user.iso.DetachIsoCmd; +import org.apache.cloudstack.api.command.user.iso.ExtractIsoCmd; +import org.apache.cloudstack.api.command.user.iso.ListIsoPermissionsCmd; +import org.apache.cloudstack.api.command.user.iso.ListIsosCmd; +import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd; +import org.apache.cloudstack.api.command.user.iso.UpdateIsoCmd; +import org.apache.cloudstack.api.command.user.iso.UpdateIsoPermissionsCmd; +import org.apache.cloudstack.api.command.user.job.ListAsyncJobsCmd; +import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.AssignToLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.CreateApplicationLoadBalancerCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBStickinessPolicyCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.CreateLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.DeleteApplicationLoadBalancerCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.DeleteLBHealthCheckPolicyCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.DeleteLBStickinessPolicyCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.DeleteLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.ListApplicationLoadBalancersCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.ListLBHealthCheckPoliciesCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.ListLBStickinessPoliciesCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRuleInstancesCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRulesCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.RemoveFromLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.nat.CreateIpForwardingRuleCmd; +import org.apache.cloudstack.api.command.user.nat.DeleteIpForwardingRuleCmd; +import org.apache.cloudstack.api.command.user.nat.DisableStaticNatCmd; +import org.apache.cloudstack.api.command.user.nat.EnableStaticNatCmd; +import org.apache.cloudstack.api.command.user.nat.ListIpForwardingRulesCmd; +import org.apache.cloudstack.api.command.user.network.CreateNetworkACLCmd; +import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd; +import org.apache.cloudstack.api.command.user.network.DeleteNetworkACLCmd; +import org.apache.cloudstack.api.command.user.network.DeleteNetworkCmd; +import org.apache.cloudstack.api.command.user.network.ListNetworkACLsCmd; +import org.apache.cloudstack.api.command.user.network.ListNetworkOfferingsCmd; +import org.apache.cloudstack.api.command.user.network.ListNetworksCmd; +import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd; +import org.apache.cloudstack.api.command.user.network.UpdateNetworkCmd; +import org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd; +import org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd; +import org.apache.cloudstack.api.command.user.project.ActivateProjectCmd; +import org.apache.cloudstack.api.command.user.project.CreateProjectCmd; +import org.apache.cloudstack.api.command.user.project.DeleteProjectCmd; +import org.apache.cloudstack.api.command.user.project.DeleteProjectInvitationCmd; +import org.apache.cloudstack.api.command.user.project.ListProjectInvitationsCmd; +import org.apache.cloudstack.api.command.user.project.ListProjectsCmd; +import org.apache.cloudstack.api.command.user.project.SuspendProjectCmd; +import org.apache.cloudstack.api.command.user.project.UpdateProjectCmd; +import org.apache.cloudstack.api.command.user.project.UpdateProjectInvitationCmd; +import org.apache.cloudstack.api.command.user.region.ListRegionsCmd; +import org.apache.cloudstack.api.command.user.region.ha.gslb.AssignToGlobalLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.region.ha.gslb.CreateGlobalLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.region.ha.gslb.DeleteGlobalLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.region.ha.gslb.ListGlobalLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.region.ha.gslb.RemoveFromGlobalLoadBalancerRuleCmd; +import org.apache.cloudstack.api.command.user.resource.GetCloudIdentifierCmd; +import org.apache.cloudstack.api.command.user.resource.ListHypervisorsCmd; +import org.apache.cloudstack.api.command.user.resource.ListResourceLimitsCmd; +import org.apache.cloudstack.api.command.user.resource.UpdateResourceCountCmd; +import org.apache.cloudstack.api.command.user.resource.UpdateResourceLimitCmd; +import org.apache.cloudstack.api.command.user.securitygroup.AuthorizeSecurityGroupEgressCmd; +import org.apache.cloudstack.api.command.user.securitygroup.AuthorizeSecurityGroupIngressCmd; +import org.apache.cloudstack.api.command.user.securitygroup.CreateSecurityGroupCmd; +import org.apache.cloudstack.api.command.user.securitygroup.DeleteSecurityGroupCmd; +import org.apache.cloudstack.api.command.user.securitygroup.ListSecurityGroupsCmd; +import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupEgressCmd; +import org.apache.cloudstack.api.command.user.securitygroup.RevokeSecurityGroupIngressCmd; +import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotCmd; +import org.apache.cloudstack.api.command.user.snapshot.CreateSnapshotPolicyCmd; +import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd; +import org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotPoliciesCmd; +import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotPoliciesCmd; +import org.apache.cloudstack.api.command.user.snapshot.ListSnapshotsCmd; +import org.apache.cloudstack.api.command.user.ssh.CreateSSHKeyPairCmd; +import org.apache.cloudstack.api.command.user.ssh.DeleteSSHKeyPairCmd; +import org.apache.cloudstack.api.command.user.ssh.ListSSHKeyPairsCmd; +import org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd; +import org.apache.cloudstack.api.command.user.tag.CreateTagsCmd; +import org.apache.cloudstack.api.command.user.tag.DeleteTagsCmd; +import org.apache.cloudstack.api.command.user.tag.ListTagsCmd; +import org.apache.cloudstack.api.command.user.template.CopyTemplateCmd; +import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd; +import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd; +import org.apache.cloudstack.api.command.user.template.ExtractTemplateCmd; +import org.apache.cloudstack.api.command.user.template.ListTemplatePermissionsCmd; +import org.apache.cloudstack.api.command.user.template.ListTemplatesCmd; +import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd; +import org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd; +import org.apache.cloudstack.api.command.user.template.UpdateTemplatePermissionsCmd; +import org.apache.cloudstack.api.command.user.vm.AddIpToVmNicCmd; +import org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd; +import org.apache.cloudstack.api.command.user.vm.DeployVMCmd; +import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd; +import org.apache.cloudstack.api.command.user.vm.GetVMPasswordCmd; +import org.apache.cloudstack.api.command.user.vm.ListNicsCmd; +import org.apache.cloudstack.api.command.user.vm.ListVMsCmd; +import org.apache.cloudstack.api.command.user.vm.RebootVMCmd; +import org.apache.cloudstack.api.command.user.vm.RemoveIpFromVmNicCmd; +import org.apache.cloudstack.api.command.user.vm.RemoveNicFromVMCmd; +import org.apache.cloudstack.api.command.user.vm.ResetVMPasswordCmd; +import org.apache.cloudstack.api.command.user.vm.ResetVMSSHKeyCmd; +import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd; +import org.apache.cloudstack.api.command.user.vm.ScaleVMCmd; +import org.apache.cloudstack.api.command.user.vm.StartVMCmd; +import org.apache.cloudstack.api.command.user.vm.StopVMCmd; +import org.apache.cloudstack.api.command.user.vm.UpdateDefaultNicForVMCmd; +import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd; +import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd; +import org.apache.cloudstack.api.command.user.vmgroup.CreateVMGroupCmd; +import org.apache.cloudstack.api.command.user.vmgroup.DeleteVMGroupCmd; +import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd; +import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd; +import org.apache.cloudstack.api.command.user.vmsnapshot.CreateVMSnapshotCmd; +import org.apache.cloudstack.api.command.user.vmsnapshot.DeleteVMSnapshotCmd; +import org.apache.cloudstack.api.command.user.vmsnapshot.ListVMSnapshotCmd; - import org.apache.cloudstack.api.command.user.vmsnapshot.RevertToSnapshotCmd; +import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd; +import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd; +import org.apache.cloudstack.api.command.user.volume.DeleteVolumeCmd; +import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd; +import org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd; +import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd; +import org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd; +import org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd; +import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd; +import org.apache.cloudstack.api.command.user.vpc.CreateStaticRouteCmd; +import org.apache.cloudstack.api.command.user.vpc.CreateVPCCmd; +import org.apache.cloudstack.api.command.user.vpc.DeleteStaticRouteCmd; +import org.apache.cloudstack.api.command.user.vpc.DeleteVPCCmd; +import org.apache.cloudstack.api.command.user.vpc.ListPrivateGatewaysCmd; +import org.apache.cloudstack.api.command.user.vpc.ListStaticRoutesCmd; +import org.apache.cloudstack.api.command.user.vpc.ListVPCOfferingsCmd; +import org.apache.cloudstack.api.command.user.vpc.ListVPCsCmd; +import org.apache.cloudstack.api.command.user.vpc.RestartVPCCmd; +import org.apache.cloudstack.api.command.user.vpc.UpdateVPCCmd; +import org.apache.cloudstack.api.command.user.vpn.AddVpnUserCmd; +import org.apache.cloudstack.api.command.user.vpn.CreateRemoteAccessVpnCmd; +import org.apache.cloudstack.api.command.user.vpn.CreateVpnConnectionCmd; +import org.apache.cloudstack.api.command.user.vpn.CreateVpnCustomerGatewayCmd; +import org.apache.cloudstack.api.command.user.vpn.CreateVpnGatewayCmd; +import org.apache.cloudstack.api.command.user.vpn.DeleteRemoteAccessVpnCmd; +import org.apache.cloudstack.api.command.user.vpn.DeleteVpnConnectionCmd; +import org.apache.cloudstack.api.command.user.vpn.DeleteVpnCustomerGatewayCmd; +import org.apache.cloudstack.api.command.user.vpn.DeleteVpnGatewayCmd; +import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd; +import org.apache.cloudstack.api.command.user.vpn.ListVpnConnectionsCmd; +import org.apache.cloudstack.api.command.user.vpn.ListVpnCustomerGatewaysCmd; +import org.apache.cloudstack.api.command.user.vpn.ListVpnGatewaysCmd; +import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd; +import org.apache.cloudstack.api.command.user.vpn.RemoveVpnUserCmd; +import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd; +import org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd; +import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd; +import org.apache.cloudstack.api.response.ExtractResponse; +import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; +import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator; +import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; +import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; +import org.apache.commons.codec.binary.Base64; +import org.apache.log4j.Logger; + import com.cloud.agent.AgentManager; import com.cloud.agent.api.GetVncPortAnswer; import com.cloud.agent.api.GetVncPortCommand; @@@ -555,27 -183,86 +556,102 @@@ import com.cloud.utils.exception.CloudR import com.cloud.utils.net.MacAddress; import com.cloud.utils.net.NetUtils; import com.cloud.utils.ssh.SSHKeysHelper; -import com.cloud.vm.*; +import com.cloud.vm.ConsoleProxyVO; +import com.cloud.vm.DiskProfile; +import com.cloud.vm.InstanceGroupVO; +import com.cloud.vm.SecondaryStorageVmVO; +import com.cloud.vm.UserVmVO; +import com.cloud.vm.VMInstanceVO; +import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine.State; -import com.cloud.vm.dao.*; +import com.cloud.vm.VirtualMachineManager; +import com.cloud.vm.VirtualMachineProfile; +import com.cloud.vm.VirtualMachineProfileImpl; +import com.cloud.vm.dao.ConsoleProxyDao; +import com.cloud.vm.dao.DomainRouterDao; +import com.cloud.vm.dao.InstanceGroupDao; +import com.cloud.vm.dao.SecondaryStorageVmDao; +import com.cloud.vm.dao.UserVmDao; +import com.cloud.vm.dao.VMInstanceDao; + import edu.emory.mathcs.backport.java.util.Arrays; import edu.emory.mathcs.backport.java.util.Collections; + import org.apache.cloudstack.acl.ControlledEntity; + import org.apache.cloudstack.api.command.admin.autoscale.CreateCounterCmd; + import org.apache.cloudstack.api.command.admin.autoscale.DeleteCounterCmd; + import org.apache.cloudstack.api.command.admin.cluster.AddClusterCmd; + import org.apache.cloudstack.api.command.admin.cluster.DeleteClusterCmd; + import org.apache.cloudstack.api.command.admin.cluster.ListClustersCmd; + import org.apache.cloudstack.api.command.admin.cluster.UpdateClusterCmd; + import org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd; + import org.apache.cloudstack.api.command.admin.config.ListHypervisorCapabilitiesCmd; + import org.apache.cloudstack.api.command.admin.config.UpdateCfgCmd; + import org.apache.cloudstack.api.command.admin.config.UpdateHypervisorCapabilitiesCmd; + import org.apache.cloudstack.api.command.admin.ldap.LDAPConfigCmd; + import org.apache.cloudstack.api.command.admin.ldap.LDAPRemoveCmd; + import org.apache.cloudstack.api.command.admin.pod.CreatePodCmd; + import org.apache.cloudstack.api.command.admin.pod.DeletePodCmd; + import org.apache.cloudstack.api.command.admin.pod.ListPodsByCmd; + import org.apache.cloudstack.api.command.admin.pod.UpdatePodCmd; + import org.apache.cloudstack.api.command.admin.region.AddRegionCmd; + import org.apache.cloudstack.api.command.admin.region.RemoveRegionCmd; + import org.apache.cloudstack.api.command.admin.region.UpdateRegionCmd; + import org.apache.cloudstack.api.command.admin.swift.AddSwiftCmd; + import org.apache.cloudstack.api.command.admin.swift.ListSwiftsCmd; + import org.apache.cloudstack.api.command.admin.template.PrepareTemplateCmd; + import org.apache.cloudstack.api.command.admin.vlan.CreateVlanIpRangeCmd; + import org.apache.cloudstack.api.command.admin.vlan.DeleteVlanIpRangeCmd; + import org.apache.cloudstack.api.command.admin.vlan.ListVlanIpRangesCmd; + import org.apache.cloudstack.api.command.admin.vm.AssignVMCmd; + import org.apache.cloudstack.api.command.admin.vm.MigrateVMCmd; + import org.apache.cloudstack.api.command.admin.vm.MigrateVirtualMachineWithVolumeCmd; + import org.apache.cloudstack.api.command.admin.vm.RecoverVMCmd; + import org.apache.cloudstack.api.command.admin.zone.CreateZoneCmd; + import org.apache.cloudstack.api.command.admin.zone.DeleteZoneCmd; + import org.apache.cloudstack.api.command.admin.zone.MarkDefaultZoneForAccountCmd; + import org.apache.cloudstack.api.command.admin.zone.UpdateZoneCmd; + import org.apache.cloudstack.api.command.user.account.AddAccountToProjectCmd; + import org.apache.cloudstack.api.command.user.account.DeleteAccountFromProjectCmd; + import org.apache.cloudstack.api.command.user.account.ListAccountsCmd; + import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd; + import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd; + import org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd; + import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd; + import org.apache.cloudstack.api.command.user.config.ListCapabilitiesCmd; + import org.apache.cloudstack.api.command.user.event.ArchiveEventsCmd; + import org.apache.cloudstack.api.command.user.event.DeleteEventsCmd; + import org.apache.cloudstack.api.command.user.event.ListEventTypesCmd; + import org.apache.cloudstack.api.command.user.event.ListEventsCmd; + import org.apache.cloudstack.api.command.user.guest.ListGuestOsCategoriesCmd; + import org.apache.cloudstack.api.command.user.guest.ListGuestOsCmd; + import org.apache.cloudstack.api.command.user.job.ListAsyncJobsCmd; + import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd; + import org.apache.cloudstack.api.command.user.offering.ListDiskOfferingsCmd; + import org.apache.cloudstack.api.command.user.offering.ListServiceOfferingsCmd; + import org.apache.cloudstack.api.command.user.region.ListRegionsCmd; + import org.apache.cloudstack.api.command.user.region.ha.gslb.*; + import org.apache.cloudstack.api.command.user.ssh.CreateSSHKeyPairCmd; + import org.apache.cloudstack.api.command.user.ssh.DeleteSSHKeyPairCmd; + import org.apache.cloudstack.api.command.user.ssh.ListSSHKeyPairsCmd; + import org.apache.cloudstack.api.command.user.ssh.RegisterSSHKeyPairCmd; + import org.apache.cloudstack.api.command.user.tag.CreateTagsCmd; + import org.apache.cloudstack.api.command.user.tag.DeleteTagsCmd; + import org.apache.cloudstack.api.command.user.tag.ListTagsCmd; + import org.apache.cloudstack.api.command.user.vmgroup.CreateVMGroupCmd; + import org.apache.cloudstack.api.command.user.vmgroup.DeleteVMGroupCmd; + import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd; + import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd; + import org.apache.cloudstack.api.command.user.vmsnapshot.CreateVMSnapshotCmd; + import org.apache.cloudstack.api.command.user.vmsnapshot.DeleteVMSnapshotCmd; + import org.apache.cloudstack.api.command.user.vmsnapshot.ListVMSnapshotCmd; + import org.apache.cloudstack.api.command.user.vmsnapshot.RevertToVMSnapshotCmd; + import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd; + import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; + import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator; + import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; + import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; + + public class ManagementServerImpl extends ManagerBase implements ManagementServer { public static final Logger s_logger = Logger.getLogger(ManagementServerImpl.class.getName()); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/test/com/cloud/network/MockNetworkManagerImpl.java ---------------------------------------------------------------------- diff --cc server/test/com/cloud/network/MockNetworkManagerImpl.java index 7321b0d,45562c6..409835c --- a/server/test/com/cloud/network/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java @@@ -64,16 -43,22 +64,24 @@@ import com.cloud.user.Account import com.cloud.user.User; import com.cloud.utils.Pair; import com.cloud.utils.component.ManagerBase; - import com.cloud.vm.Nic; - import com.cloud.vm.NicProfile; - import com.cloud.vm.NicSecondaryIp; - import com.cloud.vm.NicVO; - import com.cloud.vm.ReservationContext; - import com.cloud.vm.VMInstanceVO; - import com.cloud.vm.VirtualMachine; + import com.cloud.vm.*; import com.cloud.vm.VirtualMachine.Type; +import com.cloud.vm.VirtualMachineProfile; + import org.apache.cloudstack.acl.ControlledEntity.ACLType; + import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd; + import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd; + import org.apache.cloudstack.api.command.user.network.ListNetworksCmd; + import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd; + import org.apache.cloudstack.api.command.user.vm.ListNicsCmd; + import org.springframework.stereotype.Component; + + import javax.ejb.Local; + import javax.naming.ConfigurationException; + import java.util.List; + import java.util.Map; + import java.util.Set; + + @Component @Local(value = { NetworkManager.class, NetworkService.class }) public class MockNetworkManagerImpl extends ManagerBase implements NetworkManager, NetworkService { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/server/test/com/cloud/vpc/MockNetworkManagerImpl.java ---------------------------------------------------------------------- diff --cc server/test/com/cloud/vpc/MockNetworkManagerImpl.java index 99e16eb,6689357..3745fd1 --- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java @@@ -79,16 -47,24 +79,26 @@@ import com.cloud.user.Account import com.cloud.user.User; import com.cloud.utils.Pair; import com.cloud.utils.component.ManagerBase; - import com.cloud.vm.Nic; - import com.cloud.vm.NicProfile; - import com.cloud.vm.NicSecondaryIp; - import com.cloud.vm.NicVO; - import com.cloud.vm.ReservationContext; - import com.cloud.vm.VMInstanceVO; - import com.cloud.vm.VirtualMachine; + import com.cloud.vm.*; import com.cloud.vm.VirtualMachine.Type; +import com.cloud.vm.VirtualMachineProfile; + import org.apache.cloudstack.acl.ControlledEntity.ACLType; + import org.apache.cloudstack.api.command.admin.usage.ListTrafficTypeImplementorsCmd; + import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd; + import org.apache.cloudstack.api.command.user.network.ListNetworksCmd; + import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd; + import org.apache.cloudstack.api.command.user.vm.ListNicsCmd; + import org.apache.log4j.Logger; + import org.springframework.stereotype.Component; + + import javax.ejb.Local; + import javax.inject.Inject; + import javax.naming.ConfigurationException; + import java.util.HashMap; + import java.util.List; + import java.util.Map; + + @Component @Local(value = { NetworkManager.class, NetworkService.class }) public class MockNetworkManagerImpl extends ManagerBase implements NetworkManager, NetworkService { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1cff6093/setup/db/db/schema-410to420.sql ----------------------------------------------------------------------