Skip to content

CLOUDSTACK-8239 Add VirtIO SCSI support for KVM hosts - #1955

Merged
karuturi merged 1 commit into
apache:masterfrom
myENA:virtio-scsi
Apr 20, 2017
Merged

CLOUDSTACK-8239 Add VirtIO SCSI support for KVM hosts#1955
karuturi merged 1 commit into
apache:masterfrom
myENA:virtio-scsi

Conversation

@nathanejohnson

Copy link
Copy Markdown
Member

This is an initial implementation that we have working in the lab.

devmanagerscreenshot
spanned_sceenshot

win_virtio_scsi.xml.zip

@wido@syed Would love to get some feedback on this approach.

@kiwiflyer

Copy link
Copy Markdown
Contributor

@remibergsma@ustcweizhou This might be of interest to you guys as well.

@remibergsma

remibergsma commented Feb 20, 2017

Copy link
Copy Markdown
Contributor

Nice work @kiwiflyer@nathanejohnson, thanks! Will give it a go soon.

@wido

wido commented Feb 21, 2017

Copy link
Copy Markdown
Contributor

Very nice indeed! I will take a look asap.

@dmabry

Copy link
Copy Markdown
Contributor

We are deploying this to our QA environment right now and hope to have it tested in a few days. Great work @kiwiflyer and @nathanejohnson.

@borisstoyanov

Copy link
Copy Markdown
Contributor

Thanks for this PR @nathanejohnson, I will build it and run smoketests agains it.
@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-522

@borisstoyanov

Copy link
Copy Markdown
Contributor

@blueorangutan test

@blueorangutan

Copy link
Copy Markdown

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan

Copy link
Copy Markdown

Trillian test result (tid-878)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 32944 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1955-t878-kvm-centos7.zip
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_snapshots.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Test completed. 47 look ok, 2 have error(s)

