Commit Graph

206 Commits

Author SHA1 Message Date
Rohit Yadav
35544f26e5 DeployVmCmd: Remove usage of IdentityDao, use Network to get by id or uuid
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-11 18:44:20 -08:00
Rohit Yadav
86a77e29dc ApiDiscovery: Fix listApis to return api response, related apis etc.
- Fix method to return listApis per api name basis
- Return api response, api related cmd etc. as part of response
- Caching and processing all cmd, response classes when plugin starts, made class
  list, maps static so they are shared by multiple instances in case, takes about
  1306ms to do the processsing but only on load time
- Cache for first listApi() and return precached data thereon, takes 2.2ms
  for first call, during runtime and 0ms thereon

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 22:52:10 -08:00
Rohit Yadav
74bb043c37 APIChecker: Rename refactor and add interface checkExistence
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 18:51:30 -08:00
Rohit Yadav
18bdc58ceb APIAccessChecker: Refactor and simply plugin implementation using better data structures
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 17:21:58 -08:00
Rohit Yadav
1ac48bc36c RoleType: public enum to get presently defined static role in CloudStack
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 15:55:01 -08:00
Rohit Yadav
62a42723f9 APIAccessChecker: Make it check based on role type and not user
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 11:49:15 -08:00
Rohit Yadav
c6d9877d64 ApiDiscoveryService: Move refactor, interface should be in plugins and not in cloud-api
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-10 10:59:38 -08:00
Min Chen
7f8262d45e Remove IdentityProxy and IdentityTypeAdapter class.
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-09 17:40:58 -08:00
Rohit Yadav
d13cc7e7e4 ApiDiscoveryService: Use only as pluggable service
Remove usage and impl as adapter.
We have duplicate code that generates apiname:cmd class maps which is
unavoidable right now as:

- Plugin should not depend on ApiServer or any other component
- cloud-utils cannot depend on cloud-api for the APICommand annotation
- Use java reflect to create a static method in cloud-utils that does the job
  would be unsafe.

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-09 17:25:29 -08:00
Min Chen
9924b64830 commit 3a3cb60e85c0254ebceff55d0b210ca1ff5386a6
Author: Likitha Shetty <likitha.shetty@citrix.com>
Date:   Wed Jan 9 11:54:25 2013 +0530

    CLOUDSTACK-614: ListTemplates API is not returning "Enable SSH Key" attribute for any given template. Update the TemplateResponse by adding 'sshkeyenabled' attribute to it. This attribute is set to the value that the user passes as input for parameter 'sshkeyenabled' while registering the template.

Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-09 10:42:44 -08:00
Rohit Yadav
2c04dad529 ApiDiscovery: New plugin to help discover apis on mgmt server
- Introduces api/discovery plugin that helps discover apis on the mgmt server
- It's a pluggable service, therefore has it's own api-discovery_commands.properties
  where the discovery api, listApi can be blacklisted (by removing it), or it's
  role mask can be changed
- By default its response has all the apis
- Changes in other parts of the code to make it work, viz. components.xml, pom.xml,
  and in ApiServer where it is used as an adapter to get apiname, cmd mappings

The ApiDiscoveryService interface is a contract that the implementing class will
provide:

1. A means to get all the apis as a list of response, plugin is free to implement
   the response class, as long as it extends on the BaseResponse:

    ListResponse<? extends BaseResponse> listApis();

