Commit Graph

8753 Commits

Author SHA1 Message Date
Rohit Yadav 24cf1917b9 CLOUDSTACK-8301: Enable configuring local storage use for system VMs at zone level
Backported from #263 for 4.5 branch, original bugfix by @koushik-das et al

More information on:
https://issues.apache.org/jira/browse/CLOUDSTACK-8301
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Enable+configuring+local+storage+use+for+system+VMs+at+zone+level

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit f28287b66c)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-10-30 10:38:02 +05:30
Rohit Yadav 91c7962f75 CLOUDSTACK-8702: Add/refactor sessionkey checking code to HttpUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 72e3954c9b18a053055abbe5d7ee800e8b11ae24)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-10-30 10:37:43 +05:30
Rohit Yadav 5571b76cda CLOUDSTACK-8505: Don't allow non-POST requests for default login API
We add a new contract to pass Http request to authentication plugin system. In
the default login API, we disallow non-POST requests.

(cherry picked from commit 9e9b231672)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	plugins/user-authenticators/saml2/src/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmd.java
	server/src/com/cloud/api/ApiServlet.java

(cherry picked from commit 8b9b4832f483797c8ab123bf27262634430efcb9)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-10-30 10:37:43 +05:30
Rohit Yadav 892a6ebbe5 CLOUDSTACK-8592: Add more unit tests
- unit tests for UsageTypes
- unit tests for all Cmd classes
- unit tests for all service and manager impls
- try-catch-finally or try-with-resource in dao impls for failsafe db switching
- remove dead code
- add missing quota calculation case (regression fixed)
- replace tabs with spaces in pom.xmls

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-10-21 14:22:53 +05:30
Rohit Yadav fdfcd953d5 quota: fix stuff
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-28 14:59:37 +05:30
Abhinandan Prateek 135af2ceed CLOUDSTACK-8592: calculation of quota 2015-07-14 11:35:52 +05:30
Rohit Yadav 5f51a6431d CLOUDSTACK-8622: Reinstate working sessions in browser
- Login is based on sessionkey HttpOnly Cookie
- ApiServlet does login verification using sessionKey from both the request cookies
  and the API parameters. In both cases, if either or both are passed they should
  match the sessionKey stored in the current session of the HttpRequest
- UI: it no longer needs to read or set sessionkey cookie
- UI: it no longer needs to return g_sessionKey value in the API requests, though
  to support a sso mechanism g_sessionKey is still passed in the API is not null
- Secure jsessionid cookie is set to be HttpOnly and Secure
- SAML login should also set HttpOnly cookie before redirecting to UI
- SAML: listIdps & getSPMetadata APIs are readonly now, won't log out a logged in user

Performed tests (login, saml login if applicable, page refreshes, opening
multiple tabs, logout) with following combinations:
- SAML disabled, normal auth as admin, domain-admin and user
- SAML enabled, normal auth as admin, domain-admin and user; and saml sso as
  admin, domain-admin and user

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

This closes #574
This closes #308

(cherry picked from commit 12edad3e20)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	server/src/com/cloud/api/ApiServlet.java
	utils/src/com/cloud/utils/HttpUtils.java
2015-07-14 10:22:40 +05:30
Rohit Yadav 8bb0a70a56 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

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-06-29 13:49:39 +02:00
Rohit Yadav 76868f5767 cloudstack: Change version to 4.5.2
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-06-29 13:43:49 +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
Wido den Hollander 329e94828d CLOUDSTACK-1302: Make sure the disk cache mode is passed to the KVM Agent
The StartCommand did not contain the proper cache mode due to VolumeJoinVO
not containing the cache_mode field.
2015-05-04 10:23:00 +02:00
Koushik Das 23bde8ea7a CLOUDSTACK-8438: Proper enforcement of hypervisor capability "max. guest limit"
VMs in transition states - Starting, Stopping, Migrating - are also taken into account for enforcing "max. guest limit"

(cherry picked from commit 3100fc1554)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:56:10 +02:00
Rohit Yadav 7a1cb28c9f server: Introduce Unknown Status to be used in AbstractInvestigatorImpl
The PR #211 introduced changes where the abstract investigator testIpAddress()
would return other Status, which previously only returned null, Up or Down. In
this patch we introduce a new Status "Unknown" that replaces null's semantics.

