Commit Graph

1450 Commits

Author SHA1 Message Date
John Burwell bdb563e18b Merge release branch 4.9 to master
* 4.9:
  CLOUDSTACK-9470: Fix for SshHelper - test_network_acl was failing on Vmware due to a bug in sshExecute, in which value returned was null and there was still stdout to consume. This fix addresses this problem, consuming stdout peoperly to return expected value in sshExecute
2016-09-10 17:22:53 -04:00
John Burwell a661a11d76 Signed-off-by: John Burwell <meaux@cockamamy.net> 2016-09-10 17:18:07 -04:00
nvazquez 1190d76a65 CLOUDSTACK-9470: Fix for SshHelper - test_network_acl was failing on Vmware due to a bug in sshExecute, in which value returned was null and there was still stdout to consume. This fix addresses this problem, consuming stdout peoperly to return expected value in sshExecute 2016-09-02 12:16:58 -03:00
Rohit Yadav da76553f35
Merge branch '4.9' 2016-09-01 17:15:10 +05:30
Rohit Yadav 08edd0c7cd
Merge branch '4.8' into 4.9 2016-09-01 17:01:51 +05:30
John Burwell 8d11511b1f Adds support for four position versions and optional db upgrades
Often, patch and security releases do not require schema migrations or
data migrations.  However, if an empty upgrade class and associated
scripts are not defined, the upgrade process will break.  With this
change, if a release does not have an upgrade, a noop DbUpgrade is added
to the upgrade path.  This approach allows the upgrade to proceed and
for the database to properly reflect the installed version.  This change
should make the release process simpler as RMs no longer need to
rememeber to create this boilerplate code when starting a new release.

Beginning with the 4.8.2.0 and 4.9.1.0 releases, the project will
formally adopt a four (4) position release number to properly accomodate
rekeases that contain only CVE fixes.  The DatabaseUpgradeChecker and
Version classes made assumptions that they would always parse and
compare three (3) position version numbers.  This change adds the
CloudStackVersion value object that supports both three (3) and four (4)
version numbers.   It encapsulates version comparsion logic, as well as,
the rules to allow three (3) and four (4) to interoperate.

  * Modifies DatabaseUpgradeChecker to handle derive an upgrade path for
  a version that was not explicitly specified.  It determines the
  releases the first release before it with database migrations and uses
  that list as the basis for the list for version being calculated.  A
  noop upgrade is then added to the list which causes no schema changes
  or data migrations, but will update the database to the version.
  * Adds unit tests for the upgrade path calculation logic in
  DatabaseUpgradeChecker
  * Removes dummy upgrade logic for the 4.8.2.0 introduced in previous
  versions of this patch
  * Introduces the CloudStackVersion value object which parses and
  compares three (3) and four (4) position version numbers.  This class
  is intended to replace com.cloud.maint.Version.
  * Adds the junit-dataprovider dependency -- allowing test data to be
  concisely generated separately from the execution of a test case.
  Used extensively in the CloudStackVersionTest.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-08-30 13:32:32 +05:30
Rohit Yadav 9555492b4d Merge branch '4.9' 2016-08-23 14:16:53 +05:30
Rohit Yadav f13c224da1 Updating pom.xml version numbers for release 4.9.1.0-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-08-19 13:53:39 +05:30
Will Stevens 740bd45be6 Updating pom.xml version numbers for release 4.8.2-SNAPSHOT
Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-08-15 10:31:09 -04:00
Will Stevens a63db21d16 Updating pom.xml version numbers for release 4.8.1
Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-08-08 10:06:21 -04:00
Will Stevens 62aa3b2bfa Updating pom.xml version numbers for release 4.10.0-SNAPSHOT
Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-07-29 10:11:34 -04:00
Will Stevens 227ff3884d Updating pom.xml version numbers for release 4.9.0
Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-07-25 16:56:04 -04:00
Aaron Hurt d69364046e Allow CGN (RFC6598) to be used within a VPC 2016-07-07 21:30:09 -05:00
Rohit Yadav 0381b7ea18 CLOUDSTACK-9348: Reduce Nio selector wait time
This reduced the Nio loop selector wait time, this way the selector will
check frequently (as much as 100ms per iteration) and handle any pending
connection/tasks. This would make reconnections very quick at the expense of
some CPU usage.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-07-01 14:34:48 +05:30
Nick Livens 02c5d44f0b Dynamic loading of DB driver + support for other DB providers 2016-05-23 15:50:28 +02:00
Will Stevens 570b676b1f Merge pull request #1549 from shapeblue/nio-fixagain-singlepr
CLOUDSTACK-9348: NioConnection improvementsReopened PR with squashed changes for a re-review and testing after https://github.com/apache/cloudstack/pull/1493 and sub-sequent PRs got reverted

* pr/1549:
  CLOUDSTACK-9348: NioConnection improvements

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-20 11:20:49 -04:00
Will Stevens 82b702dc9a Merge pull request #1403 from mike-tutkowski/xs-snapshots
Taking fast and efficient volume snapshots with XenServer (and your storage provider)A XenServer storage repository (SR) and virtual disk image (VDI) each have UUIDs that are immutable.

This poses a problem for SAN snapshots, if you intend on mounting the underlying snapshot SR alongside the source SR (duplicate UUIDs).

VMware has a solution for this called re-signaturing (so, in other words, the snapshot UUIDs can be changed).

This PR only deals with the CloudStack side of things, but it works in concert with a new XenServer storage manager created by CloudOps (this storage manager enables re-signaturing of XenServer SR and VDI UUIDs).

I have written Marvin integration tests to go along with this, but cannot yet check those into the CloudStack repo as they rely on SolidFire hardware.

If anyone would like to see these integration tests, please let me know.

JIRA ticket: https://issues.apache.org/jira/browse/CLOUDSTACK-9281

Here's a video I made that shows this feature in action:

https://www.youtube.com/watch?v=YQ3pBeL-WaA&list=PLqOXKM0Bt13DFnQnwUx8ZtJzoyDV0Uuye&index=13

* pr/1403:
  Faster logic to see if a cluster supports resigning
  Support for backend snapshots with XenServer

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-20 08:33:07 -04:00
Rohit Yadav 9c7518698d CLOUDSTACK-9348: NioConnection improvements
- Unit test to demonstrate denial of service attack
  The NioConnection uses blocking handlers for various events such as connect,
  accept, read, write. In case a client connects NioServer (used by
  agent mgr to service agents on port 8250) but fails to participate in SSL
  handshake or just sits idle, this would block the main IO/selector loop in
  NioConnection. Such a client could be either malicious or aggresive.

  This unit test demonstrates such a malicious client that can perform a
  denial-of-service attack on NioServer that blocks it to serve any other client.

- Use non-blocking SSL handshake
  - Uses non-blocking socket config in NioClient and NioServer/NioConnection
  - Scalable connectivity from agents and peer clustered-management server
  - Removes blocking ssl handshake code with a non-blocking code
  - Protects from denial-of-service issues that can degrade mgmt server responsiveness
    due to an aggressive/malicious client
  - Uses separate executor services for handling ssl handshakes

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-19 16:45:16 +05:30
Will Stevens b4ad38d687 Revert "Merge pull request #1493 from shapeblue/nio-fix"
This reverts commit 7ce0e10fbc, reversing
changes made to 29ba71f2db.

This was reverted because it seemed to be related to an issue
when doing a DeployDC, causing an `addHost` error.
2016-05-16 17:30:44 -04:00
Will Stevens f175ad1ae0 Revert "Merge pull request #1534 from shapeblue/niotest-fix"
This reverts commit 9f970f28b1, reversing
changes made to 6d0c92be72.

This was reverted because it seemed to be related to an issue
when doing a DeployDC, causing an `addHost` error.
2016-05-16 17:30:20 -04:00
Will Stevens 4e1f9cd82a Revert "Merge pull request #1538 from shapeblue/nio-test-timeoutfix"
This reverts commit f88cb88097, reversing
changes made to 688522ecd4.

This was reverted because it seemed to be related to an issue
when doing a DeployDC, causing an `addHost` error.
2016-05-16 17:29:42 -04:00
Will Stevens ed8d47eef2 Revert "CLOUDSTACK-9348: Make NioConnectio loop less aggressive"
This reverts commit 540d9572fd.

