Commit Graph

282 Commits

Author SHA1 Message Date
Rohit Yadav f30c52a16c CLOUDSTACK-8562: DB-Backed Dynamic Role Based API Access Checker
This feature allows root administrators to define new roles and associate API
permissions to them.

A limited form of role-based access control for the CloudStack management server
API is provided through a properties file, commands.properties, embedded in the
WAR distribution. Therefore, customizing API permissions requires unpacking the
distribution and modifying this file consistently on all servers. The old system
also does not permit the specification of additional roles.

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dynamic+Role+Based+API+Access+Checker+for+CloudStack

DB-Backed Dynamic Role Based API Access Checker for CloudStack brings following
changes, features and use-cases:
- Moves the API access definitions from commands.properties to the mgmt server DB
- Allows defining custom roles (such as a read-only ROOT admin) beyond the
  current set of four (4) roles
- All roles will resolve to one of the four known roles types (Admin, Resource
  Admin, Domain Admin and User) which maintains this association by requiring
  all new defined roles to specify a role type.
- Allows changes to roles and API permissions per role at runtime including additions or
  removal of roles and/or modifications of permissions, without the need
  of restarting management server(s)

Upgrade/installation notes:
- The feature will be enabled by default for new installations, existing
  deployments will continue to use the older static role based api access checker
  with an option to enable this feature
- During fresh installation or upgrade, the upgrade paths will add four default
  roles based on the four default role types
- For ease of migration, at the time of upgrade commands.properties will be used
  to add existing set of permissions to the default roles. cloud.account
  will have a new role_id column which will be populated based on default roles
  as well

Dynamic-roles migration tool: scripts/util/migrate-dynamicroles.py
- Allows admins to migrate to the dynamic role based checker at a future date
- Performs a harder one-way migrate and update
- Migrates rules from existing commands.properties file into db and deprecates it
- Enables an internal hidden switch to enable dynamic role based checker feature

Deprecate commands.properties

- Fixes apidocs and marvin to be independent of commands.properties usage
- Removes bundling of commands.properties in deb/rpm packaging
- Removes file references across codebase

Reviewed-by: John Burwell <john.burwell@shapeblue.com>
QA-by: Boris Stoyanov <boris.stoyanov@shapeblue.com>

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-04-25 14:52:02 +05:30
Min Chen bf8dd828f5 CLOUDSTACK-7981: listVirtualMachine is too slow in case of duplicate
resource tags due to joining user_vm_details to user_vm_view.
2014-11-26 17:40:06 -08:00
seif 59ea2e2960 Added the listHostTags API command 2014-08-17 20:38:46 -06:00
seif 67ca2557f9 Changes for a new API command to list the storage tags 2014-08-07 17:46:06 -06:00
Alena Prokharchyk 887f027a9a CLOUDSTACK-6907: lisVolumes - make a decision whether to set service or disk offering in the response, based on the DiskOfferingVO type entry, not the volume Type 2014-06-12 16:25:04 -07:00
Murali Reddy 965346cad1 CLOUDSTACK-6712: NPE in findJobInstanceUuid() in ApiDBUtils 2014-05-20 10:26:12 +05:30
Sanjay Tripathi 35cd61c463 CLOUDSTACK-6649: CS is not giving the system-wide capacity for GPU reosurce. 2014-05-14 15:05:28 +05:30
Tanner Danzey 601827e6b3 CLOUDSTACK-5907, CLOUDSTACK-6396: KVM/RBD & KVM/CLVM volumes mistakenly shown as OVM, disables snapshotting
modified:   server/src/com/cloud/api/ApiDBUtils.java

Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-05-05 15:15:25 +02:00
Prachi Damle 9514c9e045 CLOUDSTACK-6349: IAM - No error message presented to the user , when
invalid password is provided.