The important changes #211 introduced was the debugging statements as semantically
the changes would work same as the consumers of testIpAddress() method only used
if returned values were Up or Down and in other cases (null, Alert etc) it would
simply continue to loop through the resources being investigated.

Keeping the debug logs, this commit only replaces the previously returned null
values with Status.Unknown and fixed the debug statements to reflect the same.
In case of trapped exceptions too, we return Unknown status but log the exception
we trapped.

server: add null assertions and remove dead code with testIpAddress usage

This closes #222

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:15:29 +02:00
Rohit Yadav 279efb0432 CLOUDSTACK-6139: Fix regression, allow zone level systemvm localstorage config
From b3f18e7d74, the zone level systemvm local
storage setting never worked as it needed to be moved to config depot.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-01 15:24:53 +02:00
Jayapal 9642e862d6 CLOUDSTACK-8406: Fixed selecting userdata as VR with dhcp service 2015-04-30 12:24:24 +05:30
Koushik Das 795f3814f6 CLOUDSTACK-8426: Use a separate thread pool for VR reboot in case of out-of-band movement
Using a cached thread pool for VR reboot task

(cherry picked from commit 1a719afb51)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-29 16:50:40 +02:00
Remi Bergsma f8b7251b88 return a state instead of null
When a full cluster is down or unreachable,
CloudStack currently reports everything the
same as the last known state, which is usually
Up. When it cannot reach a host and cannot
reach another host in the same cluster either,
it returns null and says "I don't know". This
prevents it from reporting the problem. Now,
we return an Alert or Disconnected state so
proper action can be taken.

Also logging was added, so we know what part
of the code put it to Alert or Disconnected.
2015-04-29 15:05:02 +02:00
Santhosh Edukulla 86943da26e Fixed few coverity issues
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
(cherry picked from commit 0a9742f914)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-27 14:43:48 +02:00
Ilia Shakitko 50dd37fcc9 GetUsageRecordsCmd - NewInputFormat for START_DATE and END_DATE (with time; backward capabile)
This closes #191

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-25 02:49:21 +02:00
Rohit Yadav 3e8b12bbb1 CLOUDSTACK-8399: Allow changing hvm flag in updateTemplate API
This allows changing the hvm flag for a template after the template has been
registered.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-23 15:27:43 +02:00
Rohit Yadav c71339569d RemoteAccessVpn: fix regression preshared key is not sent to UI/clients
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-23 14:04:32 +02:00
Rohit Yadav 24435dd6bc server: NPE checks and improved case checking
- pool allocation checks for both root and data disks
- NPE checks to not add null object in collection or try to migrate null VM
- HA work tries need to increment and be given up when max retries are crossed
- VM creation should check IP address format for IPv4 and IPv6
- If userdata is not supported by a network, then fail early if userdata, ssh key,
  or password enabled template is passed/used

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-16 17:28:20 +05:30
Rohit Yadav 752d784d92 vmware: support vmfs as local storage pool type
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-16 17:10:43 +05:30
Wido den Hollander 940622c32f CLOUDSTACK-8313: Allow overprovisioning of local storage pools
(cherry picked from commit 9836ccdcf3)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-15 11:47:34 +05:30
Rohit Yadav d361bf6847 server: ignore params signatureversion and expires when validating API args
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-14 15:32:16 +05:30
Rohit Yadav df934c9541 server: fix NPE case in VolumeApiServiceImpl
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-13 15:44:09 +05:30
Rohit Yadav 5599dee90d server: fix system account create logs
Don't output scary message, avoid logging network_group table not found and
log sane messages if system/admin account/user already exist.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-13 15:44:09 +05:30
Damodar 9e82365099 CLOUDSTACK-7948: Two VOLUME.DELETE Events are being registered instead of one - On Destroying a User VM belonging to a Project
(cherry picked from commit 27fa8a9453)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-23 16:27:39 +05:30
Rajani Karuturi 31cdb57e6b Fixed build failure due to commit 843f6b1691 2015-03-17 10:32:22 +05:30
Rajani Karuturi 5da733072e CLOUDSTACK-5236 : ability to identify where the user is from (ex. LDAP)
Added a source column to the user table.

Source now has only two values UNKNOWN,LDAP with UNKNOWN being the
default and is an enum is com.cloud.User.

When the source is UNKNOWN, the old method of authenticating against all
the available authenticators is used. If a source is available, only
that particular authenticator will be used.

added overloaded methods in AccountService to createUserAccount and
createUser with source specified.
2015-03-16 12:35:37 +05:30
Bharat Kumar 659edb4d9b CLOUDSTACK-7348 InvalidParameter Exception while executing scale vm.
We do not throw the exceptions any more, so added info in the logs to say
what happend to this command.

Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>
2015-03-16 12:34:43 +05:30
Nitin Mehta d94a5720ef Avoid distributing private key for realhostip.com
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-13 13:33:48 +05:30
Min Chen 0d36f2e4b5 Error message exposes domain Id when deployVirtualMachine() is attempted on a shared network to which the user doesnot have access to.
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-13 12:47:56 +05:30
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
Rohit Yadav 2d00f9ede6 server: remove unused import in ImageStoreJoinDaoImpl
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-11 17:26:50 +05:30
Sanjay Tripathi eca7f9cacc CLOUDSTACK-8315: CS API listVMSnapshot doesn't have tags ‘project’ and ‘projectid’.
(cherry picked from commit 182d770f9f)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-11 16:39:18 +05:30
Rohit Yadav 02cadc3fb3 api: avoid sending sensitive data in api response
- UI: use post when updating user
- S3: don't send s3 key in the response
- VPN: don't send preshared key in remoteaccessvpn api response
- Snapshot response should set zone id not volume's device id

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-11 16:34:11 +05:30
Sanjay Tripathi 5aedeb74f9 CLOUDSTACK-8312: The storage usage of "Primary Storage Allocated" is incorrect.
(cherry picked from commit 520d96724a)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-11 13:07:47 +05:30
Rohit Yadav f9090eacd6 CLOUDSTACK-8248: loadCidrs before sending response
Fixes regression from CLOUDSTACK-6582

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-06 21:43:24 +05:30
Laszlo Hornyak c8e6fbb812 kvm: Check the return value of the cloudstack-setup-agent command
Bug-Url: https://issues.apache.org/jira/browse/CLOUDSTACK-8016
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>

This closes #93

(cherry picked from commit 7c1590ffd6)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-04 16:56:48 +05:30
Rohit Yadav 0f819f1583 server: check and set sercure cookie flag only after login
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-28 18:20:56 +05:30
Rohit Yadav b6b3494782 CLOUDSTACK-7063, CLOUDSTACK-7064: Add security headers on HTTP response
- Adds X-XSS-Protection header
- Adds X-Content-Type-Options header
- Fixes to use json content type defined from global settings
- Uses secure cookie if enabled in global settings

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-28 18:12:37 +05:30
Rohit Yadav dd5fb2ebd6 server: fix unit test to fix build
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-27 19:18:18 +05:30
Rohit Yadav 5481485a08 CLOUDSTACK-5238: password checks, NPE fixes and minor fixes
- insecure authenticators excluded in configuration
- snapshot response should have zone
- remove vmsnapshots when removing accounts

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-27 18:20:10 +05:30
Rohit Yadav e000646790 CLOUDSTACK-8273: fix baremetal account creation
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-27 15:52:25 +05:30
Rohit Yadav e287de9fd9 CLOUDSTACK-7089: don't log VNC password
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-26 18:10:23 +05:30
Rohit Yadav cb08707add CLOUDSTACK-8273: refactor baremetal user name to utils, restrict baremetal user
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-26 17:42:21 +05:30
Rohit Yadav 985a61652e CLOUDSTACK-8285: check and update IP capacity states based on allocation state
- Backend should update if state was diabled and now has changed
- UI's fetch latest does not actually fetch latest

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-25 16:46:12 +05:30
Rohit Yadav b462a56f27 CLOUDSTACK-8282: startSystemVM should override consoleproxy.start setting
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-25 14:21:11 +05:30