This was reverted because it seemed to be related to an issue
when doing a DeployDC, causing an `addHost` error.
2016-05-16 17:27:07 -04:00
Mike Tutkowski 2bd035d199 Support for backend snapshots with XenServer 2016-05-13 01:02:04 -06:00
Rohit Yadav ae0f169123 CLOUDSTACK-9299: Fix test failures on CI
- Fixes oobm integration test to skip if known ipmitool bug is hit
- Fixes ProcessTest unit test case to use sleep
- Removes redundant unit test that covers code in ProcessTest

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-13 09:47:32 +05:30
Rohit Yadav 540d9572fd CLOUDSTACK-9348: Make NioConnectio loop less aggressive
- Reverts ea2286 that introduced a wakeup on each connection loop run.
- In SSL handshake code removes delegated tasks to be run in separate threads.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-13 08:54:49 +05:30
Will Stevens 20cf8b23c0 Merge pull request #1453 from GabrielBrascher/brascher-removeUnusedClasses2
Remove classes with no referencesI used UCDetector (http://www.ucdetector.org/) as a plugin for Eclipse.  With this tool, I discovered a lot of code without any reference (variables, methods and classes).

Following the work that was done at [https://github.com/apache/cloudstack/pull/1448]; this pull request had the goal of removing some of these classes. To check if I wasn't missing anything I searched for any file that could reference some of those classes. As I haven't found any way of these classes being used, they were removed. Note that some of them I found other references, but references such as commented lines or tests, nothing that could indicate their use (as XML files configuring beans or another class instantiating an object with "new").

Waiting for tests. Please tell me if I am missing something.

Removed Classes:
- org.apache.cloudstack.framework.jobs.JobCancellationException (**Note:** removed
variable JobCancellationException in com.cloud.utils.SerialVersionUID)
- org.apache.cloudstack.ldap.NoSuchLdapUserException (**Note:** removed test file
/cloud-plugin-user-authenticator-ldap/test/groovy/org/apache/cloudstack/ldap/NoSuchLdapUserExceptionSpec.groovy)
- com.cloud.agent.api.storage.CreateVolumeOVAAnswer
- com.cloud.exception.MissingParameterValueException
- org.apache.cloudstack.api.response.StatusResponse
- org.apache.cloudstack.api.response.VolumeDetailResponse
- org.apache.cloudstack.api.response.UpgradeVmResponse
- org.apache.cloudstack.api.response.AddIpToVmNicResponse
- org.apache.cloudstack.api.response.TemplateZoneResponse (**Note:** at
org.apache.cloudstack.api.response.TemplateResponse, there is this
comment "To avoid breaking backwards compatibility, we still treat a
template at different zones as different templates, so not embedding
template_zone information in this TemplateZoneResponse set. `private
Set<TemplateZoneResponse> zones;`" but right now it is not used)
- org.apache.cloudstack.api.response.NicDetailResponse

* pr/1453:
  Removed classes with no reference

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-12 16:48:03 -04:00
Will Stevens f88cb88097 Merge pull request #1538 from shapeblue/nio-test-timeoutfix
Disable NioTestHistorically NioTest has caused issue in CI environment and several developer machines due to network requirements which could be disabled by firewall or security enforcers such as selinux. This disables the test once again using a historic commit 881a6e1
Signed-off-by: Rohit Yadav <rohit.yada

To build and just run this test: mvn clean install -pl utils -Dtest=NioTest

* pr/1538:
  utils: Disable NioTest

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-12 16:38:37 -04:00
Rohit Yadav d4cb05b8f9 utils: Disable NioTest
Disable the NioTest, it is far to dependent on the network configuration of the
machine running the test. Cherry-picked change from a historic commit where
this test was disabled.

(cherry picked from commit 881a6e164e)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-12 11:50:50 +05:30
Rohit Yadav e122bbfbfc HypervisorUtilsTest: increate timeout to 8seconds
Increases timeout to a larger value to avoid failures in VM environments such as
TravisCI.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-12 11:05:40 +05:30
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
Rohit Yadav ea22869593 CLOUDSTACK-9348: Optimize NioTest and NioConnection main loop
- Reduces SSL handshake timeout to 15s, previously this was only 10s in
  commit debfcdef78
- Adds an aggresive explicit wakeup to save the Nio main IO loop/handler from
  getting blocked
- Fix NioTest to fail/succeed in about 60s, previously this was 300s
- Due to aggresive wakeup usage, NioTest should complete in less than 5s on most
  systems. On virtualized environment this may slightly increase due to thread,
  CPU burst/scheduling delays.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-05 23:19:33 +05:30
Will Stevens 7ce0e10fbc Merge pull request #1493 from shapeblue/nio-fix
CLOUDSTACK-9348: Use non-blocking SSL handshake in NioConnection/Link- Uses non-blocking socket config in NioClient and NioServer/NioConnection
- Scalable connectivity from agents and peer clustered-management server
- Removes blocking ssl handshake code with a non-blocking code
- Protects from denial-of-service issues that can degrade mgmt server responsiveness
  due to an aggressive/malicious client
- Uses separate executor services for handling connect/accept events

Changes are covered the NioTest so I did not write a new test, advise how we can improve this. Further, I tried to invest time on writing a benchmark test to reproduce a degraded server but could not write it deterministic-ally (sometimes fails/passes but not always). Review, CI testing and feedback requested /cc @swill @jburwell @DaanHoogland @wido @remibergsma @rafaelweingartner @GabrielBrascher

* pr/1493:
  CLOUDSTACK-9348: Use non-blocking SSL handshake
  CLOUDSTACK-9348: Unit test to demonstrate denial of service attack

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-05-04 10:30:58 -04:00
Rohit Yadav 4d57ec04ac Merge branch '4.8'
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-03 08:22:37 +05:30
Rohit Yadav 126a039eb8 Merge branch '4.7' into 4.8 2016-05-03 08:20:27 +05:30
Rohit Yadav ba77a69239 CLOUDSTACK-9348: Use non-blocking SSL handshake
- Uses non-blocking socket config in NioClient and NioServer/NioConnection
- Scalable connectivity from agents and peer clustered-management server
- Removes blocking ssl handshake code with a non-blocking code
- Protects from denial-of-service issues that can degrade mgmt server responsiveness
  due to an aggressive/malicious client
- Uses separate executor services for handling ssl handshakes

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-03 08:01:46 +05:30
Rohit Yadav 0154da6417 CLOUDSTACK-9348: Unit test to demonstrate denial of service attack
The NioConnection uses blocking handlers for various events such as connect,
accept, read, write. In case a client connects NioServer (used by
agent mgr to service agents on port 8250) but fails to participate in SSL
handshake or just sits idle, this would block the main IO/selector loop in
NioConnection. Such a client could be either malicious or aggresive.

This unit test demonstrates such a malicious client that can perform a
denial-of-service attack on NioServer that blocks it to serve any other client.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-03 08:01:46 +05:30
Will Stevens 4db5e48f80 Merge pull request #1510 from shapeblue/4.9-mvn-version-safeupgradeonly
4.9 mvn version safeupgradeonlyUpgrades maven dependencies versions that can be safely upgraded without breaking console-proxy/crypto usage.

Bisected changes from: https://github.com/apache/cloudstack/pull/1397

cc @swill @DaanHoogland

* pr/1510:
  maven: fix dependency version support by JDK7
  further maven dependency updates from Daan
  framework/quota: fix checkstyle issue
  maven: Upgrade dependency versions

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-04-28 15:59:17 -04:00
Will Stevens a6bae2b9c2 Merge pull request #1498 from GabrielBrascher/lrg-cs-hackday-038
CLOUDSTACK-9352: Test fails in Widows as the file separator "/" is different from "\"**Problem:**
File separator in windows ("\") is different from the expected in the test ("/"); thus, the test *com.cloud.utils.SwiftUtilTest.testSplitSwiftPath()* will fail in Windows systems.

The problem is that the input of the test is "*container/object*" but the tested method uses the *File.separator* (that depends from the OS), in windows systems the tested method (*com.cloud.utils.SwiftUtil.splitSwiftPath(String)*) looks for a "\", as the string does not contain "\" it returns an empty string and consequently results in a test failure.

**Solution:**
Create a string `String input = "container" + File.separator + "object";`, with that the test will validate the tested method verifying if the method splits the string around matches of the given regular expression (in this case *File.separator*).

*JIRA link: https://issues.apache.org/jira/browse/CLOUDSTACK-9352*

* pr/1498:
  Test fails in Widows as the file separator "/" is different from "\"

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-04-25 15:58:17 -04:00
Daan Hoogland 101668994d further maven dependency updates from Daan
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-04-22 16:36:37 +05:30
Rohit Yadav bb29b1d063 maven: Upgrade dependency versions
Updated most dependencies to latest minor releases, EXCEPT:

- Gson 2.x
- Major spring framework version
- Servlet version
- Embedded jetty version
- Mockito version (beta)
- Mysql lib minor version upgrade (breaks mysql-ha plugin)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-04-22 16:20:16 +05:30
Will Stevens d518b619dd Merge pull request #1459 from GabrielBrascher/CLOUDSTACK-8611
This closes #561

CLOUDSTACK-8611:Handle SSH if server "forget" to send exit statusContinuing the work started by @likitha, I did not cherry-picked the
commit (b9181c689e) from PR <https://github.com/apache/cloudstack/pull/561> due to the fact that the path of that SshHelper class was different of the current SshHelper; that is because the fact that by cherry-picking it would seem that I had changed all the class as the code is from another file.

I made some changes from the cherry-picked commit adding @wilderrodrigues suggestions (create simple methods to have reusable code, make unit tests and create the `WAITING_OPEN_SSH_SESSION` variable to manipulate with the delay of 1000 milliseconds).

Also, I tried to simplify the logic by assuming that ....

    if ((conditions & ChannelCondition.EXIT_STATUS) != 0) {
            if ((conditions & (ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA)) == 0) {
                break;
            }
    }

... is the same as `((conditions & ChannelCondition.EXIT_STATUS) != 0) && ((conditions & (ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA)) == 0)`. This expression has the following results according to each possible condition.

|Condition|Value|result
|-----------------|-------|------|
TIMEOUT  | 0000001|false
CLOSED  | 0000010 |false
STDERR_DATA | 0000100 | false
STDERR_DATA | 0001000 | false
EOF         | 0010000 | false
EXIT_STATUS | 0100000 | **true**
EXIT_SIGNAL | 1000000 | false

After testing all the possibilities we can note that the condition of `(conditions & ChannelCondition.EXIT_STATUS) != 0` is sufficient; thus, the simplified "if" conditional can be:

`if ((conditions & ChannelCondition.EXIT_STATUS) != 0) {
    break;
}`

This proposed work can be explained by quoting @likitha:
>CheckS2SVpnConnectionsCommand execution involves executing a script (checkbatchs2svpn.sh) in the virtual router. Once CS has opened a session to a virtual router and executed a script in the router, it waits indefinitely till the session either times out or the exit status of the remote process is available. But it is possible that an EOF is reached by the process in the router and the router never set the exit status.

>References -
>1. Some servers never send the exit status, or occasionally "forget" to do so (http://grepcode.com/file/repo1.maven.org/maven2/org.jvnet.hudson/trilead-ssh2/build212-hudson-1/com/trilead/ssh2/ChannelCondition.java).
>2. Get the exit code/status from the remote command - if available. Be careful - not all server implementations return this value - (http://grepcode.com/file/repo1.maven.org/maven2/org.jvnet.hudson/trilead-ssh2/build212-hudson-1/com/trilead/ssh2/Session.java#Session.waitForCondition%28int%2Clong%29).

* pr/1459:
  Handle SSH if server "forget" to send exit status

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-04-21 16:59:16 -04:00
gabrascher 4be5c2e56c Test fails in Widows as the file separator "/" is different from "\"
File separator in windows is different from linux (the expected in the
test); thus, the test
*com.cloud.utils.SwiftUtilTest.testSplitSwiftPath()* will fail in
windows. The problem is that the input of the test is
*"container/object"* but the tested method uses the *File.separator*
(that depends from the OS), in the windows the tested method
(*com.cloud.utils.SwiftUtil.splitSwiftPath(String)*) looks for a "\" in
windows systems, resulting in an empty string and consequently a failure
in the test.

Some solutions:
- the simple way is to create a string `String input = "container" +
File.separator + "object";`, thus independent of the OS, the test will
succeed.
- a tricky solution is to mock the final static variable
*File.separator* and return "/".

I picked the easy way.
2016-04-21 17:55:59 -03:00
gabrascher abae908674 Handle SSH if server "forget" to send exit status
Continued the work started by https://github.com/likitha
commit (b9181c6) from PR #561.

CS waits indefinitely for CheckS2SVpnConnectionsComm and to return.
While remote executing commands through ssh, handle channel condition of
EOF because we wait for the the condition.

The SshHelper of the PR #561 is of another path from the
current master, its path was
https://github.com/likitha/cloudstack/commits/CLOUDSTACK-8611/utils/src/com/cloud/utils/ssh/SshHelper.java;
thus, although this commit brings changes from PR #561, I did not
cherry-picked to keep the master file, otherwise it would look that I
had changed all the file.
by me.
2016-04-20 13:51:17 -03:00
Rohit Yadav 8e4644e413 vmware: improve support for disks
- Improve disk chain usage while attaching, migrating disks
- Gets root disk controller based diskDeviceBusName from volume's chain info
- Refactor and move VirtualMachineDiskInfo to cloud-utils
- Allows mixing of scsi controller types
- Fixes a NPE case with map passed as null, for example in case of detach volume
  command
- Use a osdefault translator that allow use of recent os types added (enums of
  which) are not available in the sdk

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-04-18 22:44:18 +05:30
Will Stevens 749b71601c Merge pull request #1445 from rafaelweingartner/lrg-cs-hackday-025
Fixed Profiler's unit tests bugs.### **Problem:**
The TestProfiler class was using Java Thread methods to test the
Profiler's functionality. That was causing the tests to fail sometimes
since the JVM's thread priority could be low on some OS.

### **Fix:**
Using PowerMockito to mock the System calls, the threads could be
removed. This makes the tests considerably faster, OS independent and
still guarantees the correct implementation of the Profiler class.

The changes on the Profiler's class was only to shorten the class's line
size by not assigning the return value to a variable returning it
straight out.

* pr/1445:
  Fixed changes to match code conventions
  Fixed Profiler's unit tests bugs.

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-04-18 08:30:46 -04:00
weingartner 4179606c0b Removed classes with no reference
- org.apache.cloudstack.framework.jobs.JobCancellationException (removed
variable JobCancellationException in com.cloud.utils.SerialVersionUID)
- org.apache.cloudstack.ldap.NoSuchLdapUserException (removed test file
/cloud-plugin-user-authenticator-ldap/test/groovy/org/apache/cloudstack/ldap/NoSuchLdapUserExceptionSpec.groovy)
- com.cloud.agent.api.storage.CreateVolumeOVAAnswer
- com.cloud.exception.MissingParameterValueException
- org.apache.cloudstack.api.response.StatusResponse
- org.apache.cloudstack.api.response.VolumeDetailResponse
- org.apache.cloudstack.api.response.UpgradeVmResponse
- org.apache.cloudstack.api.response.AddIpToVmNicResponse
- org.apache.cloudstack.api.response.TemplateZoneResponse (at
org.apache.cloudstack.api.response.TemplateResponse, there is this
comment "To avoid breaking backwards compatibility, we still treat a
template at different zones as different templates, so not embedding
template_zone information in this TemplateZoneResponse set. `private
Set<TemplateZoneResponse> zones;`" but right now it is not used)
- org.apache.cloudstack.api.response.NicDetailResponse
2016-04-07 21:03:05 -03:00
Will Stevens f7c3957af3 Merge release branch 4.8 to master
* 4.8:
  Add ability to download templates in Swift
2016-04-06 14:33:39 -04:00
Will Stevens bb82f9a7fa Merge release branch 4.7 to 4.8
* 4.7:
  Add ability to download templates in Swift
2016-04-06 14:32:08 -04:00
Will Stevens ef115ab1d0 Merge pull request #1332 from syed/swift-download
Add ability to download templates in SwiftThis PR adds the ability to download templates when using Swift as a secondary storage. Uses the "temp_url" feature of Swift so that tempates can be downloaded without authenticaiton.

* pr/1332:
  Add ability to download templates in Swift

Signed-off-by: Will Stevens <williamstevens@gmail.com>
2016-04-06 14:19:44 -04:00
Syed 52fc2bab69 Add ability to download templates in Swift 2016-04-05 16:40:00 -04:00
Alexandre Limas Santana c2afa584ae Fixed changes to match code conventions 2016-03-20 11:49:04 -03:00
Alexandre Limas Santana 8d6370b21f Fixed Profiler's unit tests bugs.
Problem:
The TestProfiler class was using Java Thread methods to test the
Profiler's functionality. That was causing the tests to fail sometimes
since the JVM's thread priority could be low on some OS. 

Fix:
Using PowerMockito to mock the System calls, the threads could be
removed. This makes the tests considerably faster, OS independent and
still guarantees the correct implementation of the Profiler class.

The changes on the Profiler's class was only to shorten the class's line
size by not assigning the return value to a variable returning it
straight out.
2016-03-19 16:35:25 -03:00
Remi Bergsma 43ab98d823 Updating pom.xml version numbers for release 4.9.0-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-26 15:12:20 +01:00
Remi Bergsma 32fcc47117 Updating pom.xml version numbers for release 4.8.1-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-26 09:39:00 +01:00
Remi Bergsma a4ac9d3fff Updating pom.xml version numbers for release 4.7.2-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-26 09:33:56 +01:00
Remi Bergsma 62f218b7bd Updating pom.xml version numbers for release 4.8.0
Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-20 23:43:35 +01:00
Remi Bergsma 75b68c6829 Merge release branch 4.7 to master
* 4.7:
  Fix unable to setup more than one Site2Site VPN Connection
  FIX S2S VPN rVPC: Check only redundant routers in state MASTER
  PEP8 of integration/smoke/test_vpc_vpn
  Add S2S VPN test for Redundant VPC
  Make integration/smoke/test_vpc_vpn Hypervisor independant
  FIX VPN: non-working ipsec commands
  [UI] MADNESS
  [DB] Add force_encap field to s2s_customer_gateway table
  [ROUTER] Add forceencaps field to python router ipsec config method
  [TEST] unittest needs rework
  [MARVIN] Add forceencap field to VpnCustomerGateway class in marvin base
  [CORE] Add Force UDP Encapsulation option to Site2Site VPN
  CLOUDSTACK-9186: Root admin cannot see VPC created by Domain admin user
  CLOUDSTACK-9192: UpdateVpnCustomerGateway is failing
  CLOUDSTACK-6485 prevent ip asignment of private gw iface
  CLOUDSTACK-9204 Do not error when staticroute is already gone
  make both check lines consistent
  CLOUDSTACK-9181 Prevent syntax error in checkrouter.sh
  CLOUDSTACK-9202 Bump ssh timeout
2016-01-16 19:54:41 +01:00
Remi Bergsma 4014169ccb Merge pull request #1324 from bheuvel/testprofiler-second
Factor in inaccurancy of System.nanoTime in class ProfilerThe time diff measurement by the class Profiler, is done by System.nanoTime().
System.nanoTime() is not 100% accurate (lots of info on this on the web). The inaccurance seems to vary/depend with different dependencies (multi-core/OS/kernels).

Problem:
In my case the code which measures `Thread.sleep(ONE_SECOND);` ~~takes~~ measures 999 milliseconds, which breaks the test expecting the sleep of 1000 milliseconds to ~~take~~ measure at least 1000 milliseconds.

Solution:
A `MARGIN` (of 100 milliseconds) is already present to factor in some time for overhead/surrounding code which adds time. Another margin could be added to factor in the possible time measurement error.
To limit additional lines of code, the constant `ONE_SECOND`, which is used by the testcase (sleep), is increased from 1000 milliseconds to `1000l + (MARGIN / 10)` (effectively 1010 milliseconds).

Thereby the inaccurancy on my system of ~1% ("faster") is caught as the `sleep(1010)` is measured as '1009' milliseconds.

* pr/1324:
  Factor in inaccurancy of System.nanoTime

Signed-off-by: Remi Bergsma <github@remi.nl>
2016-01-11 16:20:51 +01:00
Bob dbb10a4ed5 Factor in inaccurancy of System.nanoTime 2016-01-08 13:31:27 +01:00
Remi Bergsma 1c5e899a2d CLOUDSTACK-9202 Bump ssh timeout
It seems the VR needs more time for some of its commands. Until we figured
out the root cause, this allows the VRs to start again.
2015-12-28 15:54:26 +01:00
nvazquez eb889c0c49 CLOUDSTACK-9074: API add Gateway Service Find method 2015-12-24 16:07:06 -03:00
nvazquez 8149081658 CLOUDSTACK-9074: API Changes: Add nsxLogicalSwitch and nsxLogicalSwitchPort to listNics 2015-12-24 16:07:06 -03:00
Remi Bergsma 8f5a2920e8 Updating pom.xml version numbers for release 4.8.0-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-21 22:09:31 +01:00
Remi Bergsma 5b112408c7 Updating pom.xml version numbers for release 4.7.1-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-21 19:55:04 +01:00
Remi Bergsma 2f26a859a9 Updating pom.xml version numbers for release 4.7.0
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-13 21:09:53 +01:00
Remi Bergsma 66d7f413e8 Merge pull request #1188 from kansal/CLOUDSTACK-9086
CLOUDSTACK-9086: ACS allows to create isolated networks with invalide gateway IP address - Fixed and Test cases added

Problem: There was no check for the network and broadcast IP addresses in the case where we provide the gateway and netmask while creating the isolated network. As a result the provided IP gets assigned to the eth0 interface of the VR.

Note: This is in continuation of PR #1125 which I closed.

* pr/1188:
  CLOUDSTACK-9086: ACS allows to create isolated networks with invalide gateway IP address - Fixed and Test cases added

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-12 09:37:06 +01:00
Remi Bergsma 312b9aff94 Merge release branch 4.6 to master
* 4.6:
  Adapted HypervisorUtilsTest to no longer give false positives
2015-12-10 16:24:36 +01:00
Kshitij Kansal c7c389d61c CLOUDSTACK-9086: ACS allows to create isolated networks with invalide gateway IP address - Fixed and Test cases added 2015-12-08 15:27:51 +05:30
Nick Livens 132c35639b Adapted HypervisorUtilsTest to no longer give false positives 2015-12-08 08:12:58 +01:00
Daan Hoogland afe1130920 Merge pull request #1057 from DaanHoogland/CWE-190
Cwe 190coverity warnings of this type adressed. Some where dismissed and maybe with reason but it seemed possible to remove them and hence obligatory ;p

* pr/1057:
  move back to original contract of isNetworksOverlap()
  Changed the behavior of methods that use NetUtils.cidrToLong(String)
  CWE-190 unit test for extremes of long netMaskFromCidr(long)
  CWE-190 netmask as long form cidr-size as method
  CID-1116482 cidrToLong cleanup of bitshift problem
  CID-1116483 cidr to netmask bitshifts guarded with casts
  CID-1116484 cast to long and use long as cidrsize type  and simpel test
  CID-1116485: cast cidr during bit shifting  and simple test included
  CID-1175714 casts before bit shift

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-12-06 20:10:57 +01:00
Remi Bergsma a6b6f4104d Merge pull request #1102 from rafaelweingartner/master-lrg-cs-hackday-006
Removed unnecessary @Local annotations and their respective importsFollowing @rafaelweingartner 's findings in PR #714 that many spring beans contained an @Local annotation, we've decided to remove said annotations and their imports from the ComponentLifecycleBase class and its subclasses seeking a reduction of a few hundred lines of useless code.

I had already opened a pull request for this (#853) but at some point my commit disappeared from the PR entirely, showing no new changes in code, which caused it to be merged automatically (with no changes).

* pr/1102:
  Removed unnecessary @Local annotations and their respective imports from the ComponentLifecycleBase class and its subclasses.

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-23 11:25:43 +01:00
Remi Bergsma a3688e0eb5 Merge release branch 4.6 to master
* 4.6:
  CLOUDSTACK-9052 Shuffling the password to avoid having a subset of characters in fixed positions.
  Refactor package.sh:  * lint  * adjust exit codes (1 for usage, 2 for maven, 3 for rpmbuild)  * variable naming consistency  * add option for package release version  * revise synopsis and usage
2015-11-22 12:52:43 +01:00
Remi Bergsma 3f7a86d8ef Merge pull request #1058 from greenqloud/pr/password_security
Shuffling the password to avoid having a subset of characters in fixed positions.Related to CLOUDSTACK-9052.

I am shuffling the characters in the password, to avoid having a certain char type in fixed positions. I modified the tests accordingly to only check that the different character types are present.

I think it would be good to remove the hard requirement to have at least one of digits, upper-case, and  lowercase chars, as it reduces the number of possible combinations passwords can take. What do you think?

* pr/1058:
  CLOUDSTACK-9052 Shuffling the password to avoid having a subset of characters in fixed positions.

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-22 12:46:32 +01:00
cirstofolini 1a64c247ad Removed unnecessary @Local annotations and their respective imports from the ComponentLifecycleBase class and its subclasses. 2015-11-21 18:31:11 -02:00
Daan Hoogland 4b7f87b9c8 move back to original contract of isNetworksOverlap() 2015-11-21 18:58:54 +01:00
weingartner 1d6ee2dcb0 Changed the behavior of methods that use NetUtils.cidrToLong(String)
Given that the method com.cloud.utils.net.NetUtils.cidrToLong(String)
now throws an exception when receiving null or empty cidrs, there is the
need to change methods that use it. Those methods were changed and test
cases created.
2015-11-20 13:31:58 -02:00
Daan Hoogland 02058b939c CWE-190 unit test for extremes of long netMaskFromCidr(long) 2015-11-19 19:37:26 +01:00
Boris Schrijver 5c0366c99e CLOUDSTACK-9062: Improve S3 implementation.
The S3 implementation is far from finished, this commit focusses on the bases.

 - Upgrade AWS SDK to latest version.
 - Rewrite S3 Template downloader.
 - Rewrite S3Utils utility class.
 - Improve addImageStoreS3 API command.
 - Split various classes for convenience.
 - Various minor improvements and code optimalisations.

A side effect of the new AWS SDK is that it, by default, uses the V4 signature. Therefore I added an option to specify the Signer, so it stays compatible with previous versions.
2015-11-19 15:29:10 +01:00
nnesic 52ccfaac0c CLOUDSTACK-9052 Shuffling the password to avoid having a subset of characters in fixed positions. 2015-11-19 13:17:20 +00:00
nvazquez b20c5be1ce CLOUDSTACK-8956: Remove assert(false) on opaque network and ping method on NiciraNvpApiVersion 2015-11-16 11:29:31 -08:00
nvazquez 2386ae5e5a CLOUDSTACK-8956: Log NSX Api Version 2015-11-16 11:29:30 -08:00
Daan Hoogland 1bc837837f CWE-190 netmask as long form cidr-size as method 2015-11-16 18:25:32 +01:00
Daan Hoogland 3ae4dd06f3 CID-1116482 cidrToLong cleanup of bitshift problem
and some trivial testing
2015-11-16 18:25:32 +01:00
Daan Hoogland f9d5c6918c CID-1116483 cidr to netmask bitshifts guarded with casts
and simple test
2015-11-16 18:25:32 +01:00
Daan Hoogland 2fadfe93dc CID-1116484 cast to long and use long as cidrsize type
and simpel test
2015-11-16 18:25:32 +01:00
Daan Hoogland 637afb9b67 CID-1116485: cast cidr during bit shifting
and simple test included
2015-11-16 18:25:31 +01:00
Remi Bergsma 1f53f2a93e Updating pom.xml version numbers for release 4.7.0-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-15 18:54:13 +01:00
Remi Bergsma b38c3bed0c Updating pom.xml version numbers for release 4.6.1-SNAPSHOT
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-13 21:27:57 +01:00
Remi Bergsma e31ade03c6 Updating pom.xml version numbers for release 4.6.0
Signed-off-by: Remi Bergsma <github@remi.nl>
2015-11-10 15:45:34 +01:00
Daan Hoogland a580330864 CLOUDSTACK-9023 filtering privatekey info from logging 2015-11-10 12:08:01 +01:00
Wido den Hollander 602231132d kvm: Add UnitTests for LibvirtUtilitiesHelper
These were lacking, but this helper is used in various places
inside the KVM code.

Some simple tests to verify the helper is doing what we expect it
to do.
2015-10-30 12:34:00 +01:00
Daan Hoogland d0a1820394 CLOUDSTACK-8981 coded a more obscure host and clear failure message
test fails when port is reachable so prevent it as much as possible
 making sure that all kinds of weird developers can work with it
2015-10-22 15:35:50 +02:00
Boris Schrijver b34f86c8d5 Added return statement to stop start() if there has been an ConnectException. 2015-09-22 00:38:16 +02:00
wilderrodrigues 6e426fa46d Revert "Merge pull request #825 from borisroman/charset"
This reverts commit a44e2bff7e, reversing
changes made to 06cefaf493.

We are reverting the PR #825 because it breaks Master.
2015-09-15 14:58:18 +02:00
Boris Schrijver 71929fdedd Replaced all occurences of Charset.forName(UTF-8) with StringUtils.getPreferredCharset(). 2015-09-15 12:00:33 +02:00
Wido den Hollander d091b9189c Merge pull request #795 from borisroman/CLOUDSTACK-8819
CLOUDSTACK-8819: Added QCOW2 virtual size checking for S3.- Cleaned up S3TemplateDownloader
- Created static QCOW2 utils class.
- Reformatted some parts of DownloadManagerImpl

* pr/795:
  Added Unit Tests for QCOW2Utils.
  Fixed Findbugs issue introduced by 1c6378ec00 PR #795.
  Added QCOW2 virtual size checking for S3.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2015-09-14 12:02:03 +02:00
Boris Schrijver aa19a6a05a Added Unit Tests for QCOW2Utils. 2015-09-14 10:56:21 +02:00
Boris Schrijver 1c6378ec00 Added QCOW2 virtual size checking for S3.
- Cleaned up S3TemplateDownloader
- Created static QCOW2 utils class.
- Reformatted some parts of DownloadManagerImpl
2015-09-11 14:57:32 +02:00
wilderrodrigues 79a3f8c577 CLOUDSTACK-8822 - Replacing Runnable by Callable in the Taks and NioConnection classes
- All the sub-classes were also updated according to the changes in the super-classes
   - There were also code formatting changes
2015-09-11 11:28:40 +02:00
Boris Schrijver 1971614e31 Added QCOW2 virtual size checking for S3.
- Cleaned up S3TemplateDownloader
- Created static QCOW2 utils class.
- Reformatted some parts of DownloadManagerImpl
2015-09-10 16:45:48 +02:00
Rohit Yadav dd9ba48efa Merge pull request #753 from shapeblue/master-CLOUDSTACK-8762
CLOUDSTACK-8762: Check to confirm disk activity before starting a VMImplements a VM volume/disk file activity checker that checks if QCOW2 file
has been changed before starting the VM. This is useful as a pessimistic
approach to save VMs that were running on faulty hosts that CloudStack could
try to launch on other hosts while the host was not cleanly fenced. This is
optional and available only if you enable the settings in agent.properties
file, on per-host basis.

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

* pr/753:
  CLOUDSTACK-8762: Check to confirm disk activity before starting a VM

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-09-02 14:55:54 +05:30
Rajani Karuturi 22c78ede32 Fixing line endings in the new file introduced in PR #762 merged through commit e8979c0e65 2015-09-01 14:34:54 +05:30
Rajani Karuturi e8979c0e65 Merge pull request #762 from rafaelweingartner/cglibThrowableRenderer
Proposal for an improved CglibThrowableRendererFollowing our discussions on mailing list, here is a PR with a proposal for an improvement on CglibThrowableRenderer. We would still have to define a number to limit the stack traces of causes (I randomly chose 3, just to get the code running). The test case is also not good in my opinion, but I ran out of ideas (waiting for suggestions on that).

* pr/762:
  Changed the test case to test each of the log traces in the array list.
  Proposal for an improved CglibThrowableRenderer

Signed-off-by: Rajani Karuturi <rajani.karuturi@citrix.com>
2015-09-01 14:31:32 +05:30
weingartner b49d681598 Changed the test case to test each of the log traces in the array list. 2015-08-31 07:51:01 -03:00
Rajani Karuturi 8bc0294014 Revert "Merge pull request #714 from rafaelweingartner/master-lrg-cs-hackday-003"
This reverts commit cd7218e241, reversing
changes made to f5a7395cc2.

Reason for Revert:

noredist build failed with the below error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) on project cloud-plugin-hypervisor-vmware: Compilation failure
[ERROR] /home/jenkins/acs/workspace/build-master-noredist/plugins/hypervisors/vmware/src/com/cloud/hypervisor/guru/VMwareGuru.java:[484,12] error: non-static variable logger cannot be referenced from a static context
[ERROR] -> [Help 1]

even the normal build is broken as reported by @koushik-das on dev list
http://markmail.org/message/nngimssuzkj5gpbz
2015-08-31 11:27:57 +05:30
weingartner 89bac529cc Proposal for an improved CglibThrowableRenderer
Apache license
Shame on me...

Fix test to pass on travis build
2015-08-29 21:49:56 -03:00
Rafael Weingartner 3818257a68 Solved jira ticket: CLOUDSTACK-8750 2015-08-28 22:35:08 -03:00
Rajani Karuturi f5a7395cc2 Merge pull request #752 from ustcweizhou/BasicRestClientTest-fakelocalhost
use fakelocalhost in BasicRestClientTestBasicRestClientTest will fail if the port 443 is open on localhost.
use fakelocalhost instead of localhost can fix it.
Please see the latest discussion in https://github.com/apache/cloudstack/pull/737

* pr/752:
  use fakelocalhost in BasicRestClientTest

Signed-off-by: Rajani Karuturi <rajani.karuturi@citrix.com>
2015-08-28 22:12:42 +05:30
Rohit Yadav 52a98fa6cf CLOUDSTACK-8762: Check to confirm disk activity before starting a VM
Implements a VM volume/disk file activity checker that checks if QCOW2 file
has been changed before starting the VM. This is useful as a pessimistic
approach to save VMs that were running on faulty hosts that CloudStack could
try to launch on other hosts while the host was not cleanly fenced. This is
optional and available only if you enable the settings in agent.properties
file, on per-host basis.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-28 16:05:30 +05:30
Miguel Ferreira 4c1a5f7657 Putting CglibThrowableRenderer.java back after it was removed in 83fd8f6
Also removing the entry 'log/' from .gitignore since that was the
culprit for the removal of the file.
2015-08-28 11:18:44 +02:00
Wei Zhou 5e792e33ec use fakelocalhost in BasicRestClientTest 2015-08-27 10:32:57 +02:00
wilderrodrigues d74d134698 Removing unit test that was covering the resolution of the nano time
- The difference between 2 consecultive calls to System.nanoTime() returns a resolution that depends on the OS implementation. Due to that, the test was failing in an inttermmitent manner
   - Today we decided to remove the test since it was not testing a direct feature of ACS
2015-08-26 20:00:59 +02:00
Miguel Ferreira 09f7153378 Use NSX specific RestClient in API implementation (NiciraNvpApi)
- Simplify public API to return Lists instead of NiciraNvpLists
2015-08-25 17:36:17 +02:00
Miguel Ferreira 18e6b9ba78 Add NSX specific RestClient implementation
- Add -noverify JVM arg to surefire plugin, to allow Powermockito to
  de-encapsulate private methods
- Add dependency on cloud-utils test-jar to use custom HttpRequest
  matchers
2015-08-25 17:36:15 +02:00
Miguel Ferreira de63b94f2d Delegate HTTP protocol activity in RESTServiceConnector to RestClient
- All HTTP protocol activities are now handled by RestClient
- This service is now only responsible for creating requests, and
  dispatching them to the client
- Provides a Simple API for creating, updating, retrieving and deleting
  objects
2015-08-25 17:36:14 +02:00
Miguel Ferreira 8a93bb8d2d Add basic RestClient implentation based on HTTP Components 4.5
- Upgrade version of HTTP Components to 4.5
- Add helper class to create Http clients
- Add helper class to build http requests
- Add enum with the different Http Methods
- Add constants class for HTTP related values
2015-08-25 17:36:13 +02:00
Miguel Ferreira 5fc953eda2 Code clean up in cloud-utils project
- Code formatting
- Remove unused methods
2015-08-25 17:36:11 +02:00
Miguel Ferreira 83fd8f60f3 Refactor cloud-utils project into Maven default structure 2015-08-25 14:50:33 +02:00
Remi Bergsma 9c7e81e748 Merge pull request #695 from karuturi/CLOUDSTACK-8669
CLOUDSTACK-8669: create volume failed due to null charsetAdded a new private method getCharSetFromConnection() which checks if
the connection charset is null and if it is null, returns
StringUtils.getPreferredCharset

regression caused by commit f03411ca04

* pr/695:
  CLOUDSTACK-8669: create volume failed due to null charset
  CLOUDSTACK-8669: making StringUtils.getDefaultCharset protected

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-08-17 13:54:54 +02:00
Remi Bergsma 64ff67da55 Merge pull request #654 from DaanHoogland/CLOUDSTACK-8656
Cloudstack 8656: do away with more silently ignoring exceptions.a lot of messages added.
some restructuring for test exception assertions and try-with-resource blocks

* pr/654: (29 commits)
  CLOUDSTACK-8656: more logging instead of sysout
  CLOUDSTACK-8656: use catch block for validation
  CLOUDSTACK-8656: class in json specified not found
  CLOUDSTACK-8656: removed unused classes
  CLOUDSTACK-8656: restructure of tests
  CLOUDSTACK-8656: reorganise sychronized block
  CLOUDSTACK-8656: restructure tests to ensure exception throwing
  CLOUDSTACK-8656: validate the throwing of ServerApiException
  CLOUDSTACK-8656: logging ignored exceptions
  CLOUDSTACK-8656: try-w-r removes need for empty catch block
  CLOUDSTACK-8656: try-w-r instead of clunckey close-except
  CLOUDSTACK-8656: deal with empty SQLException catch block by try-w-r
  CLOUDSTACK-8656: unnecessary close construct removed
  CLOUDSTACK-8656: message about timed buffer logging
  CLOUDSTACK-8656: message about invalid number from store
  CLOUDSTACK-8656: move cli test tool to separate file
  CLOUDSTACK-8656: exception is the rule for some tests
  CLOUDSTACK-8656: network related exception logging
  CLOUDSTACK-8656: reporting ignored exceptions in server
  CLOUDSTACK-8656: log in case we are on a platform not supporting UTF8
  ...

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-08-14 21:38:49 +02:00
Daan Hoogland 08e6e1633c CLOUDSTACK-8656: message about timed buffer logging 2015-08-14 13:29:35 +02:00
Daan Hoogland 4213a22127 CLOUDSTACK-8656: message about invalid number from store 2015-08-14 13:21:46 +02:00
Daan Hoogland 3229d96015 CLOUDSTACK-8656: move cli test tool to separate file 2015-08-14 13:15:11 +02:00
Daan Hoogland f203acc074 CLOUDSTACK-8656: exception is the rule for some tests 2015-08-14 13:07:48 +02:00
Rohit Yadav 1d190fd0bb utils: add HttpUtils test
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 0fcd9cad1e)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-14 11:59:31 +05:30
Rohit Yadav 89f47ece3d CLOUDSTACK-8702: Add/refactor sessionkey checking code to HttpUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit cb7dd7b27d)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-14 11:56:55 +05:30
Rajani Karuturi a65339ff1b CLOUDSTACK-8669: making StringUtils.getDefaultCharset protected
made this protected as its only use is in the Test file.
2015-08-13 17:39:44 +05:30
Daan Hoogland c0534756d0 CLOUDSTACK-8656: network related exception logging 2015-08-11 18:14:20 +02:00
Mike Tutkowski 8b0266d12e Merge branch 'pr/547'
* pr/547:
  CLOUDSTACK-8601. VMFS storage added as local storage can be re-added as shared storage. Fail addition of a VMFS shared storage pool in case it has already been added as local storage in CS.

Signed-off-by: Mike Tutkowski <mike.tutkowski@solidfire.com>
2015-08-10 19:00:53 -06:00
Remi Bergsma 7b47c49bb0 #651 (@borisroman) CLOUDSTACK-8703: Fixed issue when listing direct..
* pr/651:
  CLOUDSTACK-8703: Fixed issue when listing directory on S3, it would only return objectSummaries when the anwser from the S3 System was truncated.

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-08-04 13:50:29 +02:00
Daan Hoogland e8a00ed989 CLOUDSTACK-8656: try-with-resource in vmsd reader
moved closeable util function up the hierarchy
2015-08-04 11:37:06 +02:00
Remi Bergsma 60633301ac Merge pull request #647 from @wido
CLOUDSTACK-8640: Revert to AWS SDK 1.3.22

* pr/647:
  CLOUDSTACK-8640: Revert to AWS SDK 1.3.22

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-08-03 20:16:04 +02:00
Boris Schrijver 5f87e9c917 CLOUDSTACK-8703: Fixed issue when listing directory on S3, it would only return objectSummaries when the anwser from the S3 System was truncated. 2015-08-03 17:10:05 +02:00
Wido den Hollander c32656a7ef CLOUDSTACK-8640: Revert to AWS SDK 1.3.22
The newer SDKs API changed which causes our S3 Template Downloader to never complete.

Although we should fix the Template Downloader we can revert to the old AWS SDK for now.

The fix on the longer run will be rewriting the S3 Template Downloader.

Two methods had to be disabled for now since the old SDK does not support them. They can
be re-enabled when the Template Downloader has been fixed.
2015-07-31 12:52:28 +02:00
Daan Hoogland 85e002b230 CLOUDSTACK-8656: filling empty catch block with info messages
using regexp "catch\s*\(\s*(Exception|Throwable)\s*\w*\)\s*\{\s*\}"
2015-07-30 15:51:52 +02:00
Daan Hoogland 2c110ab709 unittesting: test resolution is not guaranteed to be exact 2015-07-29 10:49:16 +02:00
Daan Hoogland 22f194b888 coverity 1125362, 1125363: assorted resource leaks
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #602
2015-07-27 14:43:11 +02:00
wilderrodrigues d632d6312b CLOUDSTACK-8660 - Adding new StringUtils.getDefaultCharset() in order to wrap the Charset equivalet method.
- This test was added in order to cover the new StringUtils.getDefaultCharset().
     - One cannot be sure that StringUtils.getPreferredCharset() will always be equals to Charset.defaultCharset()

Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>

This closes #616
2015-07-23 08:08:46 +02:00
wilderrodrigues 245c976ad0 CLOUDSTACK-8660 - Adding a method to check if UTF-8 is supported
- Changing the test to call isUtf8Supported() before checking if the preferred charset is actually UTF-8

Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>
2015-07-23 08:08:46 +02:00
wilderrodrigues 59d7bc3573 CLOUDSTACK-8660 - Formatting test and utility classes
Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>
2015-07-23 08:08:45 +02:00
Daan Hoogland 2982fcf615 CLOUDSTACK-8658: test default platform charset
Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>

This closes #612
2015-07-22 10:06:31 +02:00
Daan Hoogland 822ea9c787 CLOUDSTACK-8658: make initializer static instead of default
Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>
2015-07-22 10:06:31 +02:00
Wido den Hollander 178a9f555d CLOUDSTACK-8581: S3, make connection TTL and TCP KeepAlive configureable
Signed-off-by: Wido den Hollander <wido@widodh.nl>
2015-07-17 10:07:04 +02:00
Rohit Yadav 42940a8828 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
2015-07-10 17:25:07 +05:30
Daan Hoogland bcc8182f2f findbugs: write to static from instance these are the trivial cases of ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD as reported by findbugs
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #539
2015-07-09 15:01:58 +02:00
Daan Hoogland 4ad178e4b1 rats: licenses added
Signed-off-by: Daan Hoogland <daan@onecht.net>

This closes #535
2015-07-07 13:48:20 +02:00
Daan Hoogland d8ab5f3ab8 findbugs: equals unit tests
Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-07-07 13:48:19 +02:00
Daan Hoogland 34629446b6 findbugs equals(obj) implementations go against the contract these are removed from the call into separate calls
Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-07-07 13:48:19 +02:00
Likitha Shetty 13a98dd196 CLOUDSTACK-8601. VMFS storage added as local storage can be re-added as shared storage.
Fail addition of a VMFS shared storage pool in case it has already been added as local storage in CS.
2015-07-01 10:47:36 +05:30
Rohit Yadav 107595a6a5 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

This closes #489

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

Conflicts:
	client/WEB-INF/classes/resources/messages_hu.properties
	plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixCheckHealthCommandWrapper.java
	plugins/user-authenticators/saml2/src/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmd.java
	ui/scripts/ui-custom/login.js
2015-06-29 12:31:51 +02:00
Daan Hoogland f5847147c0 findbugs: serializable fields
Signed-off-by: Daan Hoogland <daan@onecht.net>

This closes #533
2015-06-26 15:11:16 +02:00
wilderrodrigues cbf5155f7b Renaming a couple of varibale to avoid misunderstanding
- All "micro" references have been replaced with "nano"

Signed-off-by: Daan Hoogland <daan@onecht.net>

This closes #516
2015-06-24 09:36:41 +02:00
wilderrodrigues 2f145378df Testing the elapsed time between 2 consecultive calls to System.nanoTime()
- 1 test was added

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-06-24 09:36:40 +02:00
wilderrodrigues 5557ad5588 Offer a getDurationInMillis() method in the Profiler utility class
- New implementation uses nanoseconds. Due to that, the places where the Profiler is used as a Monitor and/or
     a stopwatch will suffer with the difference in the return
   - Also added a getDuration(), which returns the time in nanoseconds in case someone wants to use it instead
   - Added an extra test to check if the getDuration() works fine with nanoseconds
   - Fixed the test that checks the time in milliseconds: I added an error margin to cover the test better

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-06-24 09:36:40 +02:00
Daan Hoogland e3daa10960 findbugs: final fields
Signed-off-by: Daan Hoogland <daan@onecht.net>

This closes #517
2015-06-24 09:29:56 +02:00
wilderrodrigues f29bf1e85c Add unit tests to cover negative cases
- Cover when the profile is not started/stopped

Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>

This closes #509
2015-06-23 10:03:20 +02:00
wilderrodrigues 78c802a539 Replace System.currentTimeMillis() by System.nanoTime()
- System.nanoTime() is the best way to measure elapsed time in Java.
   - It gives a resolution on the order of microseconds

The System.currentTimeMillis() is used when calculating absolut time.

Signed-off-by: wilderrodrigues <wrodrigues@schubergphilis.com>
2015-06-23 10:03:20 +02:00
Daan Hoogland ba5b6b152e findbugs: deal with all the encoding issues in a unified way further getBytes() calls can getBytes(StringUtils.getPrefferedCharset()) instead
Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #467

This closes #467
2015-06-18 12:13:26 +02:00
Rafael da Fonseca 3d1dde7a31 Remove accidental ~ character :)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #439
2015-06-15 12:10:08 +03:00
Rafael da Fonseca a670f984d8 Fix findbugs warning HE_EQUALS_USE_HASHCODE in Ip4Address.java When overriding equals(), hashCode() must also be overriden do comply with the directive that equal objects must have equal hashcodes Without this implementation, usage of these kinds of objects in hashmaps for example, will be broken
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-06-15 12:10:07 +03:00
Rafael da Fonseca a4659d009e Fix findbugs warning in Script.java Unnecessary boxing/unboxing of int value
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #436
2015-06-15 12:10:00 +03:00
Rafael da Fonseca 14f761a976 Fix findbugs warning in NetUtils.java Unnecessary boxing/unboxing of primitive value
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #435
2015-06-15 12:09:58 +03:00
jeff db69c8e82b Allow PropertiesUtil to read from jar files.
PropertiesUtil has code for reading from jar files, but the
findConfigFile method will prevent it from ever returning a file in a
jar on the classpath since it always wants to have a "file:" URL and
use the File class.

This commit moves the jar file loading attempt from a catch block to
an else clause, executed if a config file:// URL could not be found.

Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #358
2015-06-08 09:19:21 +02:00
Rafael da Fonseca bec44bffb3 Upgrade Reflections to 0.9.9
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>

This closes #333
2015-06-03 11:01:32 +05:30
Rohit Yadav ca3ac68517 utils: add findCookie value by key helping method in HttpUtils
finds cookie value from an array of cookie by key name

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 78ea36d099371b9a59cbf1e3efd48b853ecc37ca)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-29 15:42:21 +02:00
wilderrodrigues 75463356fb CLOUDSTACK-8506
Removing the previous logic and adding a method to check if the CIDR is 31 bit prefixed
Adding tests for the new method

Signed-off-by: Daan Hoogland <daan.hoogland@gmail.com>

This closes #303
2015-05-26 12:10:00 +02:00
wilderrodrigues a83f74d83e CLOUDSTACK-8506
- Changing the implementation of the NetUtils.ipRangesOverlap() a little bit in order to be compliant with RFC 3021
  - 2 unit tests added
  - ranges from 0 to 255 covered by the tests, which also test the negative cases.
2015-05-22 20:08:09 +02:00
wilderrodrigues 14863bbaff CLOUDSTACK-8506
- Added subnetUtils.setInclusiveHostCount(true) to NetUtils.isIpWithtInCidrRange() method. It makes the 31-bit prefixes work just fine
  - Added 3 unit tests to test valid and invalid ranges.
2015-05-22 18:17:16 +02:00
Wido den Hollander 43d20e67f8 graphite: Do not cache DNS names for Graphite host 2015-05-12 13:47:59 +02:00
Rohit Yadav 069aa4e5f3 CLOUDSTACK-8433: remove awsapi db usage and add upgrade cleanup path
- Removes awsapi db properties usage across codebase
- Removes references from spring xmls, test cases and TransactionLegacy
- Adds sql command to drop database cloudbridge in schema-451to460-cleanup.sql

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-06 15:22:04 +02:00
Rajani Karuturi bd71fcb650 Fixed two coverity reported issues
Dereference after null check
Dm: Dubious method used

This closes #219
2015-05-01 16:08:26 +05:30
Daan Hoogland 9e3b825f91 findbugs: make default encoding explicit 2015-05-01 08:20:27 +02:00
Rajani Karuturi d39b993512 Fixed a few findbugs issues after the merge 0b83559
HttpUploadServerHandler.java:142, DM_BOXED_PRIMITIVE_FOR_PARSING
NfsSecondaryStorageResource.java:2630, DM_BOXED_PRIMITIVE_FOR_PARSING
NfsSecondaryStorageResource.java:2775, DM_DEFAULT_ENCODING
EncryptionUtil.java:59, DM_DEFAULT_ENCODING
2015-04-30 13:56:44 +05:30
Koushik Das 1664c91214 Fixed RAT build issue 2015-04-29 16:24:00 +05:30
Rajani Karuturi 0b8355920e Merge branch 'volume-upload' into master
This closes #206
2015-04-29 11:12:53 +05:30
Rohit Yadav 48ef7e5f28 utils: improve timeout to 60s, define generics properly
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit d2471df0be)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-13 15:47:45 +05:30
Rajani Karuturi 018023c1ef volume upload: added validation for file formats
merged TemplateUtils and ImageStoreUtil to a singe ImageStoreUtil
also added a unittest for ImageStoreUtil
2015-03-20 16:25:13 +05:30
Rohit Yadav c8901a7990 utils: use a better extended implementation of SSLSocketFactory
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit b4a5a32a74)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-13 17:32:07 +05:30
Rajani Karuturi debcbcc145 Fixed PMD NullDeref issues in S3Utils. 2015-03-05 11:58:24 +05:30
Rajani Karuturi c5c1b1d462 Fixed checkstyle issues due to commit 0b6c540a20 2015-03-04 16:21:53 +05:30
santhosh 0b6c540a20 listDirectory method updated to use ObjectListing.isTruncated().
Because buckets can contain a virtually unlimited number of keys, the
complete results of a list query can be extremely large. To manage large
result sets, Amazon S3 uses pagination to split them into multiple
responses.

Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>

This closes #25
2015-03-04 12:52:48 +05:30
Laszlo Hornyak 1f72548f57 CLOUDSTACK-4807: tests for NetUtils
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2015-03-03 21:21:52 +01:00
Rohit Yadav 20bcb4b673 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>
(cherry picked from commit b6b3494782)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-28 18:14:49 +05:30
Rohit Yadav 6df2fe7a8a CLOUDSTACK-8273: refactor baremetal user name to utils, restrict baremetal user
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit cb08707add)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	server/src/com/cloud/user/AccountManagerImpl.java
2015-02-26 17:47:01 +05:30
Rajani Karuturi 3814677977 volume upload: getUploadParamsForVolume url has IP address instead of hostname, SSL fails 2015-02-17 11:31:44 +05:30
Erik Weber c31e8e7409 CLOUDSTACK-8215: Change Date calculation to Joda DateTime
(cherry picked from commit 03e07c41b5)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-05 17:22:31 +05:30
Erik Weber fdf4bd2ea2 SAML changing date calculation
Signed-off-by: Erik Weber <terbolous@gmail.com>
(cherry picked from commit b84c8889a3)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-05 17:22:20 +05:30
Rohit Yadav d62d511f47 improve protocol enabling based on socket object type
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-05 15:48:21 +05:30
Rohit Yadav 008911d4b1 CLOUDSTACK-8195: Don't break IdP, return metadata XML
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 1172867df0)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-03 17:05:29 +05:30
Rohit Yadav 0d74d7bdea use a preferable protocol that works on most infra
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit f5f6c2d1a7)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	services/console-proxy-rdp/rdpconsole/src/main/java/streamer/SocketWrapperImpl.java