2. Provides a map of apiname as the key and cmd class as the value:

    Map<String, Class<?>> getApiNameCmdClassMapping();

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-08 18:54:29 -08:00
Min Chen
74c15a22a0 Create DB view for ListStoragePools API performance optimization.
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-08 12:33:18 -08:00
Rohit Yadav
39b829bffe api: ACL annotation and checkAccess removal refactor for StopVMCmd
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 17:19:49 -08:00
Rohit Yadav
96b9164e4b Fix ACL processor and methods in ApiDispatcher and their usages
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 17:18:45 -08:00
Rohit Yadav
e51bc8b161 InfrastructureEntity: New interface contract for classes not associated with any account
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 15:32:40 -08:00
Rohit Yadav
ed0637b8c2 api: Refactor move acl to org.apache.cloudstack
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 15:30:58 -08:00
Rohit Yadav
b246ed7be7 api: Fix name fields for autoscale @APICommand annotation
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-06 14:56:30 -08:00
Rohit Yadav
8b085d3308 api: Move base template*cmd class to org.apache.cloudstack.api, fix names and annotations 2013-01-06 14:46:02 -08:00
Rohit Yadav
6a112bd64c api: Rename Validator to Validate, cosmetic fixes
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 16:52:53 -08:00
Rohit Yadav
63481ecb34 CLOUDSTACK-212: Move api response classes to cloud-api under org.apache.cloudstack
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 16:27:36 -08:00
Rohit Yadav
73a0c3e07f api: Refactor move storagepool apis to storage pkg
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 15:32:58 -08:00
Rohit Yadav
f07a98a740 api: Refactor and move s3 to api.command.admin.storage
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-05 15:30:38 -08:00
Rohit Yadav
364116074e api: Remove IdentityMapper finally
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-04 17:12:14 -08:00
Rohit Yadav
6fa8c708ee api: Fix service and disk offering annotations
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-03 22:32:46 -08:00
Rohit Yadav
223bfc07c3 api: Fix Parameter annotation in DeleteServiceOfferingCmd.java
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-03 22:32:46 -08:00
Rohit Yadav
65b274d09b api: Fix incorrect annotation for list template cmd
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2013-01-03 22:32:46 -08:00
Min Chen
daeb4abcca Create DB views for AsyncJobResponse to speed up listAsyncJobsCmd.
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-03 15:35:26 -08:00
Min Chen
ebfb90e217 Create DB view for Account to speed up ListAccountsCmd, and add missing async job information for some response objects.
Signed-off-by: Min Chen <min.chen@citrix.com>
2013-01-02 17:38:58 -08:00
Rohit Yadav
d928014a75 api: Add CopyIsoCmd, boilerplate cmd class for api copyIso
Two apis, copyIso and copyTemplate point to the same Cmd class, the commit adds
the child class CopyIsoCmd that extends on CopyTemplateCmd. This just serves as
the boilerplate class. Every api cmd name maps 1:1 to a cmd class.

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-28 01:49:43 -08:00
Rohit Yadav
983fe9712f api: Fix name field in @APICommand for CopyTemplateCmd.java
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-28 01:47:22 -08:00
Rohit Yadav
76ea0e7c45 api: Annotate and fill name field of @APICommand from commands.properties.in
- Reads and fills name field of all cmd class and api name mapping from
  commands.properties.in
- Automation using following python script ensures correctness of the change

import os
file_prefix = "api/src/"
search_pattern = "@APICommand("
pattern_len = len(search_pattern)
prop_file = "client/tomcatconf/commands.properties.in"
f = open(prop_file, 'r')
data = f.read()
f.close()
apis = filter(lambda x: x.strip()!='' and (not x.startswith('#')), data.split('\n'))
for api in apis:
    api_name = api.split('=')[0]
    cmd_name = file_prefix + api.split('=')[1].split(';')[0].replace('.', '/').strip() + ".java"
    if not os.path.exists(cmd_name):
        print cmd_name, api_name
    f = open(cmd_name, 'r')
    d = f.read()
    f.close()
    idx = d.find(search_pattern) + pattern_len
    new_str = d[:idx] + "name = \"%s\", " % api_name + d[idx:]
    f = open(cmd_name, 'w')
    f.write(new_str)
    f.close()

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-28 01:09:28 -08:00
Prasanna Santhanam
617a0507e1 api: EntityReference for serviceOfferingResponse
ServiceOfferingResponse's entityReference was missed

Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2012-12-26 19:11:19 -08:00
Prasanna Santhanam
b80dccee3f api: ListTemplateCmd returns TemplateInfo not UserVmResponse
Correcting the incorrecty response entity when LIstTemplatesCmd was
caled
2012-12-26 18:32:57 -08:00
Rohit Yadav
b8369b808e api: Introduce name field which would hold the OTW api command name
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-26 15:56:14 -08:00
Rohit Yadav
7a7fe583e0 Rename Implementation annotation to APICommand
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-26 15:55:34 -08:00
Rohit Yadav
a18464dbe5 Rename @Entity to @EntityReference used in Response classes
- Renames to @EntityReference as @Entity is too general and used in javax's pkg
- Remove redundant imports

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-26 15:34:35 -08:00
Min Chen
21c1623a03 Create DB view for Volume to speed up ListVolumesCmd.
Signed-off-by: Min Chen <min.chen@citrix.com>
2012-12-25 17:08:50 -08:00
Rohit Yadav
78d70d349b Merge branch 'master' into api_refactoring
- Applies Isaac Chian'gs fix (CLOUDSTACK-648) to allow user change their password
- TODO: Fix response, only partially applied

