Gris Ge
2015-04-02 13:51:31 UTC
* In disks() method, check 'Disk Sparing' 1.4+ before call CIM_IsSpare
association.
This fix the disks() on HP 3PAR which does not support CIM_IsSpare yet.
Signed-off-by: Gris Ge <***@redhat.com>
---
plugin/smispy/smis_common.py | 1 +
plugin/smispy/smis_disk.py | 15 ++++++++++-----
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/plugin/smispy/smis_common.py b/plugin/smispy/smis_common.py
index 2129ac8..b0acce8 100644
--- a/plugin/smispy/smis_common.py
+++ b/plugin/smispy/smis_common.py
@@ -165,6 +165,7 @@ class SmisCommon(object):
SNIA_GROUP_MASK_PROFILE = 'Group Masking and Mapping'
SNIA_FC_TGT_PORT_PROFILE = 'FC Target Ports'
SNIA_ISCSI_TGT_PORT_PROFILE = 'iSCSI Target Ports'
+ SNIA_SPARE_DISK_PROFILE = 'Disk Sparing'
SMIS_SPEC_VER_1_4 = '1.4'
SMIS_SPEC_VER_1_5 = '1.5'
SMIS_SPEC_VER_1_6 = '1.6'
diff --git a/plugin/smispy/smis_disk.py b/plugin/smispy/smis_disk.py
index e5bd5ea..9fd94e0 100644
--- a/plugin/smispy/smis_disk.py
+++ b/plugin/smispy/smis_disk.py
@@ -18,6 +18,8 @@
from lsm import Disk, md5, LsmError, ErrorNumber
import dmtf
from utils import merge_list
+from pywbem import CIM_ERR_NOT_FOUND, CIM_ERR_INVALID_PARAMETER
+from lsm.plugin.smispy.smis_common import SmisCommon
_LSM_DISK_OP_STATUS_CONV = {
@@ -179,11 +181,14 @@ def cim_disk_to_lsm_disk(smis_common, cim_disk):
property_list=['BlockSize', 'NumberOfBlocks'])
status = _disk_status_of_cim_disk(cim_disk)
- cim_srss = smis_common.AssociatorNames(
- cim_ext.path, AssocClass='CIM_IsSpare',
- ResultClass='CIM_StorageRedundancySet')
- if len(cim_srss) >= 1:
- status |= Disk.STATUS_SPARE_DISK
+ if smis_common.profile_check(SmisCommon.SNIA_SPARE_DISK_PROFILE,
+ SmisCommon.SMIS_SPEC_VER_1_4,
+ raise_error=False):
+ cim_srss = smis_common.AssociatorNames(
+ cim_ext.path, AssocClass='CIM_IsSpare',
+ ResultClass='CIM_StorageRedundancySet')
+ if len(cim_srss) >= 1:
+ status |= Disk.STATUS_SPARE_DISK
if 'EMCInUse' in cim_disk.keys() and cim_disk['EMCInUse'] is False:
status |= Disk.STATUS_FREE
association.
This fix the disks() on HP 3PAR which does not support CIM_IsSpare yet.
Signed-off-by: Gris Ge <***@redhat.com>
---
plugin/smispy/smis_common.py | 1 +
plugin/smispy/smis_disk.py | 15 ++++++++++-----
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/plugin/smispy/smis_common.py b/plugin/smispy/smis_common.py
index 2129ac8..b0acce8 100644
--- a/plugin/smispy/smis_common.py
+++ b/plugin/smispy/smis_common.py
@@ -165,6 +165,7 @@ class SmisCommon(object):
SNIA_GROUP_MASK_PROFILE = 'Group Masking and Mapping'
SNIA_FC_TGT_PORT_PROFILE = 'FC Target Ports'
SNIA_ISCSI_TGT_PORT_PROFILE = 'iSCSI Target Ports'
+ SNIA_SPARE_DISK_PROFILE = 'Disk Sparing'
SMIS_SPEC_VER_1_4 = '1.4'
SMIS_SPEC_VER_1_5 = '1.5'
SMIS_SPEC_VER_1_6 = '1.6'
diff --git a/plugin/smispy/smis_disk.py b/plugin/smispy/smis_disk.py
index e5bd5ea..9fd94e0 100644
--- a/plugin/smispy/smis_disk.py
+++ b/plugin/smispy/smis_disk.py
@@ -18,6 +18,8 @@
from lsm import Disk, md5, LsmError, ErrorNumber
import dmtf
from utils import merge_list
+from pywbem import CIM_ERR_NOT_FOUND, CIM_ERR_INVALID_PARAMETER
+from lsm.plugin.smispy.smis_common import SmisCommon
_LSM_DISK_OP_STATUS_CONV = {
@@ -179,11 +181,14 @@ def cim_disk_to_lsm_disk(smis_common, cim_disk):
property_list=['BlockSize', 'NumberOfBlocks'])
status = _disk_status_of_cim_disk(cim_disk)
- cim_srss = smis_common.AssociatorNames(
- cim_ext.path, AssocClass='CIM_IsSpare',
- ResultClass='CIM_StorageRedundancySet')
- if len(cim_srss) >= 1:
- status |= Disk.STATUS_SPARE_DISK
+ if smis_common.profile_check(SmisCommon.SNIA_SPARE_DISK_PROFILE,
+ SmisCommon.SMIS_SPEC_VER_1_4,
+ raise_error=False):
+ cim_srss = smis_common.AssociatorNames(
+ cim_ext.path, AssocClass='CIM_IsSpare',
+ ResultClass='CIM_StorageRedundancySet')
+ if len(cim_srss) >= 1:
+ status |= Disk.STATUS_SPARE_DISK
if 'EMCInUse' in cim_disk.keys() and cim_disk['EMCInUse'] is False:
status |= Disk.STATUS_FREE
--
1.8.3.1
1.8.3.1