(cherry picked from commit 1bab1d0855)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-29 16:03:29 +05:30
Rohit Yadav 664186f483 CLOUDSTACK-8160: use preferable protocols
(cherry picked from commit debfcdef78)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-21 18:04:45 +05:30
Rohit Yadav e7c80021d6 CLOUDSTACK-5946: Fix keystore filename to avoid warning logs
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit ed69d588ec)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-21 18:04:00 +05:30
Rohit Yadav 60f18cc713 CID 1264632: Rely on a known and widely available encoding UTF8
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 0763b5576d)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-20 07:49:09 +05:30
Pierre-Yves Ritschard b2393c31ed move ConstantTimeComparator to utils 2015-01-14 12:14:00 +01:00
Rohit Yadav b7b3a4fb3c CLOUDSTACK-8037: Require signed AuthnRequest, adds more security
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 6bec69844d)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-14 02:43:48 +05:30
Rohit Yadav aaf6a34c54 CLOUDSTACK-8035: Generate and store X509Cert and reuse this for SAML
The fix generates X509Certificate if missing from DB and uses that for eternity.
SAML SP metadata remains same since it's using the same X509 certificate and
it remains same after restarts. The certificate is serialized, base64 encoded
and stored in the keystore table under a specific name. For reading, it's
retrieved, base64 decoded and deserialized.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 4358714381)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-12 16:49:49 +05:30
Rohit Yadav 0b94f254e8 CLOUDSTACK-8034: Hash user IDs for SAML authentication
The User table's UUID column is restricted to 40 chars only, since we don't
know how long the nameID/userID of a SAML authenticated user will be - the fix
hashes that user ID and takes a substring of length 40 chars. For hashing,
SHA256 is used which returns a 64 char length string.