TestResultTime (s)Test File
test_04_rvpc_privategw_static_routesFailure329.25test_privategw_acl.py
test_02_list_snapshots_with_removed_data_storeError0.03test_snapshots.py
test_01_vpc_site2site_vpnSuccess164.34test_vpc_vpn.py
test_01_vpc_remote_access_vpnSuccess70.82test_vpc_vpn.py
test_01_redundant_vpc_site2site_vpnSuccess270.12test_vpc_vpn.py
test_02_VPC_default_routesSuccess288.94test_vpc_router_nics.py
test_01_VPC_nics_after_destroySuccess511.96test_vpc_router_nics.py
test_05_rvpc_multi_tiersSuccess515.21test_vpc_redundant.py
test_04_rvpc_network_garbage_collector_nicsSuccess1413.54test_vpc_redundant.py
test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routersSuccess557.28test_vpc_redundant.py
test_02_redundant_VPC_default_routesSuccess743.95test_vpc_redundant.py
test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACLSuccess1282.32test_vpc_redundant.py
test_09_delete_detached_volumeSuccess156.30test_volumes.py
test_08_resize_volumeSuccess151.31test_volumes.py
test_07_resize_failSuccess161.21test_volumes.py
test_06_download_detached_volumeSuccess156.04test_volumes.py
test_05_detach_volumeSuccess155.69test_volumes.py
test_04_delete_attached_volumeSuccess151.00test_volumes.py
test_03_download_attached_volumeSuccess156.04test_volumes.py
test_02_attach_volumeSuccess124.19test_volumes.py
test_01_create_volumeSuccess724.31test_volumes.py
test_03_delete_vm_snapshotsSuccess275.70test_vm_snapshots.py
test_02_revert_vm_snapshotsSuccess95.60test_vm_snapshots.py
test_01_create_vm_snapshotsSuccess166.79test_vm_snapshots.py
test_deploy_vm_multipleSuccess257.28test_vm_life_cycle.py
test_deploy_vmSuccess0.02test_vm_life_cycle.py
test_advZoneVirtualRouterSuccess0.02test_vm_life_cycle.py
test_10_attachAndDetach_isoSuccess26.57test_vm_life_cycle.py
test_09_expunge_vmSuccess125.21test_vm_life_cycle.py
test_08_migrate_vmSuccess41.07test_vm_life_cycle.py
test_07_restore_vmSuccess0.10test_vm_life_cycle.py
test_06_destroy_vmSuccess125.79test_vm_life_cycle.py
test_03_reboot_vmSuccess125.68test_vm_life_cycle.py
test_02_start_vmSuccess10.13test_vm_life_cycle.py
test_01_stop_vmSuccess40.37test_vm_life_cycle.py
test_CreateTemplateWithDuplicateNameSuccess60.62test_templates.py
test_08_list_system_templatesSuccess0.02test_templates.py
test_07_list_public_templatesSuccess0.03test_templates.py
test_05_template_permissionsSuccess0.04test_templates.py
test_04_extract_templateSuccess5.13test_templates.py
test_03_delete_templateSuccess5.08test_templates.py
test_02_edit_templateSuccess90.14test_templates.py
test_01_create_templateSuccess25.28test_templates.py
test_10_destroy_cpvmSuccess161.61test_ssvm.py
test_09_destroy_ssvmSuccess163.57test_ssvm.py
test_08_reboot_cpvmSuccess101.43test_ssvm.py
test_07_reboot_ssvmSuccess133.41test_ssvm.py
test_06_stop_cpvmSuccess131.63test_ssvm.py
test_05_stop_ssvmSuccess134.59test_ssvm.py
test_04_cpvm_internalsSuccess1.17test_ssvm.py
test_03_ssvm_internalsSuccess3.70test_ssvm.py
test_02_list_cpvm_vmSuccess0.09test_ssvm.py
test_01_list_sec_storage_vmSuccess0.09test_ssvm.py
test_01_snapshot_root_diskSuccess10.93test_snapshots.py
test_04_change_offering_smallSuccess239.36test_service_offerings.py
test_03_delete_service_offeringSuccess0.06test_service_offerings.py
test_02_edit_service_offeringSuccess0.04test_service_offerings.py
test_01_create_service_offeringSuccess0.09test_service_offerings.py
test_02_sys_template_readySuccess0.09test_secondary_storage.py
test_01_sys_vm_startSuccess0.12test_secondary_storage.py
test_09_reboot_routerSuccess35.26test_routers.py
test_08_start_routerSuccess30.22test_routers.py
test_07_stop_routerSuccess10.12test_routers.py
test_06_router_advancedSuccess0.07test_routers.py
test_05_router_basicSuccess0.03test_routers.py
test_04_restart_network_wo_cleanupSuccess5.68test_routers.py
test_03_restart_network_cleanupSuccess60.39test_routers.py
test_02_router_internal_advSuccess1.11test_routers.py
test_01_router_internal_basicSuccess0.60test_routers.py
test_router_dns_guestipquerySuccess76.68test_router_dns.py
test_router_dns_externalipquerySuccess0.06test_router_dns.py
test_router_dhcphostsSuccess277.57test_router_dhcphosts.py
test_router_dhcp_optsSuccess21.63test_router_dhcphosts.py
test_01_updatevolumedetailSuccess0.05test_resource_detail.py
test_01_reset_vm_on_rebootSuccess145.78test_reset_vm_on_reboot.py
test_createRegionSuccess0.03test_regions.py
test_create_pvlan_networkSuccess5.16test_pvlan.py
test_dedicatePublicIpRangeSuccess0.30test_public_ip_range.py
test_03_vpc_privategw_restart_vpc_cleanupSuccess473.41test_privategw_acl.py
test_02_vpc_privategw_static_routesSuccess369.24test_privategw_acl.py
test_01_vpc_privategw_aclSuccess91.58test_privategw_acl.py
test_01_primary_storage_nfsSuccess35.77test_primary_storage.py
test_createPortablePublicIPRangeSuccess15.26test_portable_publicip.py
test_createPortablePublicIPAcquireSuccess15.31test_portable_publicip.py
test_isolate_network_password_serverSuccess89.39test_password_server.py
test_UpdateStorageOverProvisioningFactorSuccess0.16test_over_provisioning.py
test_oobm_zchange_passwordSuccess30.57test_outofbandmanagement.py
test_oobm_multiple_mgmt_server_ownershipSuccess16.28test_outofbandmanagement.py
test_oobm_issue_power_statusSuccess10.25test_outofbandmanagement.py
test_oobm_issue_power_softSuccess15.30test_outofbandmanagement.py
test_oobm_issue_power_resetSuccess15.25test_outofbandmanagement.py
test_oobm_issue_power_onSuccess15.24test_outofbandmanagement.py
test_oobm_issue_power_offSuccess15.34test_outofbandmanagement.py
test_oobm_issue_power_cycleSuccess15.34test_outofbandmanagement.py
test_oobm_enabledisable_across_clusterzonesSuccess87.36test_outofbandmanagement.py
test_oobm_enable_feature_validSuccess0.12test_outofbandmanagement.py
test_oobm_enable_feature_invalidSuccess0.11test_outofbandmanagement.py
test_oobm_disable_feature_validSuccess5.23test_outofbandmanagement.py
test_oobm_disable_feature_invalidSuccess0.30test_outofbandmanagement.py
test_oobm_configure_invalid_driverSuccess0.12test_outofbandmanagement.py
test_oobm_configure_default_driverSuccess0.19test_outofbandmanagement.py
test_oobm_background_powerstate_syncSuccess18.38test_outofbandmanagement.py
test_extendPhysicalNetworkVlanSuccess15.53test_non_contigiousvlan.py
test_01_nicSuccess438.67test_nic.py
test_releaseIPSuccess162.20test_network.py
test_reboot_routerSuccess403.23test_network.py
test_public_ip_user_accountSuccess10.19test_network.py
test_public_ip_admin_accountSuccess40.22test_network.py
test_network_rules_acquired_public_ip_3_Load_Balancer_RuleSuccess66.78test_network.py
test_network_rules_acquired_public_ip_2_nat_ruleSuccess61.67test_network.py
test_network_rules_acquired_public_ip_1_static_nat_ruleSuccess124.08test_network.py
test_delete_accountSuccess287.22test_network.py
test_02_port_fwd_on_non_src_natSuccess55.52test_network.py
test_01_port_fwd_on_src_natSuccess111.62test_network.py
test_nic_secondaryip_add_removeSuccess201.82test_multipleips_per_nic.py
login_test_saml_userSuccess17.84test_login.py
test_assign_and_removal_lbSuccess133.27test_loadbalance.py
test_02_create_lb_rule_non_natSuccess187.08test_loadbalance.py
test_01_create_lb_rule_src_natSuccess227.66test_loadbalance.py
test_03_list_snapshotsSuccess0.04test_list_ids_parameter.py
test_02_list_templatesSuccess0.03test_list_ids_parameter.py
test_01_list_volumesSuccess0.02test_list_ids_parameter.py
test_07_list_default_isoSuccess0.04test_iso.py
test_05_iso_permissionsSuccess0.04test_iso.py
test_04_extract_IsoSuccess5.12test_iso.py
test_03_delete_isoSuccess95.12test_iso.py
test_02_edit_isoSuccess0.04test_iso.py
test_01_create_isoSuccess20.68test_iso.py
test_04_rvpc_internallb_haproxy_stats_on_all_interfacesSuccess192.96test_internal_lb.py
test_03_vpc_internallb_haproxy_stats_on_all_interfacesSuccess147.77test_internal_lb.py
test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80Success514.39test_internal_lb.py
test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80Success428.47test_internal_lb.py
test_dedicateGuestVlanRangeSuccess10.20test_guest_vlan_range.py
test_UpdateConfigParamWithScopeSuccess0.09test_global_settings.py
test_rolepermission_lifecycle_updateSuccess5.96test_dynamicroles.py
test_rolepermission_lifecycle_listSuccess5.66test_dynamicroles.py
test_rolepermission_lifecycle_deleteSuccess5.58test_dynamicroles.py
test_rolepermission_lifecycle_createSuccess5.59test_dynamicroles.py
test_rolepermission_lifecycle_concurrent_updatesSuccess5.67test_dynamicroles.py
test_role_lifecycle_update_role_inuseSuccess5.61test_dynamicroles.py
test_role_lifecycle_updateSuccess10.66test_dynamicroles.py
test_role_lifecycle_listSuccess5.60test_dynamicroles.py
test_role_lifecycle_deleteSuccess5.60test_dynamicroles.py
test_role_lifecycle_createSuccess5.60test_dynamicroles.py
test_role_inuse_deletionSuccess5.60test_dynamicroles.py
test_role_account_acls_multiple_mgmt_serversSuccess7.12test_dynamicroles.py
test_role_account_aclsSuccess7.01test_dynamicroles.py
test_default_role_deletionSuccess5.66test_dynamicroles.py
test_04_create_fat_type_disk_offeringSuccess0.05test_disk_offerings.py
test_03_delete_disk_offeringSuccess0.03test_disk_offerings.py
test_02_edit_disk_offeringSuccess0.03test_disk_offerings.py
test_02_create_sparse_type_disk_offeringSuccess0.05test_disk_offerings.py
test_01_create_disk_offeringSuccess0.08test_disk_offerings.py
test_deployvm_userdispersingSuccess20.40test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_userconcentratedSuccess30.45test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_firstfitSuccess50.45test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_userdata_postSuccess20.34test_deploy_vm_with_userdata.py
test_deployvm_userdataSuccess50.53test_deploy_vm_with_userdata.py
test_02_deploy_vm_root_resizeSuccess6.00test_deploy_vm_root_resize.py
test_01_deploy_vm_root_resizeSuccess5.70test_deploy_vm_root_resize.py
test_00_deploy_vm_root_resizeSuccess206.91test_deploy_vm_root_resize.py
test_deploy_vm_from_isoSuccess207.03test_deploy_vm_iso.py
test_DeployVmAntiAffinityGroupSuccess66.01test_affinity_groups.py
test_change_service_offering_for_vm_with_snapshotsSkipped0.00test_vm_snapshots.py
test_01_test_vm_volume_snapshotSkipped0.00test_vm_snapshots.py
test_06_copy_templateSkipped0.00test_templates.py
test_static_role_account_aclsSkipped0.02test_staticroles.py
test_11_ss_nfs_version_on_ssvmSkipped0.02test_ssvm.py
test_01_scale_vmSkipped0.00test_scale_vm.py
test_01_primary_storage_iscsiSkipped0.03test_primary_storage.py
test_nested_virtualization_vmwareSkipped0.00test_nested_virtualization.py
test_06_copy_isoSkipped0.00test_iso.py
test_deploy_vgpu_enabled_vmSkipped0.02test_deploy_vgpu_enabled_vm.py
test_3d_gpu_supportSkipped0.03test_deploy_vgpu_enabled_vm.py

