Commit Graph

29860 Commits

Author SHA1 Message Date
Remi Bergsma 67b4a7bd78 Setup routes for RFC 1918 ip space
Setup general route for RFC 1918 space, as otherwise it will be sent to
the public gateway and not work. More specific routes that may be set
have preference over this generic routes.

When public network is RFC1918, we do not setup the routes to avoid
problems with internal-only deployments.
2015-12-11 11:58:06 +01:00
Abhinandan Prateek bc8994ba1c CLOUDSTACK-9122: latest credit entries should be incorporated when the balance is
calculated
2015-12-11 14:57:51 +05:30
Abhinandan Prateek 1e17c3e38c QUOTA: Ensuring that the dates displayed are as per user expectations
When querying db we use start of next day to query quota usage for
    today, but while displaying it to user we still need to show it as
    todays date
2015-12-11 14:53:51 +05:30
Wilder Rodrigues 0d075906ad CLOUDSTACK-4374 - Adds HA capabilities to redundant routers
- Redundant Routers are not the same as Haigh Available.
     Having a router HA is actually saying that the given router will be controlled by the High Availability monitor.
     Hence fix any problem we might face.
2015-12-11 07:51:22 +01:00
Wilder Rodrigues 51c9f0e3b5 CLOUDSTACK-9138 - Adds multiple providers back to VPC implementation
- It is need and already allowed/used in the current implementation. For example, the Default [redundant] VPC offerings use
     two LB providers. If we cannot create offerings with 2 LB providers, the whole internal loadbalancer implementation won't work
2015-12-10 19:51:28 +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
Remi Bergsma b14dfca82d Merge pull request #1187 from nlivens/4.6_test_improvement
Adapted HypervisorUtilsTest to no longer give false positives

* pr/1187:
  Adapted HypervisorUtilsTest to no longer give false positives

This closes #1185

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-10 16:20:19 +01:00
Remi Bergsma 45f1e8d64f Merge pull request #1208 from shapeblue/master-quota-greyicon
ui/quota: Make the quota UI plugin icon grayMakes the quota ui plugin icon gray, based on comment at:
https://github.com/apache/cloudstack/pull/768#issuecomment-163364606

* pr/1208:
  ui/quota: Make the quota UI plugin icon gray

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-10 14:51:54 +01:00
Wei Zhou 709e0c555e [UI] bug fix: Delete added ACL lists is not available for Domain Admin and normal users 2015-12-10 14:09:45 +01:00
Wei Zhou acfc19dc82 CLOUDSTACK-9134: set device_id as the first device_id not in use instead of nic count
when we restart vpc tiers, the old nics will be removed, and create a new nic.
however, the device_id was set to the nic count, which may be already used.
this commit get the first device_id not in use as the device_id of new nic.

This issue also happen when we add multiple networks to a vm and remove them.
2015-12-10 14:02:02 +01:00
Wilder Rodrigues 632ee18ab7 CLOUDSTACK-9135 - Moves test into smoke directory
- Missed this test when moved the other 5 ones.
2015-12-10 13:27:53 +01:00
Remi Bergsma 0c7a5620fd Merge pull request #1201 from shapeblue/master-CLOUDSTACK-9131
CLOUDSTACK-9131: Create a new API to check if the plugin is enabled.
Adding a new command to check if the quota plugin is enabled.
Also changed the command version to 4.7.

* pr/1201:
  CLOUDSTACK-9131: Create a new API to check if the plugin is enabled.

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-10 12:02:08 +01:00
Remi Bergsma cd81982b39 Merge pull request #1204 from ekholabs/improve/test-internal-lb-CLOUDSTACK-9123
CLOUDSTACK-9123 - As a Developer I want the test_internal_lb.py to work with multiple hypervisorsThis PR make the test_internal_lb.py work with other Hypervisors types.

   - Get hypervisor information from testClient.getHypervisorInfo()
   - Adds XenServer, HyperV and VMware hypervisors
   - Makes sure the OS type is "Other PV (64-bit)"

* pr/1204:
  CLOUDSTACK-9123 - Make test compliant with multiple hypervisors

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-10 11:18:44 +01:00
Rohit Yadav 16d84aa506 ui/quota: Make the quota UI plugin icon gray
Makes the quota ui plugin icon gray, based on comment at:
https://github.com/apache/cloudstack/pull/768#issuecomment-163364606

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-12-10 15:42:53 +05:30
Daan Hoogland 88a293b584 Revert "Merge pull request #1140 from harikrishna-patnala/CLOUDSTACK-9094"
This reverts commit fbc8f5d7e9, reversing
changes made to c67d1da5dd.
2015-12-10 10:17:56 +01:00
Wei Zhou 24f1396ac1 CLOUDSTACK-9129: list vpc routers by keyword in Infrastructure -> Virtual Routers
and two more changes:
(1) add network name/vpc name in the listRouters response
(2) add network name/vpc id, vpc name in the router details page
2015-12-10 09:14:12 +01:00
Abhinandan Prateek 3e22fbe457 CLOUDSTACK-9131: Create a new API to check if the plugin is enabled.
fixing type
2015-12-10 09:37:54 +05:30
Wilder Rodrigues c7f5e8a827 CLOUDSTACK-9123 - Make test compliant with multiple hypervisors
- Get hypervisor information from testClient.getHypervisorInfo()
   - Adds HyperV and VMware hypervisors
   - Makes sure the OS type is "Other PV (64-bit)"
2015-12-09 17:45:40 +01:00
Daan Hoogland 7043958997 Merge pull request #1195 from ekholabs/refactor/smoke_tests-CLOUDSTACK-9120
CLOUDSTACK-9120 - As a Developer I want the new component tests to be moved into the smoke directoryThis PR only moves the tests I wrote form the ```component``` to the ```smoke``` directory. Given the nature of the tests, the should be moved.

   - Those tests are doing a lot more than component tests would do. They require hardware and a lot of resources from real hypervisors.

I'm now running the five test files that were moved and will post results once they are done.

* pr/1195:
  CLOUDSTACK-9120 - Moves tests to the smoke directory

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-12-09 16:12:10 +01:00
Koushik Das 5b3ffeb6cd CLOUDSTACK-9130: Make RebootCommand similar to start/stop/migrate agent commands w.r.t. "execute in sequence" flag
RebootCommand now behaves in the same way as start/stop/migrate agent commands w.r.t. to sequential/parallel execution.
2015-12-09 15:19:10 +05:30
Wilder Rodrigues fb92de5262 CLOUDSTACK-9120 - Moves tests to the smoke directory
- Those tests are doing a lot more than component tests would do. They require hardware and a lot of resources from real hypervisors.
2015-12-08 20:28:07 +01:00
Remi Bergsma 738b78886e Merge release branch 4.6 to master
* 4.6:
  CLOUDSTACK-9118 - Adds integration test to cover routers state.
  CLOUDSTACK-9118 - Improves the existing checkrouter.sh script
2015-12-08 20:12:09 +01:00
Remi Bergsma 3515f574c3 Merge pull request #1189 from ekholabs/fix/4.6-rvr_routers_state-CLOUDSTACK-9118
CLOUDSTACK-9118 - As a Developer I want the checkrouter.sh script to report the right information about RVR routers stateThis PR fixes the RVR routers state information retrieved by the Management Server via the ```checkrouter.sh``` script.

In order to cover the changes, a new test has been added to the component/test_routers_network_ops.py test suite: test_03_RVR_Network_check_router_state

* pr/1189:
  CLOUDSTACK-9118 - Adds integration test to cover routers state.
  CLOUDSTACK-9118 - Improves the existing checkrouter.sh script

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-08 20:10:15 +01:00
Priti Sarap 1cf44dee3a CLOUDSTACK-9121: Adding VmSnapshot validation in testpath_revert_snap.py 2015-12-08 16:29:13 +05:30
Wilder Rodrigues 848ef78158 CLOUDSTACK-9118 - Adds integration test to cover routers state.
- Refactoring the existing tests
2015-12-08 11:06:35 +01:00
Wilder Rodrigues f81a29351d CLOUDSTACK-9118 - Improves the existing checkrouter.sh script 2015-12-08 11:06:35 +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
Remi Bergsma e08294a95f Merge release branch 4.6 to master
* 4.6:
  CLOUDSTACK-9106 - Makes Enum name compliant with Java code conventions.
  CLOUDSTACK-9106 - Adds a test to cover the changes in the applyVpnUsers() method
  CLOUDSTACK-9106 - Makes the router commands call more consistent.
  CLOUDSTACK-9106 - Enables private gateway tests on Redundant VPCs
  CLOUDSTACK-9106 - Refactor the createPrivateNicProfileForGateway() method
  CLOUDSTACK-9106 - Reduces the amount of iterations through the routers of a VPC
  Add support for not (re)starting server after cloud-setup-management.

Closed PRs that will not be considered for merge:
This closes #1158
This closes #1097
2015-12-07 21:36:36 +01:00
Remi Bergsma e443a0cb12 Merge pull request #1142 from nlivens/master_nuage
CLOUDSTACK-9095 : Hypervisor changes to support UserData for Nuage VSP

* pr/1142:
  CLOUDSTACK-9095 : Hypervisor changes to support UserData for Nuage VSP

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-07 21:21:48 +01:00
Remi Bergsma 6d3fffa229 Merge pull request #1184 from ekholabs/fix/4.6-rvpc-pvtgw-CLOUDSTACK-9106
CLOUDSTACK-9106 - As a Developer I want the Redundant VPC private gateway feature fixedThis PR contains the same fixes from PR #1179, which was created against the master branch.

In addition, the points mentioned by @DaanHoogland were handled in this new PR:

* Made the code more consistent
  - result = result && methodCall(), instead of throwing exceptions in some places or not checking 2 consecutive returns - in case of rVPC.
* Added an unit test to cover changes in the VpcRouterElementImpl.applyVpnUsers() method. The method returns an array of String, so I had to make sure it would contain the users from 2 consecutive calls. There are 2 tests to cover negative scenarios.

* pr/1184:
  CLOUDSTACK-9106 - Makes Enum name compliant with Java code conventions.
  CLOUDSTACK-9106 - Adds a test to cover the changes in the applyVpnUsers() method
  CLOUDSTACK-9106 - Makes the router commands call more consistent.
  CLOUDSTACK-9106 - Enables private gateway tests on Redundant VPCs
  CLOUDSTACK-9106 - Refactor the createPrivateNicProfileForGateway() method
  CLOUDSTACK-9106 - Reduces the amount of iterations through the routers of a VPC

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-07 21:18:01 +01:00
Remi Bergsma e9de865989 Merge pull request #1162 from greenqloud/pr-no-start
Add support for not (re)starting server after cloud-setup-management.This adds an option to the cloud-setup-management script to not start the management server after a successful configuration of it.

The primary motivation for this is to avoid circular dependency issues on systems that use systemd. When calling cloud-setup-management from a unit with a Before= directive on a service depending on
cloudstack-management, the process will deadlock because /usr/bin/service will delegate to systemd, which is waiting for the Before service to start.

Executing the cloud-setup-management script with this new `--no-start` option will simply leave the management server stopped after a successful configuration. systemd can then be bypassed with `export _SYSTEMCTL_SKIP_REDIRECT=1` and using the init.d script.

* pr/1162:
  Add support for not (re)starting server after cloud-setup-management.

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-07 21:06:19 +01:00
Remi Bergsma 8757daf2d1 Merge pull request #1178 from miguelaferreira/nsx-livelock
Prevent live-lock in NSX API clientThe NSX api client relies on a sequence of responses to identify the need to authenticate and to follow redirects. In order to avoid live-locks, the NSX API client has a counter that will abort the execution after 5 consecutive requests that do not produce a Success (200) response.
When a NSX controller enters a faulty state it can allow authentication requests but deny any other API call. In such cases the NSX API client will consider the denied request a reason to follow a redirect and will enter into a live-lock (because the actual redirection is not happening).
This PR changes the NSX API client to no reset it's counter on a Success response from an authentication request. That is, the counter is only reset if another type of API call yields a Success response.

In addition, this PR also:
* changes the configuration of the license-maven-plugin to ignore files generated by pmd
* moves the NSX marvin test to a plugins folder
* refactors the NSX marvin test to reduce duplication
* adds an extra test case to the NSX marvin test that checks that NSX tunnels are properly created

* pr/1178:
  Test NSX tunnel in guest network
  Refactor test cases to reduce duplication
  Use logger to print debug messages during test
  Move NSX integrationt test to new plugins folder
  Ignore pmd generated files during license check
  Fix NSX rest client to not reset execution counter after a login
  Add test for NSX plugin that simulates a live lock

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-07 19:34:20 +01:00
Remi Bergsma 24d06099ff Merge pull request #768 from shapeblue/quota-master
Implement Quota serviceThis pull request is for quota service implementation, divided into following commits:

Quota server side implementation
a. Quota Framework plugin containing Daos
b. Quota database plugin for quota APIs
c. Quota Usage server enhancements
d. Quota UI plugin
e. Tests

* pr/768:
  CLOUDSTACK-8592: Implement Quota service

Signed-off-by: Remi Bergsma <github@remi.nl>
2015-12-07 19:23:33 +01:00
Abhinandan Prateek 987fcbd441 CLOUDSTACK-8592: Implement Quota service
Quota service while allowing for scalability will make sure that the cloud is
not exploited by attacks, careless use and program errors. To address this
problem, we propose to employ a quota-enforcement service that allows resource
usage within certain bounds as defined by policies and available quotas for
various entities.  Quota service extends the functionality of usage server to
provide a measurement for the resources used by the accounts and domains using a
common unit referred to as cloud currency in this document. It can be configured
to ensure that your usage won’t exceed the budget allocated to accounts/domain
in cloud currency.  It will let user know how much of the cloud resources he is
using. It will help the cloud admins, if they want, to ensure that a user does
not go beyond his allocated quota. Per usage cycle if a account is found to be
exceeding its quota then it is locked. Locking an account means that it will not
be able to initiat e a new resource allocation request, whether it is more
storage or an additional ip. Needless to say quota service as well as any action
on the account is configurable.

Changes from Github code review:

- Added marvin test for quota plugin API
- removed unused commented code
- debug messages in debug enabled check
- checks for nulls, fixed access to member variables and feature
- changes based on PR comments
- unit tests for UsageTypes
- unit tests for all Cmd classes
- unit tests for all service and manager impls
- try-catch-finally or try-with-resource in dao impls for failsafe db switching
- remove dead code
- add missing quota calculation case (regression fixed)
- replace tabs with spaces in pom.xmls
- quota: though default value for quota_calculated is 0, the usage server
  makes it null while entering usage entries. Flipping the condition so
  as to acocunt for that.
- quotatypes: fix NPE in quota type
- quota framework test fixes
- made statement period configurable
- changed default email templates to reflect the fact that exhausted quota may not result in a locked account
- added quotaUpdateCmd that refreshes quota balances and sends alerts and statements
- report quotaSummary command returns quota balance, quota usage and state for all account
- made UI framework changes to allow for text area input in edit views
- process usage entries that have greater than 0 usage
- orocess quota entries only if tariff is non zero
- if there are credit entries but no balance entry create a dummy balance entry
- remove any credit entries that are before the last balance entry
  when displaying balance statement
- on a rerun the last balance is now getting added

FS: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Quota+Service+-+FS
PR: https://github.com/apache/cloudstack/pull/768

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-12-07 23:02:48 +05:30
Wilder Rodrigues 14db2d3dc4 CLOUDSTACK-9106 - Makes Enum name compliant with Java code conventions. 2015-12-07 13:43:46 +01:00
Wilder Rodrigues 5973f4ea77 CLOUDSTACK-9106 - Adds a test to cover the changes in the applyVpnUsers() method
- Changed the NetworkTopologyContext class just to make the private member accessible from the test
   - Added a test class to cover the positive scenario of the VpcVirtualRouterElementTest.applyVpnUsers() method.
   - Covering when there is either no VPC or no routers.
2015-12-07 13:42:29 +01:00
Wilder Rodrigues 13eb789388 CLOUDSTACK-9106 - Makes the router commands call more consistent.
- Checks the result of a call against the previous result. Either both are true or the method returns false.
   - Do not thrown exceptions because some calls are not handling/rethrowing them. It would cause runtime problems.
   - When doing a list.addAll(Arrays.asList(String[]{}) will cause problems when trying to cast the list.toArray() into an aray of String
     It would only work if instead of calling addAll() I would pass it straight into the constructor:
     e.g. List<String> l = new ArrayList(Arrays.asList(new String[]{});
          Stirng [] s = (String[]) l.toArray();
     But I did not like that implementation because it would require 2 arrays of string and combine them at the end.
2015-12-07 13:40:12 +01:00
Wei Zhou 24edf1c1e4 CLOUDSTACK-9113: skip vm with inconsistent state when getVmStats/getVmDiskStats 2015-12-07 12:15:24 +01:00
Wilder Rodrigues 1738ce1740 CLOUDSTACK-9106 - Enables private gateway tests on Redundant VPCs 2015-12-07 10:30:18 +01:00
Wilder Rodrigues 24dafc2cc2 CLOUDSTACK-9106 - Refactor the createPrivateNicProfileForGateway() method
- Use the router to retrieve the instance ID
    - Check if the VPC is redundant in order to reuse the private gateway address.
    - Brings the private gateways interfaces up.
2015-12-07 10:30:18 +01:00
Wilder Rodrigues a168a69c3c CLOUDSTACK-9106 - Reduces the amount of iterations through the routers of a VPC
- It was causing problems because Nics were expected to be plugged before they actually exist. Only in rVPC cases.
   - Applies ACL items to routers only after the Pvt GW is setup.
2015-12-07 10:30:17 +01:00
Nick Livens 0957268e92 CLOUDSTACK-9095 : Hypervisor changes to support UserData for Nuage VSP 2015-12-07 10:26:47 +01:00
Rohit Yadav f30fbe9a5c Merge branch '4.6' 2015-12-07 12:44:07 +05:30
Rohit Yadav fbc8f5d7e9 Merge pull request #1140 from harikrishna-patnala/CLOUDSTACK-9094
CLOUDSTACK-9094: Multiple threads are being used to collect the statsCLOUDSTACK-9094: Multiple threads are being used to collect the stats from the same VR

Same thread is being intialised by two managers, VirtualNetworkApplianceManager and VpcVirtualNetworkApplianceManager

* pr/1140:
  CLOUDSTACK-9094: Multiple threads are being used to collect the stats from the same VR

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-12-07 12:43:20 +05:30
Rohit Yadav 9ce133401c Merge pull request #1154 from ustcweizhou/fix-ui-delete-sshkey-projects
[UI] fix bug: Cannot delete SSH keypairs in projectsBefore change:
error message: ProjectId and account/domainId can't be specified together

After change:
SSH keypairs can be removed

* pr/1154:
  [UI] fix bug: Cannot delete SSH keypairs in projects

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-12-07 11:08:11 +05:30
Daan Hoogland c67d1da5dd Merge pull request #1167 from koushik-das/CLOUDSTACK-9105
CLOUDSTACK-9105: Logging enhancement: Handle/reference to track API calls end to end in the MS logs

Added logid to logging framework, now all API call logs can be tracked with this id end to end

* pr/1167:
  CLOUDSTACK-9105: Logging enhancement: Handle/reference to track API calls end to end in the MS logs Added logid to logging framework, now all API call logs can be tracked with this id end to end

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-12-06 20:41:28 +01:00
Daan Hoogland 0d61941101 Merge pull request #1175 from shapeblue/4.6-rate-limit-testfix
[4.6/master] rate-limit: increase JVM memory and enable fork mode for unit testsEnables forkmode for surefire plugin and increases memory opts for JVM
for rate-limit tests. This tries to fix intermittent Jenkins failures
which look like:

multipleClientsCanAccessWithoutBlocking(org.apache.cloudstack.ratelimit.ApiRateLimitTest):
unable to create new native thread

Previous PR (again master by mistake) -- #1171

* pr/1175:
  rate-limit: increase JVM memory and enable fork mode for unit tests

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-12-06 20:36:44 +01:00
Daan Hoogland 2c4ea503f9 Merge pull request #1176 from anshul1886/CLOUDSTACK-9025-4.6
CLOUDSTACK-9025: Fixed can't create usable template from snapshot in Xenserver and Vmwarehttps://issues.apache.org/jira/browse/CLOUDSTACK-9025

Fix also reverts below commit as below solution making assumption about hypervisor which are not applicable in case of XenServer and VmWare

Revert "CLOUDSTACK-8964: Can't create template or volume from snapshot"

This reverts commit ccf5d75cfb.

Testing:

Able to deploy VM successfully from template created from linked clone snapshot on XenServer.

* pr/1176:
  CLOUDSTACK-9025: Fixed can't create usable template from snapshot in Xenserver and Vmware

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-12-06 20:34:34 +01:00
Daan Hoogland f33195915f Merge pull request #850 from DaanHoogland/CLOUDSTACK-8656
CLOUDSTACK-8656: tests ignoring exceptionsfinal few ignored exceptions supplied with log messages.

* pr/850:
  CLOUDSTACK-8656: tests ignoring exceptions

Signed-off-by: Daan Hoogland <daan@onecht.net>
2015-12-06 20:19:21 +01:00