- Fix tests, add test cases
- Improve checkSAMLUser method
- Use SHA256 one way hashing to create unique UUID for SAML users

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit b2b496288d)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-12 13:37:51 +05:30
Kishan Kavala dc17e4ef39 Increased SSL handshake timeout to 30 seconds 2015-01-07 14:27:51 +05:30
Rajani Karuturi 9bb6cf8452 volume upload: persisting the volume metadata
on calling GetUploadParamsForVolume, persisting the metadata to db
    validating the account limits and incrementing the appropriate limits
    encoded the metadata on management server using preshared key
2014-12-18 17:50:51 +05:30
Sheng Yang 3c9e14e85a CLOUDSTACK-5241: Remove Rot13 usage 2014-12-03 19:38:47 -08:00
Rohit Yadav fac7bfc5d5 CLOUDSTACK-8011: Upgrade maven dependencies
Changes;
- Upgrades maven-war plugin to 4.5 (faster war packaging)
- Upgrade spring framework to latest minor release
- Upgrade ehcache, jasypt, httpclient, httpcore and other core dependencies
- Upgrade to latest ipv6 library, fix unit test NetUtilsTest
- httpcore and httpclient are sharing same version variable
- commons-httpclient is different that httpclient, the fix gives it a separate var
- Apidocs failed to generate and get stuck with new reflections version, for now
  we will continue using 0.9.8