@borisstoyanov

Copy link
Copy Markdown
Contributor

@nathanejohnson Thanks, for this good enhancement. Can we have a marvin tests that covers the new functionality?

if (getGuestDiskModel(vmTO.getPlatformEmulator()) == DiskDef.DiskBus.SCSI) {
final SCSIDef sd = new SCSIDef((short)0, 0, 0, 9, 0);
devices.addDevice(sd);
s_logger.debug("Adding scsi definition:\n" + sd.toString());

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might want to include the name of the VM here as well? And SCSI is written in upper-case.


if (diskBusType == null) {
diskBusType = getGuestDiskModel(vmSpec.getPlatformEmulator());
s_logger.debug("disk bus type derived from getPlatformEmulator: " + vmSpec.getPlatformEmulator() + ", diskbustype is: "+diskBusType.toString());

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, please add the name of the VM

}
}

s_logger.debug("Adding disk: " + disk.toString());

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, please include the name of the VM

Also, do we really need all these logging lines?

@nathanejohnson

Copy link
Copy Markdown
MemberAuthor

As an update, I'm working on a Marvin test, and I'm also planning to address wido's concerns. Today had many distractions unfortunately.

@borisstoyanov

Copy link
Copy Markdown
Contributor

@nathanejohnson thank you, let me know when you're done with the changes so I could kick in smoke tests.

@nathanejohnson
nathanejohnsonforce-pushed the virtio-scsi branch 3 times, most recently from e6bef28 to 29f83e6CompareMarch 1, 2017 15:07
@nathanejohnson

nathanejohnson commented Mar 1, 2017

Copy link
Copy Markdown
MemberAuthor

@wido I have removed the extraneous log messages.

@borisstoyanov I have added a smoke test for this that tests both virsh output from the host and lspci / lsblk output from the guest. Here is the output from me running this in a bubble:

Test that libvirt properly created domain with scsi controller ... === TestName: test_01_verify_libvirt | Status : SUCCESS ===
ok
Verify that libvirt settings are as expected after a VM stop / start ... === TestName: test_02_verify_libvirt_after_restart | Status : SUCCESS ===
ok
Verify that libvirt settings are expected after a disk add ... === TestName: test_03_verify_libvirt_attach_disk | Status : SUCCESS ===
ok
Verify that guest sees scsi controller and disks ... === TestName: test_04_verify_guest_lspci | Status : SUCCESS ===
ok
----------------------------------------------------------------------
Ran 4 tests in 658.770s
OK

@nathanejohnson
nathanejohnsonforce-pushed the virtio-scsi branch 2 times, most recently from 91a7f13 to 708a1cfCompareMarch 1, 2017 17:20
@borisstoyanov

Copy link
Copy Markdown
Contributor

Thanks @nathanejohnson, lets run that with BO
@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-552

@borisstoyanov

Copy link
Copy Markdown
Contributor

@blueorangutan test

@blueorangutan

Copy link
Copy Markdown

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@nathanejohnson

Copy link
Copy Markdown
MemberAuthor

@borisstoyanov Quick questions, what tags need to be present to get picked up by BO? I'm worried my smoke test might get skipped.

@blueorangutan

Copy link
Copy Markdown

Trillian test result (tid-921)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 36820 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1955-t921-kvm-centos7.zip
Intermitten failure detected: /marvin/tests/smoke/test_deploy_virtio_scsi_vm.py
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_snapshots.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_vpn.py
Test completed. 47 look ok, 3 have error(s)