Conflicts:
	api/src/org/apache/cloudstack/api/response/UserResponse.java
	client/tomcatconf/commands.properties.in
	server/src/com/cloud/api/ApiResponseHelper.java

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-25 09:51:17 -08:00
Rohit Yadav
042a8e7681 api: Get rid of method definition in interface, that uses IdentityMapper for getting entity
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 18:05:53 -08:00
Rohit Yadav
f4a407e197 api: Remove IdentityMapper imports on vpn
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 17:26:16 -08:00
Rohit Yadav
02efffa93e api: Annotate VPC apis
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 17:24:58 -08:00
Rohit Yadav
1931667243 api: Annotate volume api
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 17:21:43 -08:00
Rohit Yadav
edb42d2cbb api: Annotate templates apis
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 17:17:59 -08:00
Rohit Yadav
a5dddb4a83 api: Extend or Implement InternalIdentity's getId method on a lot of VOs and Interfaces
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 16:52:35 -08:00
Rohit Yadav
a157a4c1eb api: InternalIdentity interface that provides contract to have getId
Adds new interface that would maintain contract that extending Interface
or implementing class will have the getId() method to get Internal Id

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 16:51:11 -08:00
Rohit Yadav
296b49c2f8 Merge branch 'master' into test-merge-api
Conflicts:
	api/src/com/cloud/agent/api/BackupSnapshotCommand.java
	api/src/com/cloud/agent/api/storage/PrimaryStorageDownloadCommand.java
	api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
	api/src/com/cloud/network/NetworkService.java
	api/src/com/cloud/resource/ResourceService.java
	api/src/org/apache/cloudstack/api/ApiConstants.java
	api/src/org/apache/cloudstack/api/ResponseGenerator.java
	api/src/org/apache/cloudstack/api/response/SSHKeyPairResponse.java
	client/tomcatconf/commands.properties.in
	core/src/com/cloud/storage/SnapshotVO.java
	pom.xml
	server/src/com/cloud/api/ApiDispatcher.java
	server/src/com/cloud/api/ApiResponseHelper.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/rules/RulesManagerImpl.java
	server/src/com/cloud/offerings/NetworkOfferingVO.java
	server/src/com/cloud/resource/ResourceManagerImpl.java
	server/src/com/cloud/upgrade/dao/Upgrade40to41.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	server/test/com/cloud/vpc/MockNetworkManagerImpl.java
	setup/db/create-schema.sql
	setup/db/db/schema-40to410.sql

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 13:54:46 -08:00
Rohit Yadav
38225a17f6 api: Annotate template related api
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 03:56:07 -08:00
Rohit Yadav
0719f21320 api: Annotate ssh apis
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 03:49:38 -08:00
Rohit Yadav
66c2c0cbb7 api: Annotate snapshot related apis
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 03:44:45 -08:00
Rohit Yadav
a0a8a0bb5d api: Annotate resource apis
Signed-off-by: Rohit Yadav <bhaisaab@apache.org>
2012-12-23 03:33:37 -08:00