Commit Graph

2028 Commits

Author SHA1 Message Date
Daan Hoogland 25fb029cec remove superfluent arg 2021-03-12 09:53:49 +01:00
Daan Hoogland bc09184a46 clean up VMs 2021-03-12 08:38:28 +01:00
Daan Hoogland 14e7e87840 more cleanup for test_accounts 2021-03-10 14:53:43 +01:00
Daan Hoogland 8705a1fd90 syntax (suerfluent '.') 2021-03-10 14:53:43 +01:00
Daan Hoogland 406c069d3c no importing of False in python3 (or in sensible code) 2021-03-10 14:53:43 +01:00
Daan Hoogland 6e2c4d2e5d cleanup fir ip tests 2021-03-10 14:53:43 +01:00
Daan Hoogland 7f4fa433c6 format and cleanup internal lb tests 2021-03-10 14:53:43 +01:00
Daan Hoogland 3f24df8f71 cleanup hygiene 2021-03-10 14:53:43 +01:00
Daan Hoogland d5cba7507d further cleanup of resource heavy test 2021-03-10 14:53:43 +01:00
Daan Hoogland 76d67d1d8a test tag removed 2021-03-10 14:53:43 +01:00
Daan Hoogland 3265df3f6c cleanup imports 2021-03-10 14:53:43 +01:00
Daan Hoogland c5b028add0 cleanup, indent, taberrors 2021-03-10 14:53:43 +01:00
Daan Hoogland 0fa8e7131b another indentation issue identified 2021-03-10 14:53:43 +01:00
Daan Hoogland cddd321b75 another network for cleanup 2021-03-10 14:53:43 +01:00
Daan Hoogland 587c8acd76 cleanup incosistent passing test 2021-03-10 14:53:43 +01:00
Daan Hoogland 9d21efd33d rigorous cleanup discipline 2021-03-10 14:53:43 +01:00
Daan Hoogland 5d25d49957 cleanup and indentation 2021-03-10 14:53:43 +01:00
Daan Hoogland 82ffd02664 artifact tag removed 2021-03-10 14:53:42 +01:00
Daan Hoogland 64c453823a message attribute not available on exception 2021-03-10 14:53:42 +01:00
Daan Hoogland dd1f3ae959 endodestring can't consume a string, needs bytes 2021-03-10 14:53:42 +01:00
Daan Hoogland d4432d4259 remove false copy-block 2021-03-10 14:53:42 +01:00
Daan Hoogland 73f5ff207b encodestring() instead of b64encode() 2021-03-10 14:53:42 +01:00
Daan Hoogland d17360cf83 cleanup and fix autoindent issues 2021-03-10 14:53:42 +01:00
Daan Hoogland 56b5912bb6 skip lifemigration for centos 2021-03-10 14:53:42 +01:00
Daan Hoogland d816774308 reformat because of indentation problems 2021-03-10 14:53:42 +01:00
Daan Hoogland 88b4229fda cleanup and feedback from internal version 2021-03-10 14:53:42 +01:00
Daan Hoogland ec13d7870f retries on ssh verification 2021-03-10 14:53:42 +01:00
Daan Hoogland 193f6e5425 redundant braces removed 2021-03-10 14:53:42 +01:00
Daan Hoogland 95a7a4bd74 cleanup 2021-03-10 14:53:42 +01:00
Daan Hoogland e86d43d292 cleanup of setup() (not sure why this would help) 2021-03-10 14:53:42 +01:00
Daan Hoogland 07cc2a57bb socketserver take bytes 2021-03-10 14:53:42 +01:00
Daan Hoogland 1bbec8232c inherritics 2021-03-10 14:53:42 +01:00
Daan Hoogland b351ff52ca exception assert fix 2021-03-10 14:53:42 +01:00
Daan Hoogland 4b1dfd137c remove superfluent parentesis 2021-03-10 14:53:41 +01:00
Daan Hoogland d496385139 str() when str() due 2021-03-10 14:53:41 +01:00
Daan Hoogland 90489813f5 unittest method rename assertItemEqual to assertCountEqual 2021-03-10 14:53:41 +01:00
Daan Hoogland 1191804f0b start on tabs in component tests :'( 2021-03-10 14:53:41 +01:00
Daan Hoogland e5197fcba7 certificates as bytes arrays 2021-03-10 14:53:41 +01:00
Daan Hoogland 093135473e fix tags on test 2021-03-10 14:53:41 +01:00
Daan Hoogland 182991c0ba channel result decode 2021-03-10 14:53:41 +01:00
Daan Hoogland 36f9a97b3e remove redundant member value 2021-03-10 14:53:40 +01:00
Daan Hoogland b210eacb03 expect explicit exception 2021-03-10 14:53:40 +01:00
Daan Hoogland 657c43135f explicit import of unittest 2021-03-10 14:53:40 +01:00
Daan Hoogland 6819c237c0 2to3tests 2021-03-10 14:53:40 +01:00
sureshanaparti 81dfcbb5f5
server: Use ACPI event to reboot VM on KVM, and Use 'forced' reboot option to stop and start the VM(s) (#4681)
* Updated libvirt's native reboot operation for VM on KVM using ACPI event, and Added 'forced' reboot option to stop and start the VM (using rebootVirtualMachine API)

* Added 'forced' reboot option for System VM and Router

- New parameter 'forced' in rebootSystemVm API, to stop and then start System VM
- New parameter 'forced' in rebootRouter API, to force stop and then start Router

* Added force reboot tests for User VM, System VM and Router
2021-03-06 14:58:56 +05:30
sureshanaparti eba186aa40
storage: New Dell EMC PowerFlex Plugin (formerly ScaleIO, VxFlexOS) (#4304)
Added support for PowerFlex/ScaleIO (v3.5 onwards) storage pool as a primary storage in CloudStack (for KVM hypervisor) and enabled VM/Volume operations on that pool (using pool tag).
Please find more details in the FS here:
https://cwiki.apache.org/confluence/x/cDl4CQ

Documentation PR: apache/cloudstack-documentation#169

This enables support for PowerFlex/ScaleIO (v3.5 onwards) storage pool as a primary storage in CloudStack

Other improvements addressed in addition to PowerFlex/ScaleIO support:

- Added support for config drives in host cache for KVM
	=> Changed configuration "vm.configdrive.primarypool.enabled" scope from Global to Zone level
	=> Introduced new zone level configuration "vm.configdrive.force.host.cache.use" (default: false) to force host cache for config drives
	=> Introduced new zone level configuration "vm.configdrive.use.host.cache.on.unsupported.pool" (default: true) to use host cache for config drives when storage pool doesn't support config drive
	=> Added new parameter "host.cache.location" (default: /var/cache/cloud) in KVM agent.properties for specifying the host cache path and create config drives on the "/config" directory on the host cache path
	=> Maintain the config drive location and use it when required on any config drive operation (migrate, delete)

- Detect virtual size from the template URL while registering direct download qcow2 (of KVM hypervisor) templates

- Updated full deployment destination for preparing the network(s) on VM start

- Propagate the direct download certificates uploaded to the newly added KVM hosts

- Discover the template size for direct download templates using any available host from the zones specified on template registration
	=> When zones are not specified while registering template, template size discovery is performed using any available host, which is picked up randomly from one of the available zones

- Release the VM resources when VM is sync-ed to Stopped state on PowerReportMissing (after graceful period)

- Retry VM deployment/start when the host cannot grant access to volume/template

- Mark never-used or downloaded templates as Destroyed on deletion, without sending any DeleteCommand
	=> Do not trigger any DeleteCommand for never-used or downloaded templates as these doesn't exist and cannot be deleted from the datastore

- Check the router filesystem is writable or not, before performing health checks
	=> Introduce a new test "filesystem.writable.test" to check the filesystem is writable or not
	=> The router health checks keeps the config info at "/var/cache/cloud" and updates the monitor results at "/root" for health checks, both are different partitions. So, test at both the locations.
	=> Added new script: "filesystem_writable_check.py" at /opt/cloud/bin/ to check the filesystem is writable or not

- Fixed NPE issue, template is null for DATA disks. Copy template to target storage for ROOT disk (with template id), skip DATA disk(s)

* Addressed some issues for few operations on PowerFlex storage pool.

- Updated migration volume operation to sync the status and wait for migration to complete.

- Updated VM Snapshot naming, for uniqueness in ScaleIO volume name when more than one volume exists in the VM.

- Added sync lock while spooling managed storage template before volume creation from the template (non-direct download).

- Updated resize volume error message string.

- Blocked the below operations on PowerFlex storage pool:
  -> Extract Volume
  -> Create Snapshot for VMSnapshot

* Added the PowerFlex/ScaleIO client connection pool to manage the ScaleIO gateway clients, which uses a single gateway client per Powerflex/ScaleIO storage pool and renews it when the session token expires.

- The token is valid for 8 hours from the time it was created, unless there has been no activity for 10 minutes.
  Reference: https://cpsdocs.dellemc.com/bundle/PF_REST_API_RG/page/GUID-92430F19-9F44-42B6-B898-87D5307AE59B.html

Other fixes included:

- Fail the VM deployment when the host specified in the deployVirtualMachine cmd is not in the right state (i.e. either Resource State is not Enabled or Status is not Up)

- Use the physical file size of the template to check the free space availability on the host, while downloading the direct download templates.

- Perform basic tests (for connectivity and file system) on router before updating the health check config data
	=> Validate the basic tests (connectivity and file system check) on router
	=> Cleanup the health check results when router is destroyed

* Updated PowerFlex/ScaleIO storage plugin version to 4.16.0.0

* UI Changes to support storage plugin for PowerFlex/ScaleIO storage pool.
- PowerFlex pool URL generated from the UI inputs(Gateway, Username, Password, Storage Pool) when adding "PowerFlex" Primary Storage
- Updated protocol to "custom" for PowerFlex provider
- Allow VM Snapshot for stopped VM on KVM hypervisor and PowerFlex/ScaleIO storage pool

and Minor improvements in PowerFlex/ScaleIO storage plugin code

* Added support for PowerFlex/ScaleIO volume migration across different PowerFlex storage instances.

- findStoragePoolsForMigration API returns PowerFlex pool(s) of different instance as suitable pool(s), for volume(s) on PowerFlex storage pool.
- Volume(s) with snapshots are not allowed to migrate to different PowerFlex instance.
- Volume(s) of running VM are not allowed to migrate to other PowerFlex storage pools.
- Volume migration from PowerFlex pool to Non-PowerFlex pool, and vice versa are not supported.

* Fixed change service offering smoke tests in test_service_offerings.py, test_vm_snapshots.py

* Added the PowerFlex/ScaleIO volume/snapshot name to the paths of respective CloudStack resources (Templates, Volumes, Snapshots and VM Snapshots)

* Added new response parameter “supportsStorageSnapshot” (true/false) to volume response, and Updated UI to hide the async backup option while taking snapshot for volume(s) with storage snapshot support.

* Fix to remove the duplicate zone wide pools listed while finding storage pools for migration

* Updated PowerFlex/ScaleIO volume migration checks and rollback migration on failure

* Fixed the PowerFlex/ScaleIO volume name inconsistency issue in the volume path after migration, due to rename failure
2021-02-24 14:58:33 +05:30
Pearl Dsilva 97e97c34f2
marvin: Bypass tests on Simulator (#4712)
Co-authored-by: Pearl Dsilva <pearl.dsilva@shapeblue.com>
2021-02-22 13:29:27 +05:30
Pearl Dsilva aa01580381
network: Specify IP for VR in shared networks (#4503)
This PR enables admins to specify IP for a VR in a shared network.
2021-02-18 13:54:09 +05:30
Abhishek Kumar d6e8b53736
vmware: vm migration improvements (#4385)
- Fixes inter-cluster migration of VMs
- Allows migration of stopped VM with disks attached to different and suitable pools
- Improves inter-cluster detached volume migration
- Allows inter-cluster migration (clusters of same Pod) for system VMs, VRs on VMware
- Allows storage migration for stopped system VMs, VRs on VMware within same Pod if StoragePool cluster scopetype

Linked Primate PR: https://github.com/apache/cloudstack-primate/pull/789 [Changes merged in this PR after new UI merge]
Documentation PR: https://github.com/apache/cloudstack-documentation/pull/170

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
2021-02-12 12:41:41 +05:30
Rohit Yadav f5a44b3502 Merge remote-tracking branch 'origin/4.14' into 4.15 2021-02-05 18:28:02 +05:30