Newer dependencies can be listed using:
mvn versions:display-dependency-updates -Dnoredist -Dsimulator -P developer,systemvm

Testing;
- Tested using Maven 3.2.1
- Local noredist build with unit tests succeeds
- CloudStack mgmt server started, basic business layer tests work
- Observed 10-15% build time improvement using new maven-war plugin

Branch: bugfix/4.5-8011 (commits are squashed in favour of a linear history)

Pull request:
https://github.com/apache/cloudstack/pull/50

This closes #50

TravisCI build summary:
https://travis-ci.org/shapeblue/cloudstack/builds/42902172

- Build passes with unit tests
- Apidocs generates successfully
- Most integration tests pass, some fail due to timeout errors, second re-run
  passes some of them

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-12-04 02:12:51 +05:30
Rohit Yadav 1e0880cbab CLOUDSTACK-7903: Fix build regression from previous fix
The previous fix tried to access StatsCollector from UsageManagerImpl
which is not possible due to dependency cycle.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-12-01 16:35:23 +05:30
Rajani Karuturi b6c86bdb75 changed commons-io version to the latest stable 2.4
also updated version numbers in all the poms its used.
2014-11-28 17:01:16 +05:30
amoghvk 960b7bbf74 CLOUDSTACK-7977
Fix password generator, add guards for minimum length
2014-11-26 15:08:48 -08:00
Rohit Yadav 7ff31f1b22 Merge remote-tracking branch 'origin/inetaddress'
- Tested locally against unit tests
- TravisCI build passed: https://travis-ci.org/apache/cloudstack/builds/41990351
- Manual QA passed for basic auth and saml auth using default IDP settings

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

