Commit Graph

56 Commits

Author SHA1 Message Date
Rohit Yadav 07564469e9 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-12 11:05:40 +05:30
Rohit Yadav 4347776ac6 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

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-11 09:45:19 +05:30
Rajani Karuturi 0b8355920e Merge branch 'volume-upload' into master
This closes #206
2015-04-29 11:12:53 +05:30
wilderrodrigues 014b47f6e6 [TK-3113] fixed CloudRuntimeException: NO EVENT PUBLISH CAN BE WRAPPED WITHIN DB TRANSACTION! 2015-03-16 11:39:14 +01:00
Koushik Das 627f5a62dc volume upload: management server polling and upload status from agent
MS polling logic to query status for volumes that are uploaded
2015-01-14 10:19:12 +05:30
Wilder Rodrigues 546e563c27 refactor all private methods in the virtual router appliance and VPC appliance
Conflicts:
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/rules/DhcpEntryRules.java
	server/src/com/cloud/network/rules/LoadBalancingRules.java
	server/src/com/cloud/network/rules/RuleApplier.java
	server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java
	server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
	server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
	server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
	server/src/org/apache/cloudstack/network/topology/NetworkTopology.java
2014-10-14 15:08:09 +02:00
Antonio Fornie 2802d3b75b Refactor and test NetworkHelper#sendCommandsToRouterWithNoAnswers 2014-10-14 15:02:14 +02:00
Antonio Fornie 3d4ddb7251 DeployRouter includes nw creation following TellDontAsk principle
Also factor out NicProfile specific methods and fix some DI config.

Conflicts:
	server/src/org/cloud/network/router/deployment/VpcRouterDeploymentDefinition.java
	server/test/org/cloud/network/router/deployment/VpcRouterDeploymentDefinitionTest.java
2014-10-14 15:02:13 +02:00
Antonio Fornie 95d32b4d0d Fix unnecessary changes Spring contexts 2014-10-14 15:01:17 +02:00
Antonio Fornie d2d9157ab0 Complete tests for normal deployment and start vpc one
Conflicts:
	server/src/org/cloud/network/router/deployment/RouterDeploymentDefinitionBuilder.java
2014-10-14 15:01:16 +02:00
Wilder Rodrigues 12b0d188cb Replacing the old [Vpc}VirtualNetworkApplianceManager by the new ones;
Implement the missing commands related to DHCP PV Lan and DHCP SubNet

Conflicts:
	server/src/com/cloud/network/element/VirtualRouterElement.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/rules/DhcpRules.java
	server/src/com/cloud/network/rules/VirtualNetworkApplianceFactory.java
	server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
	server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
	server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
	server/src/org/apache/cloudstack/network/topology/NetworkTopologyVisitor.java
2014-10-14 15:01:16 +02:00
Wilder Rodrigues bfd4316b58 adding new bean to spring context file; renaming package from "com" to "org" 2014-10-14 15:01:13 +02:00
Wilder Rodrigues 8437c2fda0 removing bean from the xml 2014-10-14 15:01:13 +02:00
Wilder Rodrigues 87f0e68983 fixing the classes relationship; adding beans properly in the spring context; using the right basic/advance stuff; testing ip and port forwarding rules
Conflicts:
	server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
	server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
	server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
2014-10-14 14:55:25 +02:00
Daan Hoogland e1866bf90d package rename
Conflicts:
	server/src/com/cloud/network/rules/DhcpEntryRules.java
	server/src/com/cloud/network/rules/DhcpSubNetRules.java
2014-10-14 14:55:25 +02:00
Wilder Rodrigues 7e98e3e132 we have to check if VPC is null bfore calling it. VPC is not used in gest networks, so deploying a new VM was broken. 2014-10-14 14:55:23 +02:00
Wilder Rodrigues fb8973f1e2 adding static nat rules. Deploying new VMs is not working due to the appliance refactory, will check the changes with Antonio tomorrow.
Conflicts:
	server/src/com/cloud/network/element/VirtualRouterElement.java
	server/src/com/cloud/network/topology/AdvancedNetworkVisitor.java
2014-10-14 14:55:23 +02:00
Wilder Rodrigues 4b1112af28 finished firewall rules and load balancing rules; fixed all the injection problems; added VirtualMachineManager to the appliance factory to be injected.
Conflicts:
	server/src/com/cloud/network/element/VirtualRouterElement.java
	server/src/com/cloud/network/router/NEWVirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/topology/BasicNetworkTopology.java
2014-10-14 14:55:23 +02:00
Antonio Fornie 24b230d11b Fix dependency problem. Extract and unify router deployment stuff
Conflicts:
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
2014-10-14 14:55:22 +02:00
Antonio Fornie f28426e1a2 Extract general behavior to Router and Vpc delegates
Conflicts:
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
2014-10-14 14:51:02 +02:00
Antonio Fornie 1a85213bbf Rules and visitors for Load Balance Rules
Conflicts:
	server/src/com/cloud/network/element/VirtualRouterElement.java
2014-10-14 14:46:38 +02:00
Anthony Xu 63ea596ba2 removed unused class
engine/schema/src/com/cloud/upgrade/PremiumDatabaseUpgradeChecker.java
2014-09-09 18:31:13 -07:00
Hugo Trippaers f636611cac Revert "server: Add event bus bean as commented xml in META-INF core"
Breaks CloudStack startup. You're better off putting this on the wiki

