summaryrefslogtreecommitdiff
path: root/ironic_python_agent/tests/hardware.py
diff options
context:
space:
mode:
authorClif Houck <me@clifhouck.com>2015-02-05 17:03:33 -0600
committerClif Houck <me@clifhouck.com>2015-02-06 17:27:51 -0600
commitb4cc3050dbda8d693fe0d36da30a44385b64a2be (patch)
tree47d833f4ace3c897334f2d1ec2b1420908eee946 /ironic_python_agent/tests/hardware.py
parent571445438ab09aa713b2b946be5b602aff2c6003 (diff)
downloadironic-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.py39
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')