Conflicts:
	server/src/com/cloud/api/ApiServlet.java
2014-11-25 14:32:09 +05:30
Wido den Hollander 72ba98b1b8 Validate IPv4 address using Apache Commons Validator 2014-11-24 14:43:48 +01:00
Laszlo Hornyak 3577423da9 removed executable flags from java classes
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-11-23 19:49:01 +01:00
Laszlo Hornyak 55c449aa07 Properties loading simplification
- Using the PropertiesUtil methods, the resource handling could be elliminated

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-11-23 19:48:56 +01:00
Laszlo Hornyak b2023d04ba Simplification on Properties handling
- Added method to create properties and load contents from file

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-11-23 19:48:56 +01:00
Laszlo Hornyak ca9dd457f9 Stream handling simplification in PropertiesUtil
- use resource block instead of finally block

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-11-23 19:48:55 +01:00
Min Chen 9ac93d3e43 CLOUDSTACK-7678:volumes are getting uploaded successfully with wrong url. 2014-11-21 14:36:36 -08:00
Daan Hoogland f2ccee7a03 name convention adherence 2014-11-18 16:52:46 +01:00
Daan Hoogland 6bc0defa1d CID-1254832 tyr-with-resource 2014-11-18 15:48:31 +01:00
Hugo Trippaers e1d4a329c4 Package name should reflect the location on the filesystem or viseversa 2014-11-18 14:12:44 +01:00
Hugo Trippaers 16de4a7176 Fix for potential NPE 2014-11-18 14:12:14 +01:00
Daan Hoogland 638da54fce CID-1254833 refactor condition to include null-case 2014-11-18 12:12:00 +01:00
Santhosh Edukulla ef6ec7b276 Fixed few coverity issues like invalid boxing unboxing issues, resource leaks, null dereferences 2014-11-13 17:26:24 +05:30
Wido den Hollander 840c2fda85 CLOUDSTACK-7583: Send VmStats to Graphite host when configured
This allows external processing of VmStats information without using
the usage server of CloudStack

Statistics are being send to Graphite using UDP and not TCP.

UDP is used to prevent the management server waiting for TCP timeouts
when the Graphite server is unavailable
2014-11-11 13:04:43 +01:00
Kishan Kavala 990da08451 Add check to ensure VR template version matches digit.digit.digit format. Returns version as 0 otherwise 2014-11-10 15:33:50 +05:30
Rohit Yadav 7716989344 SAMLUtils: SAML user id should fit within the UUID VARCHAR(40) column
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 6df0b9f677)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-10-31 01:24:56 +05:30
Hugo Trippaers 4ebaf0a583 Bump master version to 4.6.0-SNAPSHOT after branching 4.5.0-SNAPSHOT 2014-10-29 14:54:23 +01:00
Sheng Yang 57c4841403 CLOUDSTACK-7814: Fix default passphrase for keystores
In upgrade case, the db.properties file is not changed, but the following commit
would require passphrase for keystore in it, thus result in error(NPE in fact
due to there is no such properity).