This reverts commit c730bc3491.
2014-09-02 10:09:04 +02:00
Rohit Yadav c730bc3491 server: Add event bus bean as commented xml in META-INF core
This adds a spring bean xml to have EventBus for ACS, but the bean is commented
so the event bus service won't start by default. I'm adding this for any developer
who may want to hack on events and may use it just by uncommenting it and fixing
options.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-01 21:26:43 +02:00
Rohit Yadav 591a686d77 server: fix server package after auth plugin refactor
- Have opensaml dependency to get version from root pom
- add com.cloud.api.auth.APIAuthenticationManagerImpl to spring ctx manager
- Fix getCommands() in APIAuthenticationManagerImpl
- Fix imports in resources, test and src classes

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:23 +02:00
Rohit Yadav bd2898e491 APIAuthenticationManagerImpl: add the auth manager and bean entry in spring xmls
- This implements ManageBase, is a pluggable service
- Has a mechanism to return commands, useful for apidocs etc.
- Has a method to return APIAuthenticator based on API command name

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-12 12:01:30 +02:00
Murali Reddy 9dc322d46f CLOUDSTACK-7144: No GSLB provider is available during assigning load
balancing rule

this fix ensures any bean implementing GslbProvider interface are injected
into GlobalLoadBalancingRulesServiceImpl.
2014-07-21 16:50:21 +05:30
Likitha Shetty 00778de96e CLOUDSTACK-7099. Volume snapshot is not getting backed up.
Correctly inject ConfigDao into SnapshotStateListener.
2014-07-11 17:06:15 +05:30
Prachi Damle a509f94544 Adding SecurityChecker list for the ParamProcessWorker 2014-04-04 16:38:29 -07:00
Min Chen 99bdc8d875 Merge branch 'master' into rbac. 2014-03-13 11:05:03 -07:00
Antonio Fornie c211f0bbbe Dispatcher corrections, refactoring and tests
Corrects problems from previous attempt. Fixes based on help comments from
the community and conflict resolution

Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-03-07 19:12:07 +01:00
Min Chen 3b58a45e04 Merge branch 'master' into rbac. 2014-02-07 13:43:36 -08:00
Alena Prokharchyk 782c530685 Revert "CLOUDSTACK-6003 fixing plus refactoring dispatcher" as it breaks API dispatching for commands having Map<String,String> as a parameter type
This reverts commit 447430c3df.

Conflicts:
	api/src/org/apache/cloudstack/api/BaseCmd.java
	server/src/com/cloud/api/ApiDispatcher.java
	server/src/com/cloud/network/as/AutoScaleManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
2014-02-06 14:46:58 -08:00
Alex Huang 54f32a8e46 Moved the controlling logic for secondary storage vm into place 2014-02-05 01:39:17 +00:00
Antonio Fornie 447430c3df CLOUDSTACK-6003 fixing plus refactoring dispatcher
Signed-off-by: Daan Hoogland <daan@onecht.net>
(cherry picked from commit a9bcc1ea3b7dfd3fcc5c795b0095c77851ebe618)
Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-02-04 13:37:08 +01:00
Min Chen 929fbabaa2 Merge branch 'master' into rbac. 2014-01-17 14:37:08 -08:00
Min Chen 6c1849f4bf Fix Spring wiring issues in starting up MS. 2014-01-14 16:20:30 -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
Ian Southam f8681de07c Invalid reference to a class which has been moved
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-01-14 15:13:12 +01:00
Prachi Damle f1ecd9ed31 Removing the AclServiceImpl old bean entry 2014-01-11 01:01:00 -08:00
Nitin Mehta 1c0b8db01b CLOUDSTACK-4941:
Adding the missing file
During HA and maintenance call different planners (if the original planners are not able to find capacity) which skip some heurestics
2013-12-18 16:27:20 -08:00
Min Chen afcf967d24 Revert "CLOUDSTACK-4941:"
This reverts commit 231e7c01f2.
2013-12-18 16:01:37 -08:00
Nitin Mehta 231e7c01f2 CLOUDSTACK-4941:
During HA and maintenance call different planners (if the original planners are not able to find capacity) which skip some heurestics
2013-12-18 14:58:37 -08:00
Kelven Yang 9d3827e6fe CLOUDSTACK-669: refactor VM work job dispatcher to allow volume/snapshot manager to participate serialized job handling 2013-12-16 15:15:30 -08:00
Kelven Yang aa72b76aec CLOUDSTACK-669: put system vm work under new vmsync model 2013-12-06 16:53:11 -08:00
Nitin Mehta 6bea532efa CLOUDSTACK-5206: Ability to control the external id of first
class objects. Putting in the generic methods and trying it
 for objects like vm, volume. This is the first cut
2013-11-26 09:52:17 -08:00
Darren Shepherd 1f7ef652cf Make com.cloud.network.vpn.RemoteAccessVpnService an extensible type 2013-11-14 15:31:33 -08:00
Syed 0076307863 Squashed merge of Ssl Termination feature
Bug: https://issues.apache.org/jira/browse/CLOUDSTACK-4821
FS: https://cwiki.apache.org/confluence/display/CLOUDSTACK/SSL+Termination+Support

This patch implements the SSL offload feature for loadbalancers
and includes the implementaion for this to work with Netscaler.

The following are the new API's that this patch adds

uploadSslCert
deleteSslCert
listSslCert
assignCertToLoadBalancer
removeCertFromLoadBalancer

Unit tests are also included in the patch.
2013-11-08 16:49:16 +05:30
Min Chen 2ef4d5200c Merge branch 'master' into rbac. 2013-10-31 17:16:33 -07:00
Darren Shepherd ad74948480 Move LockMasterListener initialization to system context
This reverts commit d178b25daa and moves
the initialization to the system context, which really where it should have
been from the beginning.
2013-10-25 15:11:47 -07:00