TestResultTime (s)Test File
test_04_rvpc_privategw_static_routesFailure334.38test_privategw_acl.py
test_02_list_snapshots_with_removed_data_storeError0.03test_snapshots.py
test_03_verify_libvirt_attach_diskError610.88test_deploy_virtio_scsi_vm.py
test_02_verify_libvirt_after_restartError615.96test_deploy_virtio_scsi_vm.py
test_01_verify_libvirtError600.73test_deploy_virtio_scsi_vm.py
test_01_vpc_site2site_vpnSuccess159.71test_vpc_vpn.py
test_01_vpc_remote_access_vpnSuccess65.83test_vpc_vpn.py
test_01_redundant_vpc_site2site_vpnSuccess240.43test_vpc_vpn.py
test_02_VPC_default_routesSuccess292.11test_vpc_router_nics.py
test_01_VPC_nics_after_destroySuccess551.36test_vpc_router_nics.py
test_05_rvpc_multi_tiersSuccess514.33test_vpc_redundant.py
test_04_rvpc_network_garbage_collector_nicsSuccess1404.34test_vpc_redundant.py
test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routersSuccess568.61test_vpc_redundant.py
test_02_redundant_VPC_default_routesSuccess737.39test_vpc_redundant.py
test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACLSuccess1271.92test_vpc_redundant.py
test_09_delete_detached_volumeSuccess156.17test_volumes.py
test_08_resize_volumeSuccess156.09test_volumes.py
test_07_resize_failSuccess156.08test_volumes.py
test_06_download_detached_volumeSuccess156.01test_volumes.py
test_05_detach_volumeSuccess150.53test_volumes.py
test_04_delete_attached_volumeSuccess150.91test_volumes.py
test_03_download_attached_volumeSuccess155.98test_volumes.py
test_02_attach_volumeSuccess94.76test_volumes.py
test_01_create_volumeSuccess711.91test_volumes.py
test_03_delete_vm_snapshotsSuccess275.10test_vm_snapshots.py
test_02_revert_vm_snapshotsSuccess100.69test_vm_snapshots.py
test_01_create_vm_snapshotsSuccess163.74test_vm_snapshots.py
test_deploy_vm_multipleSuccess256.93test_vm_life_cycle.py
test_deploy_vmSuccess0.02test_vm_life_cycle.py
test_advZoneVirtualRouterSuccess0.02test_vm_life_cycle.py
test_10_attachAndDetach_isoSuccess26.49test_vm_life_cycle.py
test_09_expunge_vmSuccess125.12test_vm_life_cycle.py
test_08_migrate_vmSuccess40.64test_vm_life_cycle.py
test_07_restore_vmSuccess0.09test_vm_life_cycle.py
test_06_destroy_vmSuccess125.64test_vm_life_cycle.py
test_03_reboot_vmSuccess125.79test_vm_life_cycle.py
test_02_start_vmSuccess10.12test_vm_life_cycle.py
test_01_stop_vmSuccess40.25test_vm_life_cycle.py
test_CreateTemplateWithDuplicateNameSuccess35.32test_templates.py
test_08_list_system_templatesSuccess0.02test_templates.py
test_07_list_public_templatesSuccess0.03test_templates.py
test_05_template_permissionsSuccess0.04test_templates.py
test_04_extract_templateSuccess5.11test_templates.py
test_03_delete_templateSuccess5.09test_templates.py
test_02_edit_templateSuccess90.09test_templates.py
test_01_create_templateSuccess45.35test_templates.py
test_10_destroy_cpvmSuccess161.57test_ssvm.py
test_09_destroy_ssvmSuccess133.41test_ssvm.py
test_08_reboot_cpvmSuccess101.46test_ssvm.py
test_07_reboot_ssvmSuccess133.47test_ssvm.py
test_06_stop_cpvmSuccess131.58test_ssvm.py
test_05_stop_ssvmSuccess133.56test_ssvm.py
test_04_cpvm_internalsSuccess1.17test_ssvm.py
test_03_ssvm_internalsSuccess3.57test_ssvm.py
test_02_list_cpvm_vmSuccess0.08test_ssvm.py
test_01_list_sec_storage_vmSuccess0.09test_ssvm.py
test_01_snapshot_root_diskSuccess10.92test_snapshots.py
test_04_change_offering_smallSuccess234.31test_service_offerings.py
test_03_delete_service_offeringSuccess0.03test_service_offerings.py
test_02_edit_service_offeringSuccess0.04test_service_offerings.py
test_01_create_service_offeringSuccess0.08test_service_offerings.py
test_02_sys_template_readySuccess0.08test_secondary_storage.py
test_01_sys_vm_startSuccess0.12test_secondary_storage.py
test_09_reboot_routerSuccess40.26test_routers.py
test_08_start_routerSuccess35.24test_routers.py
test_07_stop_routerSuccess10.12test_routers.py
test_06_router_advancedSuccess0.05test_routers.py
test_05_router_basicSuccess0.03test_routers.py
test_04_restart_network_wo_cleanupSuccess5.68test_routers.py
test_03_restart_network_cleanupSuccess65.41test_routers.py
test_02_router_internal_advSuccess1.02test_routers.py
test_01_router_internal_basicSuccess0.56test_routers.py
test_router_dns_guestipquerySuccess76.63test_router_dns.py
test_router_dns_externalipquerySuccess0.06test_router_dns.py
test_router_dhcphostsSuccess276.46test_router_dhcphosts.py
test_router_dhcp_optsSuccess21.51test_router_dhcphosts.py
test_01_updatevolumedetailSuccess0.07test_resource_detail.py
test_01_reset_vm_on_rebootSuccess145.77test_reset_vm_on_reboot.py
test_createRegionSuccess0.03test_regions.py
test_create_pvlan_networkSuccess5.15test_pvlan.py
test_dedicatePublicIpRangeSuccess0.31test_public_ip_range.py
test_03_vpc_privategw_restart_vpc_cleanupSuccess478.64test_privategw_acl.py
test_02_vpc_privategw_static_routesSuccess353.91test_privategw_acl.py
test_01_vpc_privategw_aclSuccess86.54test_privategw_acl.py
test_01_primary_storage_nfsSuccess35.92test_primary_storage.py
test_createPortablePublicIPRangeSuccess15.13test_portable_publicip.py
test_createPortablePublicIPAcquireSuccess15.36test_portable_publicip.py
test_isolate_network_password_serverSuccess89.23test_password_server.py
test_UpdateStorageOverProvisioningFactorSuccess0.10test_over_provisioning.py
test_oobm_zchange_passwordSuccess25.49test_outofbandmanagement.py
test_oobm_multiple_mgmt_server_ownershipSuccess16.24test_outofbandmanagement.py
test_oobm_issue_power_statusSuccess10.17test_outofbandmanagement.py
test_oobm_issue_power_softSuccess15.25test_outofbandmanagement.py
test_oobm_issue_power_resetSuccess15.25test_outofbandmanagement.py
test_oobm_issue_power_onSuccess15.23test_outofbandmanagement.py
test_oobm_issue_power_offSuccess15.28test_outofbandmanagement.py
test_oobm_issue_power_cycleSuccess15.26test_outofbandmanagement.py
test_oobm_enabledisable_across_clusterzonesSuccess87.15test_outofbandmanagement.py
test_oobm_enable_feature_validSuccess5.12test_outofbandmanagement.py
test_oobm_enable_feature_invalidSuccess0.07test_outofbandmanagement.py
test_oobm_disable_feature_validSuccess5.13test_outofbandmanagement.py
test_oobm_disable_feature_invalidSuccess0.07test_outofbandmanagement.py
test_oobm_configure_invalid_driverSuccess0.06test_outofbandmanagement.py
test_oobm_configure_default_driverSuccess0.06test_outofbandmanagement.py
test_oobm_background_powerstate_syncSuccess23.29test_outofbandmanagement.py
test_extendPhysicalNetworkVlanSuccess15.23test_non_contigiousvlan.py
test_01_nicSuccess433.75test_nic.py
test_releaseIPSuccess242.55test_network.py
test_reboot_routerSuccess428.00test_network.py
test_public_ip_user_accountSuccess10.18test_network.py
test_public_ip_admin_accountSuccess40.21test_network.py
test_network_rules_acquired_public_ip_3_Load_Balancer_RuleSuccess66.63test_network.py
test_network_rules_acquired_public_ip_2_nat_ruleSuccess61.63test_network.py
test_network_rules_acquired_public_ip_1_static_nat_ruleSuccess123.62test_network.py
test_delete_accountSuccess282.09test_network.py
test_02_port_fwd_on_non_src_natSuccess55.48test_network.py
test_01_port_fwd_on_src_natSuccess111.60test_network.py
test_nic_secondaryip_add_removeSuccess232.38test_multipleips_per_nic.py
login_test_saml_userSuccess17.75test_login.py
test_assign_and_removal_lbSuccess133.26test_loadbalance.py
test_02_create_lb_rule_non_natSuccess187.13test_loadbalance.py
test_01_create_lb_rule_src_natSuccess217.50test_loadbalance.py
test_03_list_snapshotsSuccess0.06test_list_ids_parameter.py
test_02_list_templatesSuccess0.03test_list_ids_parameter.py
test_01_list_volumesSuccess0.02test_list_ids_parameter.py
test_07_list_default_isoSuccess0.04test_iso.py
test_05_iso_permissionsSuccess0.04test_iso.py
test_04_extract_IsoSuccess5.13test_iso.py
test_03_delete_isoSuccess95.17test_iso.py
test_02_edit_isoSuccess0.06test_iso.py
test_01_create_isoSuccess20.69test_iso.py
test_04_rvpc_internallb_haproxy_stats_on_all_interfacesSuccess192.59test_internal_lb.py
test_03_vpc_internallb_haproxy_stats_on_all_interfacesSuccess146.95test_internal_lb.py
test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80Success499.91test_internal_lb.py
test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80Success424.37test_internal_lb.py
test_dedicateGuestVlanRangeSuccess10.20test_guest_vlan_range.py
test_UpdateConfigParamWithScopeSuccess0.09test_global_settings.py
test_rolepermission_lifecycle_updateSuccess5.78test_dynamicroles.py
test_rolepermission_lifecycle_listSuccess5.68test_dynamicroles.py
test_rolepermission_lifecycle_deleteSuccess5.57test_dynamicroles.py
test_rolepermission_lifecycle_createSuccess5.59test_dynamicroles.py
test_rolepermission_lifecycle_concurrent_updatesSuccess5.67test_dynamicroles.py
test_role_lifecycle_update_role_inuseSuccess5.62test_dynamicroles.py
test_role_lifecycle_updateSuccess10.65test_dynamicroles.py
test_role_lifecycle_listSuccess5.63test_dynamicroles.py
test_role_lifecycle_deleteSuccess10.62test_dynamicroles.py
test_role_lifecycle_createSuccess5.59test_dynamicroles.py
test_role_inuse_deletionSuccess5.58test_dynamicroles.py
test_role_account_acls_multiple_mgmt_serversSuccess6.88test_dynamicroles.py
test_role_account_aclsSuccess7.02test_dynamicroles.py
test_default_role_deletionSuccess5.64test_dynamicroles.py
test_04_create_fat_type_disk_offeringSuccess0.05test_disk_offerings.py
test_03_delete_disk_offeringSuccess0.03test_disk_offerings.py
test_02_edit_disk_offeringSuccess0.03test_disk_offerings.py
test_02_create_sparse_type_disk_offeringSuccess0.05test_disk_offerings.py
test_01_create_disk_offeringSuccess0.07test_disk_offerings.py
test_deployvm_userdispersingSuccess20.40test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_userconcentratedSuccess20.39test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_firstfitSuccess85.58test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_userdata_postSuccess10.27test_deploy_vm_with_userdata.py
test_deployvm_userdataSuccess65.55test_deploy_vm_with_userdata.py
test_02_deploy_vm_root_resizeSuccess5.64test_deploy_vm_root_resize.py
test_01_deploy_vm_root_resizeSuccess5.65test_deploy_vm_root_resize.py
test_00_deploy_vm_root_resizeSuccess226.78test_deploy_vm_root_resize.py
test_deploy_vm_from_isoSuccess211.76test_deploy_vm_iso.py
test_04_verify_guest_lspciSuccess1.03test_deploy_virtio_scsi_vm.py
test_DeployVmAntiAffinityGroupSuccess65.65test_affinity_groups.py
test_change_service_offering_for_vm_with_snapshotsSkipped0.00test_vm_snapshots.py
test_01_test_vm_volume_snapshotSkipped0.00test_vm_snapshots.py
test_06_copy_templateSkipped0.00test_templates.py
test_static_role_account_aclsSkipped0.02test_staticroles.py
test_11_ss_nfs_version_on_ssvmSkipped0.02test_ssvm.py
test_01_scale_vmSkipped0.00test_scale_vm.py
test_01_primary_storage_iscsiSkipped0.03test_primary_storage.py
test_nested_virtualization_vmwareSkipped0.00test_nested_virtualization.py
test_06_copy_isoSkipped0.00test_iso.py
test_deploy_vgpu_enabled_vmSkipped0.02test_deploy_vgpu_enabled_vm.py
test_3d_gpu_supportSkipped0.03test_deploy_vgpu_enabled_vm.py

