Commit Graph

90 Commits

Author SHA1 Message Date
Rohit Yadav a5de2714e9 CLOUDSTACK-9299: Out-of-band Management for CloudStack
Support access to a host’s out-of-band management interface (e.g. IPMI, iLO,
DRAC, etc.) to manage host power operations (on/off etc.) and querying current
power state in CloudStack.

Given the wide range of out-of-band management interfaces such as iLO and iDRA,
the service implementation allows for development of separate drivers as plugins.
This feature comes with a ipmitool based driver that uses the
ipmitool (http://linux.die.net/man/1/ipmitool) to communicate with any
out-of-band management interface that support IPMI 2.0.

This feature allows following common use-cases:
- Restarting stalled/failed hosts
- Powering off under-utilised hosts
- Powering on hosts for provisioning or to increase capacity
- Allowing system administrators to see the current power state of the host

For testing this feature `ipmisim` can be used:
https://pypi.python.org/pypi/ipmisim

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Out-of-band+Management+for+CloudStack

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-10 13:16:03 +05:30
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
Rohit Yadav a4f552d46d cloudstack: set next version to 4.5.3-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-09-14 09:59:40 +05:30
Rohit Yadav 7385441807 Updating pom.xml version numbers for release 4.5.2
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-19 14:42:54 +05:30
Rohit Yadav 20ce346f3a CLOUDSTACK-8457: SAML auth plugin improvements for production usage
* Move config options to SAML plugin
  This moves all configuration options from Config.java to SAML auth manager. This
  allows us to use the config framework.
* Make SAML2UserAuthenticator validate SAML token in httprequest
* Make logout API use ConfigKeys defined in saml auth manager
* Before doing SAML auth, cleanup local states and cookies
* Fix configurations in 4.5.1 to 4.5.2 upgrade path
* Fail if idp has no sso URL defined
* Add a default set of SAML SP cert for testing purposes
  Now to enable and use saml, one needs to do a deploydb-saml after doing a deploydb
* UI remembers login selections, IDP server

- CLOUDSTACK-8458:
    * On UI show dropdown list of discovered IdPs
    * Support SAML Federation, where there may be more than one IdP
        - New datastructure to hold metadata of SP or IdP
        - Recursive processing of IdP metadata
        - Fix login/logout APIs to get new interface and metadata data structure
        - Add org/contact information to metadata
        - Add new API: listIdps that returns list of all discovered IdPs
        - Refactor and cleanup code and tests

- CLOUDSTACK-8459:
    * Add HTTP-POST binding to SP metadata
    * Authn requests must use either HTTP POST/Artifact binding

- CLOUDSTACK-8461:
    * Use unspecified x509 cert as a fallback encryption/signing key
      In case a IDP's metadata does not clearly say if their certificates need to be
      used as signing or encryption and we don't find that, fallback to use the
      unspecified key itself.

- CLOUDSTACK-8462:
    * SAML Auth plugin should not do authorization
      This removes logic to create user if they don't exist. This strictly now
      assumes that users have been already created/imported/authorized by admins.
      As per SAML v2.0 spec section 4.1.2, the SP provider should create authn requests using
      either HTTP POST or HTTP Artifact binding to transfer the message through a
      user agent (browser in our case). The use of HTTP Redirect was one of the reasons
      why this plugin failed to work for some IdP servers that enforce this.
    * Add new User Source
      By reusing the source field, we can find if a user has been SAML enabled or not.
      The limitation is that, once say a user is imported by LDAP and then SAML
      enabled - they won't be able to use LDAP for authentication
    * UI should allow users to pass in domain they want to log into, though it is
      optional and needed only when a user has accounts across domains with same
      username and authorized IDP server
    * SAML users need to be authorized before they can authenticate
        - New column entity to track saml entity id for a user
        - Reusing source column to check if user is saml enabled or not
        - Add new source types, saml2 and saml2disabled
        - New table saml_token to solve the issue of multiple users across domains and
          to enforce security by tracking authn token and checking the samlresponse for
          the tokens
        - Implement API: authorizeSamlSso to enable/disable saml authentication for a
          user
        - Stubs to implement saml token flushing/expiry

- CLOUDSTACK-8463:
    * Use username attribute specified in global setting
      Use username attribute defined by admin from a global setting
      In case of encrypted assertion/attributes:
      - Decrypt them
      - Check signature if provided to check authenticity of message using IdP's
        public key and SP's private key
      - Loop through attributes to find the username

- CLOUDSTACK-8538:
    * Add new global config for SAML request sig algorithm

- CLOUDSTACK-8539:
    * Add metadata refresh timer task and token expiring
        - Fix domain path and save it to saml_tokens
        - Expire hour old saml tokens
        - Refresh metadata based on timer task
        - Fix unit tests

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #489
2015-06-29 12:25:02 +02:00
Rohit Yadav 0963432268 apidoc: get version information from $project.version
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-08 11:35:34 +02:00
Rohit Yadav 4ba72a877c Updating pom.xml version numbers for release 4.5.2-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-07 15:33:01 +02:00
Rohit Yadav 0eb4eb2370 Updating pom.xml version numbers for release 4.5.1
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-04 12:17:03 +02:00
Rohit Yadav c198dfdb7a Update pom and version usage to 4.5.1-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-12 12:13:18 +05:30
Pierre-Luc Dion c234751069 apidoc: back button and devdoc link update 2015-02-07 16:18:26 -05:00
Pierre-Luc Dion a8ed45b64b apidoc: license date change to 2015 2015-02-07 16:13:27 -05:00
Rohit Yadav 2f6fa268f4 apidocs: add entry for getSPMetaData
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:25 +02:00
Rohit Yadav 7e15d16185 apidoc: add new entries for APIs
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-25 18:16:28 +02:00
Rohit Yadav 773c5e9532 apidoc: add GloboDns entry under network section
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-21 12:18:27 +02:00
Rohit Yadav fed71ec585 apidoc: group login, logout, samlsso, samlslo under Authentication section
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-13 13:49:05 +02:00
Rohit Yadav 3c9d78752d apidoc: add entry in gen_toc for saml
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-13 13:43:36 +02:00
Hugo Trippaers 5ddd0cff32 Fix dependency issue in apidoc, depends on server as that is where ApiXmlDocWriter lives 2014-07-31 12:06:54 +02:00
Ritu Sabharwal 628d8e66f7 CLOUDSTACK-6823 : First code drop for Brocade Network plugin to orchestrate Brocade VDX switches for L2 connectivity
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-07-23 11:11:18 +02:00
Suresh Ramamurthy 03de9cc335 CLOUDSTACK-6845 : NuageVsp Network plugin
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-07-21 10:49:49 +02:00
Hugo Trippaers 4402685e11 Update master to 4.5.0-SNAPSHOT 2014-03-14 14:55:26 +01:00
Min Chen 9f47466fea Fix some issues in renaming iam api, also fix marvin library. 2014-02-26 17:30:34 -08:00
Prachi Damle f84375442e Merge branch 'master' into rbac
Conflicts:
	api/src/org/apache/cloudstack/api/command/user/autoscale/ListAutoScaleVmProfilesCmd.java
	api/src/org/apache/cloudstack/api/command/user/volume/ResizeVolumeCmd.java
	plugins/network-elements/juniper-contrail/test/org/apache/cloudstack/network/contrail/management/MockAccountManager.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/api/query/QueryManagerImpl.java
	server/src/com/cloud/template/TemplateAdapterBase.java
	setup/db/db/schema-430to440.sql
	tools/apidoc/gen_toc.py
2014-02-04 12:07:32 -08:00
Alena Prokharchyk 13e6c2fe72 Fixed API doc that got broken by adding new commands for stratosphere ssp plugin
Conflicts:
	tools/apidoc/gen_toc.py
2014-01-30 11:01:03 -08:00
Min Chen 929fbabaa2 Merge branch 'master' into rbac. 2014-01-17 14:37:08 -08:00
Min Chen c69a412c43 Remove old prepareSecondaryStorageForMigration from gen_toc.py. 2014-01-09 10:12:22 -08:00
SrikanteswaraRao Talluri 3baf61161a CLOUDSTACK-5846: added updateCloudToUseObjectStore to known_category dict in gen_toc.py
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2014-01-09 18:44:04 +05:30
Alena Prokharchyk eb9147f709 Fixed code style errors in cloud-apidoc project 2013-12-12 16:39:02 -08:00
tuna 015ab6af8a fix rebase master 2013-12-09 23:33:14 +07:00
tuna d935d3865a tuna 2013-12-09 23:33:14 +07:00
Alex Huang 433a631916 Reformat of source code to set a stable base for the future. I couldn't get checkstyle enabled. There's still about a thousand errors from checkstyle. Most of it from length errors from comments and strings. Will attempt to remove those tonight. This change is so large I just want to get it in before any merge nightmares. The changes are fairly minor though and I did a full compile and start a server with the reformat code. 2013-11-21 07:56:47 -08:00
Hugo Trippaers cf715ff491 Bump 4.3.0 to 4.4.0 in master 2013-11-21 16:01:15 +01:00
Alex Huang 224f479974 Removed trailing spaces 2013-11-21 04:08:01 -08:00
Alex Huang e4b22d0fca Replace all tabs, particularly the ones in the comments 2013-11-21 03:39:58 -08:00
Wei Zhou 09ca263afd fix apidocs build error 2013-11-08 16:02:59 +01:00
Min Chen 2ef4d5200c Merge branch 'master' into rbac. 2013-10-31 17:16:33 -07:00
Min Chen 6be228a438 CLOUDSTACK-4024:Provide a way to upgrade from existing NFS secondary
storage to S3.
2013-10-28 21:01:31 -07:00
Min Chen d84d62a1e0 Separate Admin and User command and response for ListVMsCmd. 2013-10-02 17:45:14 -07:00
Prasanna Santhanam a987a8aca1 Fix apidoc build
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-09-11 09:40:48 +05:30
Ian Duffy bdba0ddeed Bring up to date with master 2013-08-31 00:25:48 +01:00
Jessica 94849e274a CLOUDSTACK-4429. DOC. Fix broken link in header of API Reference TOC page. The link pointed to the Developer's Guide on the old doc site. Changed to point to the new doc site. Does not point to a specific doc version, so this text can be re-used without change for future software releases. 2013-08-21 16:15:42 -07:00
Chip Childers 320663df78 fixing build error with message Need to add a category for createCacheStore.xml to <https://builds.apache.org/job/cloudstack-apidocs-master/ws/tools/apidoc/gen_toc.py>:known_categories 2013-08-08 09:36:38 -04:00
Chip Childers b9623155a1 Adding CacheStores category for API docs, to resolve: Exception: Need to add a category for listCacheStores.xml to /home/hudson/jenkins-slave/workspace/cloudstack-apidocs-master/tools/apidoc/gen_toc.py:known_categories 2013-08-07 15:53:44 -04:00
Chip Childers 8225374138 Updating pom.xml version numbers for release 4.3.0-SNAPSHOT
Signed-off-by: Chip Childers <chipchilders@apache.org>
2013-08-01 10:35:00 -04:00
Min Chen c8cafb91a7 CLOUDSTACK-3818: NFS Cache Improperly Named. 2013-07-26 15:07:45 -07:00
Prasanna Santhanam fd62a22b6b add deleteCacheStorage to TOC in API doc generator
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
(cherry picked from commit 8f153a65dd)
2013-07-26 09:47:01 +05:30
Ian Duffy eaa4143371 Merge LDAPPlugin
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
2013-07-25 17:54:52 +05:30
Alex Huang bec53fb59a VMSync: Separating jobs from api 2013-07-03 11:22:40 -07:00
Sheng Yang 7e44f81273 UCS: Add missing beans
Also move the API to the right place
2013-06-27 14:54:45 -07:00
Sheng Yang 759269fcd8 Baremetal: Fix API's packages and categories 2013-06-21 09:48:30 -07:00
Prasanna Santhanam 6b34943622 Add listCacheStores to Image Store category
Signed-off-by: Prasanna Santhanam <tsp@apache.org>
2013-06-21 11:56:05 +05:30