maven+marvin+simulator: Changes to the lifecycle steps integration test is now run as follows:
Build $ mvn -Pdeveloper -Dsimulator clean install DB: $ mvn -Pdeveloper -pl developer -Ddeploydb $ mvn -Pdeveloper -pl developer -Ddeploydb-simulator Setup: $ mvn -Pdeveloper,marvin.setup -Dmarvin.config=setup/dev/advanced.cfg -pl :cloud-marvin integration-test Test: $ mvn -Pdeveloper,marvin.test -Dmarvin.config=setup/dev/advanced.cfg -pl :cloud-marvin integration-test Signed-off-by: Prasanna Santhanam <t...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b798c451 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b798c451 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b798c451 Branch: refs/heads/master Commit: b798c451141c32d46322aae83063eeaa9634b337 Parents: 82fd938 Author: Prasanna Santhanam <t...@apache.org> Authored: Tue Apr 2 13:09:36 2013 +0530 Committer: Prasanna Santhanam <t...@apache.org> Committed: Tue Apr 2 19:56:33 2013 +0530 ---------------------------------------------------------------------- client/pom.xml | 11 + client/tomcatconf/componentContext.xml.in | 408 ++++++--------- client/tomcatconf/simulatorComponentContext.xml.in | 361 ++++++------- .../agent/manager/MockStorageManagerImpl.java | 36 +- .../dao/HypervisorCapabilitiesDaoImpl.java | 15 +- setup/db/templates.simulator.sql | 4 +- tools/marvin/pom.xml | 40 ++- 7 files changed, 396 insertions(+), 479 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b798c451/client/pom.xml ---------------------------------------------------------------------- diff --git a/client/pom.xml b/client/pom.xml index 35588aa..05934f4 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -214,10 +214,21 @@ <artifactId>cloud-plugin-hypervisor-simulator</artifactId> <version>${project.version}</version> </dependency> + <dependency> <groupId>org.apache.cloudstack</groupId> <artifactId>cloud-plugin-storage-volume-default</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.cloudstack</groupId> + <artifactId>cloud-plugin-syslog-alerts</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.cloudstack</groupId> + <artifactId>cloud-plugin-snmp-alerts</artifactId> + <version>${project.version}</version> + </dependency> </dependencies> <build> <defaultGoal>install</defaultGoal> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b798c451/client/tomcatconf/componentContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in index 584be97..0ddb428 100644 --- a/client/tomcatconf/componentContext.xml.in +++ b/client/tomcatconf/componentContext.xml.in @@ -1,3 +1,4 @@ + <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -30,277 +31,192 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - <!-- - Compose a CloudStack deployment with selected components here + OSS deployment component configuration --> <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" /> - <bean id="encryptionSecretKeyChecker" class="com.cloud.utils.crypt.EncryptionSecretKeyChecker" /> - - <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl" /> - <bean id="configurationServerImpl" class="com.cloud.server.ConfigurationServerImpl" /> - - <bean id="clusterManagerImpl" class="com.cloud.cluster.ClusterManagerImpl" /> - <bean id="clusteredAgentManagerImpl" class="com.cloud.agent.manager.ClusteredAgentManagerImpl" /> - <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" /> - <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" /> - <bean id="userVmManagerImpl" class="com.cloud.vm.UserVmManagerImpl" /> - <bean id="consoleProxyManagerImpl" class="com.cloud.consoleproxy.ConsoleProxyManagerImpl" /> - <bean id="securityGroupManagerImpl2" class="com.cloud.network.security.SecurityGroupManagerImpl2" /> - <bean id="premiumSecondaryStorageManagerImpl" class="com.cloud.secstorage.PremiumSecondaryStorageManagerImpl" /> - <bean id="userVmDaoImpl" class="com.cloud.vm.dao.UserVmDaoImpl" /> - <bean id="ipv6AddressManagerImpl" class="com.cloud.network.Ipv6AddressManagerImpl" /> - - <bean id="apiRateLimitServiceImpl" class="org.apache.cloudstack.ratelimit.ApiRateLimitServiceImpl"/> - <bean id="BaremetalManager" class="com.cloud.baremetal.manager.BaremetalManagerImpl"/> - <bean id="BaremetalDhcpManager" class="com.cloud.baremetal.networkservice.BaremetalDhcpManagerImpl"/> - <bean id="BaremetalKickStartPxeService" class="com.cloud.baremetal.networkservice.BaremetalKickStartServiceImpl"/> - <bean id="BaremetalPingPxeService" class="com.cloud.baremetal.networkservice.BareMetalPingServiceImpl" /> - <bean id="BaremetalPxeManager" class="com.cloud.baremetal.networkservice.BaremetalPxeManagerImpl" /> - <bean id="UcsManager" class="com.cloud.ucs.manager.UcsManagerImpl" /> - <bean id="UcsBladeDao" class="com.cloud.ucs.database.UcsBladeDaoImpl" /> - <bean id="UcsManagerDao" class="com.cloud.ucs.database.UcsManagerDaoImpl" /> - - - <!-- - Network Elements - --> - <bean id="Ovs" class="com.cloud.network.element.OvsElement"> - <property name="name" value="Ovs"/> - </bean> - <bean id="BareMetalDhcp" class="com.cloud.baremetal.networkservice.BaremetalDhcpElement"> - <property name="name" value="BareMetalDhcp"/> - </bean> - <bean id="BareMetalPxe" class="com.cloud.baremetal.networkservice.BaremetalPxeElement"> - <property name="name" value="BareMetalPxe"/> - </bean> - <bean id="BareMetalUserdata" class="com.cloud.baremetal.networkservice.BaremetalUserdataElement"> - <property name="name" value="BareMetalUserdata"/> - </bean> - <bean id="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement"> - <property name="name" value="SecurityGroupProvider"/> - </bean> - <bean id="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"> - <property name="name" value="VirtualRouter"/> - </bean> - <bean id="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"> - <property name="name" value="VpcVirtualRouter"/> - </bean> - <!-- - <bean id="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"> - <property name="name" value="NiciraNvp"/> - </bean> - --> + <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl" /> -<!-- - <bean id="BigSwitchVnsElementService" class="com.cloud.network.element.BigSwitchVnsElement"> - <property name="name" value="BigSwitchVnsElementService"/> - </bean> ---> - <!-- - Adapters + Managers & pluggable adapters configuration under OSS deployment --> - <bean id="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator"> - <property name="name" value="FirstFitRouting"/> + <bean id="accountManagerImpl" class="com.cloud.user.AccountManagerImpl" > + <property name="UserAuthenticators"> + <list> + <ref bean="MD5UserAuthenticator"/> + <ref bean="LDAPUserAuthenticator"/> + </list> + </property> + <property name="SecurityCheckers"> + <list> + <ref bean="domainChecker"/> + </list> + </property> </bean> - <bean id="hypervisorTemplateAdapter" class="com.cloud.template.HypervisorTemplateAdapter"> - <property name="name" value="HypervisorAdapter"/> - </bean> - - <bean id="bareMetalTemplateAdapter" class="com.cloud.baremetal.BareMetalTemplateAdapter"> - <property name="name" value="BareMetalAdapter"/> - </bean> - - <!-- - Storage pool allocators - --> - - <bean id="LocalStoragePoolAllocator" class="org.apache.cloudstack.storage.allocator.LocalStoragePoolAllocator"> - <property name="name" value="LocalStorage"/> - </bean> - <!-- - <bean id="FirstFitStoragePoolAllocator" class="org.apache.cloudstack.storage.allocator.FirstFitStoragePoolAllocator"> - <property name="name" value="Storage"/> - </bean> - --> - - <bean id="UserConcentratedAllocator" class="com.cloud.agent.manager.allocator.impl.UserConcentratedAllocator"> - <property name="name" value="User First"/> - </bean> - - <bean id="ConsoleProxyAllocator" class="com.cloud.consoleproxy.ConsoleProxyBalanceAllocator"> - <property name="name" value="Balance"/> - </bean> - - <bean id="StaticRoleBasedAPIAccessChecker" class="org.apache.cloudstack.acl.StaticRoleBasedAPIAccessChecker"/> - - <bean id="ExteralIpAddressAllocator" class="com.cloud.network.ExteralIpAddressAllocator"> - <property name="name" value="Basic"/> - </bean> - - <bean id="HypervisorTemplateAdapter" class="com.cloud.template.HypervisorTemplateAdapter"> - <property name="name" value="HypervisorAdapter"/> - </bean> - - <bean id="BareMetalTemplateAdapter" class="com.cloud.baremetal.manager.BareMetalTemplateAdapter" > - <property name="name" value="BareMetalTemplateAdapter"/> - </bean> - - <!-- - Authenticators - --> - <bean id="MD5UserAuthenticator" class="com.cloud.server.auth.MD5UserAuthenticator"> - <property name="name" value="MD5"/> - </bean> - - <bean id="LDAPUserAuthenticator" class="com.cloud.server.auth.LDAPUserAuthenticator"> - <property name="name" value="LDAP"/> - </bean> - - <!-- - Investigators - --> - <bean id="CheckOnAgentInvestigator" class="com.cloud.ha.CheckOnAgentInvestigator"> - <property name="name" value="SimpleInvestigator"/> - </bean> - - <bean id="XenServerInvestigator" class="com.cloud.ha.XenServerInvestigator"> - <property name="name" value="XenServerInvestigator"/> - </bean> - - <bean id="UserVmDomRInvestigator" class="com.cloud.ha.UserVmDomRInvestigator"> - <property name="name" value="PingInvestigator"/> - </bean> - - <bean id="ManagementIPSystemVMInvestigator" class="com.cloud.ha.ManagementIPSystemVMInvestigator"> - <property name="name" value="ManagementIPSysVMInvestigator"/> - </bean> - - <!-- - Fencers - --> - <bean id="XenServerFencer" class="com.cloud.ha.XenServerFencer"> - <property name="name" value="XenServerFenceBuilder"/> - </bean> - <bean id="KVMFencer" class="com.cloud.ha.KVMFencer"> - <property name="name" value="KVMFenceBuilder"/> - </bean> - <bean id="OvmFencer" class="com.cloud.ovm.hypervisor.OvmFencer"> - <property name="name" value="OvmFenceBuilder"/> - </bean> - - <bean id="XcpServerDiscoverer" class="com.cloud.hypervisor.xen.discoverer.XcpServerDiscoverer"> - <property name="name" value="XCP Agent"/> - </bean> - - <bean id="SecondaryStorageDiscoverer" class="com.cloud.storage.secondary.SecondaryStorageDiscoverer"> - <property name="name" value="SecondaryStorage"/> - </bean> - - <bean id="KvmServerDiscoverer" class="com.cloud.hypervisor.kvm.discoverer.KvmServerDiscoverer"> - <property name="name" value="KVM Agent"/> - </bean> - - <bean id="BareMetalDiscoverer" class="com.cloud.baremetal.manager.BareMetalDiscoverer"> - <property name="name" value="Bare Metal Agent"/> - </bean> - - <bean id="HypervServerDiscoverer" class="com.cloud.hypervisor.hyperv.HypervServerDiscoverer"> - <property name="name" value="SCVMMServer"/> - </bean> - - <bean id="OvmDiscoverer" class="com.cloud.ovm.hypervisor.OvmDiscoverer"> - <property name="name" value="Ovm Discover"/> + <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl"> + <property name="UserAuthenticators"> + <list> + <ref bean="MD5UserAuthenticator"/> + <ref bean="LDAPUserAuthenticator"/> + </list> + </property> + <property name="HostAllocators"> + <list> + <ref bean="FirstFitRouting"/> + </list> + </property> + </bean> + + <bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl"> + <property name="StoragePoolAllocators"> + <list> + <ref bean="LocalStoragePoolAllocator"/> + <ref bean="clusterScopeStoragePoolAllocator"/> + <ref bean="zoneWideStoragePoolAllocator"/> + <ref bean="garbageCollectingStoragePoolAllocator"/> + </list> + </property> </bean> <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner"> <property name="name" value="First Fit"/> - </bean> - - <bean id="UserDispersingPlanner" class="com.cloud.deploy.UserDispersingPlanner"> - <property name="name" value="UserDispersing"/> + <property name="StoragePoolAllocators"> + <list> + <ref bean="LocalStoragePoolAllocator"/> + <ref bean="clusterScopeStoragePoolAllocator"/> + <ref bean="zoneWideStoragePoolAllocator"/> + <ref bean="garbageCollectingStoragePoolAllocator"/> + </list> + </property> + <property name="HostAllocators"> + <list> + <ref bean="FirstFitRouting"/> + </list> + </property> </bean> - <bean id="UserConcentratedPodPlanner" class="com.cloud.deploy.UserConcentratedPodPlanner"> - <property name="name" value="UserConcentratedPod"/> - </bean> - - <bean id="BareMetalPlanner" class="com.cloud.baremetal.manager.BareMetalPlanner"> - <property name="name" value="BareMetal Fit"/> - </bean> - - <bean id="BaremetalPlannerSelector" class="com.cloud.baremetal.manager.BaremetalPlannerSelector"> - <property name="name" value="BaremetalPlannerSelector"/> - </bean> - - <bean id="HypervisorPlannerSelector" class="com.cloud.deploy.HypervisorVmPlannerSelector"> - <property name="name" value="HypervisorPlannerSelector"/> - </bean> - + <bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" > + <property name="PodAllocators"> + <list> + <ref bean="UserConcentratedAllocator"/> + </list> + </property> + <property name="Discoverers"> + <list> + <ref bean="XcpServerDiscoverer"/> + <ref bean="SecondaryStorageDiscoverer"/> + <ref bean="KvmServerDiscoverer"/> + <ref bean="LxcServerDiscoverer"/> <!-- - Network Gurus + <ref bean="BareMetalDiscoverer"/> --> - <bean id="StorageNetworkGuru" class="com.cloud.network.guru.StorageNetworkGuru"> - <property name="name" value="StorageNetworkGuru"/> - </bean> - <bean id="ExternalGuestNetworkGuru" class="com.cloud.network.guru.ExternalGuestNetworkGuru"> - <property name="name" value="ExternalGuestNetworkGuru"/> - </bean> - <bean id="PublicNetworkGuru" class="com.cloud.network.guru.PublicNetworkGuru"> - <property name="name" value="PublicNetworkGuru"/> - </bean> - <bean id="PodBasedNetworkGuru" class="com.cloud.network.guru.PodBasedNetworkGuru"> - <property name="name" value="PodBasedNetworkGuru"/> - </bean> - <bean id="ControlNetworkGuru" class="com.cloud.network.guru.ControlNetworkGuru"> - <property name="name" value="ControlNetworkGuru"/> - </bean> - <bean id="DirectNetworkGuru" class="com.cloud.network.guru.DirectNetworkGuru"> - <property name="name" value="DirectNetworkGuru"/> - </bean> - <bean id="DirectPodBasedNetworkGuru" class="com.cloud.network.guru.DirectPodBasedNetworkGuru"> - <property name="name" value="DirectPodBasedNetworkGuru"/> - </bean> - <bean id="OvsGuestNetworkGuru" class="com.cloud.network.guru.OvsGuestNetworkGuru"> - <property name="name" value="OvsGuestNetworkGuru"/> - </bean> - <bean id="PrivateNetworkGuru" class="com.cloud.network.guru.PrivateNetworkGuru"> - <property name="name" value="PrivateNetworkGuru"/> - </bean> - <bean id="NiciraNvpGuestNetworkGuru" class="com.cloud.network.guru.NiciraNvpGuestNetworkGuru"> - <property name="name" value="NiciraNvpGuestNetworkGuru"/> - </bean> - + + <ref bean="OvmDiscoverer"/> + </list> + </property> + </bean> + + <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" > + <property name="Investigators"> + <list> + <ref bean="CheckOnAgentInvestigator"/> + <ref bean="XenServerInvestigator"/> + <ref bean="UserVmDomRInvestigator"/> + <ref bean="ManagementIPSystemVMInvestigator"/> + </list> + </property> + <property name="FenceBuilders"> + <list> + <ref bean="XenServerFencer"/> + <ref bean="KVMFencer"/> + <ref bean="OvmFencer"/> + </list> + </property> + </bean> + + <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" > + <property name="HostAllocators"> + <list> + <ref bean="FirstFitRouting"/> + </list> + </property> + <property name="Planners"> + <list> + <ref bean="FirstFitPlanner" /> + <ref bean="UserDispersingPlanner" /> + <ref bean="UserConcentratedPodPlanner" /> + <!-- - <bean id="BigSwitchVnsGuestNetworkGuru" class=".BigSwitchVnsGuestNetworkGuru"> - <property name="name" value="com.cloud.network.guru.BigSwitchVnsGuestNetworkGuru"/> - </bean> + <ref bean="BareMetalPlanner" /> --> - <!-- - Hypervisor Gurus - --> - <bean id="XenServerGuru" class="com.cloud.hypervisor.XenServerGuru"> - <property name="name" value="XenServerGuru"/> + </list> + </property> </bean> - <bean id="KVMGuru" class="com.cloud.hypervisor.KVMGuru"> - <property name="name" value="KVMGuru"/> - </bean> - - <bean id="HypervGuru" class="com.cloud.hypervisor.guru.HypervGuru"> - <property name="name" value="HypervGuru"/> + <bean id="networkManagerImpl" class="com.cloud.network.NetworkManagerImpl" > + <property name="NetworkGurus"> + <list> + <ref bean="StorageNetworkGuru"/> + <ref bean="ExternalGuestNetworkGuru"/> + <ref bean="PublicNetworkGuru"/> + <ref bean="PodBasedNetworkGuru"/> + <ref bean="DirectPodBasedNetworkGuru"/> + <ref bean="ControlNetworkGuru"/> + <ref bean="DirectNetworkGuru"/> + <ref bean="OvsGuestNetworkGuru"/> + <ref bean="PrivateNetworkGuru"/> + </list> + </property> + <property name="NetworkElements"> + <list> + <ref bean="VirtualRouter"/> + <ref bean="Ovs"/> + <ref bean="SecurityGroupProvider"/> + <ref bean="VpcVirtualRouter"/> +<!-- + <ref bean="BareMetalDhcp"/> + <ref bean="BareMetalPxe"/> + <ref bean="BareMetalUserdata"/> +--> + </list> + </property> + <property name="IpDeployers"> + <list> + <ref bean="elasticLoadBalancerElement"/> + <ref bean="VirtualRouter"/> + <ref bean="VpcVirtualRouter"/> + </list> + </property> + <property name="DhcpProviders"> + <list> + <ref bean="VirtualRouter"/> + <ref bean="VpcVirtualRouter"/> +<!-- + <ref bean="BareMetalDhcp"/> +--> + </list> + </property> </bean> - <bean id="OvmGuru" class="com.cloud.ovm.hypervisor.OvmGuru"> - <property name="name" value="OvmGuru"/> + <bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl"> + <property name="NetworkElements"> + <list> + <ref bean="VirtualRouter"/> + <ref bean="Ovs"/> + <ref bean="SecurityGroupProvider"/> + <ref bean="VpcVirtualRouter"/> +<!-- + <ref bean="BareMetalDhcp"/> + <ref bean="BareMetalPxe"/> + <ref bean="BareMetalUserdata"/> +--> + </list> + </property> </bean> - <bean id="BaremetalGuru" class="com.cloud.baremetal.manager.BareMetalGuru"> - <property name="name" value="BaremetalGuru"/> - </bean> + <bean id="GlobalLoadBalancingRulesServiceImpl" class ="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" /> </beans> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b798c451/client/tomcatconf/simulatorComponentContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/simulatorComponentContext.xml.in b/client/tomcatconf/simulatorComponentContext.xml.in index d501ca1..1cb9f6f 100644 --- a/client/tomcatconf/simulatorComponentContext.xml.in +++ b/client/tomcatconf/simulatorComponentContext.xml.in @@ -1,3 +1,4 @@ + <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -30,241 +31,205 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> - <!-- - Compose a CloudStack deployment with selected components here + OSS deployment component configuration --> <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker" /> - <bean id="encryptionSecretKeyChecker" class="com.cloud.utils.crypt.EncryptionSecretKeyChecker" /> - <bean id="configurationServerImpl" class="com.cloud.server.ConfigurationServerImpl" /> + <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl" /> + + <!-- simulator components --> + <bean id="SimulatorSecondaryDiscoverer" class="com.cloud.resource.SimulatorSecondaryDiscoverer"> + <property name="name" value="SecondaryStorage"/> + </bean> + <bean id="SimulatorDiscoverer" class="com.cloud.resource.SimulatorDiscoverer"> + <property name="name" value="Simulator Agent"/> + </bean> + <bean id="SimulatorGuru" class="com.cloud.simulator.SimulatorGuru"> + <property name="name" value="Simulator Guru"/> + </bean> - <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl" > + <!-- + Managers & pluggable adapters configuration under OSS deployment + --> + <bean id="accountManagerImpl" class="com.cloud.user.AccountManagerImpl" > <property name="UserAuthenticators"> <list> <ref bean="MD5UserAuthenticator"/> <ref bean="LDAPUserAuthenticator"/> </list> </property> + <property name="SecurityCheckers"> + <list> + <ref bean="domainChecker"/> + </list> + </property> </bean> - <bean id ="AccountManagerImpl" class="com.cloud.user.AccountManagerImpl"> + <bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl"> <property name="UserAuthenticators"> <list> <ref bean="MD5UserAuthenticator"/> <ref bean="LDAPUserAuthenticator"/> </list> </property> + <property name="HostAllocators"> + <list> + <ref bean="FirstFitRouting"/> + </list> + </property> </bean> - <bean id="clusterManagerImpl" class="com.cloud.cluster.ClusterManagerImpl" /> - <bean id="clusteredAgentManagerImpl" class="com.cloud.agent.manager.ClusteredAgentManagerImpl" /> - <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" /> - <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" /> - <bean id="userVmManagerImpl" class="com.cloud.vm.UserVmManagerImpl" /> - <bean id="consoleProxyManagerImpl" class="com.cloud.consoleproxy.ConsoleProxyManagerImpl" /> - <bean id="securityGroupManagerImpl2" class="com.cloud.network.security.SecurityGroupManagerImpl2" /> - <bean id="premiumSecondaryStorageManagerImpl" class="com.cloud.secstorage.PremiumSecondaryStorageManagerImpl" /> - <bean id="userVmDaoImpl" class="com.cloud.vm.dao.UserVmDaoImpl" /> - <bean id="ipv6AddressManagerImpl" class="com.cloud.network.Ipv6AddressManagerImpl" /> - - <bean id="apiRateLimitServiceImpl" class="org.apache.cloudstack.ratelimit.ApiRateLimitServiceImpl"/> - - <!-- - Network Elements - --> - <bean id="Ovs" class="com.cloud.network.element.OvsElement"> - <property name="name" value="Ovs"/> - </bean> - <bean id="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement"> - <property name="name" value="SecurityGroupProvider"/> - </bean> - <bean id="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"> - <property name="name" value="VirtualRouter"/> - </bean> - <bean id="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"> - <property name="name" value="VpcVirtualRouter"/> - </bean> - - <!-- - Adapters - --> - <bean id="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator"> - <property name="name" value="FirstFitRouting"/> - </bean> - - <bean id="hypervisorTemplateAdapter" class="com.cloud.template.HypervisorTemplateAdapter"> - <property name="name" value="HypervisorAdapter"/> - </bean> - - <!-- - Storage pool allocators - --> - - <bean id="LocalStoragePoolAllocator" class="org.apache.cloudstack.storage.allocator.LocalStoragePoolAllocator"> - <property name="name" value="LocalStorage"/> - </bean> - - <bean id="UserConcentratedAllocator" class="com.cloud.agent.manager.allocator.impl.UserConcentratedAllocator"> - <property name="name" value="User First"/> - </bean> - - <bean id="ConsoleProxyAllocator" class="com.cloud.consoleproxy.ConsoleProxyBalanceAllocator"> - <property name="name" value="Balance"/> - </bean> - - <bean id="StaticRoleBasedAPIAccessChecker" class="org.apache.cloudstack.acl.StaticRoleBasedAPIAccessChecker"/> - - <bean id="ExteralIpAddressAllocator" class="com.cloud.network.ExteralIpAddressAllocator"> - <property name="name" value="Basic"/> - </bean> - - <bean id="HypervisorTemplateAdapter" class="com.cloud.template.HypervisorTemplateAdapter"> - <property name="name" value="HypervisorAdapter"/> - </bean> - - <!-- - Authenticators - --> - <bean id="MD5UserAuthenticator" class="com.cloud.server.auth.MD5UserAuthenticator"> - <property name="name" value="MD5"/> - </bean> - - <bean id="LDAPUserAuthenticator" class="com.cloud.server.auth.LDAPUserAuthenticator"> - <property name="name" value="LDAP"/> - </bean> - - <!-- - Investigators - --> - <bean id="CheckOnAgentInvestigator" class="com.cloud.ha.CheckOnAgentInvestigator"> - <property name="name" value="SimpleInvestigator"/> - </bean> - - <bean id="XenServerInvestigator" class="com.cloud.ha.XenServerInvestigator"> - <property name="name" value="XenServerInvestigator"/> - </bean> - - <bean id="UserVmDomRInvestigator" class="com.cloud.ha.UserVmDomRInvestigator"> - <property name="name" value="PingInvestigator"/> - </bean> - - <bean id="ManagementIPSystemVMInvestigator" class="com.cloud.ha.ManagementIPSystemVMInvestigator"> - <property name="name" value="ManagementIPSysVMInvestigator"/> - </bean> - - <!-- - Fencers - --> - <bean id="XenServerFencer" class="com.cloud.ha.XenServerFencer"> - <property name="name" value="XenServerFenceBuilder"/> - </bean> - <bean id="KVMFencer" class="com.cloud.ha.KVMFencer"> - <property name="name" value="KVMFenceBuilder"/> - </bean> - <bean id="OvmFencer" class="com.cloud.ovm.hypervisor.OvmFencer"> - <property name="name" value="OvmFenceBuilder"/> - </bean> - - <bean id="XcpServerDiscoverer" class="com.cloud.hypervisor.xen.discoverer.XcpServerDiscoverer"> - <property name="name" value="XCP Agent"/> - </bean> - - <bean id="SimulatorSecondaryStorageDiscoverer" class="com.cloud.resource.SimulatorSecondaryDiscoverer"> - <property name="name" value="SecondaryStorage"/> - </bean> - - <bean id="SecondaryStorageDiscoverer" class="com.cloud.storage.secondary.SecondaryStorageDiscoverer"> - <property name="name" value="SecondaryStorage"/> - </bean> - - <bean id="KvmServerDiscoverer" class="com.cloud.hypervisor.kvm.discoverer.KvmServerDiscoverer"> - <property name="name" value="KVM Agent"/> - </bean> - - <bean id="SimulatorDiscoverer" class="com.cloud.resource.SimulatorDiscoverer"> - <property name="name" value="Simulator Agent"/> - </bean> - - <bean id="HypervServerDiscoverer" class="com.cloud.hypervisor.hyperv.HypervServerDiscoverer"> - <property name="name" value="SCVMMServer"/> - </bean> - - <bean id="OvmDiscoverer" class="com.cloud.ovm.hypervisor.OvmDiscoverer"> - <property name="name" value="Ovm Discover"/> + <bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl"> + <property name="StoragePoolAllocators"> + <list> + <ref bean="LocalStoragePoolAllocator"/> + <ref bean="clusterScopeStoragePoolAllocator"/> + <ref bean="zoneWideStoragePoolAllocator"/> + <ref bean="garbageCollectingStoragePoolAllocator"/> + </list> + </property> </bean> <bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner"> <property name="name" value="First Fit"/> + <property name="StoragePoolAllocators"> + <list> + <ref bean="LocalStoragePoolAllocator"/> + <ref bean="clusterScopeStoragePoolAllocator"/> + <ref bean="zoneWideStoragePoolAllocator"/> + <ref bean="garbageCollectingStoragePoolAllocator"/> + </list> + </property> + <property name="HostAllocators"> + <list> + <ref bean="FirstFitRouting"/> + </list> + </property> </bean> - <bean id="UserDispersingPlanner" class="com.cloud.deploy.UserDispersingPlanner"> - <property name="name" value="UserDispersing"/> - </bean> - - <bean id="UserConcentratedPodPlanner" class="com.cloud.deploy.UserConcentratedPodPlanner"> - <property name="name" value="UserConcentratedPod"/> - </bean> - - <bean id="HypervisorPlannerSelector" class="com.cloud.deploy.HypervisorVmPlannerSelector"> - <property name="name" value="HypervisorPlannerSelector"/> + <bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" > + <property name="PodAllocators"> + <list> + <ref bean="UserConcentratedAllocator"/> + </list> + </property> + <property name="Discoverers"> + <list> + <ref bean="SimulatorDiscoverer"/> + <ref bean="XcpServerDiscoverer"/> + <ref bean="SimulatorSecondaryDiscoverer"/> + <ref bean="SecondaryStorageDiscoverer"/> + <ref bean="KvmServerDiscoverer"/> + <ref bean="LxcServerDiscoverer"/> + + <!-- + <ref bean="BareMetalDiscoverer"/> + --> + + <ref bean="OvmDiscoverer"/> + </list> + </property> </bean> - - <!-- - Network Gurus - --> - <bean id="StorageNetworkGuru" class="com.cloud.network.guru.StorageNetworkGuru"> - <property name="name" value="StorageNetworkGuru"/> - </bean> - <bean id="ExternalGuestNetworkGuru" class="com.cloud.network.guru.ExternalGuestNetworkGuru"> - <property name="name" value="ExternalGuestNetworkGuru"/> - </bean> - <bean id="PublicNetworkGuru" class="com.cloud.network.guru.PublicNetworkGuru"> - <property name="name" value="PublicNetworkGuru"/> - </bean> - <bean id="PodBasedNetworkGuru" class="com.cloud.network.guru.PodBasedNetworkGuru"> - <property name="name" value="PodBasedNetworkGuru"/> - </bean> - <bean id="ControlNetworkGuru" class="com.cloud.network.guru.ControlNetworkGuru"> - <property name="name" value="ControlNetworkGuru"/> - </bean> - <bean id="DirectNetworkGuru" class="com.cloud.network.guru.DirectNetworkGuru"> - <property name="name" value="DirectNetworkGuru"/> - </bean> - <bean id="DirectPodBasedNetworkGuru" class="com.cloud.network.guru.DirectPodBasedNetworkGuru"> - <property name="name" value="DirectPodBasedNetworkGuru"/> - </bean> - <bean id="OvsGuestNetworkGuru" class="com.cloud.network.guru.OvsGuestNetworkGuru"> - <property name="name" value="OvsGuestNetworkGuru"/> - </bean> - <bean id="PrivateNetworkGuru" class="com.cloud.network.guru.PrivateNetworkGuru"> - <property name="name" value="PrivateNetworkGuru"/> + <bean id="highAvailabilityManagerExtImpl" class="com.cloud.ha.HighAvailabilityManagerExtImpl" > + <property name="Investigators"> + <list> + <ref bean="CheckOnAgentInvestigator"/> + <ref bean="XenServerInvestigator"/> + <ref bean="UserVmDomRInvestigator"/> + <ref bean="ManagementIPSystemVMInvestigator"/> + </list> + </property> + <property name="FenceBuilders"> + <list> + <ref bean="XenServerFencer"/> + <ref bean="KVMFencer"/> + <ref bean="OvmFencer"/> + </list> + </property> </bean> - <!-- - Hypervisor Gurus - --> - <bean id="XenServerGuru" class="com.cloud.hypervisor.XenServerGuru"> - <property name="name" value="XenServerGuru"/> - </bean> + <bean id="clusteredVirtualMachineManagerImpl" class="com.cloud.vm.ClusteredVirtualMachineManagerImpl" > + <property name="HostAllocators"> + <list> + <ref bean="FirstFitRouting"/> + </list> + </property> + <property name="Planners"> + <list> + <ref bean="FirstFitPlanner" /> + <ref bean="UserDispersingPlanner" /> + <ref bean="UserConcentratedPodPlanner" /> - <bean id="KVMGuru" class="com.cloud.hypervisor.KVMGuru"> - <property name="name" value="KVMGuru"/> - </bean> + <!-- + <ref bean="BareMetalPlanner" /> + --> - <bean id="HypervGuru" class="com.cloud.hypervisor.guru.HypervGuru"> - <property name="name" value="HypervGuru"/> + </list> + </property> </bean> - <bean id="OvmGuru" class="com.cloud.ovm.hypervisor.OvmGuru"> - <property name="name" value="OvmGuru"/> + <bean id="networkManagerImpl" class="com.cloud.network.NetworkManagerImpl" > + <property name="NetworkGurus"> + <list> + <ref bean="StorageNetworkGuru"/> + <ref bean="ExternalGuestNetworkGuru"/> + <ref bean="PublicNetworkGuru"/> + <ref bean="PodBasedNetworkGuru"/> + <ref bean="DirectPodBasedNetworkGuru"/> + <ref bean="ControlNetworkGuru"/> + <ref bean="DirectNetworkGuru"/> + <ref bean="OvsGuestNetworkGuru"/> + <ref bean="PrivateNetworkGuru"/> + </list> + </property> + <property name="NetworkElements"> + <list> + <ref bean="VirtualRouter"/> + <ref bean="Ovs"/> + <ref bean="SecurityGroupProvider"/> + <ref bean="VpcVirtualRouter"/> + <!-- + <ref bean="BareMetalDhcp"/> + <ref bean="BareMetalPxe"/> + <ref bean="BareMetalUserdata"/> + --> + </list> + </property> + <property name="IpDeployers"> + <list> + <ref bean="elasticLoadBalancerElement"/> + <ref bean="VirtualRouter"/> + <ref bean="VpcVirtualRouter"/> + </list> + </property> + <property name="DhcpProviders"> + <list> + <ref bean="VirtualRouter"/> + <ref bean="VpcVirtualRouter"/> + <!-- + <ref bean="BareMetalDhcp"/> + --> + </list> + </property> </bean> - <bean id="SimulatorGuru" class="com.cloud.simulator.SimulatorGuru"> - <property name="name" value="SimulatorGuru"/> + <bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl"> + <property name="NetworkElements"> + <list> + <ref bean="VirtualRouter"/> + <ref bean="Ovs"/> + <ref bean="SecurityGroupProvider"/> + <ref bean="VpcVirtualRouter"/> + <!-- + <ref bean="BareMetalDhcp"/> + <ref bean="BareMetalPxe"/> + <ref bean="BareMetalUserdata"/> + --> + </list> + </property> </bean> - <bean id="ClassicalPrimaryDataStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.CloudStackPrimaryDataStoreProviderImpl"> - </bean> + <bean id="GlobalLoadBalancingRulesServiceImpl" class ="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" /> </beans> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b798c451/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java index 859acc8..a50dff6 100644 --- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java @@ -16,23 +16,6 @@ // under the License. package com.cloud.agent.manager; -import java.io.File; -import java.math.BigInteger; -import java.net.URI; -import java.net.URISyntaxException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import javax.ejb.Local; -import javax.inject.Inject; -import javax.naming.ConfigurationException; - -import org.apache.log4j.Logger; - import com.cloud.agent.api.Answer; import com.cloud.agent.api.AttachIsoCommand; import com.cloud.agent.api.AttachVolumeAnswer; @@ -97,8 +80,23 @@ import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.vm.DiskProfile; import com.cloud.vm.VirtualMachine.State; +import org.apache.log4j.Logger; import org.springframework.stereotype.Component; +import javax.ejb.Local; +import javax.inject.Inject; +import javax.naming.ConfigurationException; +import java.io.File; +import java.math.BigInteger; +import java.net.URI; +import java.net.URISyntaxException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + @Component @Local(value = { MockStorageManager.class }) public class MockStorageManagerImpl extends ManagerBase implements MockStorageManager { @@ -954,7 +952,7 @@ public class MockStorageManagerImpl extends ManagerBase implements MockStorageMa long defaultTemplateSize = 2 * 1024 * 1024 * 1024L; MockVolumeVO template = new MockVolumeVO(); template.setName("simulator-domR"); - template.setPath(storage.getMountPoint() + "template/tmpl/1/10/" + UUID.randomUUID().toString()); + template.setPath(storage.getMountPoint() + "template/tmpl/1/100/" + UUID.randomUUID().toString()); template.setPoolId(storage.getId()); template.setSize(defaultTemplateSize); template.setType(MockVolumeType.TEMPLATE); @@ -975,7 +973,7 @@ public class MockStorageManagerImpl extends ManagerBase implements MockStorageMa template = new MockVolumeVO(); template.setName("simulator-Centos"); - template.setPath(storage.getMountPoint() + "template/tmpl/1/11/" + UUID.randomUUID().toString()); + template.setPath(storage.getMountPoint() + "template/tmpl/1/111/" + UUID.randomUUID().toString()); template.setPoolId(storage.getId()); template.setSize(defaultTemplateSize); template.setType(MockVolumeType.TEMPLATE); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b798c451/server/src/com/cloud/hypervisor/dao/HypervisorCapabilitiesDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/hypervisor/dao/HypervisorCapabilitiesDaoImpl.java b/server/src/com/cloud/hypervisor/dao/HypervisorCapabilitiesDaoImpl.java index 5421a89..759803e 100644 --- a/server/src/com/cloud/hypervisor/dao/HypervisorCapabilitiesDaoImpl.java +++ b/server/src/com/cloud/hypervisor/dao/HypervisorCapabilitiesDaoImpl.java @@ -16,19 +16,16 @@ // under the License. package com.cloud.hypervisor.dao; -import java.util.List; - -import javax.ejb.Local; - -import org.apache.log4j.Logger; -import org.springframework.stereotype.Component; - import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.HypervisorCapabilitiesVO; import com.cloud.utils.db.GenericDaoBase; -import com.cloud.utils.db.GenericSearchBuilder; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; +import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; + +import javax.ejb.Local; +import java.util.List; @Component @Local(value=HypervisorCapabilitiesDao.class) @@ -79,6 +76,8 @@ public class HypervisorCapabilitiesDaoImpl extends GenericDaoBase<HypervisorCapa public Long getMaxGuestsLimit(HypervisorType hypervisorType, String hypervisorVersion){ Long defaultLimit = new Long(50); HypervisorCapabilitiesVO result = getCapabilities(hypervisorType, hypervisorVersion); + if (result == null) + return defaultLimit; Long limit = result.getMaxGuestsLimit(); if (limit == null) return defaultLimit; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b798c451/setup/db/templates.simulator.sql ---------------------------------------------------------------------- diff --git a/setup/db/templates.simulator.sql b/setup/db/templates.simulator.sql index a804450..bd7ce59 100755 --- a/setup/db/templates.simulator.sql +++ b/setup/db/templates.simulator.sql @@ -17,6 +17,6 @@ INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type, image_data_store_id) - VALUES (10, UUID(), 'simulator-domR', 'SystemVM Template (simulator)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://nfs1.lab.vmops.com/templates/routing/debian/latest/systemvm.vhd.bz2', '', 0, 'SystemVM Template (simulator)', 'VHD', 15, 0, 1, 'Simulator', 1); + VALUES (100, UUID(), 'simulator-domR', 'SystemVM Template (simulator)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/acton/acton-systemvm-02062012.vhd.bz2', '', 0, 'SystemVM Template (simulator)', 'VHD', 15, 0, 1, 'Simulator', 1); INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type, image_data_store_id) - VALUES (11, UUID(), 'simulator-Centos', 'CentOS 5.3(64-bit) no GUI (Simulator)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://nfs1.lab.vmops.com/templates/centos53-x86_64/latest/f59f18fb-ae94-4f97-afd2-f84755767aca.vhd.bz2', '', 0, 'CentOS 5.3(64-bit) no GUI (Simulator)', 'VHD', 12, 1, 1, 'Simulator', 1); + VALUES (111, UUID(), 'simulator-Centos', 'CentOS 5.3(64-bit) no GUI (Simulator)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/templates/builtin/f59f18fb-ae94-4f97-afd2-f84755767aca.vhd.bz2', '', 0, 'CentOS 5.3(64-bit) no GUI (Simulator)', 'VHD', 12, 1, 1, 'Simulator', 1); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b798c451/tools/marvin/pom.xml ---------------------------------------------------------------------- diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml index a5cbd31..ce6ce38 100644 --- a/tools/marvin/pom.xml +++ b/tools/marvin/pom.xml @@ -86,7 +86,7 @@ <!-- Custom profiles for sync and integration tests--> <profiles> <profile> - <id>sync</id> + <id>marvin.sync</id> <activation> <property> <name>endpoint</name> @@ -154,7 +154,10 @@ </build> </profile> <profile> - <id>marvin</id> + <id>marvin.setup</id> + <properties> + <marvin.config>${user.dir}/setup/dev/advanced.cfg</marvin.config> + </properties> <activation> <property> <name>marvin.config</name> @@ -179,7 +182,7 @@ <arguments> <argument>deployAndRun.py</argument> <argument>-c</argument> - <argument>${user.dir}/${marvin.config}</argument> + <argument>${marvin.config}</argument> <argument>-t</argument> <argument>/tmp/t.log</argument> <argument>-r</argument> @@ -189,6 +192,30 @@ </arguments> </configuration> </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>marvin.test</id> + <properties> + <marvin.config>${user.dir}/setup/dev/advanced.cfg</marvin.config> + <tag>simulator</tag> + <test>test/integration/smoke</test> + </properties> + <activation> + <property> + <name>marvin.config</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.2.1</version> + <executions> <execution> <id>integration-test</id> <phase>integration-test</phase> @@ -201,11 +228,12 @@ <arguments> <argument>--with-marvin</argument> <argument>--marvin-config</argument> - <argument>${user.dir}/${marvin.config}</argument> + <argument>${marvin.config}</argument> <argument>--load</argument> <argument>-a</argument> - <argument>tags=simulator</argument> - <argument>${basedir}/../../test/integration/smoke/test_vm_life_cycle.py</argument> + <argument>tags=${tag}</argument> + <argument>${user.dir}/${test}</argument> + <argument>-v</argument> </arguments> </configuration> </execution>