@nathanejohnson

Copy link
Copy Markdown
MemberAuthor

@borisstoyanov so the good news is it didn't skip the test. the bad news is it didn't seem to have proper credentials for ssh'ing into your hosts. It did pass the test where it ssh'ed into the guest, however. So this at least demonstrates a guest is happy.

Do you have any tips on ways of making the smoke test play nice with BO wrt ssh'ing into the kvm hosts?

@borisstoyanov

Copy link
Copy Markdown
Contributor

Thanks @nathanejohnson I will have a look

@remibergsma

Copy link
Copy Markdown
Contributor

Tested it manually, works great. LGTM.

@borisstoyanov

Copy link
Copy Markdown
Contributor

@nathanejohnson sure, sorry I've missed your comment about the test fix earlier.
@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@borisstoyanov a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-577

@borisstoyanov

Copy link
Copy Markdown
Contributor

@blueorangutan test

@blueorangutan

Copy link
Copy Markdown

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan

Copy link
Copy Markdown

Trillian test result (tid-938)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 34569 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1955-t938-kvm-centos7.zip
Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermitten failure detected: /marvin/tests/smoke/test_snapshots.py
Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Test completed. 47 look ok, 3 have error(s)

TestResultTime (s)Test File
test_02_redundant_VPC_default_routesFailure879.31test_vpc_redundant.py
test_04_rvpc_privategw_static_routesFailure362.02test_privategw_acl.py
test_03_vpc_privategw_restart_vpc_cleanupFailure873.50test_privategw_acl.py
test_02_list_snapshots_with_removed_data_storeError0.04test_snapshots.py
test_01_vpc_site2site_vpnSuccess170.70test_vpc_vpn.py
test_01_vpc_remote_access_vpnSuccess66.07test_vpc_vpn.py
test_01_redundant_vpc_site2site_vpnSuccess266.31test_vpc_vpn.py
test_02_VPC_default_routesSuccess297.40test_vpc_router_nics.py
test_01_VPC_nics_after_destroySuccess543.52test_vpc_router_nics.py
test_05_rvpc_multi_tiersSuccess521.44test_vpc_redundant.py
test_04_rvpc_network_garbage_collector_nicsSuccess1421.18test_vpc_redundant.py
test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routersSuccess569.99test_vpc_redundant.py
test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACLSuccess1292.16test_vpc_redundant.py
test_09_delete_detached_volumeSuccess156.42test_volumes.py
test_08_resize_volumeSuccess156.48test_volumes.py
test_07_resize_failSuccess161.51test_volumes.py
test_06_download_detached_volumeSuccess156.29test_volumes.py
test_05_detach_volumeSuccess155.77test_volumes.py
test_04_delete_attached_volumeSuccess146.33test_volumes.py
test_03_download_attached_volumeSuccess156.26test_volumes.py
test_02_attach_volumeSuccess95.12test_volumes.py
test_01_create_volumeSuccess714.40test_volumes.py
test_03_delete_vm_snapshotsSuccess275.21test_vm_snapshots.py
test_02_revert_vm_snapshotsSuccess100.75test_vm_snapshots.py
test_01_create_vm_snapshotsSuccess163.76test_vm_snapshots.py
test_deploy_vm_multipleSuccess282.81test_vm_life_cycle.py
test_deploy_vmSuccess0.03test_vm_life_cycle.py
test_advZoneVirtualRouterSuccess0.02test_vm_life_cycle.py
test_10_attachAndDetach_isoSuccess26.68test_vm_life_cycle.py
test_09_expunge_vmSuccess125.22test_vm_life_cycle.py
test_08_migrate_vmSuccess30.86test_vm_life_cycle.py
test_07_restore_vmSuccess0.16test_vm_life_cycle.py
test_06_destroy_vmSuccess125.79test_vm_life_cycle.py
test_03_reboot_vmSuccess125.81test_vm_life_cycle.py
test_02_start_vmSuccess10.22test_vm_life_cycle.py
test_01_stop_vmSuccess40.33test_vm_life_cycle.py
test_CreateTemplateWithDuplicateNameSuccess40.50test_templates.py
test_08_list_system_templatesSuccess0.03test_templates.py
test_07_list_public_templatesSuccess0.04test_templates.py
test_05_template_permissionsSuccess0.06test_templates.py
test_04_extract_templateSuccess5.14test_templates.py
test_03_delete_templateSuccess5.11test_templates.py
test_02_edit_templateSuccess90.21test_templates.py
test_01_create_templateSuccess25.35test_templates.py
test_10_destroy_cpvmSuccess161.80test_ssvm.py
test_09_destroy_ssvmSuccess193.76test_ssvm.py
test_08_reboot_cpvmSuccess131.68test_ssvm.py
test_07_reboot_ssvmSuccess133.61test_ssvm.py
test_06_stop_cpvmSuccess131.75test_ssvm.py
test_05_stop_ssvmSuccess133.78test_ssvm.py
test_04_cpvm_internalsSuccess1.29test_ssvm.py
test_03_ssvm_internalsSuccess3.64test_ssvm.py
test_02_list_cpvm_vmSuccess0.12test_ssvm.py
test_01_list_sec_storage_vmSuccess0.12test_ssvm.py
test_01_snapshot_root_diskSuccess11.19test_snapshots.py
test_04_change_offering_smallSuccess239.57test_service_offerings.py
test_03_delete_service_offeringSuccess0.04test_service_offerings.py
test_02_edit_service_offeringSuccess0.05test_service_offerings.py
test_01_create_service_offeringSuccess0.11test_service_offerings.py
test_02_sys_template_readySuccess0.13test_secondary_storage.py
test_01_sys_vm_startSuccess0.18test_secondary_storage.py
test_09_reboot_routerSuccess35.31test_routers.py
test_08_start_routerSuccess35.36test_routers.py
test_07_stop_routerSuccess10.21test_routers.py
test_06_router_advancedSuccess0.06test_routers.py
test_05_router_basicSuccess0.04test_routers.py
test_04_restart_network_wo_cleanupSuccess5.73test_routers.py
test_03_restart_network_cleanupSuccess65.81test_routers.py
test_02_router_internal_advSuccess1.06test_routers.py
test_01_router_internal_basicSuccess0.57test_routers.py
test_router_dns_guestipquerySuccess76.77test_router_dns.py
test_router_dns_externalipquerySuccess0.08test_router_dns.py
test_router_dhcphostsSuccess279.84test_router_dhcphosts.py
test_router_dhcp_optsSuccess22.28test_router_dhcphosts.py
test_01_updatevolumedetailSuccess0.10test_resource_detail.py
test_01_reset_vm_on_rebootSuccess146.14test_reset_vm_on_reboot.py
test_createRegionSuccess0.04test_regions.py
test_create_pvlan_networkSuccess5.22test_pvlan.py
test_dedicatePublicIpRangeSuccess0.51test_public_ip_range.py
test_02_vpc_privategw_static_routesSuccess375.67test_privategw_acl.py
test_01_vpc_privategw_aclSuccess92.31test_privategw_acl.py
test_01_primary_storage_nfsSuccess35.81test_primary_storage.py
test_createPortablePublicIPRangeSuccess15.20test_portable_publicip.py
test_createPortablePublicIPAcquireSuccess15.48test_portable_publicip.py
test_isolate_network_password_serverSuccess89.91test_password_server.py
test_UpdateStorageOverProvisioningFactorSuccess0.13test_over_provisioning.py
test_oobm_zchange_passwordSuccess30.63test_outofbandmanagement.py
test_oobm_multiple_mgmt_server_ownershipSuccess16.32test_outofbandmanagement.py
test_oobm_issue_power_statusSuccess10.23test_outofbandmanagement.py
test_oobm_issue_power_softSuccess15.30test_outofbandmanagement.py
test_oobm_issue_power_resetSuccess15.31test_outofbandmanagement.py
test_oobm_issue_power_onSuccess15.33test_outofbandmanagement.py
test_oobm_issue_power_offSuccess15.42test_outofbandmanagement.py
test_oobm_issue_power_cycleSuccess10.49test_outofbandmanagement.py
test_oobm_enabledisable_across_clusterzonesSuccess87.55test_outofbandmanagement.py
test_oobm_enable_feature_validSuccess5.15test_outofbandmanagement.py
test_oobm_enable_feature_invalidSuccess0.10test_outofbandmanagement.py
test_oobm_disable_feature_validSuccess5.18test_outofbandmanagement.py
test_oobm_disable_feature_invalidSuccess0.14test_outofbandmanagement.py
test_oobm_configure_invalid_driverSuccess0.08test_outofbandmanagement.py
test_oobm_configure_default_driverSuccess0.07test_outofbandmanagement.py
test_oobm_background_powerstate_syncSuccess29.43test_outofbandmanagement.py
test_extendPhysicalNetworkVlanSuccess15.31test_non_contigiousvlan.py
test_01_nicSuccess424.12test_nic.py
test_releaseIPSuccess268.17test_network.py
test_reboot_routerSuccess414.00test_network.py
test_public_ip_user_accountSuccess10.27test_network.py
test_public_ip_admin_accountSuccess40.27test_network.py
test_network_rules_acquired_public_ip_3_Load_Balancer_RuleSuccess66.95test_network.py
test_network_rules_acquired_public_ip_2_nat_ruleSuccess61.91test_network.py
test_network_rules_acquired_public_ip_1_static_nat_ruleSuccess123.89test_network.py
test_delete_accountSuccess272.64test_network.py
test_02_port_fwd_on_non_src_natSuccess55.62test_network.py
test_01_port_fwd_on_src_natSuccess111.75test_network.py
test_nic_secondaryip_add_removeSuccess227.64test_multipleips_per_nic.py
login_test_saml_userSuccess19.14test_login.py
test_assign_and_removal_lbSuccess133.70test_loadbalance.py
test_02_create_lb_rule_non_natSuccess187.27test_loadbalance.py
test_01_create_lb_rule_src_natSuccess218.79test_loadbalance.py
test_03_list_snapshotsSuccess0.06test_list_ids_parameter.py
test_02_list_templatesSuccess0.04test_list_ids_parameter.py
test_01_list_volumesSuccess0.03test_list_ids_parameter.py
test_07_list_default_isoSuccess0.06test_iso.py
test_05_iso_permissionsSuccess0.06test_iso.py
test_04_extract_IsoSuccess5.15test_iso.py
test_03_delete_isoSuccess95.18test_iso.py
test_02_edit_isoSuccess0.08test_iso.py
test_01_create_isoSuccess20.99test_iso.py
test_04_rvpc_internallb_haproxy_stats_on_all_interfacesSuccess203.35test_internal_lb.py
test_03_vpc_internallb_haproxy_stats_on_all_interfacesSuccess148.59test_internal_lb.py
test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80Success512.36test_internal_lb.py
test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80Success429.49test_internal_lb.py
test_dedicateGuestVlanRangeSuccess10.29test_guest_vlan_range.py
test_UpdateConfigParamWithScopeSuccess0.14test_global_settings.py
test_rolepermission_lifecycle_updateSuccess6.15test_dynamicroles.py
test_rolepermission_lifecycle_listSuccess5.95test_dynamicroles.py
test_rolepermission_lifecycle_deleteSuccess5.83test_dynamicroles.py
test_rolepermission_lifecycle_createSuccess6.03test_dynamicroles.py
test_rolepermission_lifecycle_concurrent_updatesSuccess6.05test_dynamicroles.py
test_role_lifecycle_update_role_inuseSuccess6.29test_dynamicroles.py
test_role_lifecycle_updateSuccess10.94test_dynamicroles.py
test_role_lifecycle_listSuccess5.87test_dynamicroles.py
test_role_lifecycle_deleteSuccess5.88test_dynamicroles.py
test_role_lifecycle_createSuccess5.88test_dynamicroles.py
test_role_inuse_deletionSuccess5.87test_dynamicroles.py
test_role_account_acls_multiple_mgmt_serversSuccess7.96test_dynamicroles.py
test_role_account_aclsSuccess8.17test_dynamicroles.py
test_default_role_deletionSuccess5.99test_dynamicroles.py
test_04_create_fat_type_disk_offeringSuccess0.07test_disk_offerings.py
test_03_delete_disk_offeringSuccess0.04test_disk_offerings.py
test_02_edit_disk_offeringSuccess0.05test_disk_offerings.py
test_02_create_sparse_type_disk_offeringSuccess0.07test_disk_offerings.py
test_01_create_disk_offeringSuccess0.24test_disk_offerings.py
test_deployvm_userdispersingSuccess20.55test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_userconcentratedSuccess20.57test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_firstfitSuccess65.68test_deploy_vms_with_varied_deploymentplanners.py
test_deployvm_userdata_postSuccess10.42test_deploy_vm_with_userdata.py
test_deployvm_userdataSuccess70.87test_deploy_vm_with_userdata.py
test_02_deploy_vm_root_resizeSuccess5.95test_deploy_vm_root_resize.py
test_01_deploy_vm_root_resizeSuccess5.97test_deploy_vm_root_resize.py
test_00_deploy_vm_root_resizeSuccess223.00test_deploy_vm_root_resize.py
test_deploy_vm_from_isoSuccess212.36test_deploy_vm_iso.py
test_06_verify_guest_lspci_againSuccess40.76test_deploy_virtio_scsi_vm.py
test_05_change_vm_ostype_restartSuccess21.01test_deploy_virtio_scsi_vm.py
test_04_verify_guest_lspciSuccess40.89test_deploy_virtio_scsi_vm.py
test_03_verify_libvirt_attach_diskSuccess10.82test_deploy_virtio_scsi_vm.py
test_02_verify_libvirt_after_restartSuccess131.58test_deploy_virtio_scsi_vm.py
test_01_verify_libvirtSuccess0.47test_deploy_virtio_scsi_vm.py
test_DeployVmAntiAffinityGroupSuccess65.93test_affinity_groups.py
test_change_service_offering_for_vm_with_snapshotsSkipped0.00test_vm_snapshots.py
test_01_test_vm_volume_snapshotSkipped0.00test_vm_snapshots.py
test_06_copy_templateSkipped0.00test_templates.py
test_static_role_account_aclsSkipped0.02test_staticroles.py
test_11_ss_nfs_version_on_ssvmSkipped0.02test_ssvm.py
test_01_scale_vmSkipped0.00test_scale_vm.py
test_01_primary_storage_iscsiSkipped0.04test_primary_storage.py
test_nested_virtualization_vmwareSkipped0.00test_nested_virtualization.py
test_06_copy_isoSkipped0.00test_iso.py
test_deploy_vgpu_enabled_vmSkipped0.03test_deploy_vgpu_enabled_vm.py
test_3d_gpu_supportSkipped0.04test_deploy_vgpu_enabled_vm.py

