31587 Commits

Author SHA1 Message Date
René Moser
2930a60f51 tests: add unit tests for console proxy url (#2800)
Follow up of #2734
2018-08-14 12:30:28 +05:30
SowjanyaPatha
35e008df6c CLOUDSTACK-10223 Snapshots are not getting deleted when domain is deleted (#2399) 2018-08-12 10:17:03 -03:00
Mike Tutkowski
46c56eaaf9 Merge release branch 4.11 to master
* 4.11:
  Changed the implementation of isVolumeOnManagedStorage(VolumeInfo) to check if the data store in question is for primary storage (and added a unit test from Daan Hoogland)
  vmware: reboot VR after mac updates (#2794)
2018-08-12 00:03:37 -06:00
Mike Tutkowski
e4ec123f62
Merge pull request #2776 from mike-tutkowski/vol-on-managed-storage
Issue 2774: Changed the implementation of isVolumeOnManagedStorage(VolumeInfo) to…
2018-08-10 15:07:33 -06:00
Mike Tutkowski
ab83c198a5 Changed the implementation of isVolumeOnManagedStorage(VolumeInfo) to check if the data store in question is for primary storage (and added a unit test from Daan Hoogland) 2018-08-10 11:24:18 -06:00
Rafael Weingärtner
96d80b154b
Fix alert message in VM creation wizard (#2786)
* Fix alert message in VM creation wizard

* Remove "var" keyword for customZindex variable

* Fix "cloudStack.applyDefaultZindexAndOverlayOnJqueryDialogAndRemoveCloseButton"
2018-08-10 10:20:59 -03:00
Rohit Yadav
461c4ad027
vmware: reboot VR after mac updates (#2794)
This re-introduces the rebooting of VR after setup of nics/macs in
case of VMware. It also adds a minor enhancement to show the console
esp. for root admins when VRs and systemvms are in starting state.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-08-10 13:07:11 +05:30
Rohit Yadav
5e48c0b4c9 Merge remote-tracking branch 'origin/4.11'
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-08-08 12:20:56 +05:30
Wido den Hollander
65f31f1a9f kvm: Agent should not check if remaining memory on host is sufficient (#2766)
When a Instance is (attempted to be) started in KVM Host the Agent
should not worry about the allocated memory on this host.

To make a proper judgement we need to take more into account:

- Memory Overcommit ratio
- Host reserved memory
- Host overcommit memory

The Management Server has all the information and the DeploymentPlanner
has to make the decision if a Instance should and can be started on a
Host, not the host itself.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2018-08-08 12:14:26 +05:30
ernjvr
ecb44a5e72 ui: add height sizing to detail view so that it renders all detail items in the list (#2790)
In the UI, when a VM instance has more than one NIC, the NICs screen does not display all the details of the first NIC. The last few rows of text overlap with the second NIC's text. This is due to the incorrect placement of the second NIC's bar. The default height sizing does not allow enough head space to display all the details of the first NIC before displaying the second NIC's details.

Expected Behaviour:
When a VM instance has more than one NIC, the NICs screen must allow enough height size to display all the details of the first NIC before displaying the second NIC's details. The last few rows of text must not overlap with the second NIC's text.

Current Behaviour:
When a VM instance has more than one NIC, the NICs screen does not allow enough height size to display all the details of the first NIC before displaying the second NIC's details. The last few rows of text overlap with the second NIC's text.

To Reproduce:
In the UI, on the lefthand side, select the Instances link. On the Instances screen, select a VM instance that has more than one NIC and then select the NICs screen. Scroll down to where the second NIC bar is displayed. Notice that it does not display all the details of the first NIC correctly. The last few rows of text overlap with the second NIC's text.
2018-08-08 12:10:23 +05:30
ernjvr
a3d999c203 ui: change table header cursor for sortable columns to pointer (#2788)
In the UI, when a user navigates to a screen that displays a table of data and hovers the mouse over a sortable column header, the cursor does not change to a hand pointer, indicating to the user that it can be clicked on, in order to sort the table's data rows according to that column.
When the mouse hovers over the non-sortable 'Quickview' column header, it incorrectly displays a hand pointer cursor instead of a default cursor.
When the mouse hovers over a column header, it also does not display the column header's value as a tooltip.

Expected Behaviour:
The cursor type for a sortable column header must display a hand pointer.
The cursor type for the non-sortable 'Quickview' column header must display a default pointer.
When the mouse hovers over a column header it must display the column header's value as a tooltip.

Actual Behaviour:
The cursor type for a sortable column header incorrectly displays a default pointer.
The cursor type for the non-sortable 'Quickview' column header incorrectly displays a hand pointer.
When the mouse hovers over a column header it does not display the column header's value as a tooltip.

To Reproduce:
In the UI, navigate to a screen that displays a table of data and hover the mouse over a sortable column header, the cursor does not change to a hand pointer.
Hover the mouse over the non-sortable 'Quickview' column header and notice that it incorrectly displays a hand pointer cursor instead of a default cursor.
Hover the mouse over a column header and notice that it does not display the column header's value as a tooltip.
2018-08-08 12:09:38 +05:30
ernjvr
f20d3a4183 ui: change cursor to default to prevent user confusion (#2785)
When a regular user navigates to the Dashboard screen and hovers over the 'Latest events' entries, the mouse cursor changes to a hand pointer, but it cannot select any of these entries.

Expected Behaviour:
When a user navigates to the Dashboard screen and hovers over the 'Latest events' entries, the mouse cursor must not change to a hand pointer. This will allow the user to make the correct interpretation that the 'Latest events' entries are not selectable.

Actual Behaviour:
When a user navigates to the Dashboard screen and hovers over the 'Latest events' entries, the mouse cursor changes to a hand pointer. This causes a user to incorrectly interpret that the entries are selectable.

To Reproduce:
Log in to the Cloudstack UI as a regular User.
On the Dashboard screen, hover the mouse over the 'Latest events' entries, the cursor changes to a hand pointer. Confirm that the entries cannot be selected.
2018-08-08 12:08:43 +05:30
ernjvr
d8b3a90962 ui: insert plugin css files before custom.css file (#2784)
In the index.html file, the reference to the custom.css file is made on the last line of the <head> tag.
The plugins.js file appends a list of CSS files to the <head> tag dynamically, consequently placing them after the custom.css file and overriding it.

Expected Behaviour:
The plugins.js file must insert the list of CSS files before the custom.css file so that it does not get overridden.

Actual Behaviour:
The plugins.js file appends a list of CSS files to the <head> tag dynamically, consequently placing them after the custom.css file and overriding it.

To Reproduce:
Log in to the Cloudstack UI using your favourite browser.
Use your browser's development tool to view the HTML elements of the index.html loaded in memory.
Expand the <head> element and review the list of CSS <link> elements.
Notice that the list of module and plugins CSS files is appended after the custom.css file.
2018-08-08 12:07:56 +05:30
ernjvr
5043768406 ui: add ipaddress input field to 'Add network to VM' form (#2782)
On the 'NICs' tab, when a user clicks the 'Add network to VM' button to add a network to a VM, the 'Add network to VM' popup screen does not have an IP Address input field to allow a user to define a specific IP Address for a NIC. A user can specify the IP address for the first NIC when creating a VM instance, but cannot do that for subsequent NICs when adding a network to a VM.

To Reproduce:
Go to the 'Instances' screen by clicking the 'Instances' tab on the lefthand side.
On the 'Instances' screen click on a specific VM instance name.
This will open the 'Details' tab for the specific VM instance.
Click on the 'NICs' tab and then click on the 'Add network to VM' button to add a network to a VM.
The 'Add network to VM' popup screen will display.

Actual Behaviour:
The 'Add network to VM' popup screen does not have an IP Address input field to allow a user to define a specific IP Address for a NIC.

Expected behaviour:
The 'Add network to VM' popup screen must have an IP Address input field to allow a user to define a specific IP Address for a NIC.
Since the addNicToVirtualMachine API's ipaddress field is not required, the IP Address input field is also not a required field.
The IP Address input field must be validated for a valid IPv4 formatted value if the user enters anything into the field.
The valid user-specified IPv4 IP Address value must be allocated to the NIC if it is within the acceptable IP range for the chosen Network.
2018-08-08 12:07:04 +05:30
Rohit Yadav
f60f3cec34
router: Fixes #2789 fix proper mark based packet routing across interfaces (#2791)
Previously, the ethernet device index was used as rt_table index and
packet marking id/integer. With eth0 that is sometimes used as link-local
interface, the rt_table index `0` would fail as `0` is already defined
as a catchall (unspecified). The fwmarking on packets on eth0 with 0x0
would also fail. This fixes the routing issues, by adding 100 to the
ethernet device index so the value is a non-zero, for example then the
relationship between rt_table index and ethernet would be like:

100 -> Table_eth0 -> eth0 -> fwmark 100 or 0x64
101 -> Table_eth1 -> eth1 -> fwmark 101 or 0x65
102 -> Table_eth2 -> eth2 -> fwmark 102 or 0x66

This would maintain the legacy design of routing based on packet mark
and appropriate routing table rules per table/ids. This also fixes a
minor NPE issue around listing of snapshots.

This also backports fixes to smoketests from master.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-08-08 12:05:42 +05:30
Rene Diepstraten
33a6ea0c87 router: Use network based netmask for dnsmasq (#2792)
Without this patch, the VR uses the netmask of the primary network for all assigned cidrs.
This patch correctly applies the corresponding netmask.
2018-08-07 15:29:38 +05:30
Rohit Yadav
75030e5522 Merge branch '4.11' 2018-08-01 16:37:21 +05:30
ernjvr
4f49bf6770 ui: hide hvm tickbox for vmware, otherwise display (#2781)
On the 'Register Template From URL' screen, when a user selects the VMware option from the Hypervisor dropdown:

It incorrectly displays the 'HVM' checkbox.
This checkbox must be hidden in the VMware context.
This checkbox must still be visible in any other hypervisor context.

To Reproduce:
Go to the 'Register Template From URL' screen by clicking the 'Templates' tab on the lefthand side.
On the 'Templates' screen click the 'Add' button to display the 'Register Template From URL' screen.
On the 'Register Template From URL' screen, select the VMware option from the Hypervisor dropdown:

Actual Behaviour:
It incorrectly displays the 'HVM' checkbox.

Expected behaviour:
This checkbox must be hidden in the VMware context.
This checkbox must still be visible in any other hypervisor context.
2018-08-01 16:36:11 +05:30
Khosrow Moossavi
2be51ac18d appliance: Fix typo in ISO url (#2775) 2018-07-31 13:04:37 +05:30
ernjvr
a32bd464b6 ui: show reset SSH key for VM in running state (#2778)
In the UI, on the Instances screen, the Quickview popup window and the Details window do not display the 'Reset SSH Key Pair' button for VMs in a running state. They only display when the VM is in a stopped state. This is inconsistent with the 'Reset Password' button behaviour, where it displays in both VM states: running and stopped. This fixes the issue so that the 'Reset SSH Key Pair' button also displays in both VM states.

Expected Behaviour:
In the UI, on the Instances screen, the Quickview popup window and the Details window must display the 'Reset SSH Key Pair' button in both VM states: running and stopped. When a user clicks on the 'Reset SSH Key Pair' button and a VM is in a running state, it will display a message "Vm xxx should be stopped to do SSH Key reset".
Actual Behaviour:
In the UI, on the Instances screen, the Quickview popup window and the Details window do not display the 'Reset SSH Key Pair' button for VMs in a running state. It only displays when the VM is in a stopped state.
2018-07-31 13:03:50 +05:30
Kris Sterckx
71bbbb7718 vmware: Fixes #2759 config drive iso path for Vmware (#2769)
Fix config drive iso path on Vmware. Use constant.
2018-07-31 13:00:35 +05:30
Rohit Yadav
c8a980b9cf Merge branch '4.11' 2018-07-26 13:08:41 +05:30
Khosrow Moossavi
52fb426231 systemvm: Update ISO URLs to the latest (#2747)
Update ISO URLs to the latest as the old URLs are broken. Base template updated for Debian 9.5.0.
2018-07-26 13:06:08 +05:30
Rohit Yadav
d64f787b66 Merge branch '4.11' 2018-07-26 13:03:46 +05:30
René Moser
f88d606acb consoleproxy: Fixes #2733 invalid consoleproxy url after upgrade (#2734)
Ensures we have a valid console proxy domain for protocol http even a * setting is used. See #2733
2018-07-26 13:01:23 +05:30
Khosrow Moossavi
1960124819 server: Make HTTP handler of embedded server to be configured (#2762)
This is to have the possibility to completely disable HTTP and only use HTTPS.
2018-07-26 12:59:25 +05:30
Dingane Hlaluku
6156b442dd test: Fix test_deploy_virtio_scsi_vm.py smoke test failures (#2752)
Fix failing test cases and proper resource cleanup
2018-07-26 12:57:39 +05:30
Rohit Yadav
7667846bfa
kvm: Fixes #2763 move post-renewal libvirt restart class suitably (#2764)
This fixes #2763 by moving a post cert-renewal class for kvm
plugin/hypervisor to src/main/java. The regression is due to change
in file-system layout due to maven standard refactoring on master and
issue was not caught during forward-merging of a PR from 4.11 branch.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2018-07-26 12:51:24 +05:30
Khosrow Moossavi
7c6630bca7 Cleanup POMs (#2613)
* Cleaup and code-formatting POM files

* Remove obsolete mycila license-maven-plugin

* Remove obsolete console-proxy/plugin project

* Move console-proxy-rdbconsole under console-proxy parent

* Use correct parent path for rdpconsole

* Order alphabetally items in setnextversion.sh

* Unifiy License header in POMs

* Alphabetic order of modules definition

* Extract all defined versions into parent pom

* Remove obsolete files: version-info.in, configure-info.in

* Remove redundant defaultGoal

* Remove useless checkstyle plugin from checkstyle project

* Order alphabetally items in pom.xml

* Add aditional SPACEs to fix debian build

* Don't execute checkstyle on parent projects

* Use UTF-8 encoding in building checkstyle project

* Extract plugin versions into properties

* Execute PMD plugin on all the projects with -Penablefindbugs

* Upgrade maven plugins to latest version

* Make sure to always look for apache parent pom from repository

* Fix incorrect version grep in debian packaging

* Fix rebase conflicts

* Fix rebase conflicts

* Remove PMD for now to be fixed on another PR
2018-07-25 14:39:37 -03:00
ernjvr
4c66908b1f ui: Fix clicking the previous button to go back to the Physical Network screen in the Add Zone Wizard (#2767)
In the Add Zone Wizard, when a user lands on the Physical Network page, by default the first Physical Network gets initialized with the 3 Traffic Types: Guest, Management and Public. When a user drags the Management or Public Traffic Types from the first Physical Network to a second or nth Physical Network and then clicks the next button to go to the next screen, and then decides to click the previous button to go back to the Physical Network screen, the UI initializes the physicalNetwork again and thus moves these Traffic Types back to their original position in the first Physical Network as if it is the first time the user navigated to this page.
A fix was made so that when a user clicks the previous button to go back to the Physical Network screen, it does not initialize the physicalNetwork again, therefore leaving the user-defined Traffic Type configuration as it was before the next button was clicked.
2018-07-25 22:14:34 +05:30
ernjvr
542d4da16c asyncjobs: add endtime to async jobs (#2739)
There is currently no functional mechanism that captures or persists the end time of when an asynchronous job has finished. As a result, users are not able to do any reporting about the duration of various asynchronous jobs in Cloudstack.
Link to FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Add+End+Time+To+Asynchronous+Jobs
2018-07-25 14:48:01 +05:30
Wido den Hollander
443490179c cleanup: Remove unused variables (#2765)
Found some variables throughout the code which are not being used.
They can be removed.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2018-07-24 21:01:25 -03:00
Rafael Weingärtner
756a7e89cb
Fix limitation on tag matching in 'migrateVolume' with disk offering replacement (#2636)
* Fix limitation on tag matching in 'migrateVolume' with disk offering replacement

When the feature to enable disk offering replacement during volume migration was created, we were forcing the tags of the new disk offering to exact the same as the tags of the target storage poll. However, that is not how ACS manages volumes allocation. This change modifies this validation to make it consistent with volume allocation.

* Address Nitin's suggestions

* Apply Daan's suggestion regarding "doesTargetStorageSupportDiskOffering" method

* fix problem
2018-07-21 07:01:24 -03:00
Marc-Aurèle Brothier
a21ebb1ce8 api: remove empty response parameters (#2751) 2018-07-20 13:38:21 +02:00
Daan Hoogland
c3ff356c15 Merge release branch 4.11 to master
* 4.11:
  register template kvm context ui fix (#2757)
  check volumes for state when retrieving pool for configDrive creation (#2709)
2018-07-20 11:31:53 +00:00
ernjvr
781d6bc051 register template kvm context ui fix (#2757)
On the 'Register Template From URL' screen, when a user selects the KVM option from the Hypervisor dropdown:
1) It incorrectly displays the 'Original XS Version is 6.1' checkbox. This checkbox should be hidden in the KVM context.
2) The 'Root Disk Controller' dropdown should display the default option of 'osdefault' instead of a blank default option.
2018-07-20 09:16:23 +02:00
Wido den Hollander
1ccb32f814 security_group: Use execute() function instead of non-existing bash() (#2732)
In 6233a77d15adde86302a11b2bcda604313833e91 as a part of PR #2432 the
bash() function was replaced by the execute() function.

Somehow this last calling of the bash() function was not caught by testing
and is still in there.

This causes Exceptions to be thrown by the Security Group script.

Signed-off-by: Wido den Hollander <wido@widodh.nl>
2018-07-20 09:07:29 +02:00
Dingane Hlaluku
a6e0204ccc fix provisionCertificate api returns NPE when 'reconnect' parameter is true (#2756)
This PR fixes NPE with the provisionCertificateCmd when reconnect is set to True.

Also fixes the following Marvin test failures:
- test_certauthority_root.py
2018-07-20 09:05:58 +02:00
Rafael Weingärtner
70bd177064
Fix concurrency problem when moving ACL rules with drag&drop (#2703)
There was a concurrency problem with the “moveNetworkAclItem” API method. If two users were changing the ACL rules order at the same time, this could lead to inconsistent actions.
To solve the problem we added a “consistency check ” parameter, which is used to hold the consistency hash. This hash is created using an MD5 hash function on a String that is created with all ACL rules UUIDs concatenated in their order, which is defined via the ‘number’ field.
We also lock the editing of the ACL while executing the upgrade. This allows us to handle race conditions nicely, and present a good feedback for the user.
2018-07-19 12:47:54 -03:00
Dingane Hlaluku
94dedd65f1 Refactor userVmDetailsDao field and remove unusued fields (#2750)
* Refactor userVmDetailsDao field and remove unusued fields

* Setting injected attributes to private instead of protected and amending unit test
2018-07-19 06:53:40 -03:00
dahn
38d0274eb4
check volumes for state when retrieving pool for configDrive creation (#2709)
* only ask for the root volume, removing extensive query

* better name
2018-07-18 13:13:41 +02:00
Mike Tutkowski
99bc0e6677
Merge pull request #2503 from mike-tutkowski/multi-sf-vags
Support multiple volume access groups per compute cluster
2018-07-16 16:39:08 -06:00
Mike Tutkowski
73608dec28 Support multiple volume access groups per compute cluster 2018-07-16 15:13:16 -06:00
Rafael Weingärtner
d0c6cacd06
[CLOUDSTACK-9261] Upgrate jQuery-UI to 1.11 (JQuery UI 1.8.4 prone to XSS) (#2524)
* [CLOUDSTACK-9261] Upgrate jQuery-UI to 1.11 (JQuery UI 1.8.4 prone to XSS)

* fix problems in the UI for lbCertificatePolicy and StaticNAT

* force jenkins build

* Fix about dialog

* Fix position of network service offering
2018-07-16 13:18:55 -03:00
Dingane Hlaluku
40af32b1b9 diagnostics: new diagnostics admin API for system VMs (#2721)
This is a new feature for CS that allows Admin users improved
troubleshooting of network issues in CloudStack hosted networks.

Description: For troubleshooting purposes, CloudStack administrators may wish to execute network utility commands remotely on system VMs, or request system VMs to ping/traceroute/arping to specific addresses over specific interfaces. An API command to provide such functionalities is being developed without altering any existing APIs. The targeted system VMs for this feature are the Virtual Router (VR), Secondary Storage VM (SSVM) and the Console Proxy VM (CPVM).

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+Remote+Diagnostics+API
ML discussion:
https://markmail.org/message/xt7owmb2c6iw7tva
2018-07-13 16:58:45 +05:30
Khosrow Moossavi
07042a67c6 travis: Enhance Travis to do packaging jobs on different stage (#2640)
Two stages are defined in travis job: test and package,
where test runs before package. On package stage we're
going to do the packaging of final artifacts based on
centos7, centos63, ubuntu1804, ubuntu1604 and ubuntu1404.
This is to validate that no PR will break packaging artifacts.
2018-07-13 16:53:29 +05:30
Khosrow Moossavi
4a5fab0573 packaging: Catch error in packaging script and fail the build (#2649)
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. And also
fail the build if something in the script has returned
non-zero value.
2018-07-13 16:47:34 +05:30
Gabriel Beims Bräscher
2936cb3b41 Fix typo in VirtualMachineManagerImpl.java (#2738)
from "cleanued up" to "cleaned up"
2018-07-11 18:12:59 +02:00
Nicolas Vazquez
9fb36e7c73 db: Update Apache DBCP version (#2718)
* Update Apache DBCP version

* Fix DB connection

* Prevent hang on the db creation
2018-07-10 11:53:59 +05:30
Rohit Yadav
fc1874c1c9 Merge branch '4.11' 2018-07-06 17:29:17 +05:30