diff --git a/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java b/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java index 59bdd57c1fa..00f05fb4e34 100644 --- a/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java +++ b/server/src/com/cloud/network/security/SecurityGroupManagerImpl2.java @@ -22,6 +22,7 @@ import java.util.Map; import java.util.Set; import java.util.TreeSet; +import javax.ejb.Local; import javax.naming.ConfigurationException; import com.cloud.agent.api.SecurityIngressRulesCmd; @@ -36,6 +37,7 @@ import com.cloud.vm.VirtualMachine.State; * Same as the base class -- except it uses the abstracted security group work queue * */ +@Local(value={ SecurityGroupManager.class, SecurityGroupService.class }) public class SecurityGroupManagerImpl2 extends SecurityGroupManagerImpl { SecurityGroupWorkQueue _workQueue = new LocalSecurityGroupWorkQueue(); @@ -73,8 +75,6 @@ public class SecurityGroupManagerImpl2 extends SecurityGroupManagerImpl { _rulesetLogDao.createOrUpdate(workItems); txn.commit(); _workQueue.submitWorkForVms(workItems); - notifyAll(); - } @Override diff --git a/server/test/com/cloud/agent/MockAgentManagerImpl.java b/server/test/com/cloud/agent/MockAgentManagerImpl.java new file mode 100644 index 00000000000..1156a4eb80d --- /dev/null +++ b/server/test/com/cloud/agent/MockAgentManagerImpl.java @@ -0,0 +1,269 @@ +package com.cloud.agent; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.ejb.Local; +import javax.naming.ConfigurationException; + +import com.cloud.agent.api.Answer; +import com.cloud.agent.api.Command; +import com.cloud.agent.manager.AgentAttache; +import com.cloud.agent.manager.Commands; +import com.cloud.api.commands.UpdateHostPasswordCmd; +import com.cloud.dc.DataCenterVO; +import com.cloud.dc.HostPodVO; +import com.cloud.dc.PodCluster; +import com.cloud.exception.AgentUnavailableException; +import com.cloud.exception.OperationTimedoutException; +import com.cloud.host.Host; +import com.cloud.host.Host.Type; +import com.cloud.host.HostStats; +import com.cloud.host.HostVO; +import com.cloud.host.Status.Event; +import com.cloud.hypervisor.Hypervisor.HypervisorType; +import com.cloud.resource.ServerResource; +import com.cloud.service.ServiceOfferingVO; +import com.cloud.template.VirtualMachineTemplate; +import com.cloud.user.User; +import com.cloud.utils.Pair; + +@Local(value = { AgentManager.class }) +public class MockAgentManagerImpl implements AgentManager { + + @Override + public boolean configure(String name, Map params) throws ConfigurationException { + // TODO Auto-generated method stub + return true; + } + + @Override + public boolean start() { + return true; + } + + @Override + public boolean stop() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Answer easySend(Long hostId, Command cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Answer send(Long hostId, Command cmd, int timeout) throws AgentUnavailableException, OperationTimedoutException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Answer send(Long hostId, Command cmd) throws AgentUnavailableException, OperationTimedoutException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Answer[] send(Long hostId, Commands cmds) throws AgentUnavailableException, OperationTimedoutException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Answer[] send(Long hostId, Commands cmds, int timeout) throws AgentUnavailableException, OperationTimedoutException { + // TODO Auto-generated method stub + return null; + } + + @Override + public long gatherStats(Long hostId, Command cmd, Listener listener) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public long send(Long hostId, Commands cmds, Listener listener) throws AgentUnavailableException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int registerForHostEvents(Listener listener, boolean connections, boolean commands, boolean priority) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int registerForInitialConnects(StartupCommandProcessor creator, boolean priority) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void unregisterForHostEvents(int id) { + // TODO Auto-generated method stub + + } + + @Override + public Set getConnectedHosts() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void disconnect(long hostId, Event event, boolean investigate) { + // TODO Auto-generated method stub + + } + + @Override + public HostStats getHostStatistics(long hostId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Long getGuestOSCategoryId(long hostId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getHostTags(long hostId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List listByDataCenter(long dcId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List listByPod(long podId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Host addHost(long zoneId, ServerResource resource, Type hostType, Map hostDetails) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean deleteHost(long hostId, boolean isForced, boolean forceDestroy, User caller) { + // TODO Auto-generated method stub + return false; + } + + @Override + public Pair findPod(VirtualMachineTemplate template, ServiceOfferingVO offering, DataCenterVO dc, long userId, Set avoids) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean maintain(long hostId) throws AgentUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean maintenanceFailed(long hostId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean cancelMaintenance(long hostId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean executeUserRequest(long hostId, Event event) throws AgentUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean reconnect(long hostId) throws AgentUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public Answer easySend(Long hostId, Command cmd, int timeout) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isHostNativeHAEnabled(long hostId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public Answer sendTo(Long dcId, HypervisorType type, Command cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void notifyAnswersToMonitors(long agentId, long seq, Answer[] answers) { + // TODO Auto-generated method stub + + } + + @Override + public AgentAttache simulateStart(Long id, ServerResource resource, Map details, boolean old, List hostTags, String allocationState, boolean forRebalance) + throws IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean updateHostPassword(UpdateHostPasswordCmd upasscmd) { + // TODO Auto-generated method stub + return false; + } + + @Override + public long sendToSecStorage(HostVO ssHost, Command cmd, Listener listener) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public Answer sendToSecStorage(HostVO ssHost, Command cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public HostVO getSSAgent(HostVO ssHost) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void updateStatus(HostVO host, Event event) { + // TODO Auto-generated method stub + + } + +} diff --git a/server/test/com/cloud/network/MockNetworkManagerImpl.java b/server/test/com/cloud/network/MockNetworkManagerImpl.java new file mode 100644 index 00000000000..f3036842498 --- /dev/null +++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java @@ -0,0 +1,459 @@ +package com.cloud.network; + +import java.util.List; +import java.util.Map; + +import javax.ejb.Local; +import javax.naming.ConfigurationException; + +import com.cloud.api.commands.AssociateIPAddrCmd; +import com.cloud.api.commands.CreateNetworkCmd; +import com.cloud.api.commands.DisassociateIPAddrCmd; +import com.cloud.api.commands.ListNetworksCmd; +import com.cloud.api.commands.RestartNetworkCmd; +import com.cloud.dc.Vlan; +import com.cloud.dc.Vlan.VlanType; +import com.cloud.deploy.DeployDestination; +import com.cloud.deploy.DeploymentPlan; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientAddressCapacityException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.ResourceAllocationException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.network.Network.Capability; +import com.cloud.network.Network.GuestIpType; +import com.cloud.network.Network.Service; +import com.cloud.network.Networks.TrafficType; +import com.cloud.network.addr.PublicIp; +import com.cloud.network.guru.NetworkGuru; +import com.cloud.network.rules.FirewallRule; +import com.cloud.network.vpn.PasswordResetElement; +import com.cloud.offering.NetworkOffering; +import com.cloud.offerings.NetworkOfferingVO; +import com.cloud.user.Account; +import com.cloud.user.AccountVO; +import com.cloud.utils.Pair; +import com.cloud.utils.component.Manager; +import com.cloud.vm.Nic; +import com.cloud.vm.NicProfile; +import com.cloud.vm.ReservationContext; +import com.cloud.vm.VMInstanceVO; +import com.cloud.vm.VirtualMachine; +import com.cloud.vm.VirtualMachineProfile; + +@Local(value = { NetworkManager.class, NetworkService.class }) +public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkService { + + @Override + public List getVirtualNetworksOwnedByAccountInZone(String accountName, long domainId, long zoneId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List listNetworkOfferings() { + // TODO Auto-generated method stub + return null; + } + + @Override + public IpAddress allocateIP(AssociateIPAddrCmd cmd) throws ResourceAllocationException, InsufficientAddressCapacityException, ConcurrentOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public IpAddress associateIP(AssociateIPAddrCmd cmd) throws ResourceAllocationException, InsufficientAddressCapacityException, ConcurrentOperationException, ResourceUnavailableException { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean disassociateIpAddress(DisassociateIPAddrCmd cmd) { + // TODO Auto-generated method stub + return false; + } + + @Override + public Network createNetwork(CreateNetworkCmd cmd) throws InsufficientCapacityException, ConcurrentOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public List searchForNetworks(ListNetworksCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean deleteNetwork(long networkId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean restartNetwork(RestartNetworkCmd cmd) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { + // TODO Auto-generated method stub + return false; + } + + @Override + public int getActiveNicsInNetwork(long networkId) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public Network getNetwork(long networkId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public IpAddress getIp(long id) { + // TODO Auto-generated method stub + return null; + } + + @Override + public NetworkProfile convertNetworkToNetworkProfile(long networkId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Map> getZoneCapabilities(long zoneId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Map> getNetworkCapabilities(long networkId, long zoneId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isNetworkAvailableInDomain(long networkId, long domainId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public Long getDedicatedNetworkDomain(long networkId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Network updateNetwork(long networkId, String name, String displayText, List tags, Account caller, String domainSuffix) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Integer getNetworkRate(long networkId, Long vmId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Network getSystemNetworkByZoneAndTrafficType(long zoneId, TrafficType trafficType) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean configure(String name, Map params) throws ConfigurationException { + return true; + } + + @Override + public boolean start() { + return true; + } + + @Override + public boolean stop() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } + + @Override + public PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId) throws InsufficientAddressCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public PublicIp assignSourceNatIpAddress(Account owner, Network network, long callerId) throws ConcurrentOperationException, InsufficientAddressCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean releasePublicIpAddress(long id, long userId, Account caller) { + // TODO Auto-generated method stub + return false; + } + + @Override + public List listPublicIpAddressesInVirtualNetwork(long accountId, long dcId, Boolean sourceNat, Long associatedNetworkId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List setupNetwork(Account owner, NetworkOfferingVO offering, DeploymentPlan plan, String name, String displayText, boolean isShared, boolean isDefault) + throws ConcurrentOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public List setupNetwork(Account owner, NetworkOfferingVO offering, Network predefined, DeploymentPlan plan, String name, String displayText, boolean isShared, boolean isDefault, + boolean errorIfAlreadySetup, Long domainId, List tags) throws ConcurrentOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getSystemAccountNetworkOfferings(String... offeringNames) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void allocate(VirtualMachineProfile vm, List> networks) throws InsufficientCapacityException, ConcurrentOperationException { + // TODO Auto-generated method stub + + } + + @Override + public void prepare(VirtualMachineProfile profile, DeployDestination dest, ReservationContext context) throws InsufficientCapacityException, ConcurrentOperationException, + ResourceUnavailableException { + // TODO Auto-generated method stub + + } + + @Override + public void release(VirtualMachineProfile vmProfile, boolean forced) { + // TODO Auto-generated method stub + + } + + @Override + public void cleanupNics(VirtualMachineProfile vm) { + // TODO Auto-generated method stub + + } + + @Override + public void expungeNics(VirtualMachineProfile vm) { + // TODO Auto-generated method stub + + } + + @Override + public List getNics(long vmId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getNicsIncludingRemoved(VirtualMachine vm) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getNicProfiles(VirtualMachine vm) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getAccountsUsingNetwork(long configurationId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public AccountVO getNetworkOwner(long configurationId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getNetworksforOffering(long offeringId, long dataCenterId, long accountId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getNextAvailableMacAddressInNetwork(long networkConfigurationId) throws InsufficientAddressCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean applyRules(List rules, boolean continueOnError) throws ResourceUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public PublicIpAddress getPublicIpAddress(long ipAddressId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List listPodVlans(long podId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Pair implementNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, + InsufficientCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public List listNetworksUsedByVm(long vmId, boolean isSystem) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void prepareNicForMigration(VirtualMachineProfile vm, DeployDestination dest) { + // TODO Auto-generated method stub + + } + + @Override + public void shutdownNetwork(long networkId, ReservationContext context) { + // TODO Auto-generated method stub + + } + + @Override + public boolean destroyNetwork(long networkId, ReservationContext context) { + // TODO Auto-generated method stub + return false; + } + + @Override + public Network createNetwork(long networkOfferingId, String name, String displayText, Boolean isShared, Boolean isDefault, Long zoneId, String gateway, String cidr, String vlanId, + String networkDomain, Account owner, boolean isSecurityGroupEnabled, Long domainId, List tags) throws ConcurrentOperationException, InsufficientCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean associateIpAddressListToAccount(long userId, long accountId, long zoneId, Long vlanId, Network networkToAssociateWith) throws InsufficientCapacityException, + ConcurrentOperationException, ResourceUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public Nic getNicInNetwork(long vmId, long networkId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Nic getNicInNetworkIncludingRemoved(long vmId, long networkId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getNicsForTraffic(long vmId, TrafficType type) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Network getDefaultNetworkForVm(long vmId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Nic getDefaultNic(long vmId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getPasswordResetElements() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean zoneIsConfiguredForExternalNetworking(long zoneId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public Map getServiceCapabilities(long zoneId, Long networkOfferingId, Service service) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isServiceSupported(long networkId, Service service) { + // TODO Auto-generated method stub + return false; + } + + @Override + public NetworkVO getNetworkWithSecurityGroupEnabled(Long zoneId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean startNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { + // TODO Auto-generated method stub + return false; + } + + @Override + public String getIpOfNetworkElementInVirtualNetwork(long accountId, long dataCenterId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List listNetworksForAccount(long accountId, long zoneId, GuestIpType guestType, Boolean isDefault) { + // TODO Auto-generated method stub + return null; + } + + @Override + public IPAddressVO markIpAsUnavailable(long addrId) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java b/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java new file mode 100644 index 00000000000..e36dadaad31 --- /dev/null +++ b/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java @@ -0,0 +1,83 @@ +package com.cloud.network.security; + +import java.util.ArrayList; +import java.util.List; + +import junit.framework.TestCase; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; + +import com.cloud.agent.MockAgentManagerImpl; +import com.cloud.configuration.DefaultInterceptorLibrary; +import com.cloud.configuration.dao.ConfigurationDaoImpl; +import com.cloud.domain.dao.DomainDaoImpl; +import com.cloud.network.MockNetworkManagerImpl; +import com.cloud.network.security.dao.IngressRuleDaoImpl; +import com.cloud.network.security.dao.SecurityGroupDaoImpl; +import com.cloud.network.security.dao.SecurityGroupRulesDaoImpl; +import com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl; +import com.cloud.network.security.dao.SecurityGroupWorkDaoImpl; +import com.cloud.network.security.dao.VmRulesetLogDaoImpl; +import com.cloud.user.MockAccountManagerImpl; +import com.cloud.user.dao.AccountDaoImpl; +import com.cloud.utils.Profiler; +import com.cloud.utils.component.ComponentLocator; +import com.cloud.utils.component.MockComponentLocator; +import com.cloud.vm.MockUserVmManagerImpl; +import com.cloud.vm.MockVirtualMachineManagerImpl; +import com.cloud.vm.dao.UserVmDaoImpl; +import com.cloud.vm.dao.VMInstanceDaoImpl; + +public class SecurityGroupManagerImpl2Test extends TestCase { + //private final static Logger s_logger = Logger.getLogger(SecurityGroupManagerImpl2Test.class); + + @Override + @Before + public void setUp() { + MockComponentLocator locator = new MockComponentLocator("management-server"); + + locator.addDao("ConfigurationDao", ConfigurationDaoImpl.class); + locator.addDao("SecurityGroupDao", SecurityGroupDaoImpl.class); + + locator.addDao("IngressRuleDao", IngressRuleDaoImpl.class); + locator.addDao("SecurityGroupVMMapDao", SecurityGroupVMMapDaoImpl.class); + locator.addDao("SecurityGroupRulesDao", SecurityGroupRulesDaoImpl.class); + locator.addDao("UserVmDao", UserVmDaoImpl.class); + locator.addDao("AccountDao", AccountDaoImpl.class); + locator.addDao("ConfigurationDao", ConfigurationDaoImpl.class); + locator.addDao("SecurityGroupWorkDao", SecurityGroupWorkDaoImpl.class); + locator.addDao("VmRulesetLogDao", VmRulesetLogDaoImpl.class); + locator.addDao("VMInstanceDao", VMInstanceDaoImpl.class); + locator.addDao("DomainDao", DomainDaoImpl.class); + locator.addManager("AgentManager", MockAgentManagerImpl.class); + locator.addManager("VirtualMachineManager", MockVirtualMachineManagerImpl.class); + locator.addManager("UserVmManager", MockUserVmManagerImpl.class); + locator.addManager("NetworkManager", MockNetworkManagerImpl.class); + locator.addManager("AccountManager", MockAccountManagerImpl.class); + locator.makeActive(new DefaultInterceptorLibrary()); + } + + @Override + @After + public void tearDown() throws Exception { + } + + public void testSchedule() { + final int numVms = 100000; + System.out.println("Starting"); + ComponentLocator locator = ComponentLocator.getCurrentLocator(); + SecurityGroupManagerImpl2 sgMgr = ComponentLocator.inject(SecurityGroupManagerImpl2.class); + List work = new ArrayList(); + for (long i=100; i <= numVms; i++) { + work.add(i); + } + Profiler profiler = new Profiler(); + profiler.start(); + sgMgr.scheduleRulesetUpdateToHosts(work, false, null); + profiler.stop(); + + System.out.println("Done " + numVms + " in " + profiler.getDuration() + " ms"); + } +} diff --git a/server/test/com/cloud/user/MockAccountManagerImpl.java b/server/test/com/cloud/user/MockAccountManagerImpl.java new file mode 100644 index 00000000000..bd478e5b0d8 --- /dev/null +++ b/server/test/com/cloud/user/MockAccountManagerImpl.java @@ -0,0 +1,340 @@ +package com.cloud.user; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.ejb.Local; +import javax.naming.ConfigurationException; + +import com.cloud.acl.ControlledEntity; +import com.cloud.api.commands.CreateAccountCmd; +import com.cloud.api.commands.CreateUserCmd; +import com.cloud.api.commands.DeleteAccountCmd; +import com.cloud.api.commands.DeleteUserCmd; +import com.cloud.api.commands.DisableAccountCmd; +import com.cloud.api.commands.DisableUserCmd; +import com.cloud.api.commands.EnableAccountCmd; +import com.cloud.api.commands.EnableUserCmd; +import com.cloud.api.commands.ListResourceLimitsCmd; +import com.cloud.api.commands.LockUserCmd; +import com.cloud.api.commands.UpdateAccountCmd; +import com.cloud.api.commands.UpdateResourceCountCmd; +import com.cloud.api.commands.UpdateResourceLimitCmd; +import com.cloud.api.commands.UpdateUserCmd; +import com.cloud.configuration.ResourceCount; +import com.cloud.configuration.ResourceLimit; +import com.cloud.configuration.ResourceLimitVO; +import com.cloud.configuration.ResourceCount.ResourceType; +import com.cloud.domain.Domain; +import com.cloud.domain.DomainVO; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.PermissionDeniedException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.server.Criteria; +import com.cloud.utils.Pair; +import com.cloud.utils.component.Manager; + + +@Local(value = { AccountManager.class, AccountService.class }) +public class MockAccountManagerImpl implements Manager, AccountManager { + + @Override + public UserAccount createAccount(CreateAccountCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean deleteUserAccount(DeleteAccountCmd cmd) { + // TODO Auto-generated method stub + return false; + } + + @Override + public UserAccount disableUser(DisableUserCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserAccount enableUser(EnableUserCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserAccount lockUser(LockUserCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserAccount updateUser(UpdateUserCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Account disableAccount(DisableAccountCmd cmd) throws ConcurrentOperationException, ResourceUnavailableException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Account enableAccount(EnableAccountCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Account lockAccount(DisableAccountCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Account updateAccount(UpdateAccountCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public ResourceLimit updateResourceLimit(UpdateResourceLimitCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List updateResourceCount(UpdateResourceCountCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List searchForLimits(ListResourceLimitsCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Account getSystemAccount() { + // TODO Auto-generated method stub + return null; + } + + @Override + public User getSystemUser() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean deleteUser(DeleteUserCmd deleteUserCmd) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isAdmin(short accountType) { + // TODO Auto-generated method stub + return false; + } + + @Override + public Account finalizeOwner(Account caller, String accountName, Long domainId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Pair finalizeAccountDomainForList(Account caller, String accountName, Long domainId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Account getActiveAccount(String accountName, Long domainId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Account getActiveAccount(Long accountId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Account getAccount(Long accountId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public User getActiveUser(long userId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public User getUser(long userId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Domain getDomain(long id) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isRootAdmin(short accountType) { + // TODO Auto-generated method stub + return false; + } + + @Override + public User getActiveUserByRegistrationToken(String registrationToken) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void markUserRegistered(long userId) { + // TODO Auto-generated method stub + + } + + @Override + public Set getDomainParentIds(long domainId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Set getDomainChildrenIds(String parentDomainPath) { + // TODO Auto-generated method stub + return null; + } + + @Override + public long findCorrectResourceLimit(AccountVO account, ResourceType type) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public long findCorrectResourceLimit(DomainVO domain, ResourceType type) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public long updateAccountResourceCount(long accountId, ResourceType type) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public long updateDomainResourceCount(long domainId, ResourceType type) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public void incrementResourceCount(long accountId, ResourceType type, Long... delta) { + // TODO Auto-generated method stub + + } + + @Override + public void decrementResourceCount(long accountId, ResourceType type, Long... delta) { + // TODO Auto-generated method stub + + } + + @Override + public boolean resourceLimitExceeded(Account account, ResourceType type, long... count) { + // TODO Auto-generated method stub + return false; + } + + @Override + public long getResourceCount(AccountVO account, ResourceType type) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public List searchForLimits(Criteria c) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean disableAccount(long accountId) throws ConcurrentOperationException, ResourceUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean deleteAccount(AccountVO account, long callerUserId, Account caller) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void checkAccess(Account account, Domain domain) throws PermissionDeniedException { + // TODO Auto-generated method stub + + } + + @Override + public void checkAccess(Account account, ControlledEntity... entities) throws PermissionDeniedException { + // TODO Auto-generated method stub + + } + + @Override + public boolean cleanupAccount(AccountVO account, long callerUserId, Account caller) { + // TODO Auto-generated method stub + return false; + } + + @Override + public UserVO createUser(CreateUserCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Long checkAccessAndSpecifyAuthority(Account caller, Long zoneId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean configure(String name, Map params) throws ConfigurationException { + return true; + } + + @Override + public boolean start() { + return true; + } + + @Override + public boolean stop() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/server/test/com/cloud/vm/MockUserVmManagerImpl.java b/server/test/com/cloud/vm/MockUserVmManagerImpl.java new file mode 100644 index 00000000000..930df3f5908 --- /dev/null +++ b/server/test/com/cloud/vm/MockUserVmManagerImpl.java @@ -0,0 +1,368 @@ +package com.cloud.vm; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.ejb.Local; +import javax.naming.ConfigurationException; + +import com.cloud.agent.api.StopAnswer; +import com.cloud.agent.api.VmStatsEntry; +import com.cloud.agent.manager.Commands; +import com.cloud.api.commands.AttachVolumeCmd; +import com.cloud.api.commands.CreateTemplateCmd; +import com.cloud.api.commands.CreateVMGroupCmd; +import com.cloud.api.commands.DeleteVMGroupCmd; +import com.cloud.api.commands.DeployVMCmd; +import com.cloud.api.commands.DestroyVMCmd; +import com.cloud.api.commands.DetachVolumeCmd; +import com.cloud.api.commands.ListVMsCmd; +import com.cloud.api.commands.RebootVMCmd; +import com.cloud.api.commands.RecoverVMCmd; +import com.cloud.api.commands.ResetVMPasswordCmd; +import com.cloud.api.commands.StartVMCmd; +import com.cloud.api.commands.UpdateVMCmd; +import com.cloud.api.commands.UpgradeVMCmd; +import com.cloud.dc.DataCenter; +import com.cloud.deploy.DeployDestination; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.ManagementServerException; +import com.cloud.exception.ResourceAllocationException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.exception.StorageUnavailableException; +import com.cloud.exception.VirtualMachineMigrationException; +import com.cloud.host.Host; +import com.cloud.hypervisor.Hypervisor.HypervisorType; +import com.cloud.offering.ServiceOffering; +import com.cloud.server.Criteria; +import com.cloud.storage.Volume; +import com.cloud.template.VirtualMachineTemplate; +import com.cloud.user.Account; +import com.cloud.uservm.UserVm; +import com.cloud.utils.component.Manager; +import com.cloud.utils.exception.ExecutionException; + +@Local(value = { UserVmManager.class, UserVmService.class }) +public class MockUserVmManagerImpl implements UserVmManager, UserVmService, Manager { + + @Override + public UserVmVO findByName(String name) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVmVO findById(long id) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVmVO persist(UserVmVO vm) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, DeployDestination dest, ReservationContext context) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean finalizeDeployment(Commands cmds, VirtualMachineProfile profile, DeployDestination dest, ReservationContext context) throws ResourceUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean finalizeStart(VirtualMachineProfile profile, long hostId, Commands cmds, ReservationContext context) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean finalizeCommandsOnStart(Commands cmds, VirtualMachineProfile profile) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void finalizeStop(VirtualMachineProfile profile, StopAnswer answer) { + // TODO Auto-generated method stub + + } + + @Override + public void finalizeExpunge(UserVmVO vm) { + // TODO Auto-generated method stub + + } + + @Override + public Long convertToId(String vmName) { + // TODO Auto-generated method stub + return null; + } + + @Override + public List getVirtualMachines(long hostId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVmVO getVirtualMachine(long vmId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean attachISOToVM(long vmId, long isoId, boolean attach) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean stopVirtualMachine(long userId, long vmId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public HashMap getVirtualMachineStatistics(long hostId, String hostName, List vmIds) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean deleteVmGroup(long groupId) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean addInstanceToGroup(long userVmId, String group) { + // TODO Auto-generated method stub + return false; + } + + @Override + public InstanceGroupVO getGroupForVm(long vmId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void removeInstanceFromInstanceGroup(long vmId) { + // TODO Auto-generated method stub + + } + + @Override + public boolean expunge(UserVmVO vm, long callerUserId, Account caller) { + // TODO Auto-generated method stub + return false; + } + + @Override + public List searchForUserVMs(Criteria c) { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getChecksum(Long hostId, String templatePath) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean configure(String name, Map params) throws ConfigurationException { + return true; + } + + @Override + public boolean start() { + return true; + } + + @Override + public boolean stop() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm destroyVm(DestroyVMCmd cmd) throws ResourceUnavailableException, ConcurrentOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm destroyVm(long vmId) throws ResourceUnavailableException, ConcurrentOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm resetVMPassword(ResetVMPasswordCmd cmd, String password) throws ResourceUnavailableException, InsufficientCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Volume attachVolumeToVM(AttachVolumeCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Volume detachVolumeFromVM(DetachVolumeCmd cmmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm startVirtualMachine(StartVMCmd cmd) throws StorageUnavailableException, ExecutionException, ConcurrentOperationException, ResourceUnavailableException, + InsufficientCapacityException, ResourceAllocationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm rebootVirtualMachine(RebootVMCmd cmd) throws InsufficientCapacityException, ResourceUnavailableException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm updateVirtualMachine(UpdateVMCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm recoverVirtualMachine(RecoverVMCmd cmd) throws ResourceAllocationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public VirtualMachineTemplate createPrivateTemplateRecord(CreateTemplateCmd cmd) throws ResourceAllocationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public VirtualMachineTemplate createPrivateTemplate(CreateTemplateCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm createBasicSecurityGroupVirtualMachine(DataCenter zone, ServiceOffering serviceOffering, VirtualMachineTemplate template, List securityGroupIdList, Account owner, + String hostName, String displayName, Long diskOfferingId, Long diskSize, String group, HypervisorType hypervisor, String userData, String sshKeyPair) throws InsufficientCapacityException, + ConcurrentOperationException, ResourceUnavailableException, StorageUnavailableException, ResourceAllocationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm createAdvancedSecurityGroupVirtualMachine(DataCenter zone, ServiceOffering serviceOffering, VirtualMachineTemplate template, List networkIdList, + List securityGroupIdList, Account owner, String hostName, String displayName, Long diskOfferingId, Long diskSize, String group, HypervisorType hypervisor, String userData, + String sshKeyPair) throws InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException, StorageUnavailableException, ResourceAllocationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm createAdvancedVirtualMachine(DataCenter zone, ServiceOffering serviceOffering, VirtualMachineTemplate template, List networkIdList, Account owner, String hostName, + String displayName, Long diskOfferingId, Long diskSize, String group, HypervisorType hypervisor, String userData, String sshKeyPair) throws InsufficientCapacityException, + ConcurrentOperationException, ResourceUnavailableException, StorageUnavailableException, ResourceAllocationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm startVirtualMachine(DeployVMCmd cmd) throws InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { + // TODO Auto-generated method stub + return null; + } + + @Override + public InstanceGroup createVmGroup(CreateVMGroupCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean deleteVmGroup(DeleteVMGroupCmd cmd) { + // TODO Auto-generated method stub + return false; + } + + @Override + public UserVm upgradeVirtualMachine(UpgradeVMCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm stopVirtualMachine(long vmId, boolean forced) throws ConcurrentOperationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm startVirtualMachine(long vmId) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public void deletePrivateTemplateRecord(Long templateId) { + // TODO Auto-generated method stub + + } + + @Override + public List searchForUserVMs(ListVMsCmd cmd) { + // TODO Auto-generated method stub + return null; + } + + @Override + public HypervisorType getHypervisorTypeOfUserVM(long vmid) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm createVirtualMachine(DeployVMCmd cmd) throws InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException, StorageUnavailableException, + ResourceAllocationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm getUserVm(long vmId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public UserVm migrateVirtualMachine(UserVm vm, Host destinationHost) throws ResourceUnavailableException, ConcurrentOperationException, ManagementServerException, VirtualMachineMigrationException { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java b/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java new file mode 100644 index 00000000000..2ab591f6849 --- /dev/null +++ b/server/test/com/cloud/vm/MockVirtualMachineManagerImpl.java @@ -0,0 +1,195 @@ +package com.cloud.vm; + +import java.util.List; +import java.util.Map; + +import javax.ejb.Local; +import javax.naming.ConfigurationException; + +import com.cloud.deploy.DeployDestination; +import com.cloud.deploy.DeploymentPlan; +import com.cloud.exception.AgentUnavailableException; +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.InsufficientServerCapacityException; +import com.cloud.exception.ManagementServerException; +import com.cloud.exception.OperationTimedoutException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.exception.VirtualMachineMigrationException; +import com.cloud.hypervisor.Hypervisor.HypervisorType; +import com.cloud.network.NetworkVO; +import com.cloud.offering.ServiceOffering; +import com.cloud.service.ServiceOfferingVO; +import com.cloud.storage.DiskOfferingVO; +import com.cloud.storage.VMTemplateVO; +import com.cloud.user.Account; +import com.cloud.user.User; +import com.cloud.uservm.UserVm; +import com.cloud.utils.Pair; +import com.cloud.utils.fsm.NoTransitionException; +import com.cloud.vm.VirtualMachine.Event; +import com.cloud.vm.VirtualMachine.Type; +import com.cloud.vm.VirtualMachineProfile.Param; + +@Local(value = VirtualMachineManager.class) +public class MockVirtualMachineManagerImpl implements VirtualMachineManager { + + @Override + public boolean configure(String name, Map params) throws ConfigurationException { + return true; + } + + @Override + public boolean start() { + return true; + } + + @Override + public boolean stop() { + // TODO Auto-generated method stub + return false; + } + + @Override + public String getName() { + // TODO Auto-generated method stub + return null; + } + + @Override + public T allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, Pair rootDiskOffering, + List> dataDiskOfferings, List> networks, Map params, DeploymentPlan plan, HypervisorType hyperType, Account owner) + throws InsufficientCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public T allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, Long rootSize, Pair dataDiskOffering, + List> networks, DeploymentPlan plan, HypervisorType hyperType, Account owner) throws InsufficientCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public T allocate(T vm, VMTemplateVO template, ServiceOfferingVO serviceOffering, List> networkProfiles, DeploymentPlan plan, + HypervisorType hyperType, Account owner) throws InsufficientCapacityException { + // TODO Auto-generated method stub + return null; + } + + @Override + public T start(T vm, Map params, User caller, Account account) throws InsufficientCapacityException, ResourceUnavailableException { + // TODO Auto-generated method stub + return null; + } + + @Override + public T start(T vm, Map params, User caller, Account account, DeploymentPlan planToDeploy) throws InsufficientCapacityException, + ResourceUnavailableException { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean stop(T vm, User caller, Account account) throws ResourceUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean expunge(T vm, User caller, Account account) throws ResourceUnavailableException { + // TODO Auto-generated method stub + return false; + } + + @Override + public void registerGuru(Type type, VirtualMachineGuru guru) { + // TODO Auto-generated method stub + + } + + @Override + public boolean stateTransitTo(VMInstanceVO vm, Event e, Long hostId) throws NoTransitionException { + // TODO Auto-generated method stub + return false; + } + + @Override + public T advanceStart(T vm, Map params, User caller, Account account) throws InsufficientCapacityException, ResourceUnavailableException, + ConcurrentOperationException, OperationTimedoutException { + // TODO Auto-generated method stub + return null; + } + + @Override + public T advanceStart(T vm, Map params, User caller, Account account, DeploymentPlan planToDeploy) throws InsufficientCapacityException, + ResourceUnavailableException, ConcurrentOperationException, OperationTimedoutException { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean advanceStop(T vm, boolean forced, User caller, Account account) throws ResourceUnavailableException, OperationTimedoutException, + ConcurrentOperationException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean advanceExpunge(T vm, User caller, Account account) throws ResourceUnavailableException, OperationTimedoutException, ConcurrentOperationException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean remove(T vm, User caller, Account account) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean destroy(T vm, User caller, Account account) throws AgentUnavailableException, OperationTimedoutException, ConcurrentOperationException { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean migrateAway(Type type, long vmid, long hostId) throws InsufficientServerCapacityException, VirtualMachineMigrationException { + // TODO Auto-generated method stub + return false; + } + + @Override + public T migrate(T vm, long srcHostId, DeployDestination dest) throws ResourceUnavailableException, ConcurrentOperationException, ManagementServerException, + VirtualMachineMigrationException { + // TODO Auto-generated method stub + return null; + } + + @Override + public T reboot(T vm, Map params, User caller, Account account) throws InsufficientCapacityException, ResourceUnavailableException { + // TODO Auto-generated method stub + return null; + } + + @Override + public T advanceReboot(T vm, Map params, User caller, Account account) throws InsufficientCapacityException, ResourceUnavailableException, + ConcurrentOperationException, OperationTimedoutException { + // TODO Auto-generated method stub + return null; + } + + @Override + public VMInstanceVO findById(Type type, long vmId) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isVirtualMachineUpgradable(UserVm vm, ServiceOffering offering) { + // TODO Auto-generated method stub + return false; + } + +}