@borisstoyanovborisstoyanov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @nathanejohnson, tests results are looking good now, there are some failures but they are known issues. LGTM

@kiwiflyer

Copy link
Copy Markdown
Contributor

tag:mergeready

@wido

wido commented Mar 10, 2017

Copy link
Copy Markdown
Contributor

I would like to give a LGTM, but it's only the logging lines which I don't like yet.

They seem like personal debug lines, but a admin will never know what they actually mean.

In addition, I would like to see discard/unmap enabled by default for Virtio-SCSI disks: https://blog.widodh.nl/2015/12/using-trimdiscard-with-ceph-rbd-and-libvirt/

This will also allow for QCOW2 and RBD trimming.

@nathanejohnson

Copy link
Copy Markdown
MemberAuthor

@wido I have removed all of the debug logging statements that didn't exist before I touched the code, I have also added the discard option to the disks.

@wido

wido commented Mar 11, 2017

Copy link
Copy Markdown
Contributor

Do we want to pass the unmap not as a string? Shouldn't that be a enum?

@nathanejohnson

Copy link
Copy Markdown
MemberAuthor

@wido Actually I was just about to push a commit that changed the string to enum, but builds are failing locally because of this test:

assertTrue(QuotaAlertManagerImpl.getDifferenceDays(now, new DateTime(now).plusDays(1).toDate()) == 1L);