- AccountManager now works using accountId instead of accountType in
following methods too:
- isResourceDomainAdmin()
- isAdmin()
2014-04-28 11:10:50 -07:00
Alena Prokharchyk 9c4d20cb68 Revert "Return isolation methods as a part of listPhysicalNetworks call"
This reverts commit 316f23ed5f.
2014-04-22 18:06:46 -07:00
Alena Prokharchyk 316f23ed5f Return isolation methods as a part of listPhysicalNetworks call 2014-04-22 14:57:04 -07:00
Murali Reddy 2b51207510 persist fact that network can span multiple zones, if network offering
has strechedL2Subnet capability and return the zones in which
network spans in the networkreponse object
2014-03-20 17:01:33 +05:30
Min Chen 99bdc8d875 Merge branch 'master' into rbac. 2014-03-13 11:05:03 -07:00
Sanjay Tripathi c7d31fe288 CLOUDSTACK-4760 : Enabling GPU support for XenServer.
CLOUDSTACK-4762 : Enabling VGPU support for XenServer.

This feature is to enable the GPU-passthrough and vGPU functionality,
with the help of this feature, admins/users will be able to leverage
the GPU graphics unit power by deploying a virtul machine with GPU or
vGPU support or by changing the service offering of an existing VM
at any later point of time. There GPU/vGPU enabled VMs are able to run
graphical applications.
For now, this feature is only supported with XenServer hypervisor but
can be extended to add the support of other hypervisors.
2014-03-11 15:44:51 +05:30
Min Chen 929fbabaa2 Merge branch 'master' into rbac. 2014-01-17 14:37:08 -08:00
Alex Huang 68b8891c62 Removed all reminants of the IdentityService. Created the KeysManager to move the management
of keys out of management server
2014-01-14 13:11:35 -08:00
Min Chen e42a262f6c Remove old APIs and old security checker plugins. Also use QuerySelector
adapater in ACL search routine.
2014-01-10 14:54:31 -08:00
Alex Huang ae8560b195 Moved security out into its own jar. Will be adding more to it. Fixed a few white space issues brought up by checkstyle in eclipse. 2014-01-09 16:12:25 -08:00
Devdeep Singh e59420c514 CLOUDSTACK-5691: Fix for attaching an uploaded volume to instance running
on hyperv. There were multiple issues here. Upload volume was actually
failing because the post download check for vhd on the cifs share was
unsuccessful. Also the agent code wasn't parsing the volume path correctly.
Fixed it too.
2014-01-03 16:55:28 +05:30
Min Chen d2922b9254 Separate ListAccounts cmd to use two different views. 2013-12-12 17:52:45 -08:00
Min Chen 312ff76f69 Separate listZones cmd to use two different views, also renamed previous
listZonesByCmd to listZonesCmd.
2013-12-12 17:40:30 -08:00
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
Min Chen 8f21eca922 Separate Template/ISO related APIs to use two different views. 2013-12-10 12:23:39 -08:00
Min Chen a416f6c3c3 Fix API build error based on new DB schema, now only
RoleBasedEntityAccessChecker needs to be fixed.
2013-12-06 15:09:00 -08:00
Min Chen 015d06e7fc Separate all volume related APIs to two Cmd classes based on two
response views.
2013-11-22 18:48:20 -08:00
Alex Huang d620df2bdd Reformatted all of the code. 2013-11-21 06:15:26 -08:00
Alex Huang 8d62744681 Reformat all source code. Added checkstyle to check the source code 2013-11-20 07:26:53 -08:00
Min Chen ce3638bb03 Merge branch 'master' into rbac. 2013-11-04 15:49:29 -08:00
Min Chen 2ef4d5200c Merge branch 'master' into rbac. 2013-10-31 17:16:33 -07:00
Wei Zhou 5109498783 CLOUDSTACK-4830: allow create account and user by domain admin
(cherry picked from commit 0d12e3eb9d)
2013-10-31 11:36:54 +01:00
Alena Prokharchyk 591dcd1d1c ResourceDetails: added "display" field to a bunch of VOs - determines whether the detail should be returned to the regular user 2013-10-29 09:18:11 -07:00
Alena Prokharchyk 2cac1aaa0f Moved ResourceDao and ResourceDaoBase to cloud-engine-schema/org/apache/cloudstack (used to be mistakenly placed under com/cloud/cloud) 2013-10-28 15:03:57 -07:00
Alena Prokharchyk 5caeab782d ResourceDetails -
1) added createDetail to ResourceDetailDao interface to provide generic way of creating resourceDetail DB objects
2) added resource details support for firewall rules
2013-10-28 14:45:52 -07:00
Alena Prokharchyk 300f626d42 Renamed ResourceDetailDaoImpl to ResourceDetailDaoBase 2013-10-25 14:21:20 -07:00
Alena Prokharchyk 0fb4d9d5a2 Made all resource details DAOs (nic_details, user_vm_details, template_details, volume_details, service_offering_details) extend from the same base class as although details are being stored in diff tables, those tables have the same structure and same accessors. 2013-10-25 10:56:19 -07:00
Alena Prokharchyk 24725f8e21 ResourceDetails:
1) Added support for Zone resource details
2) Renamed DcDetailsDao to DataCenterDetailsDao to follow the CS name convention for DataCenter related classes
2013-10-24 15:54:49 -07:00
Alena Prokharchyk 2bb716efd8 ResourceMetaData (Resource details) fixes:
* changed name for TaggedResourceType enum to ResourceObjectType as this enum is used both by ResourceMetaData and ResourceTags code
* enhanced the enum with extra fields resourceTagsSupport (boolean) and metadataSupport identifying if the resource supports tags and/or metadata.
* cleanup unused @Inject objects from the ResourceMetaDataManager
2013-10-23 17:39:16 -07:00
Alena Prokharchyk 818e6f98fd CLOUDSTACK-4874: added resource tags to the Service offering object. Tags can be created by using createTag API command; you can list service offerings by tags when pass "resourceTag" parameter to the listServiceOfferings call 2013-10-15 17:08:55 -07:00
Min Chen f59e47b263 Clean up ListVMsCmd implementation to not using Criteria class. 2013-10-08 15:11:56 -07:00
Min Chen 440f03e548 Revert "Fix a listAccount regression due to root admin role refactoring."
This reverts commit d79cb380e1.
2013-10-07 12:00:38 -07:00
Min Chen d79cb380e1 Fix a listAccount regression due to root admin role refactoring. 2013-10-07 11:53:38 -07:00
Min Chen d84d62a1e0 Separate Admin and User command and response for ListVMsCmd. 2013-10-02 17:45:14 -07:00
Min Chen de0904ba63 Modify AccountResponse to return groups that account belongs to. 2013-09-30 14:14:38 -07:00
Min Chen 0be374a796 Add All Apis for ACL Group. 2013-09-27 18:16:18 -07:00
Min Chen 97fd99b09a Add all Apis for AclRole. 2013-09-26 17:48:29 -07:00
Min Chen fce2aad23d WIP For APIs related to ACL Roles. 2013-09-26 11:22:43 -07:00
Prachi Damle aba54356d5 Account_Type Refactoring for Root Admin Role
- change the AccountService::isRootAdmin(short) to  isRootAdmin(long accountId);
- Change all callers
- Change all places that check the account.getType() directly to call the AccountManagerImpl.
2013-09-24 15:31:09 -07:00
Alex Huang 435e74e914 Commit to try something on removing getZone 2013-09-06 15:40:33 -07:00
Alex Huang 8e5249df62 Moved NetworkManager to NetworkOrchestrationService 2013-09-06 15:40:31 -07:00
Alex Huang abbae2aa87 Fixed the problem with offerings and templates. These two items due to a previous patch all the way back in 2.1.x versions uses the removed column incorrectly. No one fixed since then. Hence, there's a bunch of findbyidincludingremoved calls in the cloudstack code around these two items. 2013-08-26 17:31:10 -07:00