Thanks Rohit. Added some details on list API performance optimization item 
below inline.

-min

On 1/6/13 7:02 PM, "Rohit Yadav" 
<rohit.ya...@citrix.com<mailto:rohit.ya...@citrix.com>> wrote:

This is merge request for merging api_refactoring branch on master 
(https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+API+refactoring).
For complete list of changes are provided at the end of the email. (there may 
be more changes either on master or api_refactoring, watch out the git repo for 
changes).

Major changes
============
- API cmd class classification based on api security and entity affinity (for 
ex. all vm related apis would be in org.apache.cloudstack.api.command.{admin, 
user}.vm pkg).
- Fix @Parameter annotation to help process api params, introduce 
@EntityReference etc. which help
- Remove IdentityMapper and IdentityProxy
- Fix api param processing and uuid/id translation. Pre 3.x apis (all apis 
except those which has their @APICommand annotation's "since" field set to 3.xx 
or 4.xx) accept both uuids (string) and internal (long int) ids. 3.x and later 
apis are enforced to send uuids for api request to succeed.
- ACL Adapters (Role bases access checker in plugin/acl/ and DomainChecker)
- Tightly couple apiname and cmd class, introduce name field in @APICommand 
(previously @Implementation). This remove necessity of defining mapping in a 
command class, so apiname=pkg.name.classname;rolemask is not needed anymore, 
just apiname=rolemask in *commands.properties.in is enough and both syntaxes 
are allowed so it's backward compatible. If an api and role mask mapping is not 
defined in the properties file, they would be treated as blacklisted. Org. can 
implement their own role base access checkers.
- At load time, when mgmt server starts, using reflections (new dependency and 
APL compliant, available via standard maven repo) mapping of apiname and cmd 
class is generated (this take about 0.75-1 second), instead of doing that by 
reading and parsing *commands.properties.in files, same logic is used to 
generate apidocs.
- API execution optimisations, db views and response fixes. Min can explain the 
implementation in detail.
[Min] 1) This performance optimization is only targeted for list APIs.
   2) Removed IdentityProxy fields in all Response classes to avoid internal DB 
Id to UUID conversion (extra db lookup) in list result serialization phase.
   3) Created DB views to further speed up the following costly list APIs:
- listAccounts
   - listAsyncJobs
- listDomainRouters
- listEvents
- listHosts
- listVmGroups
- listProjects
- listProjectAccounts
- listProjectInvitations
- listResourceTags
- listSecurityGroups
- listUsers
- listVirtualMachines
- listVolumes
4) Added a new create-schema-view.sql to create these new DB views during 
database setup phase.
5) Also handled upgrade script for these new DB views in schema-40to410.sql.


Testing
======