Daylight savings time strikes again

@wido

wido commented Mar 11, 2017

Copy link
Copy Markdown
Contributor

@nathanejohnson: Good! I would like to see that being enums.

@nathanejohnson
nathanejohnsonforce-pushed the virtio-scsi branch 2 times, most recently from 6446ed0 to ed4fa15CompareMarch 12, 2017 01:41
@nathanejohnson

Copy link
Copy Markdown
MemberAuthor

I just re-depoyed and re-ran the test:

Test that libvirt properly created domain with scsi controller ... === TestName: test_01_verify_libvirt | Status : SUCCESS ===
ok
Verify that libvirt settings are as expected after a VM stop / start ... === TestName: test_02_verify_libvirt_after_restart | Status : SUCCESS ===
ok
Verify that libvirt settings are expected after a disk add ... === TestName: test_03_verify_libvirt_attach_disk | Status : SUCCESS ===
ok
Verify that guest sees scsi controller and disks ... === TestName: test_04_verify_guest_lspci | Status : SUCCESS ===
ok
Update os type to Ubuntu, change vm details rootdiskController ... === TestName: test_05_change_vm_ostype_restart | Status : SUCCESS ===
ok
Verify that guest sees scsi controller and disks after switching ostype and rdc ... === TestName: test_06_verify_guest_lspci_again | Status : SUCCESS ===
ok
----------------------------------------------------------------------
Ran 6 tests in 785.914s
OK