commit 918c320438
Author: Upendra Moturi <upendra.moturi@sungard.com>
Date: Fri Jun 20 11:41:58 2014 +0530
CLOUDSTACK-6847.Link.java and console proxy files have hardcoded value

This commit fix it by put default value for passphrases, also set correct
passphrase if fail-safe keystore is used.
2014-10-28 16:25:52 -07:00
Daan Hoogland 1de0cb7094 restore barematel work after merge 2014-10-17 10:24:01 +02:00
Daan Hoogland 148efbb73f Merge remote-tracking branch 'origin/4.5' into merge-master
Conflicts:
	engine/schema/src/com/cloud/upgrade/dao/Upgrade441to450.java
	plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalManagerImpl.java
	plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManager.java
	plugins/hypervisors/baremetal/src/com/cloud/baremetal/manager/BaremetalVlanManagerImpl.java
	plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
	plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
	setup/db/db/schema-441to450.sql
	test/integration/component/test_deploy_vgpu_vm.py
	tools/marvin/marvin/config/test_data.py
2014-10-16 12:29:37 +02:00
Damodar 50185b7c3a CLOUDSTACK-7648: There are new VM State Machine changes introduced which were missed to capture the usage events 2014-10-13 14:42:00 +05:30
Anshul Gangwar e43d5b1c7d CLOUDSTACK-7575: improved performance of cleanString method in StringUtils
(cherry picked from commit 7972f53c8d)
2014-10-13 00:02:11 -04:00
David Nalley ac48aa8e0c cleaning up some from a revert 2014-10-12 23:30:04 -04:00
Santhosh Edukulla 31a42d2b7a Fixed few coverity patches
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-10-09 11:45:26 +05:30
Anshul Gangwar 7972f53c8d CLOUDSTACK-7575: improved performance of cleanString method in StringUtils 2014-09-26 14:02:41 +05:30
Hugo Trippaers 6f54d48772 CID-1116298 path can be null, make sure that is properly handled 2014-09-19 11:54:21 +02:00
Frank Zhang 8b89494a35 CLOUDSTACK-6278
Baremetal Advanced Networking support
2014-09-18 16:54:37 -07:00
Hugo Trippaers d1d8009c68 Fix a stupid bug i introduced 2014-09-18 16:02:26 +02:00
Rohit Yadav bd1752811c CID-1116250: Lock on s_appContextDelegates before calling get in ComponentContext
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-18 11:52:18 +02:00
Rohit Yadav ec134cf010 CID-1116231: Use implicit lock, synchronize _key in Link
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-18 11:21:57 +02:00
Hugo Trippaers 577a2f40b3 Merge branch 'bugfix/CID-116538' 2014-09-17 11:40:55 +02:00
Rohit Yadav 88c6072b4d CID-1237196: Fix potential NPE in SAMLUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-16 17:10:11 +02:00
Hugo Trippaers de26a7228e Fix resource leaks on exception paths
Make it clear that the server socket isn't a leaked resource
2014-09-16 16:43:32 +02:00
Rohit Yadav d46e45991d SAMLUtils: put name id policy on authnrequest
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-12 17:11:06 +02:00
Rohit Yadav 84b0e9e96f utils: add missing string to the url in generate saml signature method
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-12 16:26:13 +02:00
Rohit Yadav 5a0ed8764b SAMLUtils: Fix NPE incase signature is generated with a null privateKey
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-12 15:46:44 +02:00
Rohit Yadav a66127dfb1 utils: add methods to save and load public and private keys
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-12 15:40:49 +02:00
Anshul Gangwar d90a2d3962 CLOUDSTACK-7370: Fixed password visible in plain text if password passed is in the end in url 2014-09-12 15:33:24 +05:30
Frank.Zhang 10544e287b CLOUDSTACK-6278
Baremetal Advanced Networking support
2014-09-05 16:28:34 -07:00
Hugo Trippaers dc3f0cbc63 Improve the handling of the findbug exclude files 2014-09-03 10:41:22 +02:00
Rohit Yadav 550762a0dc SAMLUtils: fix signature, refactor generateRandomX509Certificate
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-30 21:37:55 +02:00
Rohit Yadav 12ad5ba197 SAMLUtilsTest: just test that random secure string has some length
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-30 15:37:52 +02:00
Rohit Yadav 2bff5956a9 cisco-vnmc: Don't create Protocol using deprecated SecureProtocolSocketFactory
Latest httpclient library suggests when creating Protocol object for use
with the apache common httpclient class, they should avoid using the
deprecated Protocol signature which takes in SecureProtocolSocketFactory

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-29 14:39:29 +02:00
Rohit Yadav 5e7928bcb9 utils: fix static certificate value string in SAMLUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:27 +02:00
Rohit Yadav 1ed532fb20 SAMLUtils: add unit test for SAMLUtils and method to randomly generate X509 certs
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:26 +02:00
Rohit Yadav 3bf387c882 SAMLUtils: Create new NameID using passed nameId taking just id and session idx
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:26 +02:00
Rohit Yadav 8dc50927f9 saml: use SAML_RESPONSE from SAMLUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:26 +02:00
Rohit Yadav 230e970569 SAMLUtils: add logout request utility for saml slo
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:25 +02:00
Rohit Yadav 8fa9d2c276 utils: fix SAMLUtils's authnrequest maker
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:25 +02:00
Rohit Yadav 8e6cb04480 SAMLUtils: leave bootstrapping to upper layers
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:24 +02:00
Rohit Yadav 1b0f81ec6f utils: Remove hard coded strings from SAMLUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:23 +02:00
Rohit Yadav d6ea4ad7e0 utils: refactor and aggregate methods in SAMLUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:22 +02:00
Rohit Yadav 7ada4ad50b NetUtils: Check for NPE in getDefaultHostIp method when processing nic/mac
On hosts or containers where they don't have valid mac address on nic resulting
in null, NetUtils.getNetworkParam can throw NPE.

This was a case found on TravisCI where OpenVZ containers are used. This method
(getDefaultHostIp) is used at several other places within the ACS codebase to
get the host IP and if null is caught we fallback to localhost or 127.0.0.1, so
we therefore set info to null before trying to process network param and if we
fail we return null and expect other layers to use localhost.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-21 11:41:07 +02:00
Santhosh Edukulla 023811286e Fixed few coverity issues
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-08-19 22:01:15 +05:30
Rohit Yadav 3b5aa42c6d CLOUDSTACK-4770: In MacAddress skip macAddress when parsed value is 0x00
In MacAddress class, we start by settig macAddress String as null and go through
the output of ifconfig -a and pick the one string that is a valid mac address
but is not 0x00 and 0xff. With each loop we set the macAddress to null so that
it does not pick the last one if everything fails.

Tested on Ubuntu where I had an interface called cloud0 whose mac id was 0x00
and it was skipped to get the next one:

$ java -classpath <path-to-cloud-utils.jar> com.cloud.utils.net.MacAddress
addr in integer is 5071953436
addr in bytes is  0 1 2e 4f de 1c
addr in char is 00:01:2e:4f:de:1c

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-13 15:04:04 +02:00
Min Chen a22abeb0e7 CLOUDSTACK-7328:[Automation] Register ISO failing with invalid iso
format error.
2014-08-12 15:26:50 -07:00
Min Chen e3564658be CLOUDSTACK-6940, CLOUDSTACK-7312, CLOUDSTACK-5512: Template/ISO/Volume
upload rejects some valid URL formats. Also consolidate URL format check
into one util routine.
2014-08-12 11:43:08 -07:00
Rohit Yadav bae8f2a8cb utils: fix pom.xml to have references for javax.servlet api interfaces
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-12 12:01:32 +02:00
Rohit Yadav 315feb0683 utils: refactor HTTP transport stuff to HttpUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-12 12:01:31 +02:00
Santhosh Edukulla fd96ad02d7 Fixed few coverity reported issues around concurrency, null checks 2014-08-11 16:55:23 +05:30
Jayapal d28da9d986 CLOUDSTACK-7212: Failed creating LB rule on public port 8081 for VR as LB provider 2014-08-01 15:54:17 +05:30
Alena Prokharchyk 89017a7d7b CS-19072: got rid of unneeded type casting when apply pagination to different resources 2014-07-30 10:33:45 -07:00
Alena Prokharchyk ca8d3672e8 listNetworks: moved pagination post processing to StringUtils class 2014-07-28 14:43:55 -07:00
Hugo Trippaers 47bb175bd4 Partially reverting c61c636ce8. Changing the name if cloud.keystore has bigger impact than just changing the name. 2014-07-28 14:52:41 +02:00
Kishan Kavala c61c636ce8 CLOUDSTACK-5946: Commit 2774b62d64 changed keystore file along with coverity fixes. Use varible name for keystore filename to keep it in sync 2014-07-25 14:07:46 +05:30
amoghvk c804660c74 CLOUDSTACK-7168: Revert "Fixed Coverity Issues reported" that broke CI
This reverts commit 4523490d44.
2014-07-23 11:37:36 -07:00
Santhosh Edukulla 4523490d44 Fixed Coverity Issues reported
Signed-off-by: Santhosh Edukulla <santhosh.edukulla@gmail.com>
2014-07-22 18:03:36 +05:30
Rajani Karuturi 58bad41910 Fixed CLOUDSTACK-6983: unable to register lxc template
added a check for tar.gz format in checktemplate
2014-07-21 16:57:53 +05:30
Edison Su 51c14106d8 CLOUDSTACK-7123: set the timeout to 60s, when run the file command 2014-07-18 12:07:36 -07:00
Mike Tutkowski b080eaf327 Updates to the way resizing a volume works 2014-07-17 21:09:19 -06:00
Koushik Das aacf8ef77b Findbugs fixes in cloud-utils project and a few other places 2014-07-15 14:23:17 +05:30
Frank.Zhang 3ddc9e7674 CLOUDSTACK-6278
Baremetal Advanced Networking support
2014-07-07 11:40:21 -07:00
Sheng Yang a08528cfd9 Polish IPv6 input error information 2014-07-01 15:17:46 -07:00
Daan Hoogland 3268f5bd1f CLOUDSTACK-6747 test for test to allow all cidrs on other end of a vpc 2014-06-25 17:09:19 +02:00
Daan Hoogland d90b8d88ed Revert "CLOUDSTACK-6747 test for test to allow all cidrs on other end of a vpc"
This reverts commit 218c4713ae.
2014-06-25 17:06:10 +02:00
Daan Hoogland 218c4713ae CLOUDSTACK-6747 test for test to allow all cidrs on other end of a vpc 2014-06-25 16:58:52 +02:00
Hugo Trippaers cd0ef09344 Fix typo and add the right exception to the error map. 2014-06-25 15:51:28 +02:00
Daan Hoogland cd3b027f44 findbugs: unit test coverage on the utils package 2014-06-25 15:43:08 +02:00
Daan Hoogland 018b471ad3 CLOUDSTACK-6747 test to allow all cidrs on other end of vpc, public or
private
2014-06-25 14:59:14 +02:00
Sheng Yang a93a30595d CLOUDSTACK-6854: Fix inconsistent IPv6 address formats
fc00:0003:1373::0002 should be treated the same as fc00:3:1373::2.
2014-06-23 10:54:12 -07:00
Santhosh Edukulla 1c80185170 Fixed Resource Leaks, null dereferences, invalid value comparisons, invalid result set loop
Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-06-21 12:38:46 +02:00
Upendra Moturi 918c320438 CLOUDSTACK-6847.Link.java and console proxy files have hardcoded value 2014-06-20 12:07:50 +02:00
Anthony Xu ce3550f333 CLOUDSTACK-6662
CLOUDSTACK-6844

 exit status delivery might get delayed

 Please enter the commit message for your changes. Lines starting
