Fixes from conflicts during rebase Signed-off-by: Prasanna Santhanam <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ed291eed Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ed291eed Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ed291eed Branch: refs/heads/marvin_refactor Commit: ed291eed4fd4f0f7e0e2472bec086dcdd1623d35 Parents: dfc703f Author: Prasanna Santhanam <[email protected]> Authored: Sat Mar 30 19:36:58 2013 +0530 Committer: Prasanna Santhanam <[email protected]> Committed: Sun Mar 31 22:19:28 2013 +0530 ---------------------------------------------------------------------- .../command/user/template/DeleteTemplateCmd.java | 9 +- .../command/user/template/ExtractTemplateCmd.java | 9 +- client/pom.xml | 10 + client/tomcatconf/componentContext.xml.in | 149 ++------------ server/src/com/cloud/api/ApiDispatcher.java | 12 +- .../src/com/cloud/api/query/QueryManagerImpl.java | 6 +- tools/cli/cloudmonkey/cloudmonkey.py | 38 +---- 7 files changed, 57 insertions(+), 176 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed291eed/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java index 12359bf..77f7edf 100644 --- a/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/template/DeleteTemplateCmd.java @@ -16,7 +16,13 @@ // under the License. package org.apache.cloudstack.api.command.user.template; -import org.apache.cloudstack.api.*; +import org.apache.cloudstack.api.APICommand; +import org.apache.cloudstack.api.ApiConstants; +import org.apache.cloudstack.api.ApiErrorCode; +import org.apache.cloudstack.api.BaseAsyncCmd; +import org.apache.cloudstack.api.Parameter; +import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.api.response.SuccessResponse; import org.apache.cloudstack.api.response.TemplateResponse; import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.log4j.Logger; @@ -29,6 +35,7 @@ import com.cloud.template.VirtualMachineTemplate; import com.cloud.user.Account; import com.cloud.user.UserContext; + @APICommand(name = "deleteTemplate", responseObject=SuccessResponse.class, description="Deletes a template from the system. All virtual machines using the deleted template will not be affected.") public class DeleteTemplateCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeleteTemplateCmd.class.getName()); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed291eed/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java b/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java index 8b4e809..6afb993 100644 --- a/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/template/ExtractTemplateCmd.java @@ -16,7 +16,13 @@ // under the License. package org.apache.cloudstack.api.command.user.template; -import org.apache.cloudstack.api.*; +import org.apache.cloudstack.api.APICommand; +import org.apache.cloudstack.api.ApiConstants; +import org.apache.cloudstack.api.ApiErrorCode; +import org.apache.cloudstack.api.BaseAsyncCmd; +import org.apache.cloudstack.api.Parameter; +import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.api.response.ExtractResponse; import org.apache.cloudstack.api.response.TemplateResponse; import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.log4j.Logger; @@ -30,6 +36,7 @@ import com.cloud.template.VirtualMachineTemplate; import com.cloud.user.Account; import com.cloud.user.UserContext; + @APICommand(name = "extractTemplate", description="Extracts a template", responseObject=ExtractResponse.class) public class ExtractTemplateCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(ExtractTemplateCmd.class.getName()); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed291eed/client/pom.xml ---------------------------------------------------------------------- diff --git a/client/pom.xml b/client/pom.xml index 7565029..9236deb 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -219,6 +219,16 @@ <artifactId>cloud-plugin-hypervisor-simulator</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.cloudstack</groupId> + <artifactId>cloud-plugin-hypervisor-ucs</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.cloudstack</groupId> + <artifactId>cloud-plugin-storage-volume-default</artifactId> + <version>${project.version}</version> + </dependency> </dependencies> <build> <defaultGoal>install</defaultGoal> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed291eed/client/tomcatconf/componentContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in index 43fc9aa..594c683 100644 --- a/client/tomcatconf/componentContext.xml.in +++ b/client/tomcatconf/componentContext.xml.in @@ -53,132 +53,29 @@ </property> </bean> -<!-- - <bean id="BigSwitchVnsElementService" class="com.cloud.network.element.BigSwitchVnsElement"> - <property name="name" value="BigSwitchVnsElementService"/> - </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> - - <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="SimulatorDiscoverer" class="com.cloud.resource.SimulatorDiscoverer"> - <property name="name" value="Simulator 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 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="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"> @@ -318,8 +215,6 @@ </property> </bean> - <bean id="SimulatorGuru" class="com.cloud.simulator.SimulatorGuru"> - <property name="name" value="SimulatorGuru"/> - </bean> + <bean id="GlobalLoadBalancingRulesServiceImpl" class ="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl" /> </beans> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed291eed/server/src/com/cloud/api/ApiDispatcher.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index cfcccc5..925d90a 100755 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -153,10 +153,11 @@ public class ApiDispatcher { queueSizeLimit = 1L; } - if (queueSizeLimit != null) { + if (queueSizeLimit != null) { _asyncMgr.syncAsyncJobExecution(asyncCmd.getJob(), asyncCmd.getSyncObjType(), asyncCmd.getSyncObjId().longValue(), queueSizeLimit); - } else { - s_logger.trace("The queue size is unlimited, skipping the synchronizing"); + } else { + s_logger.trace("The queue size is unlimited, skipping the synchronizing"); + } } } @@ -370,13 +371,8 @@ public class ApiDispatcher { if (internalId == null) { if (s_logger.isDebugEnabled()) s_logger.debug("Object entity uuid = " + uuid + " does not exist in the database."); -<<<<<<< HEAD throw new InvalidParameterValueException("Invalid parameter " + annotation.name() + " value=" + uuid + " due to incorrect long value format, or entity does not exist or due to incorrect parameter annotation for the field in api cmd class."); -======= - throw new InvalidParameterValueException("Invalid parameter value=" + uuid - + " due to incorrect long value format, or entity was not found as it may have been deleted, or due to incorrect parameter annotation for the field in api cmd."); ->>>>>>> ApiDispatcher: Fix uuid->id translation and throw better debug statement } return internalId; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed291eed/server/src/com/cloud/api/query/QueryManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 63c6b32..951d09e 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -2105,7 +2105,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { domainRecord = _domainDao.findById(domainRecord.getParent()); domainIds.add(domainRecord.getId()); } - sc.addAnd("domainId", SearchCriteria.Op.IN, domainIds); + sc.addAnd("domainId", SearchCriteria.Op.IN, domainIds.toArray()); // include also public offering if no keyword, name and id specified if ( keyword == null && name == null && id == null ){ @@ -2238,7 +2238,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { } // domainId == null (public zones) or domainId IN [all domain id up to root domain] SearchCriteria<DataCenterJoinVO> sdc = _dcJoinDao.createSearchCriteria(); - sdc.addOr("domainId", SearchCriteria.Op.IN, domainIds); + sdc.addOr("domainId", SearchCriteria.Op.IN, domainIds.toArray()); sdc.addOr("domainId", SearchCriteria.Op.NULL); sc.addAnd("domain", SearchCriteria.Op.SC, sdc); @@ -2268,7 +2268,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { // domainId == null (public zones) or domainId IN [all domain id up to root domain] SearchCriteria<DataCenterJoinVO> sdc = _dcJoinDao.createSearchCriteria(); - sdc.addOr("domainId", SearchCriteria.Op.IN, domainIds); + sdc.addOr("domainId", SearchCriteria.Op.IN, domainIds.toArray()); sdc.addOr("domainId", SearchCriteria.Op.NULL); sc.addAnd("domain", SearchCriteria.Op.SC, sdc); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed291eed/tools/cli/cloudmonkey/cloudmonkey.py ---------------------------------------------------------------------- diff --git a/tools/cli/cloudmonkey/cloudmonkey.py b/tools/cli/cloudmonkey/cloudmonkey.py index d679e50..664bb03 100644 --- a/tools/cli/cloudmonkey/cloudmonkey.py +++ b/tools/cli/cloudmonkey/cloudmonkey.py @@ -261,42 +261,8 @@ class CloudMonkeyShell(cmd.Cmd, object): if response is None: return - isAsync = isAsync and (self.asyncblock == "true") - responsekey = filter(lambda x: 'response' in x, response.keys())[0] - if isAsync and 'jobid' in response[responsekey]: - jobId = response[responsekey]['jobid'] - command = "queryAsyncJobResult" - requests = {'jobid': jobId} - timeout = int(self.timeout) - pollperiod = 3 - progress = 1 - while timeout > 0: - print '\r' + '.' * progress, - sys.stdout.flush() - response = process_json(conn.make_request_with_auth(command, - requests)) - responsekeys = filter(lambda x: 'response' in x, - response.keys()) - if len(responsekeys) < 1: - continue - result = response[responsekeys[0]] - jobstatus = result['jobstatus'] - if jobstatus == 2: - jobresult = result["jobresult"] - self.print_shell("\rAsync query failed for jobid", - jobId, "\nError", jobresult["errorcode"], - jobresult["errortext"]) - return - elif jobstatus == 1: - print '\r', - return response - time.sleep(pollperiod) - timeout = timeout - pollperiod - progress += 1 - logger.debug("job: %s to timeout in %ds" % (jobId, timeout)) - self.print_shell("Error:", "Async query timeout for jobid", jobId) - - return response + apiname = args.partition(' ')[0] + verb, subject = splitverbsubject(apiname) def get_api_module(self, api_name, api_class_strs=[]): try:
