cloudstack.git
4 days agoRe-add code that was missed during merge forward of PR#2629 master
Rafael Weingärtner [Wed, 16 May 2018 20:13:50 +0000 (17:13 -0300)] 
Re-add code that was missed during merge forward of PR#2629

4 days agoMerge forward branch '4.11' PR #2629
Rafael Weingärtner [Wed, 16 May 2018 19:59:17 +0000 (16:59 -0300)] 
Merge forward branch '4.11' PR #2629

Fix primary storage count when deleting volumes (#2629)

4 days agoFix primary storage count when deleting volumes (#2629) 4.11
Rafael Weingärtner [Wed, 16 May 2018 18:28:28 +0000 (15:28 -0300)] 
Fix primary storage count when deleting volumes (#2629)

* Primary Storage count for an account does not decrease when a Data Disk is deleted

When a data disk is created and not attached in a running VM, the "deleteVolume" will not decrement the count for used primary storage in the VMs accounting information. The property that is not being decremented is called "primarystoragetotal"; this information can be retrieved via "listAccounts" API method.

Steps to reproduce this issue:
1 - Create an account, deploy a VM in it
2 - Check the primary storage count for the account with listAccounts API
3 - Create a data disk
4 - Check the primary storage count for the account with listAccounts API
5 - Delete the Data disk
6 - Check the primary storage count for the account with listAccounts API - It is the same as before deleting the data disk (it should not be the same as the value in step 2!)

* formatting and cleanups

* fix imports that were wrongly changed during rebase

4 days agoMerge branch '4.11': Fixes #2633 don't block agent for pending tasks on reconnection...
Rohit Yadav [Wed, 16 May 2018 10:05:37 +0000 (15:35 +0530)] 
Merge branch '4.11':  Fixes #2633 don't block agent for pending tasks on reconnection (#2638)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 days agoagent: Fixes #2633 don't wait for pending tasks on reconnection (#2638)
Rohit Yadav [Wed, 16 May 2018 10:05:00 +0000 (15:35 +0530)] 
agent: Fixes #2633 don't wait for pending tasks on reconnection (#2638)

When agent loses connection with management server, the reconnection
logic waits for any pending tasks to finish. However, when such tasks
do finish they fail to send an `Answer` back to managements server.
Therefore from a management server's perspective such pending
operations are stuck in a FSM state and need manual removal or fixing.
This is by design where management server's side cmd-answer request
pattern is code/execution dependent, therefore even if the answer
were to be sent when management server came back up (reconnects)
the management server will fail to acknowledge and process the answer
due to missing listeners or being in the exact state to handle answers.

Historically, the Agent would wait to reconnect until the internal
tasks complete but I found no reason why it should wait for reconnection
at all.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 days agoMerge branch '4.11': config-drive: use hostname of VM instance of internal VM id...
Rohit Yadav [Wed, 16 May 2018 07:54:04 +0000 (13:24 +0530)] 
Merge branch '4.11': config-drive: use hostname of VM instance of internal VM id (#2645)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 days agoconfig-drive: use hostname of VM instance of internal VM id (#2645)
Rohit Yadav [Wed, 16 May 2018 07:49:21 +0000 (13:19 +0530)] 
config-drive: use hostname of VM instance of internal VM id (#2645)

This fixes config drive to use VM's user provided host-name instead of
the internal VM instance ID for hostname related config in both
cloudstack and openstack metadata bundled in the ISO.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 days agopackaging: don't skip tests while packaging Centos7 (#2646)
Khosrow Moossavi [Wed, 16 May 2018 07:48:08 +0000 (03:48 -0400)] 
packaging: don't skip tests while packaging Centos7 (#2646)

6 days agoMerge branch '4.11': Fixes #2544 run passwd server on dhcpserver IP on rVR (#2635)
Rohit Yadav [Mon, 14 May 2018 10:57:31 +0000 (16:27 +0530)] 
Merge branch '4.11': Fixes #2544 run passwd server on dhcpserver IP on rVR (#2635)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
6 days agorouter: Fixes #2544 run passwd server on dhcpserver IP on rVR (#2635)
Rohit Yadav [Mon, 14 May 2018 10:51:57 +0000 (16:21 +0530)] 
router: Fixes #2544 run passwd server on dhcpserver IP on rVR (#2635)

This ensures that password server runs on the dhcpserver identifier
IP which is the not the VRRP virtual (10.1.1.1) IP by default but
the actual ip of the interface. When dhcp client discovery is made,
the `dhcp-server-identifier` contains the non VIP address that is
used by password reset script to query guest VM password.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
9 days agoMerge branch '4.11': Fixes #2631 VMware dvs portgroup autogrowth (#2634)
Rohit Yadav [Fri, 11 May 2018 16:51:31 +0000 (22:21 +0530)] 
Merge branch '4.11': Fixes #2631 VMware dvs portgroup autogrowth (#2634)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
9 days agoCLOUDSTACK-9184: Fixes #2631 VMware dvs portgroup autogrowth (#2634)
Rohit Yadav [Fri, 11 May 2018 16:46:13 +0000 (22:16 +0530)] 
CLOUDSTACK-9184: Fixes #2631 VMware dvs portgroup autogrowth (#2634)

* CLOUDSTACK-9184: Fixes #2631 VMware dvs portgroup autogrowth

This deprecates the vmware.ports.per.dvportgroup global setting.

The vSphere Auto Expand feature (introduced in vSphere 5.0) will take
care of dynamically increasing/decreasing the dvPorts when running out
of distributed ports . But in case of vSphere 4.1/4.0 (If used), as this
feature is not there, the new default value (=> 8) have an impact in the
existing deployments. Action item for vSphere 4.1/4.0: Admin should
modify the global configuration setting "vmware.ports.per.dvportgroup"
from 8 to any number based on their environment because the proposal
default value of 8 would be very less without auto expand feature in
general. The current default value of 256 may not need immediate
modification after deployment, but 8 would be very less which means
admin need to update immediately after upgrade.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
9 days agoMerge branch '4.11': Reduce VR downtime during network restart (#2508)
Rohit Yadav [Fri, 11 May 2018 07:35:36 +0000 (13:05 +0530)] 
Merge branch '4.11': Reduce VR downtime during network restart (#2508)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
9 days agoCLOUDSTACK-9114: Reduce VR downtime during network restart (#2508)
Rohit Yadav [Fri, 11 May 2018 07:18:07 +0000 (12:48 +0530)] 
CLOUDSTACK-9114: Reduce VR downtime during network restart (#2508)

This introduces a rolling restart of VRs when networks are restarted
with cleanup option for isolated and VPC networks. A make redundant option is
shown for isolated networks now in UI.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
11 days agoMerge branch '4.11'
Rohit Yadav [Wed, 9 May 2018 17:31:55 +0000 (23:01 +0530)] 
Merge branch '4.11'

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
11 days agoengine/schema: enhance and cleanup DatabaseUpgradeChecker (#2584)
Khosrow Moossavi [Wed, 9 May 2018 16:21:06 +0000 (12:21 -0400)] 
engine/schema: enhance and cleanup DatabaseUpgradeChecker (#2584)

Using a hierarchy of database version rather than a flat
list of them. Adding a new schema upgrade path was really
cumbersome and error-prone, because we needed to maintain
a flat map of versions and their corresponding list of
upgrade paths (`DbUpgrade`). Instead we're using a logical
hierarchy structure of versions:

```
DatabaseVersionHierarchy.builder()
    .next("4.0.0"   , new Upgrade40to41())
    .next("4.0.1"   , new Upgrade40to41())
    .next("4.0.2"   , new Upgrade40to41())
    .next("4.1.0"   , new Upgrade410to420())
    .next("4.1.1"   , new Upgrade410to420())
    .next("4.2.0"   , new Upgrade420to421())
    ...
    .next("4.2.1"   , new Upgrade421to430())
    .next("4.9.3.0" , new Upgrade4930to41000())
    .next("4.10.0.0", new Upgrade41000to41100())
    .next("4.11.0.0", new Upgrade41100to41110())
    .build();
```

With this change, when we need to add a new version upgrade
path, we only need to add it in correct place in the hierarchy
rather than add that in dozens of places in `_upgradeMap`.

11 days agoCLOUDSTACK-10362: Change the "getXXX" method names to "isXXX" (#2600)
Kui LIU [Wed, 9 May 2018 16:14:40 +0000 (18:14 +0200)] 
CLOUDSTACK-10362: Change the "getXXX" method names to "isXXX" (#2600)

These Boolean-return methods are named "getXXX", but other Boolean-return methods are named "isXXX", such as the following two methods. They will return boolean values, rename them as "isXXX" should be more clear than "getXXX".

11 days agopackaging: Catch error in packaging script and fail the build (#2627)
Khosrow Moossavi [Wed, 9 May 2018 16:13:07 +0000 (12:13 -0400)] 
packaging: Catch error in packaging script and fail the build (#2627)

This is to fix the regression added in #2433. In this fix
we're going to fail the build early if --use-timestamp is
provided and working directory is *not* clean.

11 days agoconfig-drive: support user data on L2 networks (#2615)
Nicolas Vazquez [Wed, 9 May 2018 16:03:11 +0000 (13:03 -0300)] 
config-drive: support user data on L2 networks (#2615)

Supporting ConfigDrive user data on L2 networks.
Add UI checkbox to create L2 network offering with config drive.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
11 days agoMerge branch '4.11'
Rohit Yadav [Wed, 9 May 2018 12:34:53 +0000 (18:04 +0530)] 
Merge branch '4.11'

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
11 days agolistostypes: Fixes #2529 return boolean than string in response (#2632)
Rohit Yadav [Wed, 9 May 2018 12:33:09 +0000 (18:03 +0530)] 
listostypes: Fixes #2529 return boolean than string in response (#2632)

This returns the boolean value of the `isuserdefined` key than
converting it to string. Fixes #2529.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
11 days agoMerge branch '4.11': ignore backport changes from 4.11
Rohit Yadav [Wed, 9 May 2018 09:55:39 +0000 (15:25 +0530)] 
Merge branch '4.11': ignore backport changes from 4.11

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
11 days agobackports for 4.11.1 from master (#2621)
Rohit Yadav [Wed, 9 May 2018 09:50:19 +0000 (15:20 +0530)] 
backports for 4.11.1 from master (#2621)

* CLOUDSTACK-10147 Disabled Xenserver Cluster can still deploy VM's. Added code to skip disabled clusters when selecting a host (#2442)

(cherry picked from commit c3488a51db4bce4ec32c09e6fef78193d360cf3f)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
* CLOUDSTACK-10318: Bug on sorting ACL rules list in chrome (#2478)

(cherry picked from commit 4412563f19ec8b808fe4c79e2baf658507a84873)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
* CLOUDSTACK-10284:Creating a snapshot from VM Snapshot generates error if hypervisor is not KVM.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
* CLOUDSTACK-10221: Allow IPv6 when creating a Basic Network (#2397)

Since CloudStack 4.10 Basic Networking supports IPv6 and thus
should be allowed to be specified when creating a network.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
(cherry picked from commit 9733a10ecda5f1af0f2c0fa863fc976a3e710946)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
* CLOUDSTACK-10214: Unable to remove local primary storage (#2390)

Allow admins to remove primary storage pool.
Cherry-picked from eba2e1d8a1ce4e86b4df144db03e96739da455e5

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
* dateutil: constistency of tzdate input and output (#2392)

Signed-off-by: Yoan Blanc <yoan.blanc@exoscale.ch>
Signed-off-by: Daan Hoogland <daan.hoogland@shapeblue.com>
(cherry picked from commit 2ad520282319da9a03061b8c744e51a4ffdf94a2)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
* CLOUDSTACK-10054:Volume download times out in 3600 seconds (#2244)

(cherry picked from commit bb607d07a97476dc4fb934b3d75df6affba47086)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
* When creating a new account (via domain admin) it is possible to select “root admin” as the role for the new user (#2606)

* create account with domain admin showing 'root admin' role

Domain admins should not be able to assign the role of root admin to new users. Therefore, the role ‘root admin’ (or any other of the same type) should not be visible to domain admins.

* License and formatting

* Break long sentence into multiple lines

* Fix wording of method 'getCurrentAccount'

* fix typo in variable name

* [CLOUDSTACK-10259] Missing float part of secondary storage data in listAccounts

* [CLOUDSTACK-9338] ACS not accounting resources of VMs with custom service offering

ACS is accounting the resources properly when deploying VMs with custom service offerings. However, there are other methods (such as updateResourceCount) that do not execute the resource accounting properly, and these methods update the resource count for an account in the database. Therefore, if a user deploys VMs with custom service offerings, and later this user calls the “updateResourceCount” method, it (the method) will only account for VMs with normal service offerings, and update this as the number of resources used by the account. This will result in a smaller number of resources to be accounted for the given account than the real used value. The problem becomes worse because if the user starts to delete these VMs, it is possible to reach negative values of resources allocated (breaking all of the resource limiting for accounts). This is a very serious attack vector for public cloud providers!

* [CLOUDSTACK-10230] User should not be able to use removed “Guest OS type” (#2404)

* [CLOUDSTACK-10230] User is able to change to “Guest OS type” that has been removed

Users are able to change the OS type of VMs to “Guest OS type” that has been removed. This becomes a security issue when we try to force users to use HVM VMs (Meltdown/Spectre thing). A removed “guest os type” should not be usable by any users in the cloud.

* Remove trailing lines that are breaking build due to checkstyle compliance

* Remove unused imports

* fix classes that were in the wrong folder structure

* Updates to capacity management

12 days agoRemove "self-injection" of AccountManagerImpl (#2619)
Rafael Weingärtner [Tue, 8 May 2018 12:42:05 +0000 (09:42 -0300)] 
Remove "self-injection" of AccountManagerImpl (#2619)

While working on other PRs I noticed that the singleton AccountManagerImpl had a reference for itself. That is not needed. Therefore, I removed it.

12 days agoAllow changing disk offering of VMs' root volume (#2607)
Rafael Weingärtner [Tue, 8 May 2018 12:40:58 +0000 (09:40 -0300)] 
Allow changing disk offering of VMs' root volume (#2607)

Currently, users are not able to change the disk offering of VMs' root volumes. It might be interesting to allow such changes, so users would be able to move a VM initially deployed in shared storage to local storage and vice versa. It is also interesting to enable changing the quality of service offered to root disks.

We are allowing only administrators to execute the change of root volumes disk offerings during volume migration between storage. Therefore, we perform all at once, the migration of storage and the disk offering to reflect the new place.

12 days agoMerge branch '4.11'
Rohit Yadav [Tue, 8 May 2018 10:31:10 +0000 (16:01 +0530)] 
Merge branch '4.11'

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
12 days agohypervisor: allow Ubuntu 18.04 to be added as KVM host (#2626)
Rohit Yadav [Tue, 8 May 2018 10:26:49 +0000 (15:56 +0530)] 
hypervisor: allow Ubuntu 18.04 to be added as KVM host (#2626)

This adds and allows Ubuntu 18.04 to be used as KVM host. In addition,
on the UI when hypervisor version key is missing, this adds and display
the host os and version detail which is useful to show the KVM host
os and version.

When cache mode 'none' is used for empty cdrom drives, systemvms
and guest VMs fail to start on newer libvirtd such as Ubuntu bionic.
The fix is ensure that cachemode is not declared when drives are empty
upon starting of the VM. Similar issue logged at redhat here:
https://bugzilla.redhat.com/show_bug.cgi?id=1342999

The workaround is to ensure that we don't configure cachemode for
cdrom devices at all. This also fixes live VM migration issue.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
12 days agoceph: Fixes #2611 use raw disk type for rdb (#2623)
Nathan Johnson [Tue, 8 May 2018 09:30:44 +0000 (04:30 -0500)] 
ceph: Fixes #2611 use raw disk type for rdb  (#2623)

Fix issue where kvm / ceph cannot create volumes. Fixes #2611

13 days agoMerge branch '4.11' (#2628)
Rohit Yadav [Tue, 8 May 2018 04:00:41 +0000 (09:30 +0530)] 
Merge branch '4.11' (#2628)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
13 days agoschema: create upgrade path from 4.9.3.1 to 4.11.1.0 (#2628)
Rafael Weingärtner [Tue, 8 May 2018 03:49:28 +0000 (00:49 -0300)] 
schema: create upgrade path from 4.9.3.1 to 4.11.1.0 (#2628)

Adds upgrade path from security release 4.9.3.1, which is treated same as 4.9.3.0.

2 weeks ago[migrateVolume API method] Filter disk offerings based on storage pool selected ...
Rafael Weingärtner [Fri, 4 May 2018 11:04:10 +0000 (08:04 -0300)] 
[migrateVolume API method] Filter disk offerings based on storage pool selected (#2612)

After using the feature introduced by #2486 in production, we felt the need for an improvement in the UI.  It is interesting to filter the displayed disk offerings according to the type of storage selected (local/shared) to migrate the volume to.

2 weeks agoMerge branch '4.11'
Rohit Yadav [Fri, 4 May 2018 07:13:48 +0000 (12:43 +0530)] 
Merge branch '4.11'

2 weeks agoCLOUDSTACK-10376: UI: Create VPC Offering does not show ConfigDrive as UserData provider
Frank Maximus [Thu, 3 May 2018 09:38:38 +0000 (11:38 +0200)] 
CLOUDSTACK-10376: UI: Create VPC Offering does not show ConfigDrive as UserData provider

2 weeks agoMerge branch '4.11'
Rohit Yadav [Fri, 4 May 2018 07:09:53 +0000 (12:39 +0530)] 
Merge branch '4.11'

2 weeks agoengine/schema: new 4.11.1 systemvmtemplate
Rohit Yadav [Tue, 1 May 2018 11:25:40 +0000 (16:55 +0530)] 
engine/schema: new 4.11.1 systemvmtemplate

This moves db upgrade paths and checks around a new systemvmtemplate
for 4.11.1. The new systemvmtemplate compared to 4.11.0 template
is slightly smaller and has meltdown/spectre fixes among few other
security fixes from Debian and changes to cloud-early-config.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agotest/integration: fix invalid VMware smoketests failures
Rohit Yadav [Wed, 2 May 2018 10:25:14 +0000 (15:55 +0530)] 
test/integration: fix invalid VMware smoketests failures

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agovr: create tables before applying egress iptables rules
Rohit Yadav [Tue, 1 May 2018 14:36:12 +0000 (20:06 +0530)] 
vr: create tables before applying egress iptables rules

This fixes the issue that post-upgrade egress rules are not applied
on VR, restarting the network with cleanup used to be the workaround.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agosaml2: Fixes #2548 SAML2 cert encoding and decoding
Rohit Yadav [Wed, 2 May 2018 12:27:32 +0000 (17:57 +0530)] 
saml2: Fixes #2548 SAML2 cert encoding and decoding

This fixes SAML2 certificate encoding/decoding issue due to refactoring
regression introduced in 7ce54bf7a85d6df72f84c00fadf9b0fd42ab0d99 that
did not account for base64 based encoding/decoding. The changes
effectively restore the same logic as used in previous versions.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agosystemvm: Fixes #2561 patching on XenServer
Rohit Yadav [Wed, 2 May 2018 09:27:10 +0000 (14:57 +0530)] 
systemvm: Fixes #2561 patching on XenServer

This fixes incorrect xenstore-read binary path, this failed systemvm
to be patched/started correctly on xenserver. The other fix is to keep
the xen-domU flag that may be returned by virt-what. This effect
won't change the cmdline being consumed as the mgmt server side (java)
code sets the boot args in both xenstore and as pv args. The systemvm's
/boot is ext2 that can be booted by PyGrub on both old and recent
XenServer versions.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agosystemvmtemplate: Fixes #2541 adds Letsencrypt CA cert
Rohit Yadav [Tue, 1 May 2018 09:31:11 +0000 (15:01 +0530)] 
systemvmtemplate: Fixes #2541 adds Letsencrypt CA cert

On patching, the global cacerts keystore is imported in 'cloud' service
specific local keystore. This fixes #2541.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agoca: Fixes #2530 have all IPs from KVM host in issued X509 cert
Rohit Yadav [Mon, 30 Apr 2018 12:10:20 +0000 (17:40 +0530)] 
ca: Fixes #2530 have all IPs from KVM host in issued X509 cert

This ensures that certificate setup includes all the IP addresses (v4
and v6) when a (KVM) host is added to CloudStack. This fixes #2530.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agosolidfire: fix potential NPE
Rohit Yadav [Mon, 30 Apr 2018 12:05:01 +0000 (17:35 +0530)] 
solidfire: fix potential NPE

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agoCLOUDSTACK-9781: record resource uuid in events instead of integer id (#1940)
jayantpatil1234 [Thu, 3 May 2018 11:02:00 +0000 (16:32 +0530)] 
CLOUDSTACK-9781: record resource uuid in events instead of integer id (#1940)

This changes several event logging to use uuid of resource than integer id when creating API events.

2 weeks agoapi: Fixes #2528 move ostypeid from id to uuid (#2608)
Marc-Aurèle Brothier [Thu, 3 May 2018 11:00:26 +0000 (13:00 +0200)] 
api: Fixes #2528 move ostypeid from id to uuid (#2608)

This moves the ostypeid in api response to uuid instead of integer id.

2 weeks ago[CLOUDSTACK-5235] ask users current password when they are executing a password updat...
Rafael Weingärtner [Wed, 2 May 2018 12:19:06 +0000 (09:19 -0300)] 
[CLOUDSTACK-5235] ask users current password when they are executing a password update (#2574)

* [CLOUDSTACK-5235] Force users to enter old password when updating password

* Formatting for checkstyle

* Remove an unused import in AccountManagerImpl

* Apply Nitin's suggestions

* Change 'oldPassword' to 'currentPassword'

* Second review of Resmo

* Fix typos found by Nitin

2 weeks agoMerge branch '4.11'
Rohit Yadav [Wed, 2 May 2018 07:48:29 +0000 (13:18 +0530)] 
Merge branch '4.11'

2 weeks agoMerge branch '4.10' into 4.11
Rohit Yadav [Wed, 2 May 2018 07:47:18 +0000 (13:17 +0530)] 
Merge branch '4.10' into 4.11

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2 weeks agoMerge branch '4.9' into 4.10 4.10
Rohit Yadav [Wed, 2 May 2018 07:46:46 +0000 (13:16 +0530)] 
Merge branch '4.9' into 4.10

2 weeks agoCLOUDSTACK-10311 Agent Log Rotate variable replace bug (#2471) 4.9
Slair1 [Wed, 2 May 2018 07:45:48 +0000 (02:45 -0500)] 
CLOUDSTACK-10311 Agent Log Rotate variable replace bug (#2471)

* CLOUDSTACK-10311 Agent Log Rotate variable replace bug

* update travis timeouts

2 weeks agoWhen creating a new account (via domain admin) it is possible to select “root admin...
Rafael Weingärtner [Wed, 2 May 2018 07:31:29 +0000 (04:31 -0300)] 
When creating a new account (via domain admin) it is possible to select “root admin” as the role for the new user (#2606)

* create account with domain admin showing 'root admin' role

Domain admins should not be able to assign the role of root admin to new users. Therefore, the role ‘root admin’ (or any other of the same type) should not be visible to domain admins.

* License and formatting

* Break long sentence into multiple lines

* Fix wording of method 'getCurrentAccount'

* fix typo in variable name

2 weeks agoCLOUDSTACK-10364: Change the "setXXX" method names to "generateXXX" (#2601)
Kui LIU [Tue, 1 May 2018 15:17:54 +0000 (17:17 +0200)] 
CLOUDSTACK-10364: Change the "setXXX" method names to "generateXXX" (#2601)

The three methods are named as "setXXX", actually, they are not simple setter or getter.
They are further renamed as "generateXXX" with dahn's comments.

2 weeks agoCLOUDSTACK-10363: refactor the "getXXX" and "listXXX" method names to "findXXX" ...
Kui LIU [Tue, 1 May 2018 15:14:43 +0000 (17:14 +0200)] 
CLOUDSTACK-10363: refactor the "getXXX" and "listXXX" method names to "findXXX" (#2599)

These three methods are not direct getter or list.
They try to find the target objects with the related arguments.
So that, renaming them as "findXXX" should be more intuitive.

2 weeks agoCLOUDSTACK-10360: Change the method name. (#2598)
Kui LIU [Mon, 30 Apr 2018 07:24:47 +0000 (09:24 +0200)] 
CLOUDSTACK-10360: Change the method name. (#2598)

The method is named as "scoped" that seems to whether the variable config is scoped in _scopedStorages or not. Actually, the method tries to find a storage of which scope equals to the scope of config. So that, the method name "findStorage" should be more clear than "scoped".

3 weeks agoMerge branch '4.11'
Rohit Yadav [Mon, 30 Apr 2018 06:22:16 +0000 (08:22 +0200)] 
Merge branch '4.11'

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
3 weeks agoxenserver: Add support for XS 7.3, 7.4 and XCP-ng 7.4 (#2605)
Rohit Yadav [Mon, 30 Apr 2018 06:19:10 +0000 (08:19 +0200)] 
xenserver: Add support for XS 7.3, 7.4 and XCP-ng 7.4 (#2605)

This adds support for XenServer 7.3 and 7.4, and XCP-ng 7.4 version as hypervisor hosts. Fixes #2523.

This also fixes the issue of 4.11 VRs stuck in starting for up-to 10mins, before they come up online.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
3 weeks agoCLOUDSTACK-10253: JSON response for SuccessResponse as boolean instead of string...
Marc-Aurèle Brothier [Sat, 28 Apr 2018 00:07:51 +0000 (02:07 +0200)] 
CLOUDSTACK-10253: JSON response for SuccessResponse as boolean instead of string (#2428)

* JSON response for SuccessResponse as boolean instead of string

Signed-off-by: Marc-Aurèle Brothier <m@brothier.org>
* Fixing test cases

3 weeks agoMerge branch '4.11'
Rohit Yadav [Fri, 27 Apr 2018 10:57:51 +0000 (12:57 +0200)] 
Merge branch '4.11'

3 weeks agoui: fix project network listing failure in UI (#2536)
dahn [Fri, 27 Apr 2018 10:54:37 +0000 (12:54 +0200)] 
ui: fix project network listing failure in UI (#2536)

Fixes #2533

3 weeks ago[CLOUDSTACK-10323] Allow changing disk offering during volume migration (#2486)
Rafael Weingärtner [Thu, 26 Apr 2018 23:05:55 +0000 (20:05 -0300)] 
[CLOUDSTACK-10323] Allow changing disk offering during volume migration  (#2486)

* [CLOUDSTACK-10323] Allow changing disk offering during volume migration

This is a continuation of work developed on PR #2425 (CLOUDSTACK-10240), which provided root admins an override mechanism to move volumes between storage systems types (local/shared) even when the disk offering would not allow such operation. To complete the work, we will now provide a way for administrators to enter a new disk offering that can reflect the new placement of the volume. We will add an extra parameter to allow the root admin inform a new disk offering for the volume. Therefore, when the volume is being migrated, it will be possible to replace the disk offering to reflect the new placement of the volume.

The API method will have the following parameters:

* storageid (required)
* volumeid (required)
* livemigrate(optional)
* newdiskofferingid (optional) – this is the new parameter

The expected behavior is the following:

* If “newdiskofferingid” is not provided the current behavior is maintained. Override mechanism will also keep working as we have seen so far.
* If the “newdiskofferingid” is provided by the admin, we will execute the following checks
** new disk offering mode (local/shared) must match the target storage mode. If it does not match, an exception will be thrown and the operator will receive a message indicating the problem.
** we will check if the new disk offering tags match the target storage tags. If it does not match, an exception will be thrown and the operator will receive a message indicating the problem.
** check if the target storage has the capacity for the new volume. If it does not have enough space, then an exception is thrown and the operator will receive a message indicating the problem.
** check if the size of the volume is the same as the size of the new disk offering. If it is not the same, we will ALLOW the change of the service offering, and a warning message will be logged.

We execute the change of the Disk offering as soon as the migration of the volume finishes. Therefore, if an error happens during the migration and the volume remains in the original storage system, the disk offering will keep reflecting this situation.

* Code formatting

* Adding a test to cover migration with new disk offering (#4)

* Adding a test to cover migration with new disk offering

* Update test_volumes.py

* Update test_volumes.py

* fix test_11_migrate_volume_and_change_offering

* Fix typo in Java doc

3 weeks ago[CLOUDSTACK-10254] checkstyle: add package name declaration validation (#2422)
Marc-Aurèle Brothier [Thu, 26 Apr 2018 13:32:08 +0000 (15:32 +0200)] 
[CLOUDSTACK-10254] checkstyle: add package name declaration validation (#2422)

* checktyle: verify package name matches directory structure

* fix new checkstyle findings on directory with package name mismatch

3 weeks agoForward merge branch '4.11' to master
Rafael Weingärtner [Thu, 26 Apr 2018 13:14:49 +0000 (10:14 -0300)] 
Forward merge branch '4.11' to master

ConfigDrive fixes: CLOUDSTACK-10288, CLOUDSTACK-10289 (#2566)
CLOUDSTACK-9677: Adding storage policy support for swift as secondary
storage (#2412)

3 weeks agoConfigDrive fixes: CLOUDSTACK-10288, CLOUDSTACK-10289 (#2566)
Frank Maximus [Thu, 26 Apr 2018 13:10:23 +0000 (15:10 +0200)] 
ConfigDrive fixes: CLOUDSTACK-10288, CLOUDSTACK-10289 (#2566)

* CLOUDSTACK-10289: Config Drive Metadata: Use VM UUID instead of VM id

* CLOUDSTACK-10288: Config Drive Userdata: support for binary userdata

* CLOUDSTACK-10358: SSH keys are missing on Config Drive disk in some cases

3 weeks ago[CLOUDSTACK-10356] Fix NPE in Cloudstack found with NPEDetector (#2573)
brett [Thu, 26 Apr 2018 13:03:46 +0000 (21:03 +0800)] 
[CLOUDSTACK-10356] Fix NPE in Cloudstack found with NPEDetector  (#2573)

* fix https://issues.apache.org/jira/browse/CLOUDSTACK-10356

* del patch file

* Update ResourceCountDaoImpl.java

* fix some format

* fix code

* fix error message in VolumeOrchestrator

* add check null stmt

* del import unuse class

* use BooleanUtils to check Boolean

* fix error message

* delete unuse function

* delete the deprecated function  updateDomainCount

* add error log and throw exception in ProjectManagerImpl.java

3 weeks agoCLOUDSTACK-9677: Adding storage policy support for swift as secondary storage (#2412)
Khosrow Moossavi [Wed, 25 Apr 2018 22:42:15 +0000 (18:42 -0400)] 
CLOUDSTACK-9677: Adding storage policy support for swift as secondary storage (#2412)

Original-Author: @pdube on PR Fixes #1830.

3 weeks agoRemove 'NetworkManagerTestComponentLibrary' empty class and related configs (#2594)
Rafael Weingärtner [Tue, 24 Apr 2018 14:33:09 +0000 (11:33 -0300)] 
Remove 'NetworkManagerTestComponentLibrary' empty class and related configs (#2594)

3 weeks agoUpdateUserCmd: apiSecretKey refers to itself (#2597)
Yoan Blanc [Tue, 24 Apr 2018 14:27:04 +0000 (16:27 +0200)] 
UpdateUserCmd: apiSecretKey refers to itself (#2597)

* UpdateUserCmd: apiSecretKey refers to itself

* typo: hasing -> hashing

3 weeks agoMerge branch '4.11'
Rohit Yadav [Tue, 24 Apr 2018 13:05:38 +0000 (15:05 +0200)] 
Merge branch '4.11'

3 weeks agoCLOUDSTACK-10327: Do not invalidate the session when an API command is not available...
Olivier Lemasle [Tue, 24 Apr 2018 13:01:19 +0000 (15:01 +0200)] 
CLOUDSTACK-10327: Do not invalidate the session when an API command is not available (#2498)

CloudStack SSO (using security.singlesignon.key) does not work anymore with CloudStack 4.11, since commit 9988c26, which introduced a regression due to a refactoring: every API request that is not "validated" generates the same error (401 - Unauthorized) and invalidates the session.

However, CloudStack UI executes a call to listConfigurations in method bypassLoginCheck. A non-admin user does not have the permissions to execute this request, which causes an error 401:

{"listconfigurationsresponse":{"uuidList":[],"errorcode":401,"errortext":"unable to verify user credentials and/or request signature"}}
The session (already created by SSO) is then invalidated and the user cannot access to CloudStack UI (error "Session Expired").

Before 9988c26 (up to CloudStack 4.10), an error 432 was returned (and ignored):

{"errorresponse":{"uuidList":[],"errorcode":432,"cserrorcode":9999,"errortext":"The user is not allowed to request the API command or the API command does not exist"}}
Even if the call to listConfigurations was removed, another call to listIdps also lead to an error 401 for user accounts if the SAML plugin is not enabled.

This pull request aims to fix the SSO issue, by restoring errors 432 (instead of 401 + invalidate session) for commands not available. However, if an API command is explicitly denied using ACLs or if the session key is incorrect, it still generates an error 401 and invalidates the session.

3 weeks agoCLOUDSTACK-10359: Change the inconsistent method names. (#2591)
Kui LIU [Mon, 23 Apr 2018 14:54:38 +0000 (16:54 +0200)] 
CLOUDSTACK-10359: Change the inconsistent method names. (#2591)

* CLOUDSTACK-10359: Change the inconsistent method names.

The two methods are named "getXXX".
The two method are checking the status of variables.
"getCustomized" is not as intuitive as "isCustomized".
"getIsSystem" is not as intuitive as "isSystem" as well.

* Add the missing changes of all usages of method getIsSystem.

3 weeks agonetwork: Fix security groups for CentOS (#2590)
Rohit Yadav [Mon, 23 Apr 2018 14:54:03 +0000 (16:54 +0200)] 
network: Fix security groups for CentOS (#2590)

On RHEL/CentOS/Fedora the bridge related sysctl rules are enabled
in kernel by default but can only be disabled. Enabling those keys
will fail, causing iptables/ebtables tables to not be created
and fails SG on CentOS.

This also fixes an integration test case, which assumes first few
tests complete within 3 minutes. In nested env the value may be large,
this increases the value to 20 minutes.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 weeks agoMerge branch '4.11'
Rohit Yadav [Fri, 20 Apr 2018 13:32:40 +0000 (19:02 +0530)] 
Merge branch '4.11'

4 weeks agoschema: fix create table only if not exists and remove drop table statements (#2582)
ernjvr [Fri, 20 Apr 2018 13:28:12 +0000 (15:28 +0200)] 
schema: fix create table only if not exists and remove drop table statements (#2582)

4 weeks agoPrevent NPE if guest OS mapping is missing while prioritizing hosts (#2577)
Khosrow Moossavi [Fri, 20 Apr 2018 13:10:38 +0000 (09:10 -0400)] 
Prevent NPE if guest OS mapping is missing while prioritizing hosts (#2577)

4 weeks agoMerge branch '4.11'
Rohit Yadav [Fri, 20 Apr 2018 09:59:44 +0000 (15:29 +0530)] 
Merge branch '4.11'

4 weeks agorouter: Fix routing tables for public IP NAT based access (#2579)
Rohit Yadav [Fri, 20 Apr 2018 09:59:04 +0000 (15:29 +0530)] 
router: Fix routing tables for public IP NAT based access (#2579)

This fixes routing table rule setup regression to correctly router
marked packets based on interface related ip route tables. This thereby
fixes the access of VMs in the same VPC using NAT/SNAT public IPs.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 weeks agoRemove packaging job from pull request template (#2589)
Nicolas Vazquez [Fri, 20 Apr 2018 07:59:38 +0000 (04:59 -0300)] 
Remove packaging job from pull request template (#2589)

4 weeks agoMerge branch '4.11'
Rohit Yadav [Thu, 19 Apr 2018 19:24:41 +0000 (00:54 +0530)] 
Merge branch '4.11'

4 weeks agocapacity: remove unused threadpool (#2588)
Rohit Yadav [Thu, 19 Apr 2018 19:23:57 +0000 (00:53 +0530)] 
capacity: remove unused threadpool (#2588)

This removes unused injectables and threadpool.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 weeks agoMerge branch '4.11'
Rohit Yadav [Thu, 19 Apr 2018 19:12:30 +0000 (00:42 +0530)] 
Merge branch '4.11'

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 weeks agoCLOUDSTACK-10333: Secure Live VM Migration for KVM (#2505)
Rohit Yadav [Thu, 19 Apr 2018 19:06:18 +0000 (00:36 +0530)] 
CLOUDSTACK-10333: Secure Live VM Migration for KVM (#2505)

This extends securing of KVM hosts to securing of libvirt on KVM
host as well for TLS enabled live VM migration. To simplify implementation
securing of host implies that both host and libvirtd processes are
secured with management server's CA plugin issued certificates.

Based on whether keystore and certificates files are available at
/etc/cloudstack/agent, the KVM agent determines whether to use TLS or
TCP based uris for live VM migration. It is also enforced that a secured
host will allow live VM migration to/from other secured host, and an
unsecured hosts will allow live VM migration to/from other unsecured
host only.

Post upgrade the KVM agent on startup will expose its security state
(secured detail is sent as true or false) to the managements server that
gets saved in host_details for the host. This host detail can be accesed
via the listHosts response, and in the UI unsecured KVM hosts will show
up with the host state of ‘unsecured’. Further, a button has been added
that allows admins to provision/renew certificates to KVM hosts and can
be used to secure any unsecured KVM host.

The `cloudstack-setup-agent` was modified to accept a new flag `-s`
which will reconfigure libvirtd with following settings:

    listen_tcp=0
    listen_tls=1
    tcp_port="16509"
    tls_port="16514"
    auth_tcp="none"
    auth_tls="none"
    key_file = "/etc/pki/libvirt/private/serverkey.pem"
    cert_file = "/etc/pki/libvirt/servercert.pem"
    ca_file = "/etc/pki/CA/cacert.pem"

For a connected KVM host agent, when the certificate are
renewed/provisioned a background task is scheduled that waits until all
of the agent tasks finish after which libvirt process is restarted and
finally the agent is restarted via AgentShell.

There are no API or DB changes.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 weeks agoCLOUDSTACK-10357: Improve log messages in methods (#2580)
lzh3636 [Thu, 19 Apr 2018 19:03:27 +0000 (15:03 -0400)] 
CLOUDSTACK-10357: Improve log messages in methods (#2580)

Fix several logs that mismatch method.
Add stacktraces for throw new statements.

4 weeks agoserver: Remote empty VPN test class (#2587)
Rafael Weingärtner [Thu, 19 Apr 2018 18:58:38 +0000 (15:58 -0300)] 
server: Remote empty VPN test class (#2587)

I found this empty test while working on other PRs. Empty/ignored tests do not help us. I am removing it. In the future, if we manage to improve these classes, we can work on unit test cases for them.

4 weeks agosystemvm: Use double quotes with 'RROUTER' variable in "common.sh" script (#2586)
Rafael Weingärtner [Thu, 19 Apr 2018 18:57:45 +0000 (15:57 -0300)] 
systemvm: Use double quotes with 'RROUTER' variable in "common.sh" script (#2586)

While debugging the VR for #2579, I noticed that one of the scripts were breaking. The variable RROUTER was not set and this broke a conditional.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 weeks agoForward merge branch '4.11' (PR: #2576) to master
Rafael Weingärtner [Wed, 18 Apr 2018 16:11:44 +0000 (13:11 -0300)] 
Forward merge branch '4.11' (PR: #2576) to master

4 weeks agoFix Python code checkstyle execute by "systemvm\test\runtests.sh" (#2576)
Rafael Weingärtner [Wed, 18 Apr 2018 16:07:37 +0000 (13:07 -0300)] 
Fix Python code checkstyle execute by "systemvm\test\runtests.sh" (#2576)

* dependencies update

* Add extra blank line required by ...!?

* fix W605 invalid escape sequence and more blank lines

* print all installed python packages versions

4 weeks agoMerge branch '4.11'
Rohit Yadav [Tue, 17 Apr 2018 07:28:39 +0000 (12:58 +0530)] 
Merge branch '4.11'

4 weeks agoconsoleproxy: use consoleproxy.domain for non-ssl enable env (#2562)
Rohit Yadav [Mon, 16 Apr 2018 12:42:41 +0000 (18:12 +0530)] 
consoleproxy: use consoleproxy.domain for non-ssl enable env (#2562)

This allows CloudStack to use a console proxy domain instead of public
IP address even when ssl is not enabled but console proxy url/domain
is defined in global settings.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 weeks agoMerge release branch 4.11 to master
Daan Hoogland [Mon, 16 Apr 2018 11:54:20 +0000 (13:54 +0200)] 
Merge release branch 4.11 to master

* 4.11:
  agent: Add logging to libvirt qemu hook (#2554)

4 weeks agoagent: Add logging to libvirt qemu hook (#2554)
Rohit Yadav [Mon, 16 Apr 2018 11:50:48 +0000 (17:20 +0530)] 
agent: Add logging to libvirt qemu hook (#2554)

This allows logging to the default libvirt qemu hook

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
4 weeks ago[CLOUDSTACK-10344] bug when moving ACL rules (change order with drag and drop) (...
Rafael Weingärtner [Mon, 16 Apr 2018 11:45:29 +0000 (08:45 -0300)] 
[CLOUDSTACK-10344] bug when moving ACL rules (change order with drag and drop) (#2511)

* Add permission to 'moveNetworkAclItem' API method in default roles

4 weeks agoRemove 'todb' in favor of 'encodeURIComponent'. (#2572)
Rafael Weingärtner [Mon, 16 Apr 2018 11:44:27 +0000 (08:44 -0300)] 
Remove 'todb' in favor of 'encodeURIComponent'. (#2572)

While executing the find/replace, I found some blocks of duplicated code. Therefore, I extracted the duplicated part to an utils file, and then removed the duplicated blocks.

4 weeks agoUpdate inconsistent debugging info in catch block (#2553)
lzh3636 [Mon, 16 Apr 2018 07:07:16 +0000 (03:07 -0400)] 
Update inconsistent debugging info in catch block (#2553)

* Add stack traces information

* update stack trace info

* update stack trace to make them consistent

* update stack traces

* update stacktraces

* update stacktraces for other similar situations

* fix some other situations

* enhance other situations

5 weeks agoMerge pull request #2499 from mike-tutkowski/calculate-storage-space
Mike Tutkowski [Fri, 13 Apr 2018 20:20:23 +0000 (14:20 -0600)] 
Merge pull request #2499 from mike-tutkowski/calculate-storage-space

Updates to capacity management

5 weeks agoreadme: Improve README (#2570)
Jorge Maldonado Ventura [Fri, 13 Apr 2018 11:04:00 +0000 (13:04 +0200)] 
readme: Improve README (#2570)

- Add space between stop and next sentence
- Add missing full stops

5 weeks agoLog command output in CsHelper.execute command (#2568)
Rafael Weingärtner [Fri, 13 Apr 2018 09:59:01 +0000 (06:59 -0300)] 
Log command output in CsHelper.execute command (#2568)

5 weeks agoMerge branch '4.11'
Daan Hoogland [Fri, 13 Apr 2018 09:44:30 +0000 (11:44 +0200)] 
Merge branch '4.11'

5 weeks agoUpgrade path 4.11 through 4.11.1 to 4.12 (#2559)
dahn [Fri, 13 Apr 2018 09:23:14 +0000 (11:23 +0200)] 
Upgrade path 4.11 through 4.11.1 to 4.12 (#2559)

* Create database upgrade from 4.11.0.0 to 4.11.1.0 & VMWare version to OS mappings (#2490)

* Create database upgrade from 4.11.0.0 to 4.11.1.0. Add missing VMWare version to OS mapping SQL in the schema-41100to41110.sql.

* add unit test and add 4.11.0.0 entry to _upgradeMap

* upgrade 4.11.1 to 4.12 definition

* applied Nitin's comments

5 weeks ago[Vmware] Fix for OVF parsing error (#2567)
Nicolas Vazquez [Fri, 13 Apr 2018 09:19:30 +0000 (06:19 -0300)] 
[Vmware] Fix for OVF parsing error (#2567)

5 weeks agoCLOUDSTACK-10304: turn off apache2 server tokens and signature in systemvms (#2563)
Rohit Yadav [Fri, 13 Apr 2018 08:44:25 +0000 (14:14 +0530)] 
CLOUDSTACK-10304: turn off apache2 server tokens and signature in systemvms (#2563)

* systemvm: turn off apache2 server tokens and signature

This turns off apache2 server version signature/token in headers.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
* systemvm: remove invalid code as conf.d is not available now

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
5 weeks agoRemove 'md5Hashed' variable from Javascript. (#2555)
Rafael Weingärtner [Fri, 13 Apr 2018 08:43:52 +0000 (05:43 -0300)] 
Remove 'md5Hashed' variable from Javascript. (#2555)

We no longer hash password in the user side. All of the password processing is executed in the server side according to the priority of hashing mechanism defined by the administrator.