diff options
| author | Clif Houck <me@clifhouck.com> | 2015-02-05 17:03:33 -0600 |
|---|---|---|
| committer | Clif Houck <me@clifhouck.com> | 2015-02-06 17:27:51 -0600 |
| commit | b4cc3050dbda8d693fe0d36da30a44385b64a2be (patch) | |
| tree | 47d833f4ace3c897334f2d1ec2b1420908eee946 /ironic_python_agent/tests/hardware.py | |
| parent | 571445438ab09aa713b2b946be5b602aff2c6003 (diff) | |
| download | ironic-python-agent-b4cc3050dbda8d693fe0d36da30a44385b64a2be.tar.gz | |
Added support for secure erase enhanced
Added support for secure erase enhanced option when doing an ATA secure erase.
Also made it prefer the enhanced version if hdparm claims the device
supports it.
Change-Id: I2ce04d0b967d6c176acd40ea10a05bcab5dbf2d0
Diffstat (limited to 'ironic_python_agent/tests/hardware.py')
| -rw-r--r-- | ironic_python_agent/tests/hardware.py | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/ironic_python_agent/tests/hardware.py b/ironic_python_agent/tests/hardware.py index fa107d10..e37c0e51 100644 --- a/ironic_python_agent/tests/hardware.py +++ b/ironic_python_agent/tests/hardware.py @@ -106,7 +106,7 @@ HDPARM_INFO_TEMPLATE = ( '\tnot\tlocked\n' '\t%(frozen)s\n' '\tnot\texpired: security count\n' - '\t\tsupported: enhanced erase\n' + '\t%(enhanced_erase)s\n' '\t24min for SECURITY ERASE UNIT. 24min for ENHANCED SECURITY ' 'ERASE UNIT.\n' 'Checksum: correct\n' @@ -323,6 +323,7 @@ class TestGenericHardwareManager(test_base.BaseTestCase): 'supported': '\tsupported', 'enabled': 'not\tenabled', 'frozen': 'not\tfrozen', + 'enhanced_erase': 'not\tsupported: enhanced erase', } mocked_execute.side_effect = [ (HDPARM_INFO_TEMPLATE % hdparm_info_fields, ''), @@ -363,6 +364,7 @@ class TestGenericHardwareManager(test_base.BaseTestCase): 'supported': 'not\tsupported', 'enabled': 'not\tenabled', 'frozen': 'not\tfrozen', + 'enhanced_erase': 'not\tsupported: enhanced erase', } mocked_execute.side_effect = [ @@ -381,6 +383,7 @@ class TestGenericHardwareManager(test_base.BaseTestCase): 'supported': '\tsupported', 'enabled': '\tenabled', 'frozen': 'not\tfrozen', + 'enhanced_erase': 'not\tsupported: enhanced erase', } mocked_execute.side_effect = [ @@ -399,6 +402,7 @@ class TestGenericHardwareManager(test_base.BaseTestCase): 'supported': '\tsupported', 'enabled': 'not\tenabled', 'frozen': '\tfrozen', + 'enhanced_erase': 'not\tsupported: enhanced erase', } mocked_execute.side_effect = [ @@ -417,6 +421,7 @@ class TestGenericHardwareManager(test_base.BaseTestCase): 'supported': '\tsupported', 'enabled': 'not\tenabled', 'frozen': 'not\tfrozen', + 'enhanced_erase': 'not\tsupported: enhanced erase', } # If security mode remains enabled after the erase, it is indiciative @@ -425,6 +430,7 @@ class TestGenericHardwareManager(test_base.BaseTestCase): 'supported': '\tsupported', 'enabled': '\tenabled', 'frozen': 'not\tfrozen', + 'enhanced_erase': 'not\tsupported: enhanced erase', } mocked_execute.side_effect = [ @@ -439,3 +445,34 @@ class TestGenericHardwareManager(test_base.BaseTestCase): self.assertRaises(errors.BlockDeviceEraseError, self.hardware.erase_block_device, block_device) + + def test_normal_vs_enhanced_security_erase(self): + @mock.patch.object(utils, 'execute') + def test_security_erase_option(test_case, + enhanced_erase_string, + expected_option, + mocked_execute): + hdparm_parameters = { + 'supported': '\tsupported', + 'enabled': 'not\tenabled', + 'frozen': 'not\tfrozen', + 'enhanced_erase': enhanced_erase_string, + } + mocked_execute.side_effect = [ + (HDPARM_INFO_TEMPLATE % hdparm_parameters, ''), + ('', ''), + ('', ''), + (HDPARM_INFO_TEMPLATE % hdparm_parameters, ''), + ] + + block_device = hardware.BlockDevice('/dev/sda', 'big', 1073741824, + True) + test_case.hardware.erase_block_device(block_device) + mocked_execute.assert_any_call('hdparm', '--user-master', 'u', + expected_option, + 'NULL', '/dev/sda') + + test_security_erase_option(self, + '\tsupported: enhanced erase', '--security-erase-enhanced') + test_security_erase_option(self, + '\tnot\tsupported: enhanced erase', '--security-erase') |