- Build works along with targets apidocs, plugins, deploydb and deploysrvr works
- Unit tests while building works
- Basic Zone deployment using cloudmonkey and marvin's deployDataCenter.py 
(python ../marvin/marvin/deployDataCenter.py -i devcloud.cfg)
- Pre 3.x apis (all apis except those which has their @APICommand annotation's 
"since" field set to 3.xx or 4.xx) accept both uuids (string) and internal 
(long int) ids. 3.x and later apis are enforced to send uuids for api request 
to succeed.
- Integration tests succeeds: 
(https://cwiki.apache.org/confluence/display/CLOUDSTACK/Testing+with+Python)
$ cd test/integration
$ nosetests --with-marvin --marvin-config ../../tools/devcloud/devcloud.cfg 
--load -a tags="devcloud" -w smoke
Test Deploy Virtual Machine ... ok
Test Stop Virtual Machine ... ok
Test Start Virtual Machine ... ok
Test Reboot Virtual Machine ... ok
Test destroy Virtual Machine ... ok
Test recover Virtual Machine ... ok
Test destroy(expunge) Virtual Machine ... ok
----------------------------------------------------------------------
Ran 7 tests in 342.765s

OK

TODOs
======
- Integration tests with large advance zone test sets (I dog-fooded with 
devcloud)
- There are a lot of VO classes which don't implement a contract or an 
interface, this makes it impossible to move certain files which should be part 
of cloud-api and are current in cloud-server (for example UsageVO and usage 
related api cmd classes in cloud-server)
- Move DomainChecker as a plugin
- ACL annotation for remaining apis (we've the adapter and processing code in 
place, annotation is quite simple: see 39b829bffef0a21c9886074b1d0c42c3a83ea8b2 
for example).
- Regression/bug fixes and NPE fixes (which can be found and due to any failing 
integration tests for advance zone, from jira bug reports)
- Plugin for cloudmonkey and clients to discover apis as admin may have 
added/removed apis for a mgmt server.
- Automate apidoc generation to classify based on pkg structure and not hard 
coded rules.

Thanks to Min, Prachi, Prasanna, Fang and Likitha for their commits and work. 
Thanks to Alex for his design and guidance.
Lastly, thanks to the community for their participation, bug reports, 
suggestions and feedback.

Comments, suggestions, feedback welcome!

Regards.


List of changes
============

ACL annotation for StopVMCmd:
39b829bffef0a21c9886074b1d0c42c3a83ea8b2 api: ACL annotation and checkAccess 
removal refactor for StopVMCmd

ACL processing loop fix and method refactoring:
96b9164e4bfc372fc07ecaccac7894677926cf03 Fix ACL processor and methods in 
ApiDispatcher and their usages

Class extends fixes and debug message fixes:
19cf665094f7915d8058cdb7c1cde8da870e9ab2 ApiServer: Fix debug output for role 
based user access checking
a9ab42d962d2f76119266c367dc4fa26046fcfc7 api: Extend to infra. interface 
entities that are not associated with any account

Introduction of Infra*Entity for ACL processing:
e51bc8b161bfd95aeaf06e1c86a82da6a3b29b91 InfrastructureEntity: New interface 
contract for classes not associated with any account

ACL pkg rename refactor:
ed0637b8c2ef16e353d8a92feed10f18fc701a96 api: Refactor move acl to 
org.apache.cloudstack

ApiDoc generation fixes:
6f6ed858399a1b9e44543ccc5d02d7ba3d8b46c4 ApiXmlDocWriter: Fix apidocs 
generation based on new commands.properties syntax

Annotation fixes and file move refactoring:
b246ed7be77e08f87e712e333d0f7a6fc6d80554 api: Fix name fields for autoscale 
@APICommand annotation
e17e68f0af4bdb99f1b6c68ce7945a63aad0bc0d server: Fix base template*cmd class 
imports and names
8b085d3308cd1a4bc35d3b1439660e2167f7d9e2 api: Move base template*cmd class to 
org.apache.cloudstack.api, fix names and annotations

Remove old syntaxin *command.properties.in:
0df94a8be1bd747b790f1ba36bda84539a128fda Remove old syntax for 
commands.properties, apiname=rolemask is enough

Remove duplicate cmds:
7235ba35ad67ceff94e4993c19fd742e82fb6b93 Remove Duplicated Network Devices 
Commands

Cosmetic fixes:
21d6cd304b9a32a5b09b7e96547903e8337c11cf server: Reformat DomainChecker
6a112bd64c33ede4fa24c01bde59fe0e9bb3a925 api: Rename Validator to Validate, 
cosmetic fixes
b00ed17f4bf229f0169ef3d99a696f01cc74748c server: Cosmetic fix for methodname in 
ApiDispatcher

Refactor moves of cmd class files:
63481ecb34d60746fadd65d7edc0dc49844cf0e2 CLOUDSTACK-212: Move api response 
classes to cloud-api under org.apache.cloudstack
c5abc180ab55d521246d280e75ecd08e14f630a2 CLOUDSTACK-212: Move api/test pkg to 
org.apache.cloudstack
73a0c3e07f41425cbeede88a2784bd9eb54b2f00 api: Refactor move storagepool apis to 
storage pkg
f07a98a74097dc29f402f481704334146d0cf36d api: Refactor and move s3 to 
api.command.admin.storage
f1c15f0c2eaf11999ce2945ad1b4c7dc8a539a9b cli: Remove unused method, fix welcome 
msg, prompt

Exclude ListPref unit test as it requires a real MS and DB:
dea822700195930a78762cc5a6f5a0c74dce71a2 server: Exclude ListPerf test in as it 
requires real MS and DB

Fix unit tests and regression bug:
95e605ed25c3878b2cbdd3af15093b5b09096880 api: Fix failing unit test, regression 
due to recent merge

IdentityMapper removal and annotation of remaining api cmd classes:
364116074e6ffe0404b461e75c328dcda536d522 api: Remove IdentityMapper finally
596f9d0905de327e96d1f8a48ce60218934606ed api: Annotate netscaler apis, remove 
IdentityMapper from everywhere
65a1284e83bd0179a27c3b99426d6026b21f2aa9 srx: Annotate api classes, remove 
IdentityMapper
4dd5f14e76d7442ef2ea90b3c0aa4bb630ea9a71 f5: Annotate f5 cmd classes, remove 
IdentityMapper
4cf0b05a0be0ccedc74d691c77d9ed07e36669b1 vmware: Annotate cisco related apis, 
remove IdentityMapper
a2f8f42575e99303ccade4adc3d5fc12a4c0b21a nicira-nvp: Annotate nvp plugin, 
remove IdentityMapper

Uses reflections to load cmd classes in ApiServer:
0428b30a5a1cf079a2afac81aedc37dd2415de88 Fix reflections cmd class loading in 
ApiServer

Deploydb maven target fix, the view schema is now in a separate sql file:
22e3454ae4a6bffbd81340d09dbb23a973ad72ec developer: Load create-schema-view sql 
for developer deploydb profile

Backward compatibility fix in api param processing, in ApiDispatcher, but fix 
post 3.x apis in case uuid translation fails:
98d5719b57e34b5852fb9e27ea939361a75a2099 server: Make ApiDispatcher backward 
compatible to not throw error on incorrect params
6929bd947348c3912c19a260428c063bb0aea0ea server: Don't silently ignore uuid 
param translation for required param in case they fail
6fa8c708eeed0b511780b900b7869385091cac1d api: Fix service and disk offering 
annotations

Fix incorrect annotation fixes:
223bfc07c31a0952cd85d017611c3f0dae28f74a api: Fix Parameter annotation in 
DeleteServiceOfferingCmd.java
65b274d09bdaf05ea277a5eeabe76c25093f3c8a api: Fix incorrect annotation for list 
template cmd

DB view fixes, build fix for sql script:
daeb4abcca6f6f97d64bd560ce9087d4c92ca4a2 Create DB views for AsyncJobResponse 
to speed up listAsyncJobsCmd.
ff8fdbd1942e6206eba02d9db3c36730b0c0d7d1 Add missing @Id annotation to id 
fields for all the join VOs to support findById call.
c0a0318f29ad73c00793e98d24ab315dfea0a1e0 setup/db: Fix missing semicolon in db 
create view command

ApiName, role and cmd pkg mapping fixes:
580bf857ff41cd6bff36f8cfdb8e821d7978598d server: ApiServer inits with 
processing cmd classes to fill apiname:class mapping
072c6f1988a224b4d31ff3c7864b1c6f86882bca acl: Remove getApiCommands() method on 
APIAccessChecker interface
c5b51b7c39d3215c412f47d272d204ec276a4bf1 plugin: Remove memory mapping of 
apiname and class name in StaticRoleBasedAPIAccessChecker
65e4f00a101c130d15ad028f00961ebef11995a0 Annotate api name on usage related apis

DB View fixes:
ebfb90e2176e6b2f9b3a1a79d1ebc5c4cd8ebaff Create DB view for Account to speed up 
ListAccountsCmd, and add missing async job information for some response 
objects.

ACL adapter fixes:
bc8e0af0a3eff4d3e73796ffd4a8481b6f8c2f6e plugin: ACL Static Role Based api 
access checker
d235859168569fcd344e2210891b7611dbb3da12 Fix PluggableService to provide 
interface for ACL adapters etc. to get configs

@APICommand annotation fixes, make apiserver be backward compatible to accept 
internal long int ids for pre 3.x apis:
d928014a75461d21cd8eeca628150445440e9b08 api: Add CopyIsoCmd, boilerplate cmd 
class for api copyIso
983fe9712fac863397fdc0f9eb1eeb727986b112 api: Fix name field in @APICommand for 
CopyTemplateCmd.java
774cb29b0c46e5677faf9fc52f91f5d6d2617dae api: Annotate all remaining cmd 
classes with APICommand name field
76ea0e7c45877df9d991e775cca86a4113066365 api: Annotate and fill name field of 
@APICommand from commands.properties.in
623e7389ef0b2923b7859629cd70406e2e471525 api: Make APIServer backward 
compatible to accept both uuid and id for pre 3.x apis

Annotation and cosmetic fixes:
eff0716426dd7fbfa5dbc9415b3fbaa6aafa6bc8 UI: Minor cosmetic fixes
617a0507e1d0ffe5454cb282783ef6c0282cb11e api: EntityReference for 
serviceOfferingResponse
840da555204afac026a8797a02881b33dc1779c3 api: Entities will extend 
InternalIdentity and Identity
b80dccee3fcb938461d0058ec100379fa730ec4a api: ListTemplateCmd returns 
TemplateInfo not UserVmResponse

Name field part of @APICommand to tightly couple apiname and cmd class:
b8369b808e4757c6442fd74092df375c095e89a5 api: Introduce name field which would 
hold the OTW api command name

InternalIdentity enforcement and annotation renames:
7a7fe583e0a57b4b4c82200127037961eee14e1c Rename Implementation annotation to 
APICommand
a18464dbe52d4de5689d85913364e839d682b377 Rename @Entity to @EntityReference 
used in Response classes
057ac12d236778e986d001c8e102bdc81da88a20 Enforce InternalIdentity interface on 
all VO classes that impls long getId()
b75d92419e0647bc2044abe8b3b86331ca5eaebe api: Enforce InternalIdentity 
interface on AsyncJobVO

Removal of IdentityMapper:
beb2fccf1c8450d062bf1399416b185d9e77fe99 api: Finally get rid of IdentityMapper 
annotation processing in ApiDispatcher
042a8e768103b7e110b21ed17140833d71d86eda api: Get rid of method definition in 
interface, that uses IdentityMapper for getting entity
9d3ab8ded77f7dbba249b6cd6ef0edad7d80cabd server: Get rid of db helpers that 
work with IdentityMapper

Annotation fixes:
018b5215e01dc8d8ad31dbd9090f57c147f1cfc2 api: Annotate apis in various plugins
1bd47d48abc8567fb9ebf97d3d10dfd22598241a api: Annotate some nicira apis
e849d70af14412ee42892a016bc2ddb5d5af6e9f api: Annotate some juniper-src apis
a4fed07a7e6c63d7bf6d526f890274d638977467 api: Annotate usage related apis
fd784bd2d3c2975e36747d686f4e275793743e27 api: Annotate CreatePrivateNetworkCmd
f4a407e197a7c9c657af84f575596b1503d3b4b8 api: Remove IdentityMapper imports on 
vpn
02efffa93efabc5a639613af144d28a25239130f api: Annotate VPC apis
1931667243dbb566925e0b8acbbd4f25649f2bcb api: Annotate volume api
edb42d2cbbe6e34f04820277ef283813ef0a19ee api: Annotate templates apis

Introduction of interface that gives us contract that VO class has getId()
a5dddb4a838784c44a58b10c5874d6ca304e543d api: Extend or Implement 
InternalIdentity's getId method on a lot of VOs and Interfaces
a157a4c1eb67f11ab1fac837792c94179fa8bc39 api: InternalIdentity interface that 
provides contract to have getId

Annotation fixes:
38225a17f6d2ed4c72c3d43e096ed5e35602867c api: Annotate template related api
0719f21320715e2c08af563cac8799070d79623e api: Annotate ssh apis
66c2c0cbb79ad075f6ab80d1812c21c3c4b4b2bd api: Annotate snapshot related apis
a0a8a0bb5d34fdd27084f4599df10fe4519d63dd api: Annotate resource apis
4d79909828ab733bb95f2b317f0d6004606b84bd api: Remove unused, redundant imports 
in project
07f5e1ac2df0664d320dcd4bdd84d29d539c8616 api: Annotate offering apis
b37aca47b9bc52d57c3d1022104794da59704e90 api: Annotate network apis
06246ae27cbef314eec638248cc9d317f5ff80e0 api: Annotate nat apis
8559b4eab8962ac4dff9417b9fc3bdfebaf52b4b api: Annotate loadbalancer related cmd 
and response classes
0e1083ad83d6e8b2fc6de69744449255e9cd450b api: Annotate iso related cmd and 
response classes

DB list api fixes and build fixes (class definition):
503db14127807ef69933f5dcf6a3cef91cb5ca45 Add back Identity interface to most VO 
class to avoid cast error in ApiDispatcher.setupParameter call.
3aad2ba972eea3ef9f03bc88e311e44dae1ebf20 Add DB host view into fresh install 
schema and upgrade schema.
e7fa1a86fbdf39a43528921a0ea7530d3a5f1e57 Create DB views to improve 
ListHostsCmd performance.

Annotation field and response fixes, method for translating uuid to id:
e5fc513257587ab1d5b98567eb18980826981b6e api: Annotate guest related apis
ced1aabf82ef8226beef73c685a42f5d0fdbed73 api: Annotate firewall related apis
af5eacfc014621cb78ddea022589b4d9bc2bf0ee api: Annotate autoscale apis
575fab971103367c8c5c6935ce5c7d49e03e6aba api: Annotate account and address apis
4e2b30d31dc944800ec37db6113b5b9b98d38941 api: Annotate vpc admin apis
6f3c7bf4c71b595354d783cae10945f13dcc2aef api: Annotate vm related apis in admin 
pkg
5d8e1066027b2df20680aa0c361830d85d1611fb api: Add method in ApiDispatcher to be 
reused for both UUID and List<Uuid>
e9457cb40712d2bb4d015c3d1daa3973ca17aac8 api: Annotate Vlan admin apis, fix 
resource, storagepool, systemvm apis
f3f0962df20b58b25fc253df5017ad2dea41a62d api: Annotate admin apis related to 
traffic type for usage
9a3deaf8077ebbe8668c526edc287be1b3c8f5a8 api: Annotate template admin api
93532ea28c8773f8e1039427096b2bf93cbdc8cf api: Annotate storage pool related apis
a7e6172d8c5d97588c272de21f4ff43e4f8c2d60 api: Annotate admin.router apis
7e3c0ec0028c42110197785d9bf2df6ba88b5dc1 api: Annotate resource apis
97514a0693324d37e03d5193a01e77dae90ef2d0 api: Annotate offering
2140ff55ea986c8c0f2c7e2f2afcb5a5d55f2fed api: Refactor and move VPN related api 
cmd classes to command.user.vpn
a15da04937911e6779740d7f2317af87d57c9418 api: virtual machine Cmd annotations
024f0d95dd4526f210d0dfff64f789107cdb4c49 api: Use Identity interface instead of 
java reflect to getId
3209a3a858fbd5d7c30ee4cfb5394a4a3c8606ab api: Annotate pod,zone admin apis
08892c51a36072ea7f2dc8fbbdcee4191594b5ee api: Fix jobid and entitytype for 
BaseResponse and QueryAsyncJob*
f548099d08b7e0645d36193257c61b609e39b32d api: annotate instance group Cmds
71522b88dc6a8ef401e4ce05638db6b0a25974ee api: annotating the volume related cmds

Upgrade schema fix:
3ae5986b87852c094f2412b22345bc4d10cb3ade Update DB version during DB deploy     
1. Modified create-schema.sql to add version as 4.1.0 instead of 4.0.0  2. 
Removed schema-40to41.sql amd moved the content to schema-40to410.sql        3. 
Added to schema-40to410.sql Upgrade40to41.java

Backward compatibility for id/uuid passing/processing:
03b47cb5010f0244b861cf0f9b6c9f12ce4dced3 api: Temp. fix to be backward 
compatible to old way of id passing

Annotations, license fix, interface extension fixes:
6a032e0295809105adedfadcc5c322e6c03730c4 api: annotate the vpc related Cmds
c7e1cb651f20574bbd06cb191e3962d10f2171be api: Annotate the Site2Site vpn 
commands
6fbdf7665445f12a46672ba76e47bbecdd84f8df api: Annotate RemoteAccessVpn,ListZone 
commands
67f9467c5dbae56666dd6136a77fa7ea522f1d7b CLOUDSTACK-697: Reordered the LICENSE 
and NOTICE file content (as well as descriptor.xml).
8acc85ca5371d8fb3c66ac4083633849422f5654 Update DB version during DB deploy     
1. Modified create-schema.sql to add version as 4.1.0 instead of 4.0.0  2. 
Removed schema-40to41.sql amd moved the content to schema-40to410.sql        3. 
Added to schema-40to410.sql Upgrade40to41.java
290dc79366701852fd64127429f6954fea609f7a Populate uuid for uploadVO in create 
case.

DB View are used to create response, introduction of upgrade script:
e4dbc2033fa6071039df65f414e004611b361108 Add upgrade script from 4.0 to 4.1.

Response and annotation fixes, removal of IdentityProxy:
b14b39a69fa295d1d20484170b95b97fe310af28 Remove IdentityProxy from 
BaseResponse, ExtractResponse. Now IdentityProxy is only referenced in 
CreateCmdResponse, which involves some async job logic change. Since it is not 
impacting list performance, will leave it there for now.
5548d08fb6eec93f11e616abc862ef52746d55b7 api: Annotate missing systemvm api, 
annotate SystemVmResponse
d9718e82f28c2f0fb4cf2bb344b38c92db2e6baf api: Annotate some systemvm commands
a88ce6bb7f495dddeb954d1fc7826176646b3590 Remove IdentityProxy from 
CloudException and ExceptionResponse.
eb2a7deddd29bad9ab1cb63aff319f25cbcaeac5 api: Annotate start,stop router cmds

IdentityProxy removal, Validator interface definition and fixes in 
ApiDispatcher:
98b022a4300dc81ad28033d2b7110a10b2df1e15 Remove IdentityProxy from plugin 
response classes.
c4b600a8d181eb3e4d58db1822015753af9d0e53 api: Fix Validator annotation interface
e397f23f6b5d6ba34ad42eca95ae9d9ee43ac6a8 Revert "Guard null pointer exceptions."
1d729578d41b7435b68313c23dac2efc382d070f Remove IdentityProxy from Response 
classes.
fc56e29a3ec22035c744e276538e8a20e5923996 Guard null pointer exceptions.
7b6132e8e2e6f3fc375e39bbcb76154b1bd547f9 api: Skip empty uuid processing in 
ApiDispatcher for received params

Annotation, findByUuid method introduction and NPE fixes:
3e292869eb34d804e27358e4ba596adf589d2a67 api: Annotate project API cmd and 
response
32ca9e2aa4e2265a483911ef91208d0be84f3269 api: Annotate ListRoutersCmd, fix 
@Entity for Network,User,VPC Response
a9df2cb0f53d5d6b8d5837dac220a264d1023d1d api: Fix NullPointerException for 
listProjects in ProjectJoinDaoImpl
434258080f2dad95bbdbdd67f9517af2eac1cf85 api: Fix NullPointerException in 
ApiResponseHelper for DomainResponse
22ee4200c32912b06027618be1793a2c336cc0f6 api: Fix findByXId to findByUuid in 
EntityManager and ApiDispatcher
ba5fba939c1af0f936ac752da280fc040b5bdd09 api: Fix method name findByXId to 
findByUuid

Annotation and Response fix, remove IdentityProxy:
4b75132aa241db84af60f815c177f27a7cdd17ae Remove IdentityProxy from Response 
classes.
97d9fd01bd54669640f0dbf74909326a2e6c873b api: Annotate network related api cmd 
and response classes
a6ce3b5450d5b308ea088427739a46831c59406d api: Annotate Network 
device,offering,service apis
275208e1755de191f31769d65cf9fbea9722d246 api: Annotate phy network apis
9624a59d8e4d29caf6185f78cf2d5c0d917d387a api: Annotate host apis
855ba0439f05258e6c19e49a6a7852403d277e4d api: Annotate cfg and 
hypervisorcapabilities apis
fb9db2b1b19cf72ead11592bfc43f148a9f2477f api: Annotate autoscale and cluster 
apis
6116f3a4334f6e886fa7d52df488dc52bd468715 api: Annotate account apis remove 
IdentityMapper
e940562dcac9dcfa07342a4d6cdc6cf4260fd8b1 api: Annotate domain apis

Response fix, remove IdentityProxy:
16be94e9d7f5dde5b9353d85bdd9a8114546abe2 Remove IdentityProxy from 
OfferingResponse, FirewallResponse, FirewallRuleResponse, 
HypervisorCapabilitiesResponse, IPAddressResponse.
1aa30f03e7a99ff3bbfebca4b98823de2a25c359 Remove IdentityProxy from AutoScale 
responses.

UUID fixes and translation to get VO object work (in progress, completes above):
b16dde6367e9871b46869ce325e5fe0cd47341d3 api: Fix User related API Cmd classes 
to use entityType and CommandType.UUID
dc33a8d1458fd767ce7da2f38ff35f4be74caa3a api: Fix BaseList Cmd classes to use 
UUID CommandType and entityType appropriately
b008f31fd58c5ba496a20823af4b0608f448d355 api: Add @Entity annotation for user 
related response classes
5fdce84e81c10650d41de1837d7f4a1791fc4a6e api: Process UUID and Parameter 
annotations in ApiDispatcher
837d21bb2daf5b719c985a88e24585634c2df35f api: Implement findByXId in 
GenericDaoBase and EntityManagerImpl

Response fix, remove IdentityProxy:
3d344738b1faad2b05a97e3e0a45f70596a6469e Fix ControlledEntityResponse interface 
to remove IdentityProxy for projectId and domainId.

ApiServer port 8096, handle() fix;
d54d8cbcd7913bcc2c82a5fa64042849753e026a api: Fix ApiServer's handle() which 
runs on integration.api.port

Response fix, remove IdentityProxy:
79f8c104eb149aba7db353c9536b7b3410239cf1 Remove IdentityProxy from 
GuestOSResponse and GuestOSCategoryResponse.

Annotation processor in ApiDispatcher:
de8aa86542c115362209c6c3c67e79d5616ec889 api: Work in progress code in 
ApiDispatcher to process annotations

Annotation fix:
cba97b17423a8dda4e8d8b170088fe014754d283 api_refactoring: add parameter 
annotation for user 'security-group'

Response fix to include cloudstack api:
f8a483fc5a47cb66ac4788fcd7d53da0c9d6ea2b api: Include cloudstack-version in 
both xml and json api response

ACL fix, annotation field fix:
59fc89abe31df863e891c36b64336700eb100d3d api: Fix ApiServer role base acl logic 
and response type value
429b430721939b16e34fe9deda2c0d586765b0f6 api: Fix DeployVMCmd to use only 
entityType and not resourceType

Parameter annotation field rename:
6db279583ef43b4378e02371cfab2cf1249a2059 api: Remove resourceType, use only 
entityType

CommandType UUID introducing commit:
cc4030be41da3a654e6a1437528bc59cb9e18486 api: Add UUID type to CommandType in 
BaseCmd

Refactor and annotation fixes:
efa034e821df2333864ebaff94df2b7331905135 API-refactoring -- Add pod annotation, 
needed for the deployVM flow test.
a2a3ef63c272c642457e57dfed00267ed2656bff API refactoring -- add annotation for 
cluster group cmds and response.
7ea690c74d56cf0442a1b421e87e3043352d4c47 API refactoring -- add annotation for 
Account group and account response.
27482045ceef4ee4e8165c21f97c24200888beed API refactoring -- More parameter for 
counter group.
44ef998cfc83bcb210cf257bd137073338aab4e2 api: Add Validator interface that will 
be used for the @Validator annotation

Response refactor/fixes:
c167ad45e3480160c086e5bf532a72d9704c072b Move view based VO and Dao classes to 
cloud-server module to hide the details from API client, also extract query 
related methods into QueryService interface.

Misc fixes to api:
7dbdf786cc48244943da7dc7884b23763d4eeb31 api: FIXME for api access checker 
adapter
561dccfe9d36490f747463041ede8a46020c80e6 Fixing an oops, left out a tag...
3661f7f99293838d18b53326b43cd486456ec60f Fix several bugs of new refactored 
list apis.

Method refactors, api refactors:
472f4f91b9af18802d34e3a8631441b1752c18f3 Refactor ListProjectInvitationsCmd and 
ProjectInvitationResponse.
9c93fee0dcde2927d9819cf82b86237b632f35d0 Refactor ListProjectAccountCmd and 
ProjectAccountResponse.
c455cf9271042b7897a55fc12e96cc8ce2640259 api: refactor common code to get 
classname for an api in ApiServer

@Inject fix:
79b54e6ac1eea7ccc6a76255be3770f4e8b03703 api: Fix obj injections in ApiServer

ACL adapter fix:
6ce68b93ccfe23c4001713ae38c6422029891726 api: Fix APIAccessChecker and 
StaticRoleBasedAPIAccessChecker

Cosmetics fix:
f4892fbb8482572605ac5aff01de419ced5f8f5c api: remove those evil extra newlines

List apis and response classes fixes:
8735716ba02c89dfd33ad86748a665b4ab081f96 Refactor ListProjectsCmd and 
ProjectResponse.
c83323fea77ebbd87adf0f793362f4ba915a007b api: Refactoring ListUsersCmd and 
UserResponse.

ACL Adapter fixes:
8c4096dc5946c6d91a6445300278cb05a6a0f200 api: Have apiserver injected by 
component locator
214668711229e8b2c79e8373604be488c69f7552 api: initialize vars in constructor of 
StaticRoleBasedAPIAccessChecker
503082a49e0218bac937687164fe4151d774c52e api: Add ACL adapter for components.xml

ApiServer and Servlet fixes:
151a7643ced3a022d78eab0f6a4cf34b19928a7a api: Don't silently fail apiserver 
instance initialization
8fbbc7646648c86da56239d9cfee8633edaf2484 api: minor fixes in ApiServlet

License fixes:
c8923c9625619f379b42d9888d7b7d6dfe56c760 api: Fix license header for 
acl/Role.java
293665fafb0f450cb7e0c821975f13a656f02add api: Add license headers for 
APIAccessChecker and StaticRoleBasedAPIAccessChecker

Move refactor of cmd and response classes:
bba96254f500f90c05c8059dfe7938fb1857fe7f Refactoring ListVMGroupsCmd and 
InstanceGroupResponse.
e398b1e47a2558005c66b555e55d62bab2c7e149 api: Refactor command and response 
classes to org.apache.cloudstack.api.*
ad50d226cd5ffa3d84fb1aed33f1d581909ec6e1 api: Refactoring, add the parameter 
annotation for user VM.

Move refactor of cmd classes:
af28c06998d7983fd703e7e4c4cadc1aa2d827ea api: move and group all under command, 
org.apache.cloudstack.command.*

API cmd class classification and moves, and Parameter annotation fixes:
fa7527b77ec0bac987629df9dc31b9808378ed18 API_refactoring Add parameter 
annotation to the admin virtual machine group.
30941c2d31a530a633796a5d7613f07365bb0fe7 api: Refactoring ListEventsCmd and 
EventResponse, and create Event db view.

Sync changes from master to api_refactoring:
8cee2c578f9ad015c6b0738b07340261241bc8b0 Merge branch 'master' of 
https://git-wip-us.apache.org/repos/asf/incubator-cloudstack

Apidocs generation build bug fix:
947ac982bc3c3b1369e1d4dbcbbbbec0f1d87ca5 api: fix apidocs build bug

API cmd class classification and moves:
a6c02e14838fd5200eb65e65bdea2267897656b9 api_refactoring: VMgroup parameter 
annotation.
eba353099ec09da656a2944e481c74c190880589 api_refactoring: Fix build issue with 
api_refactoring branch.
3d04bfcadc175c0130b80f9cbda214a9d710cc4a api_refactoring: Add parameter 
annotation for admin zone group.
da6e81aa210dc8f8c7ac1d0693258df6ed453733 api_refactoring: Fix build issues and 
incorrect imports
5d998a616bdce93375794439e4a8171bf946b414 api_refactor: move forgotten apis, 
uncomment and fix mappings
089db9c6314a050cf0d09d4ad04f395f81caf609 api_refactor: capacity, hypvsr, alert 
and cert apis
780eb95830fd64424277d39d3934cfed69b66754 api_refactor: swift, ldap and vlan 
apis to admin pkg
28305904e8122124a55a2499272312d8450cd4cb api_refactor: move cluster apis to 
admin package
6c2ed5cb663e5844401711d81321bdd7f38bedff api_refactor: move pod apis to admin 
pkg
e763fd7d369221695690bd392d8172c8899aab52 api_refactor: move userkeys api to 
admin pkg
1f1ac79a6c91c562ffcfff1279a5cdbf4b171b4c api_refactor: move disk and service 
offering to admin pkg
ecc8249365e73d9ba982704423a4dd8ee88b7af4 api_refactor: move cfg admin apis
ab4fac54e52b2f4770c9b1b14fb3f7d3d70d4006 api_refactor: move admin level domain 
apis to admin pkg
c3853677c5ba34d25cb1bfb511e40f434cf175d0 api_refactor: move zone apis to admin 
pkg
7f61d29c371f7bd51309ec13572d8f2496be0854 api_refactor: move zone and hypervisor 
user level apis to appropriate pkg names
cc386b791b725252bd6cbd1ec28a5cb14594f5b6 api_refactor: move storagepool api to 
admin pkg
163fe7b8c317f479462bcf903cc6ac2c2283ac8f api_refactor: move systevm apis to 
admin pkg
1b1d91dc4fa6fd0f4fca5b0b74ab9bfce7127a49 api_refactor: move admin level account 
apis to admin pkg
2a7fa674c73dd88c34136bd94fc68a3c53f1e2a1 api_refactor: Move host apis to admin 
pkg

API call improvement (backend):
b0ce8fd4ff512c7a7da0a71671c4477492e854e7 api: Optimize and improve api, db call 
performance

API cmd class classification and moves:
c59de6cbde30c0b75d4c1557ccd14ee7505a160b api_refactor: router apis for admin pkg
55f2bd810a17633b262b2d679553ce201f128139 api_refactor: move template api 
preparetemplate to admin pkg
ceddaf122cdd857cd8269184dc0a478962095d35 api_refactor: refactor user apis
ba8e61bfb5a810dbf66a2dd8ccd35377457c85ef api_refactoring: for network api 
refactoring move interfaces so it works

Redundant policy/rules removal:
0799052d7014611de1f0e8a16f6503ee243df901 commands-ext.properties.in: remove 
duplication, same in commands.properties.in

API cmd class classification and moves:
e07106db0bada572912f6f114589d86a553199b0 api_refactor: usage apis to 
admin.usage pkg
0bbe82e8e12c93b69e74414d2d54f0707fe1557c api_refactor: move usage apis in parts 
to admin.usage
52c35bc30d83d5070e13ec6175931f6f15426576 api_refactor: make interfaces public 
as some of the stuff move to cloud-api
55364478e5e26a33951172a7bc69c3454e047548 api_refactor: move vpn related apis to 
user.vpn
8d8285a8d4976dd3790e0262e183fd864b912a79 api_refactor: vpc admin apis
c24118e7e8988b6cdd9397d394487923898a544f api_refactor: move network api for 
admin pkg from cloud-server to cloud-api
678181ac35ad83240ce7bb1505bc32ce12d8990f api_refactor: move network api for 
admin pkg
ee0a4a41d0f8db2f895a1699150c60cac6facab8 api_refactor: entity annotation and 
fix parameter
99875a165fd5a6d48c2385b52250ec6b29f0ce51 api_refactor: admin apis for vpc
dd5a36fcd2ebb373d627d061e67f16c304f4ae5b api_refactor: refactor for autoscale 
apis
2121fbd4698342bd5b14f9b5ec086a541d259dd8 api_refactor: refactor network apis 
for admin pkg
feb342ad2364a6237298e200d7eb9866cf004a2a api_refactor: refactor autoscale apis
456b852c0cd4d8fbd2d5dcd02181bcb7828df84e api_refactor: refactor loadbalancer 
apis
8773fc2a55ee842594130d7fa066968f80963929 api_refactor: refactor volume apis
25b5aadb4e313436e1b5e604ee1c236c28b21a64 api_refactor: refactor firewall apis
5cd1f4b6c2f2842b9978e49de2ae6c46bff87e52 api_refactor: ip address apis 
refactoring
46ed598894598238c87eac446b92c6bd351e5193 api_refactor: resource (limit) apis, 
move capability and cloud identifier
7f9c490b5a7865adae1d9ad4ee17895aa0cd49ed api_refactor: move listzones and 
listcapabilities to dc
a34fc1f1a766187e4e4425e284f5dd2bbae0ce85 api_refactor: move listcapabilites to 
dc
d3261e5bb3d0d31a25514b3769d91d06d74c5c27 api_refactor: move listhyperisor to 
datacenter
658cf56120796140b90ab08b7356fb65031db133 api_refactor: move diskoffering to 
offering
6fe1b5f9b08796fdfbe770d8334610978a4e7a44 api_refactor: move diskoffering to 
offering
1b8dc65f3a7b6f3b9e3b3b988e8abf31400d8a43 api_refactor: refactor user (vpn) apis
91d199b8d8b740ce6f6cd588f675bad460e25aac api_refactor: refactor list hypervisor 
api
cabbc7bd7d4778f1728bd11306403909572d6987 api_refactor: refactor disk api (only 
user)
ea79162615f7863a84102229a32637e1ca1a0730 api_refactor: refactor configuration 
api for normal user
28df57ec7564a1004c392ff1a70bbc497df6da63 api_refactor: refactor serviceoffering 
apis
73d1099c7680eece21e0677d2e9495714e8a9789 api_refactor: rename sg to 
securitygroup
1e51d6c1ab4cead878581a9992be2ee462ef78d1 api_refactor: refactor guest os 
(guest) apis
b673c21174f33844a5a9d9de3e04450cbcdd32d8 api_refactor: refactor job (async 
jobs) apis
7ac48798b4420a80ff0d2415e070e550a2297b77 api_refactor: refactor event apis
add1b9b05541564d24efaf5a0ddad5673edc7aa1 api_refactor: refactor register apis
316e7f226a22c9a88b892b0bc4960243e5c36a95 api_refactor: refactor tag apis
37cd76ee8156398d39afb0ce9c1fb44aa8d63cfc api_refactor: refactor ssh apis
9a0df307667c43b56adddd98bf65c7f50b469dc1 api_refactor: refactor account apis
46353e0916af32339887c1ad6035d024bd12d9a8 api_refactor: refactor vmgroup apis
13aa4d8530340e69f2a621a9ea813548195843a5 api_refactor: refactor nat apis
a033cf1bfcf5580ac5182ba919e5ea796b11c35d api_refactor: refactor snapshot apis
0df9538fb7b335a92c5fb764589e37c0b45f952e api_refactor: refactor security group 
(sg) apis
3e0b2164be83a176304eb40d8000c15c0b63c310 api_refactor: refactor template apis
e0b4430070d70b946cbdb7dff138be91a23b0b0a api_refactor: refactor iso apis
47ae62e44a5ddf813230eeaa6f92b9fb2dd662d4 api_refactor: refactor network apis
5e0501d116e03d69fa4f50dcfae0f618730b4984 api_refactor: refactor project apis
ac1ea7616abbb89b1f1b8525572ed470037cca28 api_refactor: refactor vpc apis
6fc3bc3760b35236cc005790abea766d308c23ae api_refactor: refactor vpn and vm apis

Cosmetic fix:
5edfc2760a99e3c62709cdb8bf50c04664726d43 refactor: remove redundant imports, 
fix trailing chars

ACL POC work by Prachi:
a2306f4917a6705819b0112fcb085ebafe752ed0 some more poc work
073863249abf36b6879359889f5731984391fa41 Some ACL POC work


Reply via email to