Updated Branches: refs/heads/javelin ff26a42eb -> b6c56736e
merge from master Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/b6c56736 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/b6c56736 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/b6c56736 Branch: refs/heads/javelin Commit: b6c56736e5c913a1be1c23f91a5208f29dc1d17d Parents: 0bcb646 2eee2cd Author: Alex Huang <[email protected]> Authored: Wed Jan 9 05:20:36 2013 -0800 Committer: Alex Huang <[email protected]> Committed: Wed Jan 9 05:20:36 2013 -0800 ---------------------------------------------------------------------- LICENSE | 2 +- api/src/com/cloud/server/ManagementService.java | 8 - .../org/apache/cloudstack/api/ApiConstants.java | 5 + .../command/admin/storage/ListStoragePoolsCmd.java | 12 +- .../cloudstack/discovery/ApiDiscoveryService.java | 29 ++ .../org/apache/cloudstack/query/QueryService.java | 4 + .../ubuntu/SYSCONFDIR/init.d/cloud-management.in | 5 + client/pom.xml | 5 + .../api-discovery_commands.properties.in | 23 + client/tomcatconf/components.xml.in | 4 + developer/developer-prefill.sql | 20 +- docs/en-US/build-deb.xml | 2 +- plugins/api/discovery/pom.xml | 44 ++ .../api/command/user/discovery/ListApisCmd.java | 55 ++ .../api/response/ApiDiscoveryResponse.java | 75 +++ .../api/response/ApiParameterResponse.java | 70 +++ .../discovery/ApiDiscoveryServiceImpl.java | 144 ++++++ plugins/hypervisors/simulator/pom.xml | 3 +- .../cloud/agent/manager/SimulatorManagerImpl.java | 65 +-- .../network/element/CiscoNexusVSMElement.java | 4 +- plugins/network-elements/dns-notifier/pom.xml | 3 +- plugins/pom.xml | 1 + pom.xml | 1 + server/src/com/cloud/api/ApiDBUtils.java | 19 + server/src/com/cloud/api/ApiDispatcher.java | 52 +-- server/src/com/cloud/api/ApiResponseHelper.java | 46 +-- server/src/com/cloud/api/ApiServer.java | 29 +- server/src/com/cloud/api/doc/ApiXmlDocWriter.java | 47 +-- .../src/com/cloud/api/query/QueryManagerImpl.java | 100 ++++ .../com/cloud/api/query/ViewResponseHelper.java | 21 + .../cloud/api/query/dao/StoragePoolJoinDao.java | 37 ++ .../api/query/dao/StoragePoolJoinDaoImpl.java | 185 +++++++ server/src/com/cloud/api/query/vo/BaseViewVO.java | 2 - .../com/cloud/api/query/vo/StoragePoolJoinVO.java | 341 +++++++++++++ .../configuration/DefaultComponentLibrary.java | 2 + .../com/cloud/server/ConfigurationServerImpl.java | 31 +- .../src/com/cloud/server/ManagementServerImpl.java | 17 - server/test/com/cloud/api/ListPerfTest.java | 17 + setup/db/create-schema-view.sql | 37 ++ setup/db/create-schema.sql | 8 +- setup/db/db/schema-40to410.sql | 40 ++ setup/db/server-setup.sql | 2 +- setup/db/templates.kvm.sql | 100 ++-- setup/db/templates.simulator.sql | 8 +- setup/db/templates.sql | 384 +++++++------- setup/db/templates.vmware.sql | 146 +++--- setup/db/templates.xenserver.sql | 162 +++--- tools/apidoc/gen_toc.py | 3 +- tools/apidoc/pom.xml | 2 +- ui/css/cloudstack3.css | 5 - utils/pom.xml | 5 + utils/src/com/cloud/utils/ReflectUtil.java | 63 +++ 52 files changed, 1848 insertions(+), 647 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/client/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/plugins/hypervisors/vmware/src/com/cloud/network/element/CiscoNexusVSMElement.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/pom.xml ---------------------------------------------------------------------- diff --cc pom.xml index 0a1f36a,1dcf36f..3abf731 --- a/pom.xml +++ b/pom.xml @@@ -87,7 -86,7 +87,8 @@@ <cs.aws.sdk.version>1.3.21.1</cs.aws.sdk.version> <cs.lang.version>2.6</cs.lang.version> <cs.commons-io.version>1.4</cs.commons-io.version> + <cs.reflections.version>0.9.8</cs.reflections.version> + <skipTests>true</skipTests> </properties> <distributionManagement> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/server/src/com/cloud/api/ApiDispatcher.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/server/src/com/cloud/api/ApiServer.java ---------------------------------------------------------------------- diff --cc server/src/com/cloud/api/ApiServer.java index c5cee13,56cef12..6e13f13 --- a/server/src/com/cloud/api/ApiServer.java +++ b/server/src/com/cloud/api/ApiServer.java @@@ -51,17 -50,10 +51,17 @@@ import javax.inject.Inject import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; -import com.cloud.utils.ReflectUtil; import org.apache.cloudstack.acl.APIAccessChecker; - import org.apache.cloudstack.api.APICommand; -import org.apache.cloudstack.acl.ControlledEntity; -import org.apache.cloudstack.api.*; +import org.apache.cloudstack.api.BaseAsyncCmd; +import org.apache.cloudstack.api.BaseAsyncCreateCmd; +import org.apache.cloudstack.api.BaseCmd; +import org.apache.cloudstack.api.BaseListCmd; +import org.apache.cloudstack.api.ResponseObject; +import org.apache.cloudstack.api.ServerApiException; +import org.apache.cloudstack.api.command.admin.host.ListHostsCmd; +import org.apache.cloudstack.api.command.admin.router.ListRoutersCmd; ++import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd; +import org.apache.cloudstack.api.command.admin.user.ListUsersCmd; import org.apache.cloudstack.api.command.user.account.ListAccountsCmd; import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd; import org.apache.cloudstack.api.command.user.event.ListEventsCmd; @@@ -72,9 -60,9 +72,10 @@@ import org.apache.cloudstack.api.comman import org.apache.cloudstack.api.command.user.vm.ListVMsCmd; import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd; import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd; +import org.apache.cloudstack.api.response.ExceptionResponse; +import org.apache.cloudstack.api.response.ListResponse; + import org.apache.cloudstack.discovery.ApiDiscoveryService; import org.apache.commons.codec.binary.Base64; -import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.ConnectionClosedException; import org.apache.http.HttpException; import org.apache.http.HttpRequest; @@@ -103,9 -90,18 +104,8 @@@ import org.apache.http.protocol.Respons import org.apache.http.protocol.ResponseDate; import org.apache.http.protocol.ResponseServer; import org.apache.log4j.Logger; - import org.reflections.Reflections; -import org.apache.cloudstack.api.command.admin.host.ListHostsCmd; -import org.apache.cloudstack.api.command.admin.router.ListRoutersCmd; -import org.apache.cloudstack.api.command.admin.storage.ListStoragePoolsCmd; -import org.apache.cloudstack.api.command.admin.user.ListUsersCmd; -import org.apache.cloudstack.api.command.user.project.ListProjectInvitationsCmd; -import org.apache.cloudstack.api.command.user.project.ListProjectsCmd; -import org.apache.cloudstack.api.command.user.securitygroup.ListSecurityGroupsCmd; -import org.apache.cloudstack.api.command.user.tag.ListTagsCmd; import com.cloud.api.response.ApiResponseSerializer; -import org.apache.cloudstack.api.response.ExceptionResponse; -import org.apache.cloudstack.api.response.ListResponse; import com.cloud.async.AsyncJob; import com.cloud.async.AsyncJobManager; import com.cloud.async.AsyncJobVO; @@@ -144,15 -144,15 +144,17 @@@ public class ApiServer implements HttpR public static String jsonContentType = "text/javascript"; private ApiDispatcher _dispatcher; - @Inject private AccountManager _accountMgr = null; - @Inject private DomainManager _domainMgr = null; - @Inject private AsyncJobManager _asyncMgr = null; + @Inject private final AccountManager _accountMgr = null; + @Inject private final DomainManager _domainMgr = null; + @Inject private final AsyncJobManager _asyncMgr = null; + @Inject private ConfigurationDao _configDao; + @Inject protected List<APIAccessChecker> _apiAccessCheckers; - @Inject(adapter = APIAccessChecker.class) - protected Adapters<APIAccessChecker> _apiAccessCheckers; - @Inject(adapter = ApiDiscoveryService.class) - protected Adapters<ApiDiscoveryService> _apiDiscoveryServices; + @Inject List<PluggableService> _pluggableServices; + @Inject IdentityDao _identityDao; + ++ protected List<ApiDiscoveryService> _apiDiscoveryServices; + private Account _systemAccount = null; private User _systemUser = null; private static int _workerCount = 0; @@@ -197,21 -203,17 +203,17 @@@ } } - // Populate api name and cmd class mappings - Reflections reflections = new Reflections("org.apache.cloudstack.api"); - Set<Class<?>> cmdClasses = reflections.getTypesAnnotatedWith(APICommand.class); - reflections = new Reflections("com.cloud.api"); - cmdClasses.addAll(reflections.getTypesAnnotatedWith(APICommand.class)); - for(Class<?> cmdClass: cmdClasses) { - String apiName = cmdClass.getAnnotation(APICommand.class).name(); - if (_apiNameCmdClassMap.containsKey(apiName)) { - s_logger.error("API Cmd class " + cmdClass.getName() + " has non-unique apiname" + apiName); - } - _apiNameCmdClassMap.put(apiName, cmdClass); + for (ApiDiscoveryService discoveryService: _apiDiscoveryServices) { + _apiNameCmdClassMap.putAll(discoveryService.getApiNameCmdClassMapping()); + } + + if (_apiNameCmdClassMap.size() == 0) { + s_logger.fatal("ApiServer failed to generate apiname, cmd class mappings." - + "Please check and enable at least one ApiDiscovery adapter."); ++ + "Please check and enable at least one ApiDiscovery adapter."); } - encodeApiResponse = Boolean.valueOf(configDao.getValue(Config.EncodeApiResponse.key())); - String jsonType = configDao.getValue(Config.JavaScriptDefaultContentType.key()); + encodeApiResponse = Boolean.valueOf(_configDao.getValue(Config.EncodeApiResponse.key())); + String jsonType = _configDao.getValue(Config.JavaScriptDefaultContentType.key()); if (jsonType != null) { jsonContentType = jsonType; } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/server/src/com/cloud/configuration/DefaultComponentLibrary.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/server/src/com/cloud/server/ConfigurationServerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/server/src/com/cloud/server/ManagementServerImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/setup/db/create-schema.sql ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b6c56736/utils/pom.xml ----------------------------------------------------------------------