@wido , I believe all of your concerns should be addressed. trim is enabled, it's using an enum and not a string, and spurious log messages have been eliminated.

I have squashed all of the commits into one. I'm at a point where I'm happy with the code.

@wido

wido commented Mar 12, 2017

Copy link
Copy Markdown
Contributor

LGTM from the code

Awesome work!

This adds support for virtio-scsi on KVM hosts, either
for guests that are associated with a new os_type of 'Other PV Virtio-SCSI (64-bit)',
or when a VM or template is regstered with a detail parameter rootDiskController=scsi.
Update cloudstack add template dialog to allow for selecting rootDiskController with KVM
Update cloudstack kvm virtio-scsi to enable discard=unmap
@kiwiflyer

Copy link
Copy Markdown
Contributor

@karuturi 3 x LGTM, testing successful. Ready for Merge.

@wido

wido commented Mar 27, 2017

Copy link
Copy Markdown
Contributor

Yes, we are indeed ready for a merge. Shall we do that?

@karuturi

Copy link
Copy Markdown
Member

merging..

@karuturi
karuturi merged commit a4dd6bd into apache:masterApr 20, 2017
@DaanHoogland

Copy link
Copy Markdown
Contributor

@nathanejohnson@wido@remibergsma@karuturi@kiwiflyer @dmambry
in #2044 tests are failing on vmware while this is only for kvm. Can we add a check on the tests for this or is it supposed to work for all hypervisors?

@nathanejohnson

Copy link
Copy Markdown
MemberAuthor

@DaanHoogland@wido@remibergsma@karuturi@kiwiflyer I think I see the issue with the test, I should hopefully have a new PR opened later today.

@karuturikaruturi modified the milestone: 4.10.0.0Apr 27, 2017
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants

@nathanejohnson@kiwiflyer@remibergsma@wido@dmabry@borisstoyanov@blueorangutan@karuturi@DaanHoogland