cloudstack/test/integration/smoke
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
..
misc Adding new test which would verify the fix for issue "The ISO/Template is automatically deleted after URL expires" 2014-10-17 18:04:35 +05:30
__init__.py apply chip childers licensing patches for the test directory 2012-06-26 11:19:58 -04:00
test_accounts.py default teardown methods with reversed() handling (#4289) 2020-11-13 07:56:28 +00:00
test_affinity_groups.py Host Affinity plugin (#2630) 2018-05-21 12:49:08 +05:30
test_affinity_groups_projects.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_async_job.py asyncjobs: add endtime to async jobs (#2739) 2018-07-25 14:48:01 +05:30
test_backup_recovery_dummy.py server: don't export B&R APIs if feature is not enabled globally (#4202) 2020-07-07 18:29:44 +05:30
test_certauthority_root.py Human readable sizes in logs (#4207) 2020-08-13 15:55:16 +05:30
test_create_list_domain_account_project.py master: travis and trillian smoketests fixes and stabilisation (#3476) 2019-07-12 17:27:49 +05:30
test_create_network.py server: Allow creating network with duplicate name (#3807) 2020-01-31 15:52:42 +05:30
test_deploy_vgpu_enabled_vm.py Merge branch '4.9' 2016-10-21 10:15:29 +05:30
test_deploy_virtio_scsi_vm.py default teardown methods with reversed() handling (#4289) 2020-11-13 07:56:28 +00:00
test_deploy_vm_extra_config_data.py packaging: Adding Centos8, Ubuntu 20.04, XCPNG8.1 Support (#4068) 2020-08-17 16:28:30 +05:30
test_deploy_vm_iso.py CLOUDSTACK-10013: Fixes based on code review and test failures 2017-12-23 17:51:42 +05:30
test_deploy_vm_root_resize.py CLOUDSTACK-4757: Support OVA files with multiple disks for templates (#2146) 2018-01-10 22:10:41 +05:30
test_deploy_vm_with_userdata.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_deploy_vms_with_varied_deploymentplanners.py default teardown methods with reversed() handling (#4289) 2020-11-13 07:56:28 +00:00
test_diagnostics.py default teardown methods with reversed() handling (#4289) 2020-11-13 07:56:28 +00:00
test_direct_download.py [KVM] Direct download agnostic of the storage provider (#3828) 2020-03-06 19:56:54 +01:00
test_disk_offerings.py Add cache mode param properly (#3925) 2020-03-09 13:17:21 +01:00
test_domain_disk_offerings.py test: fix test failures due to update*Offering domain, zone overwrite changes 2019-06-26 01:55:54 +05:30
test_domain_network_offerings.py test: fix test failures due to update*Offering domain, zone overwrite changes 2019-06-26 01:55:54 +05:30
test_domain_service_offerings.py test: fix test failures due to update*Offering domain, zone overwrite changes 2019-06-26 01:55:54 +05:30
test_domain_vpc_offerings.py test: fix test failures due to update*Offering domain, zone overwrite changes 2019-06-26 01:55:54 +05:30
test_dynamicroles.py server: Dynamic roles improvements. Add-on functionality below. (#4071) 2020-07-07 10:56:43 +05:30
test_enable_role_based_users_in_projects.py projects: Role based users in Projects (#4128) 2020-08-13 15:45:39 +05:30
test_global_settings.py Incorrect param name caused global setting test to fail (#3821) 2020-01-24 14:31:27 +01:00
test_guest_vlan_range.py Re-enabling fixed test cases 2014-06-25 18:02:04 +05:30
test_host_annotations.py CLOUDSTACK-10154: fixing some smoketests failures (#2335) 2017-11-28 09:55:35 +05:30
test_host_maintenance.py packaging: Adding Centos8, Ubuntu 20.04, XCPNG8.1 Support (#4068) 2020-08-17 16:28:30 +05:30
test_hostha_kvm.py tests: fix some Marvin smoketests (#2869) 2019-03-26 15:33:40 +05:30
test_hostha_simulator.py CLOUDSTACK-10253: JSON response for SuccessResponse as boolean instead of string (#2428) 2018-04-27 21:07:51 -03:00
test_human_readable_logs.py Changed test failure to warning (#4264) 2020-08-25 15:29:59 +05:30
test_internal_lb.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_iso.py api: Allow password enabled for iso (#2745) (#3042) 2018-11-28 00:09:20 +05:30
test_kubernetes_clusters.py Including instance details in KubernetesClusterResponse (#4420) 2020-10-27 14:44:44 +01:00
test_kubernetes_supported_versions.py cks: assorted fixes, test refactoring (#4269) 2020-09-29 14:31:41 +05:30
test_list_ids_parameter.py CLOUDSTACK-10013: Fix VMware related issues and fix misc tests 2017-12-23 09:22:44 +05:30
test_loadbalance.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_login.py CLOUDSTACK-9369: Restrict default login to ldap/native users 2016-05-27 15:00:05 -04:00
test_metrics_api.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_migration.py test: Skip network migration tests for not supported hypervisors (#3021) 2018-11-14 15:04:08 +05:30
test_multipleips_per_nic.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_nested_virtualization.py Fix remove VM and its volumes for deploy-as-is if have previously failed - restore cpu flags in nested virtualization test 2020-10-19 15:05:58 +05:30
test_network.py marvin: Bypass tests on Simulator (#4712) 2021-02-22 13:29:27 +05:30
test_network_acl.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_nic.py packaging: Adding Centos8, Ubuntu 20.04, XCPNG8.1 Support (#4068) 2020-08-17 16:28:30 +05:30
test_nic_adapter_type.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_non_contigiousvlan.py CLOUDSTACK-9522: Check for available attribute in marvin response 2016-10-05 15:11:00 +05:30
test_outofbandmanagement.py CLOUDSTACK-9782: New Background Polling Task Manager (#2218) 2017-08-03 11:53:45 +02:00
test_outofbandmanagement_nestedplugin.py CLOUDSTACK-9782: Nested-oobm CloudStack plugin 2017-08-30 18:06:48 +02:00
test_over_provisioning.py CLOUDSTACK-6914: Fixed the mentioned issue 2014-06-17 14:26:44 +05:30
test_password_server.py CLOUDSTACK-10013: Fixes based on code review and test failures 2017-12-23 17:51:42 +05:30
test_portable_publicip.py CLOUDSTACK-6914: Fixed the mentioned issue 2014-06-17 14:26:44 +05:30
test_portforwardingrules.py IP address acquired with associate ip address is marked as source nat (#3125) 2019-01-23 10:05:16 -02:00
test_primary_storage.py packaging: Adding Centos8, Ubuntu 20.04, XCPNG8.1 Support (#4068) 2020-08-17 16:28:30 +05:30
test_privategw_acl.py vpc: add bypassvlanoverlapcheck parameter when create private g… (#3899) 2020-02-23 21:21:08 +00:00
test_projects.py cleanup for resources left by test_accounts and test_project(#3657) 2020-03-09 12:19:37 +01:00
test_public_ip_range.py cloudstack: add JDK11 support (#3601) 2020-02-12 12:58:25 +05:30
test_pvlan.py test: Changing test_pvlan vlan id to prevent conflict with env config (#4340) 2020-09-29 10:58:00 +05:30
test_regions.py CLOUDSTACK-9989: Extend smoketests suite (#2219) 2017-11-22 17:06:22 +05:30
test_reset_vm_on_reboot.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_resource_accounting.py CLOUDSTACK-3009: Fix resource calculation CPU, RAM for accounts. (#3012) 2018-11-13 06:29:08 +05:30
test_resource_detail.py CLOUDSTACK-6914: Fixed the mentioned issue 2014-06-17 14:26:44 +05:30
test_router_dhcphosts.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_router_dns.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_router_dnsservice.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_routers.py default teardown methods with reversed() handling (#4289) 2020-11-13 07:56:28 +00:00
test_routers_iptables_default_policy.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_routers_network_ops.py CLOUDSTACK-10193: Fix smoke tests failures with new systemvmtemplate 2017-12-23 09:22:44 +05:30
test_scale_vm.py tests: Adding a try catch for Xen licensing issue (#3061) 2018-11-28 16:37:14 +05:30
test_secondary_storage.py server: Secondary Storage Usage Improvements (#4053) 2020-09-17 10:12:10 +05:30
test_service_offerings.py storage: New Dell EMC PowerFlex Plugin (formerly ScaleIO, VxFlexOS) (#4304) 2021-02-24 14:58:33 +05:30
test_snapshots.py kvm: live storage migration intra cluster from NFS source and destination (#2983) 2019-06-10 15:35:26 +05:30
test_ssvm.py test: Increase wait time before running the ssvm health check script on SSVM reboot (#4312) 2020-09-15 13:25:19 +05:30
test_staticroles.py CLOUDSTACK-10012: Migrate to Embedded Jetty 2017-11-03 23:57:25 +05:30
test_storage_policy.py Fix storage policy smoke test 2020-10-26 09:45:01 -03:00
test_templates.py test: fix checksums for test template (#4655) 2021-02-05 15:56:54 +05:30
test_update_security_group.py server: Add new command to update security group name (#3739) 2020-02-19 13:09:52 +05:30
test_usage.py packaging: Adding Centos8, Ubuntu 20.04, XCPNG8.1 Support (#4068) 2020-08-17 16:28:30 +05:30
test_usage_events.py CLOUDSTACK-8314: Add test case to validate VM.DESTROY event is logged when VM deployment fails 2015-03-12 16:43:08 +05:30
test_vm_deployment_planner.py server: Add support for new heuristics based VM Deployement for admins (#3454) 2019-07-13 12:52:48 +05:30
test_vm_life_cycle.py [VMware] Full OVF properties support 2020-10-19 15:05:56 +05:30
test_vm_snapshots.py storage: New Dell EMC PowerFlex Plugin (formerly ScaleIO, VxFlexOS) (#4304) 2021-02-24 14:58:33 +05:30
test_volumes.py packaging: Adding Centos8, Ubuntu 20.04, XCPNG8.1 Support (#4068) 2020-08-17 16:28:30 +05:30
test_vpc_redundant.py vpc: reuse private gateway ip for non redundant VPC (#2712) 2018-06-21 15:06:50 +05:30
test_vpc_router_nics.py vpc: reuse private gateway ip for non redundant VPC (#2712) 2018-06-21 15:06:50 +05:30
test_vpc_vpn.py default teardown methods with reversed() handling (#4289) 2020-11-13 07:56:28 +00:00