2014-06-18 15:07:50 -07:00
Kelven Yang f529823566 Add ReflectionUse annotation for marking up *un-used* methods 2014-06-17 17:31:29 -07:00
Hugo Trippaers 8b5ec64842 Small fix for people that have JDK 1.8 installed on MacOSX and don't bother to fix their links 2014-06-05 15:35:05 +02:00
Nitin Mehta 5393387bbd CLOUDSTACK-6599:
1. Adding the missing Template/Volume URLs expiration functionality
2. Improvement - While deleting the volume during expiration use rm -rf as vmware now contains directoy
3. Improvement - Use standard Answer so that the error gets logged in case deletion of expiration link didnt work fine.
4. Improvement - In case of domain change, expire the old urls
2014-05-30 10:48:42 -07:00
Marcus Sorensen 15ac47e47b CLOUDSTACK-6088: Check first bytes of template when downloading to verify format/type 2014-05-28 15:40:57 -06:00
Marcus Sorensen 96055058b0 CLOUDSTACK-6785: changed async job param injectedjobid to customjobid and check for unique/uuid 2014-05-27 15:23:12 -06:00
Anshul Gangwar 57f3e21317 CLOUDSTACK-6287, CLOUDSTACK-6315 : fixed password visible in plain text in some hyperv request params/json response 2014-04-21 14:10:17 +05:30
Ding Yuan c031eb7d38 CLOUDSTACK-6242: exception handling improvements
Signed-off-by: Daan Hoogland <daan@onecht.net>
2014-04-15 08:07:15 +02:00
Damodar Reddy 1d0b14673d CLOUDSTACK-6354 : removing the hard coding of key path in EncryptionSecretKeyChecker 2014-04-10 11:44:18 +05:30
Laszlo Hornyak 5f800f2d22 Script cleanup
- new negative tests
- some copy-paste replacement in the code

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-03-30 23:27:40 +02:00
Daan Hoogland a7d7fee0cb findbugs: filter definition 2014-03-28 17:16:05 +01:00
Daan Hoogland 4cfcfd43de findbugs: array toString() 2014-03-28 15:14:57 +01:00
Daan Hoogland 8b62b2cb92 findbugs: exclude known spiffy hacks a.k.a. false positives 2014-03-28 14:28:10 +01:00
Anthony Xu 2d5a58d66c fixed ssh execution log 2014-03-24 15:19:54 -07:00
Hugo Trippaers 4402685e11 Update master to 4.5.0-SNAPSHOT 2014-03-14 14:55:26 +01:00
Nitin Mehta 33a0dec965 CLOUDSTACK-6221:
Publish first class objects involved in an operation (for now vm uuid) on the event bus . Example -  during attach/detachIso along with iso id, vm id should be available as well.
2014-03-10 16:22:34 -07:00
Min Chen 793becf524 CLOUDSTACK-5920: Add some interface methods and constants required by
IAM.
2014-03-05 09:40:55 -08:00
miguelaferreira ef547108dd NetUtils testing
- Refactor tests:
  - Upgrade tests to use jUnit4
  - Add hamcrest dependency (contribution of by Laszio Hornyak)
  - Break big tests in small unit tests
  - Replace assertTrue/False with complex conditions by assertThat with
specific matchers
- Remove dead code:
  - Private static method never called locally
- Add test for method that validates cidrs

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-25 19:23:13 +01:00
Antonio Fornie 808c6df6d7 Fix and add some Rest unit and IT tests. Fix by adding a missing type of RoutingConfig.
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-02-19 09:30:57 +01:00
Hugo Trippaers 594b51c629 Fixup the license headers in the utils project. All files now use the same license header and this is enforced by the maven-license-check plugin. 2014-02-18 12:08:36 +01:00
Hugo Trippaers a369647bca Fix license headers 2014-02-18 10:16:31 +01:00
Antonio Fornie 510972abde Nvp and rest refactoring and more tests
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-02-18 09:51:54 +01:00
Hugo Trippaers 97bad4f9b3 Fix checkstyle and license issues 2014-02-14 18:37:47 +01:00
wrodrigues 3199de69fe Fixes on Contrail and Mon InMemory plugins; adding comments about the changes.
Signed-off-by: Hugo Trippaers <htrippaers@schubergphilis.com>
2014-02-14 18:37:47 +01:00
Laszlo Hornyak 351ccf3755 Cleanup in UriUtils.getUpdateUri
- String instantiation replaced with StringBuilder and empty string constant

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-11 20:44:57 +01:00
Laszlo Hornyak 59364ee9a4 Added test for UriUtils.getUpdateUri
Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-11 20:43:49 +01:00
Hugo Trippaers 6c770958f1 Fix unittest issue when you are in a locale that uses comma for decimal separation. 2014-02-11 14:45:45 +01:00
Alena Prokharchyk e0de79b170 Resource metadata: by default, all metadata is set with display=true (meaning that the detail is avaialble for display to the regular user). If admin wants to set a specific detail to be false, he has to specify it explicitly in addResourceDetail command 2014-02-10 12:05:59 -08:00
Devdeep Singh 306ffa0218 CLOUDSTACK-6053: While adding a primary or secondary of type smb the password wasn't
encoded. This cause createStoragePool or addImageStore command to fail if special
characters were present. Updated the code to pass user, password and domain as part
of details while adding primary or secondary. Also made changes on server side to
handle it.
2014-02-10 10:29:09 +05:30
Laszlo Hornyak 8ed9162de7 Cleanup in UriUtils.encodeURIComponent
- StringBuffer replaced with StringBuilder
- nullcheck of tokens array removed since String.split does not return null
- unit test added

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 21:57:07 +01:00
Laszlo Hornyak 8d801bffab Replaced String concatenation in loop
Replaced String concatenation in loop with StringBuilder
Unit test added

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
2014-02-09 21:27:28 +01:00
Devdeep Singh a24263fe81 CLOUDSTACK-6030: Encrypt the primary and secondary smb storage password when it is stored in the db. 2014-02-05 15:44:09 +05:30
Alena Prokharchyk 6af6ce7e9e 1) Added External UUID control support for network.
2) Moved UUIDManager interface to cloud-util package
2014-02-04 15:47:12 -08:00
Daan Hoogland b3829e54d6 CLOUDSTACK-6020 ipv4 address can be a larger number then
Interger.MAX_VALUE
2014-02-04 18:40:18 +01:00
Sheng Yang 285f23f11b CLOUDSTACK-5779: Generalize calling to execute or create file for KVM 2014-01-24 18:28:25 -08:00
Sheng Yang 2d100f1269 CLOUDSTACK-5779: Generalize calling to execute or create file for Xen 2014-01-24 18:27:55 -08:00
Hugo Trippaers d19157fbb1 Fix a bug found by findbug, compare Long objects with equals instead of == 2014-01-23 09:06:32 +01:00
Marcus Sorensen effa4c75b4 CLOUDSTACK-5843
For some reason the mgmt server is required to have access to the template
being registered in order to check its size against resource limits
during registration. This is bad, but worse, it's a sync call, so this
call can hang for up to the default HTTP connection timeout.

Reducing http timeout as a quick workaround, but this check needs to
1) be removed or 2) done later or 3)registerTemplate needs to be async
and 4) moved off the mgmt server (ssvm is the only thing that needs access to
template url).
2014-01-10 18:12:46 -07:00
Marcus Sorensen 8ee61f3a57 CLOUDSTACK-5502 createVlanIpRange, allow untagged to be accepted per previous use,
equate empty string to untagged in api parameter input
2014-01-10 17:09:41 -07:00
Kelven Yang 1e2e1ea051 CLOUDSTACK-5765: cleanup internal serialization and exception propagation issues 2014-01-09 14:29:13 -08:00
Alena Prokharchyk cb0c14671a CLOUDSTACK-5826: do netmask/gateway validation before calculating the POD cidr 2014-01-07 10:20:30 -08:00
Daan Hoogland 62c9343658 compare null to non-null or not-empty-string 2014-01-06 11:28:50 +01:00
Sheng Yang 92ba5f618d Fix tab issues in the Link.java 2014-01-02 14:03:38 -08:00
Sheng Yang 4312f9268e CLOUDSTACK-5723: Add timeout for SSL handshake
To prevent malfunction agent block the future SSL connections
2014-01-02 13:54:38 -08:00
Daan Hoogland b477e4e830 some xtra cases 2013-12-31 12:52:51 +01:00
Daan Hoogland 2cf356e047 isSameIsolationId 2013-12-31 12:25:17 +01:00
Daan Hoogland 04570eefed check vlans and other isolation types 2013-12-31 12:21:08 +01:00
Jayapal 07de75191c Revert "CLOUDSTACK-4622:If a VM from guest network is added to network tier of VPC then IP reservation allows the CIDR to be a superset of Network CIDR for that VPC tier"
Reverting this commit as it is breaking vpc deployment, CLOUDSTACK-5652

This reverts commit ab4f095c68.
2013-12-27 11:15:33 +05:30
Saksham Srivastava ab4f095c68 CLOUDSTACK-4622:If a VM from guest network is added to network tier of VPC then IP reservation allows the CIDR to be a superset of Network CIDR for that VPC tier
Signed-off-by: Jayapal <jayapal@apache.org>
2013-12-26 16:58:04 +05:30
Alex Huang be5e5cc641 All Checkstyle problems corrected 2013-12-12 12:26:07 -08:00
tuna fca6d56681 remove private changes 2013-12-10 10:36:30 +07:00
tuna dc151115be AutoScaling without NetScaler 2013-12-10 10:35:55 +07:00
tuna 61e80f030a remove unused code 2013-12-09 23:33:15 +07:00
tuna d935d3865a tuna 2013-12-09 23:33:14 +07:00
Syed Ahmed ee7380ace2 CLOUDSTACK-5296: Add certificate chain support for netscaler
This patch adds support for trust chains in the netscaler.

I initially planned on using the 10.1 API's "bundle" feature but during
my testing I found that was not working. So I am doing the chain linking
myself. Also NS can have only one entity of a certificate ie lets say
two different users try to add the same certificate on the netscaler
only one of them will go through. The other one says resouce already
exists even though they have different files.

This can be a problem in trust chains where the chain can be shared
between multiple accounts/certificates. So, I am using the figerprint as
an identifier of a certificate and making sure that we delete it only
when no one references it.
2013-12-05 15:35:28 +05:30
Anthony Xu 04b48ae04e XS VMmetadata platform contains virtual platform related info, CS should save platform info in DB to migrate the VM to other Cluster 2013-12-05 01:41:14 -08:00
Min Chen f420b74890 CLOUDSTACK-5355: addImageStore should not log password in clear text in
the log.
2013-12-03 16:55:26 -08:00
Jayapal cd6e6a4d3c CLOUDSTACK-1762 Fixed assigning network or broadcast ip to nic 2013-12-02 11:05:41 +05:30
wilderrodrigues 2774b62d64 Fixing bugs from Coverity related to Dereferenced Null after check and as return value.
Signed-off-by: Daan Hoogland <daan@onecht.net>
2013-11-27 11:18:00 +01: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 d620df2bdd Reformatted all of the code. 2013-11-21 06:15:26 -08:00
Alex Huang 224f479974 Removed trailing spaces 2013-11-21 04:08:01 -08:00