Feature/cstackex 251: New pool type for Netapp iscsi usecase - #95
Feature/cstackex 251: New pool type for Netapp iscsi usecase#95piyush5netapp wants to merge 10 commits into
Conversation
|
iscsiAdmStorageAdapter ONTAP relevant code will also be pulled into ontapiSCSIAdapter in next commit. |
| StorPool(true, true, EncryptionSupport.Hypervisor), | ||
| FiberChannel(true, true, EncryptionSupport.Unsupported); // Fiber Channel Pool for KVM hypervisors is used to find the volume by WWN value (/dev/disk/by-id/wwn-<wwnvalue>) | ||
| FiberChannel(true, true, EncryptionSupport.Unsupported), // Fiber Channel Pool for KVM hypervisors is used to find the volume by WWN value (/dev/disk/by-id/wwn-<wwnvalue>) | ||
| OntapiSCSI(true, false, EncryptionSupport.Unsupported); // NetApp ONTAP iSCSI: one FlexVol per pool, one LUN per volume |
There was a problem hiding this comment.
let's not have this comment 'one FlexVol per pool'? As this is bound to change
| * discovers adaptors by a Reflections scan of that package alone, and an unregistered type silently | ||
| * falls back to {@link LibvirtStorageAdaptor} rather than failing at startup. | ||
| */ | ||
| public class OntapIscsiStorageAdaptor extends IscsiAdmStorageAdaptor { |
There was a problem hiding this comment.
Are we planning on changing this to 'implements' with our custom code in the near future?
| !(imageFormat == ImageFormat.RAW && (StoragePoolType.PowerFlex == poolType || | ||
| StoragePoolType.FiberChannel == poolType))) { | ||
| throw new CloudRuntimeException(String.format("Only the following image types are currently supported: %s, %s, %s, %s (for PowerFlex and FiberChannel)", | ||
| StoragePoolType.FiberChannel == poolType || StoragePoolType.OntapiSCSI == poolType))) { |
There was a problem hiding this comment.
Looks like this rejects 'iSCSI' pool type also, so, if we did not need this before, do we need this now?
| StorPool(true, true, EncryptionSupport.Hypervisor), | ||
| FiberChannel(true, true, EncryptionSupport.Unsupported); // Fiber Channel Pool for KVM hypervisors is used to find the volume by WWN value (/dev/disk/by-id/wwn-<wwnvalue>) | ||
| FiberChannel(true, true, EncryptionSupport.Unsupported), // Fiber Channel Pool for KVM hypervisors is used to find the volume by WWN value (/dev/disk/by-id/wwn-<wwnvalue>) | ||
| OntapiSCSI(true, false, EncryptionSupport.Unsupported); // NetApp ONTAP iSCSI: one FlexVol per pool, one LUN per volume |
| */ | ||
| public class OntapIscsiStorageAdaptor extends IscsiAdmStorageAdaptor { | ||
|
|
||
| @Override |
| throw new CloudRuntimeException("Unsupported hypervisor [" + hypervisorType + "] for ONTAP image format resolution"); | ||
| } | ||
| throw new CloudRuntimeException("Unsupported hypervisor [" + hypervisorType + "] for ONTAP image format resolution"); | ||
| return Storage.StoragePoolType.OntapiSCSI.equals(storagePool.getPoolType()) |
There was a problem hiding this comment.
this method will return QCOW2 for any other protocol except OntapiSCSI
π΄ Test Coverage Grade:
|
| Metric | Value |
|---|---|
| Line coverage | 24.60% |
| Branch coverage | 18.77% |
Grade Scale
| Grade | Line Coverage | Meaning |
|---|---|---|
| π’ A | β₯ 80% | Excellent - this code sleeps well at night π΄ |
| π‘ B | 60-79% | Good - almost there, don't stop now π |
| π C | 40-59% | Acceptable - your code is wearing a seatbelt, but no airbags π¬ |
| π΄ D | 20-39% | Marginal - boldly shipping where no test has gone before π |
| β F | < 20% | Failing - tests? what tests? π₯ |
Branch coverage is shown as a secondary signal. Grade is determined by line coverage.
View full Actions run
| StorPool(true, true, EncryptionSupport.Hypervisor), | ||
| FiberChannel(true, true, EncryptionSupport.Unsupported); // Fiber Channel Pool for KVM hypervisors is used to find the volume by WWN value (/dev/disk/by-id/wwn-<wwnvalue>) | ||
| FiberChannel(true, true, EncryptionSupport.Unsupported), // Fiber Channel Pool for KVM hypervisors is used to find the volume by WWN value (/dev/disk/by-id/wwn-<wwnvalue>) | ||
| OntapiSCSI(true, true, EncryptionSupport.Unsupported); // NetApp ONTAP iSCSI |
There was a problem hiding this comment.
Did u check the impact for the upgrade case?
Existing ONTAP iSCSI pools will break after upgrade
Description
This PR...
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
Automation has been run
TEST SUMMARY
[iscsi_workflow] iSCSI pool lifecycle
PASS test_01_create_primary_storage_pool
PASS test_02_disable_storage_pool
PASS test_03_enable_storage_pool
PASS test_04_enter_maintenance_mode
PASS test_05_cancel_maintenance_mode
PASS test_06_enter_maintenance_and_delete_pool
PASS test_07_create_volume_on_pool
PASS test_08_delete_volume_and_pool
[iscsi_with_volumes] iSCSI pool with volumes
PASS test_01_create_pool_and_volume
PASS test_02_disable_pool_volume_survives
PASS test_03_enable_pool_volume_intact
PASS test_04_enter_maintenance_volume_present
PASS test_05_cancel_maintenance_volume_present
PASS test_06_forced_false_delete_rejected
PASS test_07_delete_volume_and_force_delete_pool
[iscsi_volume] iSCSI volume lifecycle
PASS test_01_create_pool_and_volume
PASS test_02_delete_volume
PASS test_03_recreate_volume_for_delete_tests
PASS test_04_forced_false_delete_with_volume_fails
PASS test_05_delete_volume_and_force_delete_pool
[iscsi_zone_pool] iSCSI zone-scoped pool
PASS test_01_create_zone_scoped_pool
PASS test_02_disable_zone_scoped_pool
PASS test_03_enable_zone_scoped_pool
PASS test_04_delete_zone_scoped_pool
[iscsi_vm_workflow] iSCSI VM volume workflow
PASS test_01_create_iscsi_pool
PASS test_02_create_ontap_data_volume
PASS test_03_deploy_vm
PASS test_04_attach_volume_to_vm
PASS test_05_stop_vm_lun_unmapped
PASS test_06_start_vm_lun_remapped
PASS test_07_detach_volume_from_vm
PASS test_08_destroy_vm_and_cleanup
================================================================
TOTAL: 32 passed, 0 failed, 0 skipped (32 tests)
How did you try to break this feature and the system with this change?