From 6fcd626fceb7ef146789f42a94aa7df9f28f0925 Mon Sep 17 00:00:00 2001 From: rawstorage Date: Wed, 18 Dec 2019 16:29:58 +0000 Subject: [PATCH 1/5] added provisioning changes for adding and removing volumes from srdf groups CI_Tests and Unit_tests added change log updated and version incremented to 9.1.2 --- ChangeLog | 15 +++- PyU4V/__init__.py | 2 +- PyU4V/provisioning.py | 69 +++++++++++++++++-- PyU4V/replication.py | 10 ++- .../ci_tests/test_pyu4v_ci_provisioning.py | 24 +++++++ PyU4V/tests/unit_tests/pyu4v_common_data.py | 1 + .../unit_tests/test_pyu4v_provisioning.py | 58 ++++++++++++++++ .../unit_tests/test_pyu4v_replication.py | 11 +++ README.rst | 2 +- docs/source/conf.py | 2 +- docs/source/index.rst | 2 +- docs/source/installation.rst | 2 +- setup.py | 2 +- 13 files changed, 186 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 32ae4534..9159316a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ PyU4V Change Log ================ -Version 9.1.1.0 - released 12/12/19 +Version 9.1.2.0 - released 12/12/19 =================================== Fixes @@ -85,6 +85,18 @@ Provisioning Enhancements any masking view - format_director_port : Format separate director port into single string - get_any_director_port : Get a non-GuestOS port from a director +- add_new_volume_to_storage_group : added functionality to be able to add + volumes creating srdf pairing and placing of volumes in storage groups + on the remote Symm/SG when adding vols to a local storage group. +- remove_volume_from_storage_group enhanced to be able to automatically remove + volumes from local and remote storage groups deleting srdf pairs as part of + the process, storage group must be local to the unisphere instance and only + works with R1 group. + +Replication Enhancements +------------------------- +- create_storage_group_snapshot added secure option to enable creation of + secure snapshot Fixes ----- @@ -331,6 +343,7 @@ PyU4V/replication.py - delete_storagegroup_srdf() has been refactored and marked for deprecation, please use alternative function delete_storage_group_srdf() + PyU4V/utils/console.py ---------------------- - choose_from_list() has been marked for deprecation, please implement any diff --git a/PyU4V/__init__.py b/PyU4V/__init__.py index 2c802088..1d85fa51 100644 --- a/PyU4V/__init__.py +++ b/PyU4V/__init__.py @@ -23,7 +23,7 @@ from .univmax_conn import U4VConn # noqa: F401 __title__ = 'pyu4v' -__version__ = '9.1.1.0' +__version__ = '9.1.2.0' __author__ = 'Dell EMC or its subsidiaries' __license__ = 'Apache 2.0' __copyright__ = 'Copyright 2019 Dell EMC Inc' diff --git a/PyU4V/provisioning.py b/PyU4V/provisioning.py index 529840cd..fb51aa50 100644 --- a/PyU4V/provisioning.py +++ b/PyU4V/provisioning.py @@ -1773,7 +1773,7 @@ def add_new_vol_to_storagegroup(self, sg_id, num_vols, vol_size, :param cap_unit: capacity unit (MB, GB, TB, CYL) -- str :param _async: if call should be async -- bool :param vol_name: name to give to the volume, optional -- str - :param create_new_volumes: new volumes only, no ro-use -- bool + :param create_new_volumes: new volumes only, no re-use -- bool :returns: storage group details -- dict """ return self.add_new_volume_to_storage_group( @@ -1782,7 +1782,9 @@ def add_new_vol_to_storagegroup(self, sg_id, num_vols, vol_size, def add_new_volume_to_storage_group( self, storage_group_id, num_vols, vol_size, cap_unit, _async=False, - vol_name=None, create_new_volumes=None): + vol_name=None, create_new_volumes=None, remote_array_1_id=None, + remote_array_1_sgs=None, remote_array_2_id=None, + remote_array_2_sgs=None): """Expand an existing storage group by adding new volumes. :param storage_group_id: storage group id -- str @@ -1792,6 +1794,16 @@ def add_new_volume_to_storage_group( :param _async: if call should be async -- bool :param vol_name: name to give to the volume, optional -- str :param create_new_volumes: new volumes only, no ro-use -- bool + :param remote_array_1_id 12 digit serial number of remote array, + optional -- str + :param remote_array_1_sgs list of storage groups on remote array to add + Remote device, Unisphere instance must be local to R1 storage group + otherwise volumes will only be added to the local group. + optional -- str or list + :param remote_array2_id optional digit serial number of remote array, + only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional -- str + :param remote_array2_sgs storage groups on remote array, optional + -- str or list :returns: storage group details -- dict """ add_volume_param = {'emulation': 'FBA'} @@ -1817,7 +1829,18 @@ def add_new_volume_to_storage_group( expand_sg_data = ({'editStorageGroupActionParam': { 'expandStorageGroupParam': { 'addVolumeParam': add_volume_param}}}) - + if remote_array_1_id and remote_array_1_sgs: + if not isinstance(remote_array_1_sgs, list): + remote_array_1_sgs = [remote_array_1_sgs] + add_volume_param.update({'remoteSymmSGInfoParam': { + 'remote_symmetrix_1_id': remote_array_1_id, + 'remote_symmetrix_1_sgs': remote_array_1_sgs}}) + if remote_array_2_id and remote_array_2_sgs: + if not isinstance(remote_array_2_sgs, list): + remote_array_2_sgs = [remote_array_2_sgs] + add_volume_param['remoteSymmSGInfoParam'].update({ + 'remote_symmetrix_2_id': remote_array_2_id, + 'remote_symmetrix_2_sgs': remote_array_2_sgs}) if _async: expand_sg_data.update(ASYNC_UPDATE) return self.modify_storage_group(storage_group_id, expand_sg_data) @@ -1841,19 +1864,55 @@ def remove_vol_from_storagegroup(self, sg_id, vol_id, _async=False): """ return self.remove_volume_from_storage_group(sg_id, vol_id, _async) - def remove_volume_from_storage_group(self, storage_group_id, vol_id, - _async=False): + def remove_volume_from_storage_group( + self, storage_group_id, vol_id, _async=False, + remote_array_1_id=None, remote_array_1_sgs=None, + remote_array_2_id=None, remote_array_2_sgs=None): """Remove a volume from a given storage group. :param storage_group_id: storage group id -- str :param vol_id: device id -- str :param _async: if call should be async -- bool + :param remote_array_1_id 12 digit serial number of remote array, + optional -- str + :param remote_array_1_sgs storage group on remote array, + Unisphere instance must be local to R1 array otherwise volumes + will only be added to the local group. Optional -- str or list + :param remote_array2_id optional digit serial number of remote array, + optional -- str + :param remote_array2_sgs storage group on remote array, optional + -- str or list :returns: storage group details -- dict """ if not isinstance(vol_id, list): vol_id = [vol_id] payload = ({'editStorageGroupActionParam': { 'removeVolumeParam': {'volumeId': vol_id}}}) + + if remote_array_1_id and remote_array_1_sgs: + if not isinstance(remote_array_1_sgs, list): + remote_array_1_sgs = [remote_array_1_sgs] + payload.update( + {'editStorageGroupActionParam': { + 'removeVolumeParam': { + 'volumeId': vol_id, + 'remoteSymmSGInfoParam': { + 'remote_symmetrix_1_id': remote_array_1_id, + 'remote_symmetrix_1_sgs': remote_array_1_sgs}}} + }) + if remote_array_2_id and remote_array_2_sgs: + if not isinstance(remote_array_2_sgs, list): + remote_array_2_sgs = [remote_array_2_sgs] + payload.update( + {'editStorageGroupActionParam': { + 'removeVolumeParam': { + 'volumeId': vol_id, + 'remoteSymmSGInfoParam': { + 'remote_symmetrix_1_id': remote_array_1_id, + 'remote_symmetrix_1_sgs': remote_array_1_sgs, + 'remote_symmetrix_2_id': remote_array_2_id, + 'remote_symmetrix_2_sgs': remote_array_1_sgs + }}}}) if _async: payload.update(ASYNC_UPDATE) return self.modify_storage_group(storage_group_id, payload) diff --git a/PyU4V/replication.py b/PyU4V/replication.py index 306ca015..e001811c 100644 --- a/PyU4V/replication.py +++ b/PyU4V/replication.py @@ -215,7 +215,8 @@ def create_storagegroup_snap( hours) def create_storage_group_snapshot( - self, storage_group_id, snap_name, ttl=None, hours=False): + self, storage_group_id, snap_name, ttl=None, hours=False, + secure=False): """Create a snapVx snapshot of a storage group. To establish a new generation of an existing SnapVX snapshot for a @@ -226,11 +227,16 @@ def create_storage_group_snapshot( :param snap_name: snapshot name -- str :param ttl: Time To Live -- str :param hours: if TTL is in hours instead of days -- bool + :param secure: sets secure snapshot, snapshot created with secure + option can not be deleted before ttl expires -- bool :returns: snapshot details -- dict """ payload = {'snapshotName': snap_name} if ttl: - payload.update({'timeToLive': ttl}) + if secure: + payload.update({'secure': ttl}) + else: + payload.update({'timeToLive': ttl}) if hours: payload.update({'timeInHours': 'True'}) return self.create_resource( diff --git a/PyU4V/tests/ci_tests/test_pyu4v_ci_provisioning.py b/PyU4V/tests/ci_tests/test_pyu4v_ci_provisioning.py index 8afcf68b..b634854c 100644 --- a/PyU4V/tests/ci_tests/test_pyu4v_ci_provisioning.py +++ b/PyU4V/tests/ci_tests/test_pyu4v_ci_provisioning.py @@ -1927,6 +1927,18 @@ def test_add_new_vol_to_storagegroup(self): for volume in volume_list: self.addCleanup(self.delete_volume, storage_group_name, volume) + def test_add_new_vol_to_srdf_storage_group(self): + """Tests adding a volume to a storage group that is replicated""" + sg_name, srdf_group_number, device_id, remote_volume = ( + self.create_rdf_sg()) + self.provisioning.add_new_volume_to_storage_group( + storage_group_id=sg_name, vol_size=1, num_vols=1, cap_unit='GB', + remote_array_1_id=self.conn.remote_array, + remote_array_2_sgs=[sg_name]) + storage_group_details = self.provisioning.get_storage_group( + storage_group_name=sg_name) + self.assertEqual(2, storage_group_details[constants.NUM_OF_VOLS]) + def test_remove_volume_from_storage_group(self): """Test remove_volume_from_storage_group.""" volume_name = self.generate_name() @@ -1944,6 +1956,18 @@ def test_remove_volume_from_storage_group(self): self.provisioning.add_existing_volume_to_storage_group( storage_group_name, device_id) + def test_remove_volume_from_srdf_storage_group(self): + """Tests adding a volume to a storage group that is replicated""" + sg_name, srdf_group_number, device_id, remote_volume = ( + self.create_rdf_sg()) + self.provisioning.remove_volume_from_storage_group( + storage_group_id=sg_name, vol_id=device_id, + remote_array_1_id=self.conn.remote_array, + remote_array_2_sgs=[sg_name]) + storage_group_details = self.provisioning.get_storage_group( + storage_group_name=sg_name) + self.assertEqual(0, storage_group_details[constants.NUM_OF_VOLS]) + def test_remove_vol_from_storagegroup(self): """Test remove_vol_from_storagegroup.""" volume_name = self.generate_name() diff --git a/PyU4V/tests/unit_tests/pyu4v_common_data.py b/PyU4V/tests/unit_tests/pyu4v_common_data.py index 46d947fa..91c3a360 100644 --- a/PyU4V/tests/unit_tests/pyu4v_common_data.py +++ b/PyU4V/tests/unit_tests/pyu4v_common_data.py @@ -20,6 +20,7 @@ class CommonData(object): array = '000197800123' remote_array = '000197800124' + remote_array2 = '000197800125' srp = 'SRP_1' slo = 'Diamond' workload = 'DSS' diff --git a/PyU4V/tests/unit_tests/test_pyu4v_provisioning.py b/PyU4V/tests/unit_tests/test_pyu4v_provisioning.py index 4c1e0a7f..2fc3504f 100644 --- a/PyU4V/tests/unit_tests/test_pyu4v_provisioning.py +++ b/PyU4V/tests/unit_tests/test_pyu4v_provisioning.py @@ -1455,6 +1455,39 @@ def test_add_new_vol_to_storage_group_name_async(self): mock_mod.assert_called_once_with( self.data.storagegroup_name, payload) + def test_add_new_vol_to_storage_group_srdf_multihop_srdf(self): + """Test adding new volume to replicated storage group.""" + remote_array = '000197800124' + remote_array2 = '000197800125' + num_of_volumes = 1 + volume_size = 10 + payload = {'editStorageGroupActionParam': { + 'expandStorageGroupParam': { + 'addVolumeParam': { + 'emulation': 'FBA', + 'create_new_volumes': False, + 'volumeAttributes': [{ + 'num_of_vols': 1, + 'volume_size': 10, + 'capacityUnit': 'GB'}], + 'remoteSymmSGInfoParam': { + 'remote_symmetrix_1_id': remote_array, + 'remote_symmetrix_1_sgs': ['PU-mystoragegroup-SG'], + 'remote_symmetrix_2_id': remote_array2, + 'remote_symmetrix_2_sgs': ['PU-mystoragegroup-SG'] + }}}}} + with mock.patch.object( + self.provisioning, 'modify_storage_group') as mock_mod: + self.provisioning.add_new_volume_to_storage_group( + storage_group_id=self.data.storagegroup_name, + num_vols=num_of_volumes, vol_size=volume_size, cap_unit='GB', + remote_array_1_id=self.data.remote_array, + remote_array_1_sgs=self.data.storagegroup_name, + remote_array_2_id=self.data.remote_array2, + remote_array_2_sgs=self.data.storagegroup_name) + mock_mod.assert_called_once_with( + self.data.storagegroup_name, payload) + def test_remove_vol_from_storage_group_volume_string(self): """Test remove_vol_from_storage_group single volume.""" payload = {'editStorageGroupActionParam': { @@ -1468,6 +1501,31 @@ def test_remove_vol_from_storage_group_volume_string(self): mock_mod.assert_called_once_with( self.data.storagegroup_name, payload) + def test_remove_vol_from_replicated_storage_group_multihop(self): + """Test remove_vol_from_storage_group single volume.""" + payload = { + 'editStorageGroupActionParam': { + 'removeVolumeParam': { + 'volumeId': [self.data.device_id], + 'remoteSymmSGInfoParam': { + 'remote_symmetrix_1_id': self.data.remote_array, + 'remote_symmetrix_1_sgs': [ + self.data.storagegroup_name], + 'remote_symmetrix_2_id': self.data.remote_array2, + 'remote_symmetrix_2_sgs': [self.data.storagegroup_name] + }}}} + with mock.patch.object( + self.provisioning, 'modify_storage_group') as mock_mod: + self.provisioning.remove_volume_from_storage_group( + storage_group_id=self.data.storagegroup_name, + vol_id=self.data.device_id, + remote_array_1_id=self.data.remote_array, + remote_array_1_sgs=self.data.storagegroup_name, + remote_array_2_id=self.data.remote_array2, + remote_array_2_sgs=self.data.storagegroup_name) + mock_mod.assert_called_once_with( + self.data.storagegroup_name, payload) + def test_remove_vol_from_storage_group_volume_list(self): """Test remove_vol_from_storage_group multiple volumes.""" payload = {'executionOption': 'ASYNCHRONOUS', diff --git a/PyU4V/tests/unit_tests/test_pyu4v_replication.py b/PyU4V/tests/unit_tests/test_pyu4v_replication.py index e92da2de..03b2ebec 100644 --- a/PyU4V/tests/unit_tests/test_pyu4v_replication.py +++ b/PyU4V/tests/unit_tests/test_pyu4v_replication.py @@ -146,6 +146,17 @@ def test_create_storage_group_snap(self): self.data.storagegroup_name, 'snap_name', ttl=2, hours=True) self.assertEqual(2, mock_create.call_count) + def test_create_storage_group_snapshot_secure(self): + """Test create_storage_group_snapshot.""" + with mock.patch.object( + self.replication, 'create_resource') as mock_create: + self.replication.create_storage_group_snapshot( + self.data.storagegroup_name, 'snap_name') + self.replication.create_storage_group_snapshot( + self.data.storagegroup_name, 'snap_name', ttl=2, hours=True, + secure=True) + self.assertEqual(2, mock_create.call_count) + def test_get_storagegroup_snapshot_generation_list(self): """Test get_storagegroup_snapshot_generation_list.""" gen_list = self.replication.get_storagegroup_snapshot_generation_list( diff --git a/README.rst b/README.rst index 363130cb..cbeb3198 100644 --- a/README.rst +++ b/README.rst @@ -26,7 +26,7 @@ PyU4V Version 9.1 +-----------------------+----------------------------+ | **Author** | Dell EMC | +-----------------------+----------------------------+ -| **PyU4V Version** | 9.1.1.0 | +| **PyU4V Version** | 9.1.2.0 | +-----------------------+----------------------------+ | **Unisphere Version** | 9.1.0.5 | +-----------------------+----------------------------+ diff --git a/docs/source/conf.py b/docs/source/conf.py index cba8906d..6eb597f2 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -26,7 +26,7 @@ # The short X.Y version. version = u'9.1' # The full version, including alpha/beta/rc tags -release = '9.1.1.0' +release = '9.1.2.0' # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: diff --git a/docs/source/index.rst b/docs/source/index.rst index 6cca3588..27a6dc65 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -35,7 +35,7 @@ Supported PyU4V Versions ------------------------ +-----------------------+-----------------------------------------+ -| **PyU4V Version** | 9.1.1.0 | +| **PyU4V Version** | 9.1.2.0 | +-----------------------+-----------------------------------------+ | **Unisphere Version** | 9.1.0.5 | +-----------------------+-----------------------------------------+ diff --git a/docs/source/installation.rst b/docs/source/installation.rst index 20f3a307..f69c6f11 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -5,7 +5,7 @@ Requirements ------------ +-----------------------+-----------------------------------------+ -| **PyU4V Version** | 9.1.1.0 | +| **PyU4V Version** | 9.1.2.0 | +-----------------------+-----------------------------------------+ | **Unisphere Version** | 9.1.0.5 | +-----------------------+-----------------------------------------+ diff --git a/setup.py b/setup.py index af17f2e0..a0bb94f8 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setuptools.setup( name='PyU4V', - version='9.1.1.0', + version='9.1.2.0', url='https://github.com/MichaelMcAleer/PyU4V/', author='Dell Inc. or its subsidiaries', author_email='Michael.Mcaleer@dell.com', From 44a2b57d351a91a9a118f8988384bb602fa3bfa8 Mon Sep 17 00:00:00 2001 From: rawstorage Date: Thu, 19 Dec 2019 11:15:16 +0000 Subject: [PATCH 2/5] corrected failing tests, found some functions still calling depreciated methods so corrected these also. --- PyU4V/provisioning.py | 23 ++++++++++--------- PyU4V/tests/ci_tests/base.py | 6 ++--- .../ci_tests/test_pyu4v_ci_provisioning.py | 13 ++++++++--- PyU4V/utils/constants.py | 2 +- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/PyU4V/provisioning.py b/PyU4V/provisioning.py index fb51aa50..fc23ab32 100644 --- a/PyU4V/provisioning.py +++ b/PyU4V/provisioning.py @@ -1795,15 +1795,16 @@ def add_new_volume_to_storage_group( :param vol_name: name to give to the volume, optional -- str :param create_new_volumes: new volumes only, no ro-use -- bool :param remote_array_1_id 12 digit serial number of remote array, - optional -- str + optional -- str :param remote_array_1_sgs list of storage groups on remote array to add - Remote device, Unisphere instance must be local to R1 storage group - otherwise volumes will only be added to the local group. - optional -- str or list + Remote device, Unisphere instance must be local to R1 storage + group otherwise volumes will only be added to the local group. + optional -- str or list :param remote_array2_id optional digit serial number of remote array, - only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional -- str + only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional + -- str :param remote_array2_sgs storage groups on remote array, optional - -- str or list + -- str or list :returns: storage group details -- dict """ add_volume_param = {'emulation': 'FBA'} @@ -1874,14 +1875,14 @@ def remove_volume_from_storage_group( :param vol_id: device id -- str :param _async: if call should be async -- bool :param remote_array_1_id 12 digit serial number of remote array, - optional -- str + optional -- str :param remote_array_1_sgs storage group on remote array, - Unisphere instance must be local to R1 array otherwise volumes - will only be added to the local group. Optional -- str or list + Unisphere instance must be local to R1 array otherwise volumes + will only be added to the local group. Optional -- str or list :param remote_array2_id optional digit serial number of remote array, - optional -- str + optional -- str :param remote_array2_sgs storage group on remote array, optional - -- str or list + -- str or list :returns: storage group details -- dict """ if not isinstance(vol_id, list): diff --git a/PyU4V/tests/ci_tests/base.py b/PyU4V/tests/ci_tests/base.py index 857220ec..3c06d1a9 100644 --- a/PyU4V/tests/ci_tests/base.py +++ b/PyU4V/tests/ci_tests/base.py @@ -152,7 +152,7 @@ def create_rdf_sg(self): srdf_mode='Synchronous', establish=True, _async=True) self.conn.common.wait_for_job_complete(job) - local_volume = self.provision.get_vols_from_storagegroup( + local_volume = self.provision.get_volumes_from_storage_group( sg_name)[0] srdf_group_number = ( self.replication.get_storage_group_srdf_group_list( @@ -177,7 +177,7 @@ def cleanup_rdfg(self, sg_name, srdf_group_number): if 'Synchronized' in current_rdf_state_list: self.replication.suspend_storage_group_srdf( storage_group_id=sg_name, srdf_group_number=srdf_group_number) - local_volume_list = self.provision.get_vols_from_storagegroup( + local_volume_list = self.provision.get_volumes_from_storage_group( sg_name) self.replication.delete_storage_group_srdf( storage_group_id=sg_name) @@ -185,7 +185,7 @@ def cleanup_rdfg(self, sg_name, srdf_group_number): for local_volume in local_volume_list: self.provision.delete_volume(device_id=local_volume) self.conn.set_array_id(array_id=self.conn.remote_array) - remote_volume_list = self.provision.get_vols_from_storagegroup( + remote_volume_list = self.provision.get_volumes_from_storage_group( sg_name) self.provision.delete_storage_group(storage_group_id=sg_name) for remote_volume in remote_volume_list: diff --git a/PyU4V/tests/ci_tests/test_pyu4v_ci_provisioning.py b/PyU4V/tests/ci_tests/test_pyu4v_ci_provisioning.py index b634854c..6bc9b23a 100644 --- a/PyU4V/tests/ci_tests/test_pyu4v_ci_provisioning.py +++ b/PyU4V/tests/ci_tests/test_pyu4v_ci_provisioning.py @@ -1934,7 +1934,7 @@ def test_add_new_vol_to_srdf_storage_group(self): self.provisioning.add_new_volume_to_storage_group( storage_group_id=sg_name, vol_size=1, num_vols=1, cap_unit='GB', remote_array_1_id=self.conn.remote_array, - remote_array_2_sgs=[sg_name]) + remote_array_1_sgs=[sg_name]) storage_group_details = self.provisioning.get_storage_group( storage_group_name=sg_name) self.assertEqual(2, storage_group_details[constants.NUM_OF_VOLS]) @@ -1960,13 +1960,20 @@ def test_remove_volume_from_srdf_storage_group(self): """Tests adding a volume to a storage group that is replicated""" sg_name, srdf_group_number, device_id, remote_volume = ( self.create_rdf_sg()) + self.provisioning.add_new_volume_to_storage_group( + storage_group_id=sg_name, vol_size=1, num_vols=1, cap_unit='GB', + remote_array_1_id=self.conn.remote_array, + remote_array_1_sgs=[sg_name]) + storage_group_details = self.provisioning.get_storage_group( + storage_group_name=sg_name) + self.assertEqual(2, storage_group_details[constants.NUM_OF_VOLS]) self.provisioning.remove_volume_from_storage_group( storage_group_id=sg_name, vol_id=device_id, remote_array_1_id=self.conn.remote_array, - remote_array_2_sgs=[sg_name]) + remote_array_1_sgs=[sg_name]) storage_group_details = self.provisioning.get_storage_group( storage_group_name=sg_name) - self.assertEqual(0, storage_group_details[constants.NUM_OF_VOLS]) + self.assertEqual(1, storage_group_details[constants.NUM_OF_VOLS]) def test_remove_vol_from_storagegroup(self): """Test remove_vol_from_storagegroup.""" diff --git a/PyU4V/utils/constants.py b/PyU4V/utils/constants.py index 0797b2b1..cd873370 100644 --- a/PyU4V/utils/constants.py +++ b/PyU4V/utils/constants.py @@ -30,7 +30,7 @@ DELETE = 'DELETE' # Unisphere REST URI constants -PYU4V_VERSION = '9.1.1.0' +PYU4V_VERSION = '9.1.2.0' UNISPHERE_VERSION = '91' VERSION = 'version' ITERATOR = 'Iterator' From 539e6839999f2aeba175527707dbd33d8e0bdeee Mon Sep 17 00:00:00 2001 From: rawstorage Date: Thu, 19 Dec 2019 11:46:50 +0000 Subject: [PATCH 3/5] updated change log and comments --- ChangeLog | 28 ++++++++++++++++------------ PyU4V/replication.py | 2 +- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9159316a..70e58884 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,23 @@ PyU4V Change Log ================ -Version 9.1.2.0 - released 12/12/19 +Version 9.1.2.0 - released 19/12/19 =================================== +Provisioning Enhancements +------------------------- +- add_new_volume_to_storage_group : added functionality to be able to add + volumes creating srdf pairing and placing of volumes in storage groups + on the remote Symm/SG when adding vols to a local storage group. +- remove_volume_from_storage_group enhanced to be able to automatically remove + volumes from local and remote storage groups deleting srdf pairs as part of + the process, storage group must be local to the unisphere instance and only + works with R1 group. + +Replication Enhancements +------------------------- +- create_storage_group_snapshot added secure option to enable creation of + secure snapshot + Fixes ----- @@ -85,18 +100,7 @@ Provisioning Enhancements any masking view - format_director_port : Format separate director port into single string - get_any_director_port : Get a non-GuestOS port from a director -- add_new_volume_to_storage_group : added functionality to be able to add - volumes creating srdf pairing and placing of volumes in storage groups - on the remote Symm/SG when adding vols to a local storage group. -- remove_volume_from_storage_group enhanced to be able to automatically remove - volumes from local and remote storage groups deleting srdf pairs as part of - the process, storage group must be local to the unisphere instance and only - works with R1 group. -Replication Enhancements -------------------------- -- create_storage_group_snapshot added secure option to enable creation of - secure snapshot Fixes ----- diff --git a/PyU4V/replication.py b/PyU4V/replication.py index e001811c..b3a81e01 100644 --- a/PyU4V/replication.py +++ b/PyU4V/replication.py @@ -228,7 +228,7 @@ def create_storage_group_snapshot( :param ttl: Time To Live -- str :param hours: if TTL is in hours instead of days -- bool :param secure: sets secure snapshot, snapshot created with secure - option can not be deleted before ttl expires -- bool + option can not be deleted before ttl expires -- bool :returns: snapshot details -- dict """ payload = {'snapshotName': snap_name} From ac6d636ddae81106280438e3458892639a747222 Mon Sep 17 00:00:00 2001 From: rawstorage Date: Thu, 19 Dec 2019 11:53:30 +0000 Subject: [PATCH 4/5] updated change log and comments --- ChangeLog | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 70e58884..2572687c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,12 +6,16 @@ Version 9.1.2.0 - released 19/12/19 Provisioning Enhancements ------------------------- - add_new_volume_to_storage_group : added functionality to be able to add - volumes creating srdf pairing and placing of volumes in storage groups - on the remote Symm/SG when adding vols to a local storage group. + volumes to SRDF protected storage groups, new volumes will automatically be + protected with SRDF, volumes are added to the remote storage group to fully + automate the provisioning and simplify operations. Storage group must be + local to the unisphere instance and only works with storage groups that + contain R1 or R11 devices. - remove_volume_from_storage_group enhanced to be able to automatically remove volumes from local and remote storage groups deleting srdf pairs as part of - the process, storage group must be local to the unisphere instance and only - works with R1 group. + the process, no need to suspend, the automation takes care of everything, + storage group must be local to the unisphere instance and only works with + storage groups that contain R1 or R11 devices. Replication Enhancements ------------------------- From 462054867216bf09167c606272280158a5b553d4 Mon Sep 17 00:00:00 2001 From: rawstorage Date: Thu, 19 Dec 2019 12:22:37 +0000 Subject: [PATCH 5/5] updated change log and comments, including HTML --- ChangeLog | 2 + PyU4V/provisioning.py | 30 +- docs/build/doctrees/PyU4V.doctree | Bin 2066486 -> 1398915 bytes docs/build/doctrees/PyU4V.utils.doctree | Bin 72674 -> 62518 bytes docs/build/doctrees/api.doctree | Bin 2792 -> 2547 bytes docs/build/doctrees/configuration.doctree | Bin 40502 -> 35427 bytes docs/build/doctrees/contribute.doctree | Bin 17007 -> 15531 bytes docs/build/doctrees/environment.pickle | Bin 546632 -> 542998 bytes docs/build/doctrees/genindex.doctree | Bin 2415 -> 2217 bytes docs/build/doctrees/index.doctree | Bin 32891 -> 29041 bytes docs/build/doctrees/installation.doctree | Bin 18319 -> 16029 bytes docs/build/doctrees/programmers_guide.doctree | Bin 40901 -> 40059 bytes docs/build/doctrees/quick_start.doctree | Bin 20245 -> 18024 bytes docs/build/doctrees/recommendations.doctree | Bin 12178 -> 11527 bytes docs/build/doctrees/support.doctree | Bin 5610 -> 5115 bytes docs/build/doctrees/tools.doctree | Bin 0 -> 14877 bytes docs/build/html/.buildinfo | 2 +- docs/build/html/PyU4V.html | 8411 ++++++++--------- docs/build/html/PyU4V.utils.html | 222 +- docs/build/html/_modules/PyU4V/common.html | 2 +- docs/build/html/_modules/PyU4V/migration.html | 2 +- .../html/_modules/PyU4V/performance.html | 2 +- .../html/_modules/PyU4V/provisioning.html | 74 +- .../html/_modules/PyU4V/replication.html | 12 +- .../html/_modules/PyU4V/rest_requests.html | 2 +- docs/build/html/_modules/PyU4V/system.html | 2 +- .../PyU4V/tools/openstack/migrate_utils.html | 1121 +++ .../html/_modules/PyU4V/univmax_conn.html | 2 +- .../_modules/PyU4V/utils/config_handler.html | 2 +- .../html/_modules/PyU4V/utils/decorators.html | 2 +- .../html/_modules/PyU4V/utils/exception.html | 2 +- .../_modules/PyU4V/utils/file_handler.html | 2 +- .../html/_modules/PyU4V/workload_planner.html | 2 +- docs/build/html/_modules/index.html | 2 +- docs/build/html/_sources/index.rst.txt | 2 +- docs/build/html/_sources/installation.rst.txt | 2 +- docs/build/html/_sources/tools.rst.txt | 80 + docs/build/html/_static/basic.css | 90 +- docs/build/html/_static/doctools.js | 5 +- .../html/_static/documentation_options.js | 4 +- docs/build/html/_static/jquery.js | 6 +- docs/build/html/_static/searchtools.js | 51 +- docs/build/html/api.html | 2 +- docs/build/html/configuration.html | 102 +- docs/build/html/contribute.html | 18 +- docs/build/html/genindex.html | 2 +- docs/build/html/index.html | 92 +- docs/build/html/installation.html | 50 +- docs/build/html/objects.inv | Bin 3622 -> 3582 bytes docs/build/html/programmers_guide.html | 6 +- docs/build/html/py-modindex.html | 2 +- docs/build/html/quick_start.html | 26 +- docs/build/html/recommendations.html | 26 +- docs/build/html/search.html | 2 +- docs/build/html/searchindex.js | 2 +- docs/build/html/support.html | 12 +- docs/build/html/tools.html | 288 + 57 files changed, 5727 insertions(+), 5041 deletions(-) create mode 100644 docs/build/doctrees/tools.doctree create mode 100644 docs/build/html/_modules/PyU4V/tools/openstack/migrate_utils.html create mode 100644 docs/build/html/_sources/tools.rst.txt create mode 100644 docs/build/html/tools.html diff --git a/ChangeLog b/ChangeLog index 2572687c..5597b369 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,8 @@ Replication Enhancements - create_storage_group_snapshot added secure option to enable creation of secure snapshot +Version 9.1.1.0 - released 12/12/19 +=================================== Fixes ----- diff --git a/PyU4V/provisioning.py b/PyU4V/provisioning.py index fc23ab32..60d91e79 100644 --- a/PyU4V/provisioning.py +++ b/PyU4V/provisioning.py @@ -1794,16 +1794,16 @@ def add_new_volume_to_storage_group( :param _async: if call should be async -- bool :param vol_name: name to give to the volume, optional -- str :param create_new_volumes: new volumes only, no ro-use -- bool - :param remote_array_1_id 12 digit serial number of remote array, + :param remote_array_1_id: 12 digit serial number of remote array, optional -- str - :param remote_array_1_sgs list of storage groups on remote array to add - Remote device, Unisphere instance must be local to R1 storage - group otherwise volumes will only be added to the local group. - optional -- str or list - :param remote_array2_id optional digit serial number of remote array, + :param remote_array_1_sgs: list of storage groups on remote array to + add Remote device, Unisphere instance must be local to R1 + storage group otherwise volumes will only be added to the + local group -- str or list + :param remote_array2_id: optional digit serial number of remote array, only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional -- str - :param remote_array2_sgs storage groups on remote array, optional + :param remote_array2_sgs: storage groups on remote array, optional -- str or list :returns: storage group details -- dict """ @@ -1874,14 +1874,16 @@ def remove_volume_from_storage_group( :param storage_group_id: storage group id -- str :param vol_id: device id -- str :param _async: if call should be async -- bool - :param remote_array_1_id 12 digit serial number of remote array, + :param remote_array_1_id: 12 digit serial number of remote array, optional -- str - :param remote_array_1_sgs storage group on remote array, - Unisphere instance must be local to R1 array otherwise volumes - will only be added to the local group. Optional -- str or list - :param remote_array2_id optional digit serial number of remote array, - optional -- str - :param remote_array2_sgs storage group on remote array, optional + :param remote_array_1_sgs: list of storage groups on remote array to + add Remote device, Unisphere instance must be local to R1 + storage group otherwise volumes will only be added to the + local group -- str or list + :param remote_array2_id: optional digit serial number of remote array, + only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional + -- str + :param remote_array2_sgs: storage groups on remote array, optional -- str or list :returns: storage group details -- dict """ diff --git a/docs/build/doctrees/PyU4V.doctree b/docs/build/doctrees/PyU4V.doctree index 67ff6ac532bf7baafa7cc7654637ebd7ac4e63ee..2e54717d3903ff5ae8451b9825f6ff4f24896d03 100644 GIT binary patch literal 1398915 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

5iS(Lnzr}=aNN6?EL${ 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 Mf{ky4WA1GDAKXJtiU0rr literal 2066486 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

yG6^?aLnvhMO!=OtdJ-O=tx-+_bUDfVpW0c)(4l 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%0DnQb6|7z6G&i$(+-`>A`?q37- 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

E-aiFR7Uq+%?O18oakC*zTGrlR?gymf zd_!18UArS}4S|#Pc&y3hv>uOsQbA0o+~ctps$wLsjU+PtaV++D45)CW$77MⅆjO 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%0DMvbf*oMiQBMa4eoZpSQ-Av*+@R(QTibif{>; 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

pXCVP+-UY|4@BrLO2-OSt#(e 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

O@S~u(-PL)pt3XAt-2jo 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 diff --git a/docs/build/doctrees/PyU4V.utils.doctree b/docs/build/doctrees/PyU4V.utils.doctree index 09c5e41cec54abf10f434f4f7f3c9d9e6b071beb..d35acbc7ebb15f960a7b7e9599480e959d7164eb 100644 GIT binary patch literal 62518 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 YL6PEZs+i4TV-57ngbRbh-J6~H|6|-EP5=M^ literal 72674 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 diff --git a/docs/build/doctrees/api.doctree b/docs/build/doctrees/api.doctree index 5fea9b69edf663725a6e19e4ced3e06091a6cd62..68f0c00d879ab7cbb4415602b6321706193c7d25 100644 GIT binary patch literal 2547 zcmZ8j-)mbp6i$=au@l=#({&GRLNi8L+bzikeHeWiV}mgQrqC^W$q@3DY>DVfcam;m z!wTEOMgw}A_CM~=*r$8#8{3A9ua1t+kMDfv=>D<&?|K6vgWTltNooU0ki=mSQ zIoCe^6JP!r-^UlBYw4{srOkK@8_>vvRLpW6e~n@z>^PozX>_A6TB0p>evL1%+49mW zzO)s3-@g6vPjLy%!7Q`9*K@!rxjuirYXEbbR0nq6ByPC8}S@pO{5q8NxL zVlR0VPs11Ay}A0H-<>6G!pi+HgOcxX{o5MWM}8O6KM7LqYk_%8J4 zryD^>m-&cW&f>*J*sbd8j8?OFSBjV7EAdpkLh9SV?G!ax2|Mi1vpc=Dv?#cZbUBlB z{_}ghlO2?mHzq<4d7dJ|nmcrXL?u62lFyMz_PVgQRoAbI3nf{NX*qy~RpM1T`ydRm z(k9lChHbrtq-I^{IPSgF6LikQrj^FlXwOmb(7vRq1nP@k5`$srPPpcldSfFNjDoG6 z<^>jewHpH4*I4e(m!(x$^?@BpEKR#`*GlD{#c((_#%tsG(&oj3&`)iNQjzJ{*gQfq zaG*y)z{b?x4kn-060Ue9A-B>Cvgj3foFAAs&oJ~XFO2m>@f)t<#b($QR5i<1c*v&` zSb6G8w@_+@7UQFG0(XO3YBjKehUGMer0XrscuFdM2m`5$(i5&T!=M#IxAf!FuTP!C z`_bwq;no^U1l3G|MkpL|%X|#`ru3^;T9uU;j@Ne9Oo-pZpf-9Rz~bo9>c-m1aF7yk zKuG`}g@j`0E2<|Yop8X-u--&3g-4cW#xjD&13BO(HR~|6Go#1I5pYOG3Jf7RjiMa} zwDgADi^8S^qx!7O3(~L-s8#|A!dXpKGPqw!0IhbZ_V=Q~@sb%b%@dyv__Q#NljV~Y zMKVurq?0v2_X(4Zj#Nry9_7xW8^o*7LoyEhr}O#IpR19@unB{L7X&$BV(6^Ox0fU% z3fGC);Y4^}xHsqLx3{-v#moz%&y1a%Gk$XpO?Mu{<8&ffOecuvIZ*aMwFCL-^Dkcm zmVq5-Yi^R{-p$d%jW-6jo#cL8xe-2BaMAU21pc!$5j)`+Y|2T~SWWoE6{);;;o~YA zsU5c|bC5P+#K7V`T$areU3cJS+S4f!av~HSaCBRlMDL!*}mqeM2 z*5f)HXM&&2p$E?M@BW(uT(!;6E@o26^q@4*Xq#W zihYbl>(d;5yl!j0gD(X%d!shM2M>A#A1e-Xq&C>}^on?|5mzPIWogXJJ2G8;<>>5x DCeZPF literal 2792 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 literal 40502 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 OwI7I@uH|jHu){UP$Ul_ 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 ZIw0@CuXa6)`9R)_8+;58zqO(6{{b|Hle_=` diff --git a/docs/build/doctrees/contribute.doctree b/docs/build/doctrees/contribute.doctree index 58141d8858aeac30d988609f256307ca5095c69b..6519919d05c360df81b7445df55f732009cb4235 100644 GIT binary patch literal 15531 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

    @98R9Tbba+i@eSzc&A0fI692*{dQ;4yYxdjY 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 diff --git a/docs/build/doctrees/genindex.doctree b/docs/build/doctrees/genindex.doctree index d30bb31d961504ab22ce837920b1cecf17f924fc..7d2745f4c59701f9682a7bb3de4b4dfb2605100f 100644 GIT binary patch literal 2217 zcmZ8iNoyoG6!zAem-aGo4jG$q2tzUkFM&CPxrO917@9dGlZ%5;m((p`l~j>bcK5-M z90D_-Ta;^lYd%#~m)&h>T<_D{^xpTL{@nWazy4bF7lzDarI*TGYQwmTp`U=9YajoK zZ~lsp@w+gv^ud|ZW;}*9XkUE9F=1lwyF14j!Tal zq>MKubI30AGDV#Oi0_W3dHvOAW$`48X?AD%B0+1GA={Ii4P+)xk&bwU@B>=Ni|Ra5 z@inURO#_}Sz}Eo3MH1qT7$Ep&9bBBRx>{I^#-J^UI8V0gVVIRRm5j8d+Fc-Z$wJ?8 z@1>ri--j&$Ce~=rHH)G9k*X54S};HiM`3{LaZA0i5dxzqwWoOjVW$p5;QJ2Zb|aQn zLE7^sBdNsc6yZ9^%g$psni%7?@%-80&3f2NWYT3$W)oxc2xREc*@9#yPo#8k`Lag1 z;uS(3q!(n-Xhdubn$C~HuH}WXo+y6LRlL~<+k&cA?1V!;lc<%azH|$vPUtW`E~f}L ze4rMMokGKMngbblOEaD>6+eZc)J5qD*O_6^LZeGRx%lD2NqnCy9};e@u|!bK6t}2z zN;UH_?3>ard+AhOVmMtnS#cpghGFgWDS?IQ$@0O9WjII|aHx_%eH1Pf!=9pgTGA;; zxf$dQ%y@WVd1fplj29pW!bmV<6uOzw6WkHykcLgh9NDzAx}`)kYLmvEAxW1 ztV2~RK!R{qQ z7iqHWEv7-7hh1F8f&aAHTcAv%MkZ3#D`Hsig5XXZbCgy0-A%}tB6K2lI1}C%?%mbZ z!^6X6G55mgOJk>3jNe~D(_O`IoGg;ZWI;U7QDu*+_JLo#zJ80c4DBRa36qegFei&J z-Wcp?$^E1XBYdt9V&Lf*{AXUon|?S2n{v_)R+~O?MQZQo@MV>a)Q;P9bC5RGh=IjB zSn;ihsXK6U?dgmNITZ>&aCA$VMDJafQw-A|C1%&b@=)^}xrWYWu1JrB*Se+EfRCiMiZUJUJmhmA1ffXLlA!@_YlkkW| zwS?Bs24Hxbv_dzrA1@B@UIOcHaV;)f7$m^Y3l!@yitCXRukimu?6|P^yj7L;UM8`I zQh0c*ku**Vy*kb3NUewD(Xf1MRNMVZ^@|m-)gCN)94w+%Mn_Bju@)CrkTj}^p)ew{{b*wbJG9- literal 2415 zcmZ`*iFOo46b*qaGg(L=?1=;s4MH-gQ2|$6P>i;yJjA7KYr1Qu+Vu9iszloPkotuQBR!X-fz);THI|8~^RCmkxVOW*XQ-Bl zSen&LYTnb~z8kfko*t2f(_s?G74CO5jq9SRO=xgZns|Y1X&&hCAdO}s*V2on)}oE= zHJ9r&>KA#AD?FVRxi5Lhp?V>D%M$ydQNlt-OO{l}_h&oDrL$W1nO}1G84D{*bI63Bb!adQDjh!u9gl3sqWO83FVo1zWnBO-bofOY zgOI`;!u4Q*wltcrxcm|gYH3WEv^6ixZ1LU7)5ORms9zUR0VngzDZkQTXNLA|P~llA z0r;ZkR{>)`j!yFce$B8?CVmLTT?NUJNZJJq>-oq8evNwJsn@B7N_}aM;5XJ_ZJAl9 z5}xs~@0vrS8k)|qDYglsnQ)Xz{cX2ir#?K%SNTmE&Rg~g(xJ#BzCn}9m`q=6G)$Tz zjY4T!b7|ggC=*8wev4{>fLV-)Gk)8_?vh+Dl1nn;cOd!wI<_%UAThKTrM`#&>Rp#z z8b*N#r=%M%?;&lJh)lKBTj-;a3U}qX_Z@ZCp-GwNY3`x8GyvCL_p1^~5TT`l#w-yU zTNI!~AcmXN7szJOX5XPP88@YE`6^&2DGdkfG?f-6E6o3$DUmuL&^O!yBy>F~VsFK2 zpWEox-k^vxZ&PiW73hV}!=#l~%R($0T^2b4sExaGDPsP>p#!#6tuQL7_Kb{y*GOKZ zK|Gi}b#6Z3h{okgh)9Ou3-DLc8iSjDKTTR;o0F=&(Be|4LzCv5;$%Nc#iA!;5k{T} z5WZzCOW#VCLK-0yZDUrmfzvD} z7&K)VRTUTOG}O&q&+3|&0MiODl1+(4%Oi83>Stg{0Sm!%2xtL0q`!3D8goi2YD_Q8GpJCBZ;QB z90o@5%>@j}JC(+_sE@8)2Dr~?U}Hvpu8vR*lSN`kg8DB2w3NdZLAPOw(gI%B1N`M0 z4co?Vdh9Ej-tgG+^734^YE+t(9xLaX%yfg-Y$ver} z;fZfli$-m-d0T{hOTA&h-vMok@r#jD_3it0I@WcajAWS>AjBwdWA6O`ZC4bR%GLa% zO9x90hl!SX`JN#Y+lhdGTB9M1a`>wI{bw7oB|V!#`HNFD>A=pY@4i|5y3nIeboe(l zrY1C0w*6J6J6C@1@E__Z@*nf>&vO1@@?jcRZwZ)@n1`5zRNF{e&40Q4H}zXtU}FE% J;eU(f+=XYZZ6Gvm24 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 KMa7+<^8W*82$ib< literal 32891 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 S@ey-*BW@yj6MpN%ng0cCg#Xn5 diff --git a/docs/build/doctrees/installation.doctree b/docs/build/doctrees/installation.doctree index fcf5db498298ab857b5b2c506f27cc84c7753b48..de154d2b5b2e5ace58908de83645789334616a1f 100644 GIT binary patch literal 16029 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 literal 18319 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 bxyDg_Na{zWUewAq6E~jD3dNUNSUdb*Cc?(B delta 7165 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 diff --git a/docs/build/doctrees/quick_start.doctree b/docs/build/doctrees/quick_start.doctree index 8927828372f38759b07d0e9c711b6b99b21d133e..db6aacc527692479e2dce6e0d45f9bfc1e4031dc 100644 GIT binary patch literal 18024 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 literal 12178 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 eToGKfI*+L}^#J~w&O-D;vhf}UHZ zuc7!u=>);S+oqEfu*R-UHqUOFP9@lpSx9(B%cEjI%nH$3@h-09u)BvhiUE}DLV7ZiBxln$Vb5tWl9cFV5{yYw&|m^{ z2SZ9@E6#ht#Hwd- z37TzFY`%jze`DGjX^Kf!3yvpyUp$a zatqkzFbn=4`B;X%zJu!tPXjFiErBkFr8?*XI;L_0%w(fL(u8OlJ3pLY_P(91Lr=Q4v@=nJ&lQ_ z*J9%Fa|Sz#oMzVXB=fl?$bH)3S(Fs;u1zyTktE{GQt=GwCG}ngmKaU)pinC@MS?o0 zgYnHD+*)7=RpRe&fz>Gs%$e0ekt9@y2}hc4vr2n|b?r*XHBG0M&AN;F0KuZ{)#t9T zCdAlRZoD%~)r$TVWO#8^Dw=kgy?Q3s5ubrbdt=zxw+ZvS3Hhz38CN+&?z~LmuPcdP zL)l9GHF%WQ2~sDY4G{nFI^rv(e&dFIf-m09Tu4@mDH^K-&XR!jqM#L-U9L8t|Puu z?jL!KCj#|`VpY)Fnqy@~eDn5Yl%8iEO&(X>y=| z71Y_wIqC;0$J7b)Z|tqAPj|ELIAJ=P$Pt}RTjrqO4?=%89|YgCc5xW2Yon%&B6XEC zHB;3~>{sj|Om(s}KR1VRdSAvrZr&q?B03PiwbF5hp=fG*6JDGI+$fewZ`3sHfXEqi-uCTnxr(HXSOz1 z?LE*tGTjl)s3cm*5`!28lhP#3FVk@j09&oHSR2|Tf zS+n(=#Lb72FDVaim=#8nX1Hj!=sAb2G|`2si5AVGyWhdCha%2a3!p&fl47Q7%SmdL zDqq6KSzhQ6#kz<=Rhn+0hkN(;6vzMFi;E$ZQpk{@sY$4Wovo;mF3pB0^u<#a-6^HH zGqW;t#K{9d()9eftqk?<-HQt|o6V-xLBUWACQ4j5t|ufL6)1LL@fhKG1KqE=C21sN z9L5xdQw%mJXkmv=B(fpYghhB9B94dryks5IBZU@WJ7sS0xHRi=k>+6oJQ&tZ*g9Bd zB(Vo>xEWYCQ`Y_MRIX?dix6o8RGaiX7m9|{I~__Q9gex;9-4tt{A5u&t$m9biLFNb&}Z9M<}D`;&yaF$xdGf-8^r+fDjq+YAp&nxO)^c+ zL&ire!51)HNQ6cBno0@c>9+;KS7GNZH}=CY5fP~@cn9qxA_e~SVFi!b{1amLX_1$& z+?$MhH>tw?6+j{)TW`1Vzil&uDh3znHfcJbF+y?zUX0>ycx85?M3B>vri3RUiScmb zo)JXR^>AAewz3ocBrHq*|PXvL78 Msz|oCW-;jh7oSvs-T(jq literal 5610 zcmds5cX%8}6_;hJor)znc3k9SlaNFqNJ_v2V@e1(367k@#2!bKW7)f%yV-beci+se z3a})B1Z+YHH9+WuUPAA^_ufM9CG_6Q@9o~5Pv=Yc_&)fDKcw$&ZsyJJ{a%^(-W9zS zH>@PF=bPCebfqcq*SZYi04JqC?=gG4y$1p2VpF26FazOY<`UxV0fNuXnjiK)2d(eH?U2p z0Wp?;o@wHmOvGSCdA^IgXhVsP>m{ztrax8V=_;dSK#Eye=VAss$N9G!cX0?fFn;3|l8tXw* zVxR$mwu^!j$J#3=F<3ewr4y&cpqoUz&yZCT0~Oyf2A@wViNUf{Ii#86lS^VP({W0P zZlfk0(U0Vfgbd@qo6`g|{hHLOk3s#k%HGp0M~fcbn`pxc6sGgG?VwA!56 zdrxM4*n5A&-ZN^8+N8FsZE8yNWrt{10rK3mvP$Ztk~+DhPAREVONqkGs&U_0o!1=z zVFfz7`yIEx`bxS(N;?2T&8V$Kb$T%qv_+knl%1s9DGYXUYTAiZf$j+W=cIHe#;;(h zOQluQ(uw^QYtiu&X|2HPtg4hQ(|D4#&zFvoR@L*RRZeQgast=NUC9aqD^}9F(2G@4 zF64{06~UFQYN+v>XRJtvm%)){+gKTD!J(bZ%$>V2v#!a^u4#4l!bSg8q;wbXch{8e z#w7fAMXxf(ImcQ8ekl<%6?oF!VTp57x(9<8Xk`vt3~FgYe^I)0-uxQSb`BhAsCAC+ z$&}q|TC8JdZcjkFML%{W+N1LqW+6|-ab$MQ&DApV%vQqs+{Io+Inuwla-J`xZiHfP zH@bkm626%`DZ3}a;6iZUmgDXX-u9$)5&PY4Ksz_{Htabb_uYcwXBrgSmuc`N%m znUhIbv9lIax(^?{DR%+Kt6Ons#Twq3`C>D2Ex9Q53Vbf8Sz7u|EZuA)JE4|QXf1k9 z=B~NE1$NU}>j3<>f_%S9RF-Hh?(bSlAkhj!Yst~t31Uwg3m(3I?|E536nL)} z#4>R6Tg$SU|M|PpVNz3;gPZF0B=F)D%hleZ3^+O}NdB|5?`V9eEGX{VEhq+>L2(H< z|NkarKfLBZN`hT&-zwiI=1#}HaWJJz**EsFZz%8?MlxUraDqHXSy7(8yrAMIurjBs zYUumn67TW?q^WvtZTOUueq<$h`6UwFE?Vd`$^E*SWVmUP`@Pw5H< zzZKwjOHuI5Ym?B(rRJgUpt`El0b z(a_@GAUORMrsS(usdG(Ak7acxq0XLq7`;YLPaF?qNJB~Nl6=d1@OKyrB~tVEcxA#;q63<_NgY3Dqjtt zH>UI&2D%GCXJ;)tuN8J#|5+_13axU@rPpRfTvOBj{5E$Is(5ksavFMHiQdmJ z#YnSr&HAbjpiyl>J=)`butXnXeB2yEfe#nOpyxK4*pHxz9c{;A=%Xe2m>6wdmIL^B zN}mwpUf_Bft%aRaYUq)oUt*)4A~^fS5idqKO2=$~RJ+c{&rn(jf(DAwDqXB-q4aCD|d zufb|j3?agi#H-%2?&WPgVmlg9L<}^@`Ghu{G;H|kp(N64vFiwe$|>7Ro{I)*9Tw&X z#n@`c(|s(hPaL>lW~c7w&jXFAnI6D5wM`7wWFRp)3$-4^3UtUkrNx~d%2r3R0I~B3 z(FLp>79;E#%^=jnSQD*xU}<~ICbW-IH_j(}Jy%cghcUQ!o3-^M7LSN+dAOo&<=5AM zy;#|e;h5flEr^STZ8EPn`Zz3>#HK6+ya4ZPHlvgQThY}U@#|qRjJY2oGhf<-CC<|s zkH`N z<%CpEWrr}D$YvDHVIyX2n5SV>A%>b+-01DtTGA)re>M-n{7;{VFR8ZhKPk`t3%5VE AKL7v# diff --git a/docs/build/doctrees/tools.doctree b/docs/build/doctrees/tools.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8f998b85308c31ff2f73a92e034689ad7fd48530 GIT binary patch literal 14877 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 C1^lQ0 literal 0 HcmV?d00001 diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index ecbdc2d9..f1fce935 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 5eaf754d565a9e60b6e3dcf2f18ef4bb +config: b2097566cc03ccad42629cea0334c864 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/PyU4V.html b/docs/build/html/PyU4V.html index 4efbc730..1c6cadc9 100644 --- a/docs/build/html/PyU4V.html +++ b/docs/build/html/PyU4V.html @@ -8,7 +8,7 @@ - PyU4V API — PyU4V 9.1.1.0 documentation + PyU4V API — PyU4V 9.1.2.0 documentation @@ -188,57 +188,48 @@

    PyU4V.univmax_conn
    -class PyU4V.common.CommonFunctions(rest_client)[source]
    +class PyU4V.common.CommonFunctions(rest_client)[source]

    Bases: object

    CommonFunctions.

    -
    +
    -static check_ipv4(ipv4)[source]
    +static check_ipv4(ipv4)[source]

    Check if a given string is a valid ipv6 address

    - --- - - - - - -
    Parameters:ipv4 – ipv4 address – str
    Returns:string is valid ipv4 address – bool
    -
    - -
    +
    +
    Parameters
    +

    ipv4 – ipv4 address – str

    +
    +
    Returns
    +

    string is valid ipv4 address – bool

    +
    +
    +
    + +
    -static check_ipv6(ipv6)[source]
    +static check_ipv6(ipv6)[source]

    Check if a given string is a valid ipv6 address

    - --- - - - - - -
    Parameters:ipv6 – ipv6 address – str
    Returns:string is valid ipv6 address – bool
    -
    - -
    +
    +
    Parameters
    +

    ipv6 – ipv6 address – str

    +
    +
    Returns
    +

    string is valid ipv6 address – bool

    +
    +
    +
    + +
    -static check_status_code_success(operation, status_code, message)[source]
    +static check_status_code_success(operation, status_code, message)[source]

    Check if a status code indicates success.

    - --- - - - - - -
    Parameters:
      -
    • operation – operation being performed – str
    • -
    • status_code – status code – int
    • -
    • message – server response – str
    • -
    -
    Raises:

    VolumeBackendAPIException

    -
    -
    - -
    +
    +
    Parameters
    +
      +
    • operation – operation being performed – str

    • +
    • status_code – status code – int

    • +
    • message – server response – str

    • +
    +
    +
    Raises
    +

    VolumeBackendAPIException

    +
    +
    +
    + +
    -static convert_to_snake_case(camel_case_string)[source]
    +static convert_to_snake_case(camel_case_string)[source]

    Convert a string from camel case to snake case.

    - --- - - - - - -
    Parameters:camel_case_string – string for formatting – str
    Returns:snake case variant – str
    -
    - -
    +
    +
    Parameters
    +

    camel_case_string – string for formatting – str

    +
    +
    Returns
    +

    snake case variant – str

    +
    +
    +
    + +
    -static create_list_from_file(*args, **kwargs)
    +static create_list_from_file(*args, **kwargs)
    -create_resource(*args, **kwargs)[source]
    +create_resource(*args, **kwargs)[source]

    Create a resource.

    - --- - - - -
    Parameters:kwargs – param version: Unisphere version – int +
    +
    Parameters
    +

    kwargs – param version: Unisphere version – int param no_version: if versionless uri – bool param category: resource category e.g. sloprovisioning – str param resource_level: resource level e.g. storagegroup – str @@ -346,23 +325,21 @@

    PyU4V.univmax_conn

    Returns:resource object – dict
    +param payload: query parameters – dict

    +
    +
    Returns
    +

    resource object – dict

    +
    +
    -delete_resource(*args, **kwargs)[source]
    +delete_resource(*args, **kwargs)[source]

    Delete a resource.

    - --- --- - - - - - - - -
    Parameters:kwargs – param version: Unisphere version – int +
    +
    Parameters
    +

    kwargs – param version: Unisphere version – int param no_version: if versionless uri – bool param category: resource category e.g. sloprovisioning – str param resource_level: resource level e.g. storagegroup – str @@ -373,137 +350,118 @@

    PyU4V.univmax_conn
    -get_array(array_id)[source]
    +get_array(array_id)[source]

    Get array details.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:array details – dict
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    array details – dict

    +
    +

    -get_array_list(filters=None)[source]
    +get_array_list(filters=None)[source]

    Return a list of arrays.

    - --- - - - - - -
    Parameters:filters – optional filters – dict
    Returns:arrays ids – list
    +
    +
    Parameters
    +

    filters – optional filters – dict

    +
    +
    Returns
    +

    arrays ids – list

    +
    +
    -get_headroom(**kwargs)
    +get_headroom(**kwargs)
    -get_iterator_page_list(iterator_id, start, end)[source]
    +get_iterator_page_list(iterator_id, start, end)[source]

    Get a page of results from an iterator instance.

    - --- - - - - - -
    Parameters:
      -
    • iterator_id – iterator id – str
    • -
    • start – the start number – int
    • -
    • end – the end number – int
    • +
      +
      Parameters
      +
        +
      • iterator_id – iterator id – str

      • +
      • start – the start number – int

      • +
      • end – the end number – int

      -
    Returns:

    iterator page results – dict

    -
    +
    +
    Returns
    +

    iterator page results – dict

    +
    +
    -get_iterator_results(rest_response)[source]
    +get_iterator_results(rest_response)[source]

    Get all results from all pages of an iterator if count > 1000.

    - --- - - - - - -
    Parameters:rest_response – response JSON from REST API – dict
    Returns:all results – dict
    +
    +
    Parameters
    +

    rest_response – response JSON from REST API – dict

    +
    +
    Returns
    +

    all results – dict

    +
    +
    -get_job_by_id(job_id)[source]
    +get_job_by_id(job_id)[source]

    Get details of a specific job.

    - --- - - - - - -
    Parameters:job_id – job id – str
    Returns:job details – dict
    +
    +
    Parameters
    +

    job_id – job id – str

    +
    +
    Returns
    +

    job details – dict

    +
    +
    -get_request(target_uri, resource_type, params=None)[source]
    +get_request(target_uri, resource_type, params=None)[source]

    Send a GET request to the array.

    - --- - - - - - - - -
    Parameters:
      -
    • target_uri – target uri – str
    • -
    • resource_type – the resource type, e.g. maskingview – str
    • -
    • params – optional filter params – dict
    • -
    -
    Returns:

    resource_object – dict

    -
    Raises:

    ResourceNotFoundException

    -
    +
    +
    Parameters
    +
      +
    • target_uri – target uri – str

    • +
    • resource_type – the resource type, e.g. maskingview – str

    • +
    • params – optional filter params – dict

    • +
    +
    +
    Returns
    +

    resource_object – dict

    +
    +
    Raises
    +

    ResourceNotFoundException

    +
    +
    -get_resource(*args, **kwargs)[source]
    +get_resource(*args, **kwargs)[source]

    Get resource details from the array.

    - --- - - - -
    Parameters:kwargs – param version: Unisphere version – int +
    +
    Parameters
    +

    kwargs – param version: Unisphere version – int param no_version: if versionless uri – bool param category: resource category e.g. sloprovisioning – str param resource_level: resource level e.g. storagegroup – str @@ -514,58 +472,51 @@

    PyU4V.univmax_conn

    Returns:resource object – dict
    +param params: query parameters – dict

    +
    +
    Returns
    +

    resource object – dict

    +
    +
    -get_uni_version()[source]
    +get_uni_version()[source]

    Get the unisphere version from the server.

    - --- - - - -
    Returns:version and major_version e.g. “V9.1.0.2”, “91” – str, str
    +
    +
    Returns
    +

    version and major_version e.g. “V9.1.0.2”, “91” – str, str

    +
    +
    -get_v3_or_newer_array_list(filters=None)[source]
    +get_v3_or_newer_array_list(filters=None)[source]

    Return a list of V3 or newer arrays in the environment.

    - --- - - - - - -
    Parameters:filters – optional filters – dict
    Returns:arrays ids – list
    +
    +
    Parameters
    +

    filters – optional filters – dict

    +
    +
    Returns
    +

    arrays ids – list

    +
    +
    -get_wlp_information(**kwargs)
    +get_wlp_information(**kwargs)
    -modify_resource(*args, **kwargs)[source]
    +modify_resource(*args, **kwargs)[source]

    Modify a resource.

    - --- - - - -
    Parameters:kwargs – param version: Unisphere version – int +
    +
    Parameters
    +

    kwargs – param version: Unisphere version – int param no_version: if versionless uri – bool param category: resource category e.g. sloprovisioning – str param resource_level: resource level e.g. storagegroup – str @@ -576,61 +527,56 @@

    PyU4V.univmax_conn

    Returns:resource object – dict
    +param payload: query parameters

    +
    +
    Returns
    +

    resource object – dict

    +
    +
    -
    +
    -static read_csv_values(*args, **kwargs)
    +static read_csv_values(*args, **kwargs)
    -wait_for_job(operation, status_code, job)[source]
    +wait_for_job(operation, status_code, job)[source]

    Check if call is async, wait for it to complete.

    - --- - - - - - - - -
    Parameters:
      -
    • operation – operation being performed – str
    • -
    • status_code – status code – int
    • -
    • job – job id – str
    • -
    -
    Returns:

    task details – list

    -
    Raises:

    VolumeBackendAPIException

    -
    +
    +
    Parameters
    +
      +
    • operation – operation being performed – str

    • +
    • status_code – status code – int

    • +
    • job – job id – str

    • +
    +
    +
    Returns
    +

    task details – list

    +
    +
    Raises
    +

    VolumeBackendAPIException

    +
    +
    -wait_for_job_complete(job)[source]
    +wait_for_job_complete(job)[source]

    Given the job wait for it to complete.

    - --- - - - - - - - -
    Parameters:job – job details – dict
    Returns:response code, result, status, task details – int, str, str, -list
    Raises:VolumeBackendAPIException
    +
    +
    Parameters
    +

    job – job details – dict

    +
    +
    Returns
    +

    response code, result, status, task details – int, str, str, +list

    +
    +
    Raises
    +

    VolumeBackendAPIException

    +
    +
    @@ -641,212 +587,178 @@

    PyU4V.univmax_conn
    -class PyU4V.migration.MigrationFunctions(array_id, rest_client)[source]
    +class PyU4V.migration.MigrationFunctions(array_id, rest_client)[source]

    Bases: object

    MigrationFunctions.

    -create_migration_environment(target_array_id)[source]
    +create_migration_environment(target_array_id)[source]

    Create a new migration environment between two arrays.

    Creates a new migration environment between two arrays for use with non disruptive migrations

    - --- - - - - - -
    Parameters:target_array_id – target array id – str
    Returns:migration environment info – dict
    +
    +
    Parameters
    +

    target_array_id – target array id – str

    +
    +
    Returns
    +

    migration environment info – dict

    +
    +
    -create_storage_group_migration(storage_group_name, target_array_id, srp_id=None, port_group_id=None, no_compression=False, pre_copy=False, validate=False)[source]
    +create_storage_group_migration(storage_group_name, target_array_id, srp_id=None, port_group_id=None, no_compression=False, pre_copy=False, validate=False)[source]

    Create a migration session for a storage group.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_name – storage group id – str
    • -
    • target_array_id – target array id – str
    • -
    • srp_id – storage resource pool id – str
    • -
    • port_group_id – port group id – str
    • -
    • no_compression – dont use compression – bool
    • -
    • pre_copy – use pre copy – bool
    • -
    • validate – validate – bool
    • -
    -
    Returns:

    new storage group – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_name – storage group id – str

    • +
    • target_array_id – target array id – str

    • +
    • srp_id – storage resource pool id – str

    • +
    • port_group_id – port group id – str

    • +
    • no_compression – dont use compression – bool

    • +
    • pre_copy – use pre copy – bool

    • +
    • validate – validate – bool

    • +
    +
    +
    Returns
    +

    new storage group – dict

    +
    +
    -delete_migration_environment(target_array_id)[source]
    +delete_migration_environment(target_array_id)[source]

    Delete migration environment.

    Given a target array will delete migration environment, used once all migrations are complete

    - --- - - - -
    Parameters:target_array_id – target array id – str
    +
    +
    Parameters
    +

    target_array_id – target array id – str

    +
    +
    -delete_storage_group_migration(storage_group_name)[source]
    +delete_storage_group_migration(storage_group_name)[source]

    Given a name, delete the storage group migration session.

    - --- - - - -
    Parameters:storage_group_name – storage group id – str
    +
    +
    Parameters
    +

    storage_group_name – storage group id – str

    +
    +
    -get_array_migration_capabilities()[source]
    +get_array_migration_capabilities()[source]

    Check what migration facilities are available.

    - --- - - - -
    Returns:array capabilities – dict
    +
    +
    Returns
    +

    array capabilities – dict

    +
    +
    -get_environment(target_array_id)[source]
    +get_environment(target_array_id)[source]

    Given a name, return migration environment details.

    - --- - - - - - -
    Parameters:target_array_id – target array id – str
    Returns:environment details – dict
    +
    +
    Parameters
    +

    target_array_id – target array id – str

    +
    +
    Returns
    +

    environment details – dict

    +
    +
    -get_environment_list()[source]
    +get_environment_list()[source]

    Get list of all migration environments.

    - --- - - - -
    Returns:environments – list
    +
    +
    Returns
    +

    environments – list

    +
    +
    -get_migration_info()[source]
    +get_migration_info()[source]

    Return migration information for an array.

    - --- - - - -
    Returns:migration info – dict
    +
    +
    Returns
    +

    migration info – dict

    +
    +
    -get_storage_group(storage_group_name)[source]
    +get_storage_group(storage_group_name)[source]

    Given a name, return storage group migrations details.

    - --- - - - - - -
    Parameters:storage_group_name – storage group id – str
    Returns:storage group details – dict
    +
    +
    Parameters
    +

    storage_group_name – storage group id – str

    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -get_storage_group_list(include_migrations=False)[source]
    +get_storage_group_list(include_migrations=False)[source]

    Get list of all storage groups or migrating storage groups.

    - --- - - - - - -
    Parameters:include_migrations – return only SGs with migration -sessions – bool
    Returns:storage groups or migrating storage groups – list
    +
    +
    Parameters
    +

    include_migrations – return only SGs with migration +sessions – bool

    +
    +
    Returns
    +

    storage groups or migrating storage groups – list

    +
    +
    -get_storage_groups()[source]
    +get_storage_groups()[source]

    Get all storage groups and migrating storage groups.

    - --- - - - -
    Returns:storage groups and migrating storage groups – dict
    +
    +
    Returns
    +

    storage groups and migrating storage groups – dict

    +
    +
    -modify_storage_group_migration(storage_group_name, action, options=None, _async=False)[source]
    +modify_storage_group_migration(storage_group_name, action, options=None, _async=False)[source]

    Modify the state of a storage group’s migration session.

    Valid migrations options are ‘Cutover’, ‘Sync’, ‘Commit’, ‘Recover’, and ‘ReadyTgt’.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_name – storage group id – str
    • -
    • action – migration action – str
    • -
    • options – migration options, example: -{cutover’: {‘force’: True}} – dict
    • -
    • _async – if call should be async – bool
    • +
      +
      Parameters
      +
        +
      • storage_group_name – storage group id – str

      • +
      • action – migration action – str

      • +
      • options – migration options, example: +{cutover’: {‘force’: True}} – dict

      • +
      • _async – if call should be async – bool

      -
    Returns:

    modified storage group info – dict

    -
    +
    +
    Returns
    +

    modified storage group info – dict

    +
    +
    @@ -857,58 +769,53 @@

    PyU4V.univmax_conn
    -class PyU4V.performance.PerformanceFunctions(array_id, rest_client)[source]
    +class PyU4V.performance.PerformanceFunctions(array_id, rest_client)[source]

    Bases: object

    PerformanceFunctions.

    -extract_timestamp_keys(array_id=None, category=None, director_id=None, key_tgt_id=None)[source]
    +extract_timestamp_keys(array_id=None, category=None, director_id=None, key_tgt_id=None)[source]

    Retrieve the timestamp keys for a given performance asset.

    Note: If a director key timestamp is required, set this as the key_tgt_id, the input parameter director_id is only required for port key extraction.

    - --- - - - - - -
    Parameters:
      -
    • array_id – array id – str
    • -
    • category – performance category – str
    • -
    • director_id – director id – str
    • -
    • key_tgt_id – object id for the timestamp required – str
    • -
    -
    Returns:

    timestamp in milliseconds since epoch – str

    -
    -
    - -
    +
    +
    Parameters
    +
      +
    • array_id – array id – str

    • +
    • category – performance category – str

    • +
    • director_id – director id – str

    • +
    • key_tgt_id – object id for the timestamp required – str

    • +
    +
    +
    Returns
    +

    timestamp in milliseconds since epoch – str

    +
    +
    +
    + +
    -static format_metrics(metrics)[source]
    +static format_metrics(metrics)[source]

    Format metrics input for inclusion in REST request.

    Take metric parameters and format them correctly to be used in REST request body. Valid input types are string and list.

    - --- - - - - - - - -
    Parameters:metrics – metric(s) – str or list
    Returns:metrics – list
    Raises:InvalidInputException
    +
    +
    Parameters
    +

    metrics – metric(s) – str or list

    +
    +
    Returns
    +

    metrics – list

    +
    +
    Raises
    +

    InvalidInputException

    +
    +
    -format_time_input(array_id=None, category=None, director_id=None, key_tgt_id=None, start_time=None, end_time=None)[source]
    +format_time_input(array_id=None, category=None, director_id=None, key_tgt_id=None, start_time=None, end_time=None)[source]

    Format time range for use in the request object.

    Use cases are: 1. If start is set but not end, set end to most recent timestamp @@ -919,2185 +826,1878 @@

    PyU4V.univmax_conn -

    Parameters:
      -
    • array_id – array id – str
    • -
    • category – performance category – str
    • -
    • director_id – director id (for port key extraction only) – str
    • -
    • key_tgt_id – object id for the timestamp required – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    -
    Returns:

    start time, end time (tuple) – str, str

    -
    Raises:

    InvalidInputException

    -
    +
    +
    Parameters
    +
      +
    • array_id – array id – str

    • +
    • category – performance category – str

    • +
    • director_id – director id (for port key extraction only) – str

    • +
    • key_tgt_id – object id for the timestamp required – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    +
    +
    Returns
    +

    start time, end time (tuple) – str, str

    +
    +
    Raises
    +

    InvalidInputException

    +
    +
    -generate_threshold_settings_csv(output_csv_path)[source]
    +generate_threshold_settings_csv(output_csv_path)[source]

    Generate a csv file with threshold settings.

    Creates a CSV file with current alert configuration for the given unisphere instance category, metric, first_threshold, second_threshold, alert_user, kpi.

    - --- - - - -
    Parameters:output_csv_path – filename for CSV to be generated – str
    +
    +
    Parameters
    +

    output_csv_path – filename for CSV to be generated – str

    +
    +
    -get_all_fe_director_metrics(**kwargs)
    +get_all_fe_director_metrics(**kwargs)
    -get_array_keys()[source]
    +get_array_keys()[source]

    List Arrays registered for performance data collection.

    - --- - - - -
    Returns:Arrays with first and last available dates – list
    +
    +
    Returns
    +

    Arrays with first and last available dates – list

    +
    +
    -get_array_metrics(**kwargs)
    +get_array_metrics(**kwargs)
    -get_array_stats(metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_array_stats(metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List performance data for specified array for giving time range.

    - --- - - - - - -
    Parameters:
      -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_backend_director_keys(array_id=None)[source]
    +get_backend_director_keys(array_id=None)[source]

    List BE directors for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:BE directors with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    BE directors with first and last available dates – list

    +
    +
    -get_backend_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_backend_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given BE director.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_backend_emulation_keys(array_id=None)[source]
    +get_backend_emulation_keys(array_id=None)[source]

    List BE emulations for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:BE emulation info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    BE emulation info with first and last available dates – list

    +
    +
    -get_backend_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_backend_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given BE emulation.

    - --- - - - - - -
    Parameters:
      -
    • emulation_id – emulation id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • emulation_id – emulation id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_backend_port_keys(director_id, array_id=None)[source]
    +get_backend_port_keys(director_id, array_id=None)[source]

    List BE ports for the given array.

    - --- - - - - - -
    Parameters:
      -
    • director_id – array id – str
    • -
    • array_id – director id – str
    • +
      +
      Parameters
      +
        +
      • director_id – array id – str

      • +
      • array_id – director id – str

      -
    Returns:

    BE port info with first and last available dates – list

    -
    +
    +
    Returns
    +

    BE port info with first and last available dates – list

    +
    +
    -get_backend_port_stats(director_id, port_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_backend_port_stats(director_id, port_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given BE port.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • port_id – port id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • port_id – port id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_board_keys(array_id=None)[source]
    +get_board_keys(array_id=None)[source]

    List boards for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:board info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    board info with first and last available dates – list

    +
    +
    -get_board_stats(board_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_board_stats(board_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given board.

    - --- - - - - - -
    Parameters:
      -
    • board_id – board id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • board_id – board id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_cache_partition_keys(array_id=None)[source]
    +get_cache_partition_keys(array_id=None)[source]

    List cache partitions for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:cache partition info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    cache partition info with first and last available +dates – list

    +
    +
    -get_cache_partition_perf_stats(cache_partition_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_cache_partition_perf_stats(cache_partition_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given cache partition.

    - --- - - - - - -
    Parameters:
      -
    • cache_partition_id – cache partition id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • cache_partition_id – cache partition id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_core_keys(array_id=None)[source]
    +get_core_keys(array_id=None)[source]

    List cores for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:core info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    core info with first and last available dates – list

    +
    +
    -get_core_stats(core_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_core_stats(core_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given core.

    - --- - - - - - -
    Parameters:
      -
    • core_id – core id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • core_id – core id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_database_keys(array_id=None)[source]
    +get_database_keys(array_id=None)[source]

    List databases for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:database info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    database info with first and last available dates – list

    +
    +
    -get_database_stats(database_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_database_stats(database_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given database.

    - --- - - - - - -
    Parameters:
      -
    • database_id – database id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • database_id – database id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_days_to_full(array_id=None, array_to_full=False, srp_to_full=False, thin_pool_to_full=False)[source]
    +get_days_to_full(array_id=None, array_to_full=False, srp_to_full=False, thin_pool_to_full=False)[source]

    Get days to full information.

    Requires at least 10 Days of Performance data, available categories are ‘Array’, ‘SRP’, and ‘ThinPool’.

    - --- - - - - - -
    Parameters:
      -
    • array_id – array id – str
    • -
    • array_to_full – get array days to full info – bool
    • -
    • srp_to_full – get storage resource pool days to full info – bool
    • -
    • thin_pool_to_full – get thin pool days to full info – bool
    • -
    -
    Returns:

    days to full information – list

    -
    +
    +
    Parameters
    +
      +
    • array_id – array id – str

    • +
    • array_to_full – get array days to full info – bool

    • +
    • srp_to_full – get storage resource pool days to full info – bool

    • +
    • thin_pool_to_full – get thin pool days to full info – bool

    • +
    +
    +
    Returns
    +

    days to full information – list

    +
    +
    -get_device_group_keys(array_id=None)[source]
    +get_device_group_keys(array_id=None)[source]

    List device groups for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:device group info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    device group info with first and last available dates – list

    +
    +
    -get_device_group_stats(device_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_device_group_stats(device_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given device group.

    - --- - - - - - -
    Parameters:
      -
    • device_group_id – device group id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • device_group_id – device group id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_director_info(**kwargs)
    +get_director_info(**kwargs)
    -get_disk_group_keys(array_id=None)[source]
    +get_disk_group_keys(array_id=None)[source]

    List disk groups for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:disk info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    disk info with first and last available dates – list

    +
    +
    -get_disk_group_stats(disk_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_disk_group_stats(disk_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given disk group.

    - --- - - - - - -
    Parameters:
      -
    • disk_group_id – disk group id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • disk_group_id – disk group id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_disk_keys(array_id=None)[source]
    +get_disk_keys(array_id=None)[source]

    List disks for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:disk info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    disk info with first and last available dates – list

    +
    +
    -get_disk_stats(disk_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_disk_stats(disk_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given disk.

    - --- - - - - - -
    Parameters:
      -
    • disk_id – disk id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • disk_id – disk id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_disk_technology_pool_keys(array_id=None)[source]
    +get_disk_technology_pool_keys(array_id=None)[source]

    List disk technology pools for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:disk technology pool info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    disk technology pool info with first and last available +dates – list

    +
    +
    -get_disk_technology_pool_stats(disk_tech_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_disk_technology_pool_stats(disk_tech_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given disk technology.

    - --- - - - - - -
    Parameters:
      -
    • disk_tech_id – disk technology id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • disk_tech_id – disk technology id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_eds_director_keys(array_id=None)[source]
    +get_eds_director_keys(array_id=None)[source]

    List EDS directors for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:EDS director info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    EDS director info with first and last available dates – list

    +
    +
    -get_eds_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_eds_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given EDS director.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_eds_emulation_keys(array_id=None)[source]
    +get_eds_emulation_keys(array_id=None)[source]

    List EDS emulations for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:EDS emulation info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    EDS emulation info with first and last available +dates – list

    +
    +
    -get_eds_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_eds_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given EDS emulation.

    - --- - - - - - -
    Parameters:
      -
    • emulation_id – emulation id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • emulation_id – emulation id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_external_director_keys(array_id=None)[source]
    +get_external_director_keys(array_id=None)[source]

    List external directors for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:external directors with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    external directors with first and last available +dates – list

    +
    +
    -get_external_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_external_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given external director.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_external_disk_group_keys(array_id=None)[source]
    +get_external_disk_group_keys(array_id=None)[source]

    List external disk groups for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:external disk groups with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    external disk groups with first and last available +dates – list

    +
    +
    -get_external_disk_group_stats(disk_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_external_disk_group_stats(disk_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given external disk group.

    - --- - - - - - -
    Parameters:
      -
    • disk_group_id – disk group id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • disk_group_id – disk group id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_external_disk_keys(array_id=None)[source]
    +get_external_disk_keys(array_id=None)[source]

    List external disks for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:external disks with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    external disks with first and last available dates – list

    +
    +
    -get_external_disk_stats(disk_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_external_disk_stats(disk_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given external disk.

    - --- - - - - - -
    Parameters:
      -
    • disk_id – disk id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • disk_id – disk id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_fe_director_list(**kwargs)
    +get_fe_director_list(**kwargs)
    -get_fe_director_metrics(**kwargs)
    +get_fe_director_metrics(**kwargs)
    -get_fe_port_list(**kwargs)
    +get_fe_port_list(**kwargs)
    -get_fe_port_metrics(**kwargs)
    +get_fe_port_metrics(**kwargs)
    -get_fe_port_util_last4hrs(**kwargs)
    +get_fe_port_util_last4hrs(**kwargs)
    -get_ficon_emulation_keys(array_id=None)[source]
    +get_ficon_emulation_keys(array_id=None)[source]

    List FICON emulations for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:FICON emulation info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    FICON emulation info with first and last available +dates – list

    +
    +
    -get_ficon_emulation_stats(ficon_emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_ficon_emulation_stats(ficon_emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given FICON emulation.

    - --- - - - - - -
    Parameters:
      -
    • ficon_emulation_id – FICON emulation id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • ficon_emulation_id – FICON emulation id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_ficon_emulation_thread_keys(array_id=None)[source]
    +get_ficon_emulation_thread_keys(array_id=None)[source]

    List FICON emulation threads for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:FICON emulation thread info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    FICON emulation thread info with first and last available +dates – list

    +
    +
    -get_ficon_emulation_thread_stats(ficon_emulation_thread_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_ficon_emulation_thread_stats(ficon_emulation_thread_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given FICON emulation thread.

    - --- - - - - - -
    Parameters:
      -
    • ficon_emulation_thread_id – FICON emulation thread id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • ficon_emulation_thread_id – FICON emulation thread id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_ficon_port_thread_keys(array_id=None)[source]
    +get_ficon_port_thread_keys(array_id=None)[source]

    List FICON port threads for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:FICON port info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    FICON port info with first and last available dates – list

    +
    +
    -get_ficon_port_thread_stats(ficon_port_thread_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_ficon_port_thread_stats(ficon_port_thread_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given FICON port thread.

    - --- - - - - - -
    Parameters:
      -
    • ficon_port_thread_id – FICON port thread id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • ficon_port_thread_id – FICON port thread id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_frontend_director_keys(array_id=None)[source]
    +get_frontend_director_keys(array_id=None)[source]

    List FE directors for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:FE directors with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    FE directors with first and last available dates – list

    +
    +
    -get_frontend_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_frontend_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given FE director.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_frontend_emulation_keys(array_id=None)[source]
    +get_frontend_emulation_keys(array_id=None)[source]

    List FE emulations for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:BE emulation info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    BE emulation info with first and last available dates – list

    +
    +
    -get_frontend_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_frontend_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given FE emulation.

    - --- - - - - - -
    Parameters:
      -
    • emulation_id – emulation id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • emulation_id – emulation id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_frontend_port_keys(director_id, array_id=None)[source]
    +get_frontend_port_keys(director_id, array_id=None)[source]

    List FE ports for the given array.

    - --- - - - - - -
    Parameters:
      -
    • director_id – array id – str
    • -
    • array_id – director id – str
    • +
      +
      Parameters
      +
        +
      • director_id – array id – str

      • +
      • array_id – director id – str

      -
    Returns:

    FE port info with first and last available dates – list

    -
    +
    +
    Returns
    +

    FE port info with first and last available dates – list

    +
    +
    -get_frontend_port_stats(director_id, port_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_frontend_port_stats(director_id, port_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given FE port.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • port_id – port id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • port_id – port id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_host_keys(array_id=None, start_time=None, end_time=None)[source]
    +get_host_keys(array_id=None, start_time=None, end_time=None)[source]

    List active hosts for the given array by time range.

    Only active hosts from within the specified time range are returned. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • array_id – array id – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • +
      +
      Parameters
      +
        +
      • array_id – array id – str

      • +
      • start_time – timestamp in milliseconds since epoch – str

      • +
      • end_time – timestamp in milliseconds since epoch – str

      -
    Returns:

    host info with first and last available dates – list

    -
    +
    +
    Returns
    +

    host info with first and last available dates – list

    +
    +
    -get_host_metrics(**kwargs)
    +get_host_metrics(**kwargs)
    -get_host_stats(host_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_host_stats(host_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given host.

    Performance details will only be returned if the host was active during the specified time range. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • host_id – host id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • host_id – host id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_im_director_keys(array_id=None)[source]
    +get_im_director_keys(array_id=None)[source]

    List IM directors for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:IM directors with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    IM directors with first and last available dates – list

    +
    +
    -get_im_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_im_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given IM director.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_im_emulation_keys(array_id=None)[source]
    +get_im_emulation_keys(array_id=None)[source]

    List IM emulations for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:IM emulation info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    IM emulation info with first and last available dates – list

    +
    +
    -get_im_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_im_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given IM emulation.

    - --- - - - - - -
    Parameters:
      -
    • emulation_id – emulation id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • emulation_id – emulation id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_initiator_by_port_keys(array_id=None, start_time=None, end_time=None)[source]
    +get_initiator_by_port_keys(array_id=None, start_time=None, end_time=None)[source]

    List active initiators by port for the given array by time range

    Only active initiators from within the specified time range are returned. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • array_id – array id – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • +
      +
      Parameters
      +
        +
      • array_id – array id – str

      • +
      • start_time – timestamp in milliseconds since epoch – str

      • +
      • end_time – timestamp in milliseconds since epoch – str

      -
    Returns:

    host info with first and last available dates – list

    -
    +
    +
    Returns
    +

    host info with first and last available dates – list

    +
    +
    -get_initiator_by_port_stats(initiator_by_port_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_initiator_by_port_stats(initiator_by_port_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given initiator.

    Performance details will only be returned if the initiator was active during the specified time range. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • initiator_by_port_id – initiator by port id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • initiator_by_port_id – initiator by port id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_initiator_perf_keys(array_id=None, start_time=None, end_time=None)[source]
    +get_initiator_perf_keys(array_id=None, start_time=None, end_time=None)[source]

    List active initiators for the given array by time range

    Only active initiators from within the specified time range are returned. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • array_id – array id – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • +
      +
      Parameters
      +
        +
      • array_id – array id – str

      • +
      • start_time – timestamp in milliseconds since epoch – str

      • +
      • end_time – timestamp in milliseconds since epoch – str

      -
    Returns:

    host info with first and last available dates – list

    -
    +
    +
    Returns
    +

    host info with first and last available dates – list

    +
    +
    -get_initiator_stats(initiator_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_initiator_stats(initiator_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given initiator.

    Performance details will only be returned if the initiator was active during the specified time range. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • initiator_id – initiator id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • initiator_id – initiator id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_ip_interface_keys(array_id=None)[source]
    +get_ip_interface_keys(array_id=None)[source]

    List IP interfaces for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:IP interface info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    IP interface info with first and last available dates – list

    +
    +
    -get_ip_interface_stats(ip_interface_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_ip_interface_stats(ip_interface_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given IP interface.

    - --- - - - - - -
    Parameters:
      -
    • ip_interface_id – IP interface id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • ip_interface_id – IP interface id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_iscsi_target_keys(array_id=None)[source]
    +get_iscsi_target_keys(array_id=None)[source]

    List iSCSI targets for the given array.

    - --- - - - - - -
    Parameters:array_id – array_id: array id – str
    Returns:iSCSI interfaces info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array_id: array id – str

    +
    +
    Returns
    +

    iSCSI interfaces info with first and last available +dates – list

    +
    +
    -get_iscsi_target_stats(iscsi_target_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_iscsi_target_stats(iscsi_target_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given iSCSI target.

    - --- - - - - - -
    Parameters:
      -
    • iscsi_target_id – iSCSI target id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • iscsi_target_id – iSCSI target id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_last_available_timestamp(array_id=None)[source]
    +get_last_available_timestamp(array_id=None)[source]

    Get the last recorded performance timestamp.

    - --- - - - - - - - -
    Parameters:array_id – array_id: array id – str
    Returns:timestamp – int
    Raises:ResourceNotFoundException
    +
    +
    Parameters
    +

    array_id – array_id: array id – str

    +
    +
    Returns
    +

    timestamp – int

    +
    +
    Raises
    +

    ResourceNotFoundException

    +
    +
    -get_perf_category_threshold_settings(**kwargs)
    +get_perf_category_threshold_settings(**kwargs)
    -get_perf_threshold_categories(**kwargs)
    +get_perf_threshold_categories(**kwargs)
    -
    +
    -static get_performance_categories_list()[source]
    +static get_performance_categories_list()[source]

    Get the list of supported performance categories.

    - --- - - - -
    Returns:categories – list
    +
    +
    Returns
    +

    categories – list

    +
    +
    -get_performance_key_list(category, array_id=None, director_id=None, storage_group_id=None, storage_container_id=None, storage_resource_id=None, start_time=None, end_time=None)[source]
    +get_performance_key_list(category, array_id=None, director_id=None, storage_group_id=None, storage_container_id=None, storage_resource_id=None, start_time=None, end_time=None)[source]

    Get performance key list for a given performance category.

    - --- - - - - - - - -
    Parameters:
      -
    • category – performance category – str
    • -
    • array_id – array id – str
    • -
    • director_id – director id – str
    • -
    • storage_group_id – storage group id – str
    • -
    • storage_container_id – storage container id – str
    • -
    • storage_resource_id – storage resource id – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    -
    Returns:

    category performance keys – list

    -
    Raises:

    InvalidInputException

    -
    -
    - -
    +
    +
    Parameters
    +
      +
    • category – performance category – str

    • +
    • array_id – array id – str

    • +
    • director_id – director id – str

    • +
    • storage_group_id – storage group id – str

    • +
    • storage_container_id – storage container id – str

    • +
    • storage_resource_id – storage resource id – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    +
    +
    Returns
    +

    category performance keys – list

    +
    +
    Raises
    +

    InvalidInputException

    +
    +
    +
    + +
    -static get_performance_metrics_list(category, kpi_only=False)[source]
    +static get_performance_metrics_list(category, kpi_only=False)[source]

    For a given category, return the list of valid metrics.

    - --- - - - - - -
    Parameters:
      -
    • category – performance category – str
    • -
    • kpi_only – if only KPI metrics should be returned – bool
    • +
      +
      Parameters
      +
        +
      • category – performance category – str

      • +
      • kpi_only – if only KPI metrics should be returned – bool

      -
    Returns:

    metrics – list

    -
    +
    +
    Returns
    +

    metrics – list

    +
    +
    -get_performance_stats(category, metrics, data_format='Average', array_id=None, request_body=None, start_time=None, end_time=None, recency=None)[source]
    +get_performance_stats(category, metrics, data_format='Average', array_id=None, request_body=None, start_time=None, end_time=None, recency=None)[source]

    Retrieve the performance statistics for a given category and object.

    - --- - - - - - - - -
    Parameters:
      -
    • category – category id – str
    • -
    • array_id – array id – str
    • -
    • metrics – performance metrics, options are individual metrics, +
      +
      Parameters
      +
        +
      • category – category id – str

      • +
      • array_id – array id – str

      • +
      • metrics – performance metrics, options are individual metrics, a list of metrics, ‘KPI’ for KPI metrics only, and -‘ALL’ for all metrics – str/list

      • -
      • data_format – response data format ‘Average’ or ‘Maximum’ – str
      • -
      • request_body – request params and object IDs – dict
      • -
      • start_time – timestamp in milliseconds since epoch – str
      • -
      • end_time – timestamp in milliseconds since epoch – str
      • -
      • recency – check recency of timestamp in minutes – int
      • -
      -
    Returns:

    performance metrics – dict

    -
    Raises:

    VolumeBackendAPIException, InvalidInputException

    -
    +‘ALL’ for all metrics – str/list

    +
  1. data_format – response data format ‘Average’ or ‘Maximum’ – str

  2. +
  3. request_body – request params and object IDs – dict

  4. +
  5. start_time – timestamp in milliseconds since epoch – str

  6. +
  7. end_time – timestamp in milliseconds since epoch – str

  8. +
  9. recency – check recency of timestamp in minutes – int

  10. + +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    Raises
    +

    VolumeBackendAPIException, InvalidInputException

    +
    +
    -get_port_group_keys(array_id=None)[source]
    +get_port_group_keys(array_id=None)[source]

    List port group for the given array.

    - --- - - - - - -
    Parameters:array_id – array_id: array id – str
    Returns:port group info with first and last available
    +
    +
    Parameters
    +

    array_id – array_id: array id – str

    +
    +
    Returns
    +

    port group info with first and last available

    +
    +
    -get_port_group_metrics(**kwargs)
    +get_port_group_metrics(**kwargs)
    -get_port_group_stats(port_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_port_group_stats(port_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given port group.

    - --- - - - - - -
    Parameters:
      -
    • port_group_id – port group id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • port_group_id – port group id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_rdf_director_keys(array_id=None)[source]
    +get_rdf_director_keys(array_id=None)[source]

    List RDF directors for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:RDF directors with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    RDF directors with first and last available dates – list

    +
    +
    -get_rdf_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_rdf_director_stats(director_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given RDF director.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_rdf_emulation_keys(array_id=None)[source]
    +get_rdf_emulation_keys(array_id=None)[source]

    List RDF emulations for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:RDF emulation info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    RDF emulation info with first and last available +dates – list

    +
    +
    -get_rdf_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_rdf_emulation_stats(emulation_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given RDF emulation.

    - --- - - - - - -
    Parameters:
      -
    • emulation_id – emulation id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • emulation_id – emulation id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_rdf_port_keys(director_id, array_id=None)[source]
    +get_rdf_port_keys(director_id, array_id=None)[source]

    List RDF ports for the given array.

    - --- - - - - - -
    Parameters:
      -
    • director_id – array id – str
    • -
    • array_id – director id – str
    • +
      +
      Parameters
      +
        +
      • director_id – array id – str

      • +
      • array_id – director id – str

      -
    Returns:

    RDF port info with first and last available dates – list

    -
    +
    +
    Returns
    +

    RDF port info with first and last available dates – list

    +
    +
    -get_rdf_port_stats(director_id, port_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_rdf_port_stats(director_id, port_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given RDF port.

    - --- - - - - - -
    Parameters:
      -
    • director_id – director id – str
    • -
    • port_id – port id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • director_id – director id – str

    • +
    • port_id – port id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_rdfa_keys(array_id=None)[source]
    +get_rdfa_keys(array_id=None)[source]

    List RDFA groups for the given array.

    - --- - - - - - -
    Parameters:array_id – array_id: array id – str
    Returns:RDFA info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array_id: array id – str

    +
    +
    Returns
    +

    RDFA info with first and last available dates – list

    +
    +
    -get_rdfa_stats(rdfa_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_rdfa_stats(rdfa_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given RDFA group.

    - --- - - - - - -
    Parameters:
      -
    • rdfa_group_id – RDFA group id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • rdfa_group_id – RDFA group id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_rdfs_keys(array_id=None)[source]
    +get_rdfs_keys(array_id=None)[source]

    List RDFS groups for the given array.

    - --- - - - - - -
    Parameters:array_id – array_id: array id – str
    Returns:RDFS info with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array_id: array id – str

    +
    +
    Returns
    +

    RDFS info with first and last available dates – list

    +
    +
    -get_rdfs_stats(rdfs_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_rdfs_stats(rdfs_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given RDFS group.

    - --- - - - - - -
    Parameters:
      -
    • rdfs_group_id – RDFS group id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • rdfs_group_id – RDFS group id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_storage_container_keys(array_id=None)[source]
    +get_storage_container_keys(array_id=None)[source]

    List storage containers for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:storage container info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    storage container info with first and last available +dates – list

    +
    +
    -get_storage_container_stats(storage_container_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_storage_container_stats(storage_container_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given storage container.

    - --- - - - - - -
    Parameters:
      -
    • storage_container_id – storage container id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_container_id – storage container id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_storage_group_by_pool_keys(storage_group_id, array_id=None, start_time=None, end_time=None)[source]
    +get_storage_group_by_pool_keys(storage_group_id, array_id=None, start_time=None, end_time=None)[source]

    List storage groups by thin pool for the given array by time range.

    Only active pools from within the specified time range are returned. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • array_id – array id – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    -
    Returns:

    pool info with first and last available dates – list

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • array_id – array id – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    +
    +
    Returns
    +

    pool info with first and last available dates – list

    +
    +
    -get_storage_group_by_pool_stats(storage_group_id, pool_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_storage_group_by_pool_stats(storage_group_id, pool_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given storage group by pool.

    Performance details will only be returned if the storage was active during the specified time range. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • pool_id – pool id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • pool_id – pool id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_storage_group_keys(array_id=None)[source]
    +get_storage_group_keys(array_id=None)[source]

    List storage groups for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:storage container info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    storage container info with first and last available +dates – list

    +
    +
    -get_storage_group_metrics(**kwargs)
    +get_storage_group_metrics(**kwargs)
    -get_storage_group_stats(storage_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_storage_group_stats(storage_group_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given storage group.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_storage_resource_by_pool_keys(storage_container_id, storage_resource_id, array_id=None, start_time=None, end_time=None)[source]
    +get_storage_resource_by_pool_keys(storage_container_id, storage_resource_id, array_id=None, start_time=None, end_time=None)[source]

    List storage resource by pool for the given array by time range.

    Only active pools from within the specified time range are returned. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • storage_container_id – storage container id – str
    • -
    • storage_resource_id – storage resource id – str
    • -
    • array_id – array id – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    -
    Returns:

    pool info with first and last available dates – list

    -
    +
    +
    Parameters
    +
      +
    • storage_container_id – storage container id – str

    • +
    • storage_resource_id – storage resource id – str

    • +
    • array_id – array id – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    +
    +
    Returns
    +

    pool info with first and last available dates – list

    +
    +
    -get_storage_resource_by_pool_stats(storage_container_id, storage_resource_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_storage_resource_by_pool_stats(storage_container_id, storage_resource_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given storage resource.

    Performance details will only be returned if the pool was active during the specified time range. If no time range is provided, start and end times from array level are used.

    - --- - - - - - -
    Parameters:
      -
    • storage_container_id – storage container id – str
    • -
    • storage_resource_id – storage resource id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_container_id – storage container id – str

    • +
    • storage_resource_id – storage resource id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_storage_resource_keys(array_id=None)[source]
    +get_storage_resource_keys(array_id=None)[source]

    List storage resources for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:storage resource info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    storage resource info with first and last available +dates – list

    +
    +
    -get_storage_resource_pool_keys(array_id=None)[source]
    +get_storage_resource_pool_keys(array_id=None)[source]

    List storage resource pools for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:storage resource pool info with first and last available -dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    storage resource pool info with first and last available +dates – list

    +
    +
    -get_storage_resource_pool_stats(srp_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_storage_resource_pool_stats(srp_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given storage resource pools.

    - --- - - - - - -
    Parameters:
      -
    • srp_id – storage resource pool id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • srp_id – storage resource pool id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_storage_resource_stats(storage_container_id, storage_resource_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_storage_resource_stats(storage_container_id, storage_resource_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given storage resource.

    - --- - - - - - -
    Parameters:
      -
    • storage_container_id – storage container id – str
    • -
    • storage_resource_id – storage resource id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_container_id – storage container id – str

    • +
    • storage_resource_id – storage resource id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_thin_pool_keys(array_id=None)[source]
    +get_thin_pool_keys(array_id=None)[source]

    List thin pools for the given array.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:thin pools with first and last available dates – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    thin pools with first and last available dates – list

    +
    +
    -get_thin_pool_stats(thin_pool_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]
    +get_thin_pool_stats(thin_pool_id, metrics, array_id=None, data_format='Average', start_time=None, end_time=None, recency=None)[source]

    List time range performance data for given thin pool.

    - --- - - - - - -
    Parameters:
      -
    • thin_pool_id – thin pool id – str
    • -
    • metrics – performance metrics to retrieve – str or list
    • -
    • array_id – array id – str
    • -
    • data_format – response data format ‘Average’ or ‘Maximum’ – str
    • -
    • start_time – timestamp in milliseconds since epoch – str
    • -
    • end_time – timestamp in milliseconds since epoch – str
    • -
    • recency – check recency of timestamp in minutes – int
    • -
    -
    Returns:

    performance metrics – dict

    -
    +
    +
    Parameters
    +
      +
    • thin_pool_id – thin pool id – str

    • +
    • metrics – performance metrics to retrieve – str or list

    • +
    • array_id – array id – str

    • +
    • data_format – response data format ‘Average’ or ‘Maximum’ – str

    • +
    • start_time – timestamp in milliseconds since epoch – str

    • +
    • end_time – timestamp in milliseconds since epoch – str

    • +
    • recency – check recency of timestamp in minutes – int

    • +
    +
    +
    Returns
    +

    performance metrics – dict

    +
    +
    -get_threshold_categories()[source]
    +get_threshold_categories()[source]

    Get a list of performance threshold categories.

    - --- - - - -
    Returns:performance threshold categories – list
    +
    +
    Returns
    +

    performance threshold categories – list

    +
    +
    -get_threshold_category_settings(category)[source]
    +get_threshold_category_settings(category)[source]

    Get performance threshold category settings.

    - --- - - - - - -
    Parameters:category – category id – str
    Returns:category settings – dict
    -
    - -
    +
    +
    Parameters
    +

    category – category id – str

    +
    +
    Returns
    +

    category settings – dict

    +
    +
    +
    + +
    -static get_timestamp_by_hour(start_time=None, end_time=None, hours_difference=None)[source]
    +static get_timestamp_by_hour(start_time=None, end_time=None, hours_difference=None)[source]

    Get timestamp difference in hours from supplied time.

    If start time is provided but not end time, the time difference will be after the start time.

    @@ -3105,107 +2705,91 @@

    PyU4V.univmax_conn - - - -Parameters:
      -
    • start_time – timestamp in milliseconds since epoch – int
    • -
    • end_time – timestamp in milliseconds since epoch – int
    • -
    • hours_difference – difference in hours – int
    • +
      +
      Parameters
      +
        +
      • start_time – timestamp in milliseconds since epoch – int

      • +
      • end_time – timestamp in milliseconds since epoch – int

      • +
      • hours_difference – difference in hours – int

      - - -Returns:

      timestamp in milliseconds since epoch – str

      - - - - +
      +
      Returns
      +

      timestamp in milliseconds since epoch – str

      +
      +

    -is_array_performance_registered(array_id=None)[source]
    +is_array_performance_registered(array_id=None)[source]

    Check if an array is registered for diagnostic performance data.

    This will return False is an array is registered for real-time data but not for diagnostic performance data.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:bool
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    bool

    +
    +
    -is_timestamp_current(timestamp, minutes=None)[source]
    +is_timestamp_current(timestamp, minutes=None)[source]

    Check if the timestamp is less than a user specified set of minutes.

    If no minutes value is provided, self.recency is used. Seven minutes is recommended to provide a small amount of time for the STP daemon to record the next set of metrics in five minute intervals.

    - --- - - - - - -
    Parameters:
      -
    • timestamp – timestamp in milliseconds since epoch – int
    • -
    • minutes – timestamp recency in minutes – int
    • +
      +
      Parameters
      +
        +
      • timestamp – timestamp in milliseconds since epoch – int

      • +
      • minutes – timestamp recency in minutes – int

      -
    Returns:

    if timestamp is less than recency value – bool

    -
    +
    +
    Returns
    +

    if timestamp is less than recency value – bool

    +
    +
    -set_array_id(array_id)[source]
    +set_array_id(array_id)[source]

    Set the array id.

    - --- - - - -
    Parameters:array_id – array id – str
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    -set_perf_threshold_and_alert(**kwargs)
    +set_perf_threshold_and_alert(**kwargs)
    -set_perfthresholds_csv(**kwargs)
    +set_perfthresholds_csv(**kwargs)
    -set_recency(minutes)[source]
    +set_recency(minutes)[source]

    Set the recency value in minutes.

    - --- - - - -
    Parameters:minutes – recency minutes – int
    +
    +
    Parameters
    +

    minutes – recency minutes – int

    +
    +
    -set_thresholds_from_csv(csv_file_path, kpi_only=True)[source]
    +set_thresholds_from_csv(csv_file_path, kpi_only=True)[source]

    Set performance thresholds using a CSV file.

    Reads CSV file and sets performance threshold metrics on the values contained within. The following headers are required: @@ -3213,80 +2797,66 @@

    PyU4V.univmax_conn - - - -Parameters:
      -
    • csv_file_path – path to CSV file – str
    • -
    • kpi_only – set only KPI thresholds – bool
    • +
      +
      Parameters
      +
        +
      • csv_file_path – path to CSV file – str

      • +
      • kpi_only – set only KPI thresholds – bool

      - - - - +
      +

    -set_timestamp(timestamp)[source]
    +set_timestamp(timestamp)[source]

    Set the performance timestamp.

    - --- - - - -
    Parameters:timestamp – the performance timestamp – str
    +
    +
    Parameters
    +

    timestamp – the performance timestamp – str

    +
    +
    -update_threshold_settings(category, metric, first_threshold, second_threshold, alert=True, first_threshold_occurrences=3, first_threshold_samples=5, first_threshold_severity='WARNING', second_threshold_occurrences=3, second_threshold_samples=5, second_threshold_severity='CRITICAL')[source]
    +update_threshold_settings(category, metric, first_threshold, second_threshold, alert=True, first_threshold_occurrences=3, first_threshold_samples=5, first_threshold_severity='WARNING', second_threshold_occurrences=3, second_threshold_samples=5, second_threshold_severity='CRITICAL')[source]

    Edit an existing global threshold across all arrays.

    - --- - - - - - -
    Parameters:
      -
    • category – category id – str
    • -
    • metric – performance metric – str
    • -
    • first_threshold – first threshold value – int
    • -
    • second_threshold – second threshold value – int
    • -
    • alert – alert on/off – bool
    • -
    • first_threshold_occurrences – error occurrences – int
    • -
    • first_threshold_samples – error samples – int
    • -
    • first_threshold_severity – error severity, valid values are +
      +
      Parameters
      +
        +
      • category – category id – str

      • +
      • metric – performance metric – str

      • +
      • first_threshold – first threshold value – int

      • +
      • second_threshold – second threshold value – int

      • +
      • alert – alert on/off – bool

      • +
      • first_threshold_occurrences – error occurrences – int

      • +
      • first_threshold_samples – error samples – int

      • +
      • first_threshold_severity – error severity, valid values are ‘INFORMATION’, ‘WARNING’, and -‘CRITICAL’ – str

      • -
      • second_threshold_occurrences – error occurrences – int
      • -
      • second_threshold_samples – error samples – int
      • -
      • second_threshold_severity – error severity, valid values are +‘CRITICAL’ – str

      • +
      • second_threshold_occurrences – error occurrences – int

      • +
      • second_threshold_samples – error samples – int

      • +
      • second_threshold_severity – error severity, valid values are ‘INFORMATION’, ‘WARNING’, and -‘CRITICAL’ – str

      • +‘CRITICAL’ – str

      -
    Returns:

    operation success details – dict

    -
    +
    +
    Returns
    +

    operation success details – dict

    +
    +
    -
    +
    -static validate_category(category)[source]
    +static validate_category(category)[source]

    Check that a supplied category is valid.

    - --- - - - -
    Raises:InvalidInputException
    +
    +
    Raises
    +

    InvalidInputException

    +
    +
    @@ -3297,2055 +2867,1792 @@

    PyU4V.univmax_conn
    -class PyU4V.provisioning.ProvisioningFunctions(array_id, rest_client)[source]
    +class PyU4V.provisioning.ProvisioningFunctions(array_id, rest_client)[source]

    Bases: object

    ProvisioningFunctions.

    -add_child_sg_to_parent_sg(**kwargs)
    +add_child_sg_to_parent_sg(**kwargs)
    -add_child_storage_group_to_parent_group(child_storage_group, parent_storage_group)[source]
    +add_child_storage_group_to_parent_group(child_storage_group, parent_storage_group)[source]

    Add a storage group to a parent storage group.

    This method adds an existing storage group to another storage group, i.e. cascaded storage groups.

    - --- - - - - - -
    Parameters:
      -
    • child_storage_group – child storage group id – str
    • -
    • parent_storage_group – parent storage group id – str
    • +
      +
      Parameters
      +
        +
      • child_storage_group – child storage group id – str

      • +
      • parent_storage_group – parent storage group id – str

      -
    Returns:

    storage group details – dict

    -
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -add_existing_vol_to_sg(**kwargs)
    +add_existing_vol_to_sg(**kwargs)
    -add_existing_volume_to_storage_group(storage_group_id, vol_ids, _async=False)[source]
    +add_existing_volume_to_storage_group(storage_group_id, vol_ids, _async=False)[source]

    Expand an existing storage group by adding existing volumes.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • vol_ids – volume device id(s) – str or list
    • -
    • _async – if call should be async – bool
    • +
      +
      Parameters
      +
        +
      • storage_group_id – storage group id – str

      • +
      • vol_ids – volume device id(s) – str or list

      • +
      • _async – if call should be async – bool

      -
    Returns:

    storage group details – dict

    -
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -add_new_vol_to_storagegroup(**kwargs)
    +add_new_vol_to_storagegroup(**kwargs)
    -add_new_volume_to_storage_group(storage_group_id, num_vols, vol_size, cap_unit, _async=False, vol_name=None, create_new_volumes=None)[source]
    +add_new_volume_to_storage_group(storage_group_id, num_vols, vol_size, cap_unit, _async=False, vol_name=None, create_new_volumes=None, remote_array_1_id=None, remote_array_1_sgs=None, remote_array_2_id=None, remote_array_2_sgs=None)[source]

    Expand an existing storage group by adding new volumes.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • num_vols – number of volumes to be created – int
    • -
    • vol_size – the volume size – str
    • -
    • cap_unit – capacity unit (MB, GB, TB, CYL) – str
    • -
    • _async – if call should be async – bool
    • -
    • vol_name – name to give to the volume, optional – str
    • -
    • create_new_volumes – new volumes only, no ro-use – bool
    • -
    -
    Returns:

    storage group details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • num_vols – number of volumes to be created – int

    • +
    • vol_size – the volume size – str

    • +
    • cap_unit – capacity unit (MB, GB, TB, CYL) – str

    • +
    • _async – if call should be async – bool

    • +
    • vol_name – name to give to the volume, optional – str

    • +
    • create_new_volumes – new volumes only, no ro-use – bool

    • +
    • remote_array_1_id – 12 digit serial number of remote array, +optional – str

    • +
    • remote_array_1_sgs – list of storage groups on remote array to +add Remote device, Unisphere instance must be local to R1 +storage group otherwise volumes will only be added to the +local group – str or list

    • +
    • remote_array2_id – optional digit serial number of remote array, +only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional +– str

    • +
    • remote_array2_sgs – storage groups on remote array, optional +– str or list

    • +
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -create_empty_sg(**kwargs)
    +create_empty_sg(**kwargs)
    -create_empty_storage_group(srp_id, storage_group_id, service_level, workload, disable_compression=False, _async=False)[source]
    +create_empty_storage_group(srp_id, storage_group_id, service_level, workload, disable_compression=False, _async=False)[source]

    Create an empty storage group.

    Set the disable_compression flag for disabling compression on an All Flash array (where compression is on by default).

    - --- - - - - - -
    Parameters:
      -
    • srp_id – SRP id – str
    • -
    • storage_group_id – storage group id – str
    • -
    • service_level – service level id – str
    • -
    • workload – workload id – str
    • -
    • disable_compression – disable compression – bool
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group details – dict

    -
    +
    +
    Parameters
    +
      +
    • srp_id – SRP id – str

    • +
    • storage_group_id – storage group id – str

    • +
    • service_level – service level id – str

    • +
    • workload – workload id – str

    • +
    • disable_compression – disable compression – bool

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -create_host(host_name, initiator_list=None, host_flags=None, init_file=None, _async=False)[source]
    +create_host(host_name, initiator_list=None, host_flags=None, init_file=None, _async=False)[source]

    Create a host with the given initiators.

    Accepts either initiator_list, e.g. [10000000ba873cbf, 10000000ba873cba], or file. The initiators must not be associated with another host. An empty host can also be created by not passing any initiator ids.

    - --- - - - - - -
    Parameters:
      -
    • host_name – name of the new host – str
    • -
    • initiator_list – list of initiators – list
    • -
    • host_flags – optional host flags to apply – dict
    • -
    • init_file – path to file containing initiator names – str
    • -
    • _async – if call should be _async – bool
    • -
    -
    Returns:

    new host details – dict

    -
    +
    +
    Parameters
    +
      +
    • host_name – name of the new host – str

    • +
    • initiator_list – list of initiators – list

    • +
    • host_flags – optional host flags to apply – dict

    • +
    • init_file – path to file containing initiator names – str

    • +
    • _async – if call should be _async – bool

    • +
    +
    +
    Returns
    +

    new host details – dict

    +
    +
    -create_host_group(host_group_id, host_list, host_flags=None, _async=False)[source]
    +create_host_group(host_group_id, host_list, host_flags=None, _async=False)[source]

    Create a host group containing the given hosts.

    - --- - - - - - -
    Parameters:
      -
    • host_group_id – name of the new host group – str
    • -
    • host_list – hosts – list
    • -
    • host_flags – optional host flags to apply – dict
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    new host group details – dict

    -
    +
    +
    Parameters
    +
      +
    • host_group_id – name of the new host group – str

    • +
    • host_list – hosts – list

    • +
    • host_flags – optional host flags to apply – dict

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    new host group details – dict

    +
    +
    -create_hostgroup(**kwargs)
    +create_hostgroup(**kwargs)
    -create_masking_view_existing_components(port_group_name, masking_view_name, storage_group_name, host_name=None, host_group_name=None, _async=False)[source]
    +create_masking_view_existing_components(port_group_name, masking_view_name, storage_group_name, host_name=None, host_group_name=None, _async=False)[source]

    Create a new masking view using existing groups.

    Must enter either a host name or a host group name, but not both.

    - --- - - - - - - - -
    Parameters:
      -
    • port_group_name – name of the port group – str
    • -
    • masking_view_name – name of the new masking view – str
    • -
    • storage_group_name – name of the storage group – str
    • -
    • host_name – name of the host (initiator group) – str
    • -
    • host_group_name – name of host group – str
    • -
    • _async – if command should be run asynchronously – bool
    • -
    -
    Returns:

    masking view details – dict

    -
    Raises:

    InvalidInputException

    -
    +
    +
    Parameters
    +
      +
    • port_group_name – name of the port group – str

    • +
    • masking_view_name – name of the new masking view – str

    • +
    • storage_group_name – name of the storage group – str

    • +
    • host_name – name of the host (initiator group) – str

    • +
    • host_group_name – name of host group – str

    • +
    • _async – if command should be run asynchronously – bool

    • +
    +
    +
    Returns
    +

    masking view details – dict

    +
    +
    Raises
    +

    InvalidInputException

    +
    +
    -create_multiport_port_group(port_group_id, ports)[source]
    +create_multiport_port_group(port_group_id, ports)[source]

    Create a new port group.

    - --- - - - - - -
    Parameters:
      -
    • port_group_id – name of the new port group – str
    • -
    • ports – port dicts Example: -[{‘directorId’: director_id, ‘portId’: port_id}] – list
    • +
      +
      Parameters
      +
        +
      • port_group_id – name of the new port group – str

      • +
      • ports – port dicts Example: +[{‘directorId’: director_id, ‘portId’: port_id}] – list

      -
    Returns:

    new port group details – dict

    -
    +
    +
    Returns
    +

    new port group details – dict

    +
    +
    -create_multiport_portgroup(**kwargs)
    +create_multiport_portgroup(**kwargs)
    -create_non_empty_storage_group(srp_id, storage_group_id, service_level, workload, num_vols, vol_size, cap_unit, disable_compression=False, _async=False)[source]
    +create_non_empty_storage_group(srp_id, storage_group_id, service_level, workload, num_vols, vol_size, cap_unit, disable_compression=False, _async=False)[source]

    Create a new storage group with the specified volumes.

    Generates a dictionary for json formatting and calls the create_sg function to create a new storage group with the specified volumes. Set the disable_compression flag for disabling compression on an All Flash array (where compression is on by default).

    - --- - - - - - -
    Parameters:
      -
    • srp_id – SRP id – str
    • -
    • storage_group_id – storage group id – str
    • -
    • service_level – service level id – str
    • -
    • workload – workload id – str
    • -
    • num_vols – number of volumes to be created – int
    • -
    • vol_size – the volume size – str
    • -
    • cap_unit – capacity unit (MB, GB, TB, CYL) – str
    • -
    • disable_compression – disable compression – bool
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group details – dict

    -
    +
    +
    Parameters
    +
      +
    • srp_id – SRP id – str

    • +
    • storage_group_id – storage group id – str

    • +
    • service_level – service level id – str

    • +
    • workload – workload id – str

    • +
    • num_vols – number of volumes to be created – int

    • +
    • vol_size – the volume size – str

    • +
    • cap_unit – capacity unit (MB, GB, TB, CYL) – str

    • +
    • disable_compression – disable compression – bool

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -create_non_empty_storagegroup(**kwargs)
    +create_non_empty_storagegroup(**kwargs)
    -create_port_group(port_group_id, director_id, port_id)[source]
    +create_port_group(port_group_id, director_id, port_id)[source]

    Create a new port group.

    - --- - - - - - -
    Parameters:
      -
    • port_group_id – name of the new port group - str
    • -
    • director_id – director id – str
    • -
    • port_id – port id – str
    • +
      +
      Parameters
      +
        +
      • port_group_id – name of the new port group - str

      • +
      • director_id – director id – str

      • +
      • port_id – port id – str

      -
    Returns:

    new port group details – dict

    -
    +
    +
    Returns
    +

    new port group details – dict

    +
    +
    -create_port_group_from_file(file_name, port_group_id)[source]
    +create_port_group_from_file(file_name, port_group_id)[source]

    Given a file with director:port pairs, create a portgroup.

    Each director:port pair must be on a new line. Example director:port - FA-1D:4.

    - --- - - - - - -
    Parameters:
      -
    • file_name – path to the file – str
    • -
    • port_group_id – name for the port group – str
    • +
      +
      Parameters
      +
        +
      • file_name – path to the file – str

      • +
      • port_group_id – name for the port group – str

      -
    Returns:

    new port group details – dict

    -
    +
    +
    Returns
    +

    new port group details – dict

    +
    +
    -create_portgroup(**kwargs)
    +create_portgroup(**kwargs)
    -create_portgroup_from_file(**kwargs)
    +create_portgroup_from_file(**kwargs)
    -create_storage_group(srp_id, sg_id, slo, workload=None, do_disable_compression=False, num_vols=0, vol_size='0', cap_unit='GB', allocate_full=False, _async=False, vol_name=None)[source]
    +create_storage_group(srp_id, sg_id, slo, workload=None, do_disable_compression=False, num_vols=0, vol_size='0', cap_unit='GB', allocate_full=False, _async=False, vol_name=None)[source]

    Create the volume in the specified storage group.

    - --- - - - - - -
    Parameters:
      -
    • srp_id – SRP id – str
    • -
    • sg_id – storage group id – str
    • -
    • slo – service level id – str
    • -
    • workload – workload id – str
    • -
    • do_disable_compression – disable compression – bool
    • -
    • num_vols – number of volumes to be created – int
    • -
    • vol_size – the volume size – str
    • -
    • cap_unit – capacity unit (MB, GB, TB, CYL) – str
    • -
    • allocate_full – allocate full capacity – bool
    • -
    • _async – if call should be async – bool
    • -
    • vol_name – name to give to the volume, optional – str
    • -
    -
    Returns:

    storage group details – dict

    -
    +
    +
    Parameters
    +
      +
    • srp_id – SRP id – str

    • +
    • sg_id – storage group id – str

    • +
    • slo – service level id – str

    • +
    • workload – workload id – str

    • +
    • do_disable_compression – disable compression – bool

    • +
    • num_vols – number of volumes to be created – int

    • +
    • vol_size – the volume size – str

    • +
    • cap_unit – capacity unit (MB, GB, TB, CYL) – str

    • +
    • allocate_full – allocate full capacity – bool

    • +
    • _async – if call should be async – bool

    • +
    • vol_name – name to give to the volume, optional – str

    • +
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -create_volume_from_sg_return_dev_id(**kwargs)
    +create_volume_from_sg_return_dev_id(**kwargs)
    -create_volume_from_storage_group_return_id(volume_name, storage_group_id, vol_size, cap_unit='GB')[source]
    +create_volume_from_storage_group_return_id(volume_name, storage_group_id, vol_size, cap_unit='GB')[source]

    Create a new volume in the given storage group.

    - --- - - - - - -
    Parameters:
      -
    • volume_name – volume name – str
    • -
    • storage_group_id – storage group id – str
    • -
    • vol_size – volume size – str
    • -
    • cap_unit – capacity unit (MB, GB, TB, CYL) – str
    • -
    -
    Returns:

    device id – str

    -
    +
    +
    Parameters
    +
      +
    • volume_name – volume name – str

    • +
    • storage_group_id – storage group id – str

    • +
    • vol_size – volume size – str

    • +
    • cap_unit – capacity unit (MB, GB, TB, CYL) – str

    • +
    +
    +
    Returns
    +

    device id – str

    +
    +
    -deallocate_volume(device_id)[source]
    +deallocate_volume(device_id)[source]

    Deallocate all tracks on a volume.

    Necessary before deletion. Please note that it is not possible to know exactly when a de-allocation is complete. This method will return when the array has accepted the request for de-allocation; the de-allocation itself happens as a background task on the array.

    - --- - - - - - -
    Parameters:device_id – device id – str
    Returns:volume details – dict
    +
    +
    Parameters
    +

    device_id – device id – str

    +
    +
    Returns
    +

    volume details – dict

    +
    +
    -delete_host(host_id)[source]
    +delete_host(host_id)[source]

    Delete a given host.

    Cannot delete if associated with a masking view.

    - --- - - - -
    Parameters:host_id – name of the host – str
    +
    +
    Parameters
    +

    host_id – name of the host – str

    +
    +
    -delete_host_group(host_group_id)[source]
    +delete_host_group(host_group_id)[source]

    Delete a given host group.

    Cannot delete if associated with a masking view.

    - --- - - - -
    Parameters:host_group_id – name of the hostgroup – str
    +
    +
    Parameters
    +

    host_group_id – name of the hostgroup – str

    +
    +
    -delete_hostgroup(**kwargs)
    +delete_hostgroup(**kwargs)
    -delete_masking_view(maskingview_name)[source]
    +delete_masking_view(maskingview_name)[source]

    Delete a masking view.

    - --- - - - -
    Parameters:maskingview_name – masking view name – str
    +
    +
    Parameters
    +

    maskingview_name – masking view name – str

    +
    +
    -delete_port_group(port_group_id)[source]
    +delete_port_group(port_group_id)[source]

    Delete a port group.

    - --- - - - -
    Parameters:port_group_id – name of the port group – str
    +
    +
    Parameters
    +

    port_group_id – name of the port group – str

    +
    +
    -delete_portgroup(**kwargs)
    +delete_portgroup(**kwargs)
    -delete_storage_group(storage_group_id)[source]
    +delete_storage_group(storage_group_id)[source]

    Delete a given storage group.

    A storage group cannot be deleted if it is associated with a masking view.

    - --- - - - -
    Parameters:storage_group_id – storage group id – str
    +
    +
    Parameters
    +

    storage_group_id – storage group id – str

    +
    +
    -delete_storagegroup(**kwargs)
    +delete_storagegroup(**kwargs)
    -delete_volume(**kwargs)[source]
    +delete_volume(device_id)[source]

    Delete a volume.

    - --- - - - -
    Parameters:device_id – device id – str
    +
    +
    Parameters
    +

    device_id – device id – str

    +
    +
    -extend_volume(device_id, new_size, _async=False, rdf_group_num=None)[source]
    +extend_volume(device_id, new_size, _async=False, rdf_group_num=None)[source]

    Extend a volume.

    - --- - - - - - -
    Parameters:
      -
    • device_id – device id – str
    • -
    • new_size – the new size for the device – int
    • -
    • _async – if call should be async – bool
    • -
    • rdf_group_num – RDF group number to extend R2 device in same -operation – int
    • -
    -
    Returns:

    volume details – dict

    -
    +
    +
    Parameters
    +
      +
    • device_id – device id – str

    • +
    • new_size – the new size for the device – int

    • +
    • _async – if call should be async – bool

    • +
    • rdf_group_num – RDF group number to extend R2 device in same +operation – int

    • +
    +
    +
    Returns
    +

    volume details – dict

    +
    +
    -find_host_lun_id_for_vol(**kwargs)
    +find_host_lun_id_for_vol(**kwargs)
    -find_host_lun_id_for_volume(masking_view_id, device_id)[source]
    +find_host_lun_id_for_volume(masking_view_id, device_id)[source]

    Find the host_lun_id for a volume in a masking view.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_id – masking view id – str
    • -
    • device_id – the device id – str
    • +
      +
      Parameters
      +
        +
      • masking_view_id – masking view id – str

      • +
      • device_id – the device id – str

      -
    Returns:

    host lun id – str

    -
    +
    +
    Returns
    +

    host lun id – str

    +
    +
    -find_low_volume_utilization(low_utilization_percentage, csvname)[source]
    +find_low_volume_utilization(low_utilization_percentage, csvname)[source]

    Find volumes under a certain utilization threshold.

    Function to find volumes under a specified percentage, (e.g. find volumes with utilization less than 10%) - may be long running as will check all sg on array and all storage group. Only identifies volumes in storage group, note if volume is in more than one sg it may show up more than once.

    - --- - - - -
    Parameters:
      -
    • low_utilization_percentage – low utilization percent – int
    • -
    • csvname – filename for CSV output file – str
    • +
      +
      Parameters
      +
        +
      • low_utilization_percentage – low utilization percent – int

      • +
      • csvname – filename for CSV output file – str

      -
    +
    +
    -find_volume_device_id(volume_name)[source]
    +find_volume_device_id(volume_name)[source]

    Given a volume identifier, find the corresponding device_id.

    - --- - - - - - -
    Parameters:volume_name – the volume name – str
    Returns:device id – str
    +
    +
    Parameters
    +

    volume_name – the volume name – str

    +
    +
    Returns
    +

    device id – str

    +
    +
    -find_volume_identifier(device_id)[source]
    +find_volume_identifier(device_id)[source]

    Get the volume identifier of a volume.

    - --- - - - - - -
    Parameters:device_id – device id – str
    Returns:volume identifier – str
    -
    - -
    +
    +
    Parameters
    +

    device_id – device id – str

    +
    +
    Returns
    +

    volume identifier – str

    +
    +
    +
    + +
    -static format_director_port(director, port)[source]
    +static format_director_port(director, port)[source]

    Format separate director port into single string.

    - --- - - - - - -
    Parameters:
      -
    • director – director e.g. FA-2D – str
    • -
    • port – port e.g. 4 – str
    • +
      +
      Parameters
      +
        +
      • director – director e.g. FA-2D – str

      • +
      • port – port e.g. 4 – str

      -
    Returns:

    formatted director:port string –str

    -
    +
    +
    Returns
    +

    formatted director:port string –str

    +
    +
    -get_active_masking_view_connections()[source]
    +get_active_masking_view_connections()[source]

    Get list of active connections from any masking view.

    - --- - - - -
    Returns:masking view name, connection details – str, list
    +
    +
    Returns
    +

    masking view name, connection details – str, list

    +
    +
    -get_any_director_port(director, filters=None)[source]
    +get_any_director_port(director, filters=None)[source]

    Get a non-GuestOS port from a director.

    - --- - - - - - -
    Parameters:
      -
    • director – director to search for ports with – str
    • -
    • filters – filters to apply when search for port – str
    • +
      +
      Parameters
      +
        +
      • director – director to search for ports with – str

      • +
      • filters – filters to apply when search for port – str

      -
    Returns:

    port – int

    -
    +
    +
    Returns
    +

    port – int

    +
    +
    -get_available_initiator(director_type=None)[source]
    +get_available_initiator(director_type=None)[source]

    Get an available initiator.

    - --- - - - - - -
    Parameters:director_type – director type filter – str
    Returns:single available initiator – str
    +
    +
    Parameters
    +

    director_type – director type filter – str

    +
    +
    Returns
    +

    single available initiator – str

    +
    +
    -get_available_initiator_wwn_as_list()[source]
    +get_available_initiator_wwn_as_list()[source]

    Get an available initiator wwn string in a list.

    - --- - - - -
    Returns:single available initiator wwn – list
    +
    +
    Returns
    +

    single available initiator wwn – list

    +
    +
    -get_child_sg_from_parent(**kwargs)
    +get_child_sg_from_parent(**kwargs)
    -get_child_storage_groups_from_parent(parent_name)[source]
    +get_child_storage_groups_from_parent(parent_name)[source]

    Get child storage group list from parent storage group.

    - --- - - - - - -
    Parameters:parent_name – parent sg name – str
    Returns:child sg details – list
    +
    +
    Parameters
    +

    parent_name – parent sg name – str

    +
    +
    Returns
    +

    child sg details – list

    +
    +
    -get_common_masking_views(**kwargs)
    +get_common_masking_views(**kwargs)
    -get_compressibility_report(srp_id)[source]
    +get_compressibility_report(srp_id)[source]

    Get a specified SRP Compressibility Report.

    - --- - - - - - -
    Parameters:srp_id – srp id – str
    Returns:compressibility reports – list
    +
    +
    Parameters
    +

    srp_id – srp id – str

    +
    +
    Returns
    +

    compressibility reports – list

    +
    +
    -get_director(director)[source]
    +get_director(director)[source]

    Query for details of a director for a symmetrix.

    - --- - - - - - -
    Parameters:director – the director ID e.g. FA-1D – str
    Returns:director details – dict
    +
    +
    Parameters
    +

    director – the director ID e.g. FA-1D – str

    +
    +
    Returns
    +

    director details – dict

    +
    +
    -get_director_list()[source]
    +get_director_list()[source]

    Query for details of Symmetrix directors for a symmetrix.

    - --- - - - -
    Returns:directors – list
    +
    +
    Returns
    +

    directors – list

    +
    +
    -get_director_port(director, port_no)[source]
    +get_director_port(director, port_no)[source]

    Get details of the symmetrix director port.

    - --- - - - - - -
    Parameters:
      -
    • director – the director ID e.g. FA-1D – str
    • -
    • port_no – the port number e.g. 1 – str
    • +
      +
      Parameters
      +
        +
      • director – the director ID e.g. FA-1D – str

      • +
      • port_no – the port number e.g. 1 – str

      -
    Returns:

    director port details – dict

    -
    +
    +
    Returns
    +

    director port details – dict

    +
    +
    -get_director_port_list(director, filters=None)[source]
    +get_director_port_list(director, filters=None)[source]

    Get list of the ports on a particular director.

    Can be filtered by optional parameters, please see documentation.

    - --- - - - - - -
    Parameters:
      -
    • director – the director ID e.g. FA-1D – str
    • -
    • filters – optional filters - dict
    • +
      +
      Parameters
      +
        +
      • director – the director ID e.g. FA-1D – str

      • +
      • filters – optional filters - dict

      -
    Returns:

    port key dicts – list

    -
    +
    +
    Returns
    +

    port key dicts – list

    +
    +
    -get_element_from_masking_view(maskingview_name, portgroup=False, host=False, storagegroup=False)[source]
    +get_element_from_masking_view(maskingview_name, portgroup=False, host=False, storagegroup=False)[source]

    Return the name of the specified element from a masking view.

    - --- - - - - - - - -
    Parameters:
      -
    • maskingview_name – masking view name – str
    • -
    • portgroup – port group name – str
    • -
    • host – the host name – str
    • -
    • storagegroup – storage group name – str
    • -
    -
    Returns:

    specified element name – str

    -
    Raises:

    ResourceNotFoundException

    -
    +
    +
    Parameters
    +
      +
    • maskingview_name – masking view name – str

    • +
    • portgroup – port group name – str

    • +
    • host – the host name – str

    • +
    • storagegroup – storage group name – str

    • +
    +
    +
    Returns
    +

    specified element name – str

    +
    +
    Raises
    +

    ResourceNotFoundException

    +
    +
    -get_fa_directors()[source]
    +get_fa_directors()[source]

    Get all FA directors on the array.

    - --- - - - -
    Returns:fa director strings – list
    +
    +
    Returns
    +

    fa director strings – list

    +
    +
    -get_host(host_id)[source]
    +get_host(host_id)[source]

    Get details on a host on the array.

    - --- - - - - - -
    Parameters:host_id – the name of the host – str
    Returns:host details – dict
    +
    +
    Parameters
    +

    host_id – the name of the host – str

    +
    +
    Returns
    +

    host details – dict

    +
    +
    -get_host_from_masking_view(masking_view_id)[source]
    +get_host_from_masking_view(masking_view_id)[source]

    Given a masking view, get the associated host or host group.

    - --- - - - - - -
    Parameters:masking_view_id – name of the masking view – str
    Returns:host id – str
    +
    +
    Parameters
    +

    masking_view_id – name of the masking view – str

    +
    +
    Returns
    +

    host id – str

    +
    +
    -get_host_from_maskingview(**kwargs)
    +get_host_from_maskingview(**kwargs)
    -get_host_group(host_group_id)[source]
    +get_host_group(host_group_id)[source]

    Get details on a host group on the array.

    - --- - - - - - -
    Parameters:host_group_id – name of the host group – str
    Returns:host group details – dict
    +
    +
    Parameters
    +

    host_group_id – name of the host group – str

    +
    +
    Returns
    +

    host group details – dict

    +
    +
    -get_host_group_list(filters=None)[source]
    +get_host_group_list(filters=None)[source]

    Get list of host group(s) on the array.

    See unisphere documentation for applicable filters.

    - --- - - - - - -
    Parameters:filters – optional list of filters – dict
    Returns:host group list – list
    +
    +
    Parameters
    +

    filters – optional list of filters – dict

    +
    +
    Returns
    +

    host group list – list

    +
    +
    -get_host_list(filters=None)[source]
    +get_host_list(filters=None)[source]

    Get list of the hosts on the array.

    See documentation for applicable filters.

    - --- - - - - - -
    Parameters:filters – optional list of filters – dict
    Returns:hosts – list
    +
    +
    Parameters
    +

    filters – optional list of filters – dict

    +
    +
    Returns
    +

    hosts – list

    +
    +
    -get_hostgroup(**kwargs)
    +get_hostgroup(**kwargs)
    -get_hostgroup_list(**kwargs)
    +get_hostgroup_list(**kwargs)
    -get_in_use_initiator(director_type=None)[source]
    +get_in_use_initiator(director_type=None)[source]

    Get an initiator that is in use.

    - --- - - - - - -
    Parameters:director_type – director type filter – str
    Returns:single in-use initiator – str
    +
    +
    Parameters
    +

    director_type – director type filter – str

    +
    +
    Returns
    +

    single in-use initiator – str

    +
    +
    -get_in_use_initiator_list_from_array()[source]
    +get_in_use_initiator_list_from_array()[source]

    Get the list of initiators which are in-use from the array.

    Gets the list of initiators from the array which are in hosts/ initiator groups.

    - --- - - - -
    Returns:in-use initiators – list
    +
    +
    Returns
    +

    in-use initiators – list

    +
    +
    -get_initiator(initiator_id)[source]
    +get_initiator(initiator_id)[source]

    Get details of an initiator.

    - --- - - - - - -
    Parameters:initiator_id – initiator id – str
    Returns:initiator details – dict
    +
    +
    Parameters
    +

    initiator_id – initiator id – str

    +
    +
    Returns
    +

    initiator details – dict

    +
    +
    -get_initiator_group_from_initiator(initiator)[source]
    +get_initiator_group_from_initiator(initiator)[source]

    Given an initiator, get its corresponding initiator group, if any.

    - --- - - - - - -
    Parameters:initiator – the initiator id – str
    Returns:found initiator group name – str or None
    +
    +
    Parameters
    +

    initiator – the initiator id – str

    +
    +
    Returns
    +

    found initiator group name – str or None

    +
    +
    -get_initiator_ids_from_host(host_id)[source]
    +get_initiator_ids_from_host(host_id)[source]

    Get initiator details from a host.

    - --- - - - - - -
    Parameters:host_id – name of the host – str
    Returns:initiator IDs – list
    +
    +
    Parameters
    +

    host_id – name of the host – str

    +
    +
    Returns
    +

    initiator IDs – list

    +
    +
    -get_initiator_list(params=None)[source]
    +get_initiator_list(params=None)[source]

    Retrieve initiator list from the array.

    - --- - - - - - -
    Parameters:params – optional params – dict
    Returns:initiators – list
    +
    +
    Parameters
    +

    params – optional params – dict

    +
    +
    Returns
    +

    initiators – list

    +
    +
    -get_iscsi_ip_address_and_iqn(port_id)[source]
    +get_iscsi_ip_address_and_iqn(port_id)[source]

    Get the ip addresses from the director port.

    - --- - - - - - -
    Parameters:port_id – director port identifier – str
    Returns:ip addresses, iqn – list, str
    +
    +
    Parameters
    +

    port_id – director port identifier – str

    +
    +
    Returns
    +

    ip addresses, iqn – list, str

    +
    +
    -get_masking_view(masking_view_name)[source]
    +get_masking_view(masking_view_name)[source]

    Get details of a masking view.

    - --- - - - - - -
    Parameters:masking_view_name – the masking view name – str
    Returns:masking view details – dict
    +
    +
    Parameters
    +

    masking_view_name – the masking view name – str

    +
    +
    Returns
    +

    masking view details – dict

    +
    +
    -get_masking_view_connections(masking_view_id, filters=None)[source]
    +get_masking_view_connections(masking_view_id, filters=None)[source]

    Get all connection information for a given masking view.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_id – masking view id – str
    • -
    • filters – optional filter parameters – dict
    • +
      +
      Parameters
      +
        +
      • masking_view_id – masking view id – str

      • +
      • filters – optional filter parameters – dict

      -
    Returns:

    masking view connection dicts – list

    -
    +
    +
    Returns
    +

    masking view connection dicts – list

    +
    +
    -get_masking_view_from_storage_group(storage_group)[source]
    +get_masking_view_from_storage_group(storage_group)[source]

    Get the associated masking views from a given storage group.

    - --- - - - - - -
    Parameters:storage_group – name of the storage group – str
    Returns:Masking views – list
    +
    +
    Parameters
    +

    storage_group – name of the storage group – str

    +
    +
    Returns
    +

    Masking views – list

    +
    +
    -get_masking_view_list(filters=None)[source]
    +get_masking_view_list(filters=None)[source]

    Get a masking view or list of masking views.

    See unisphere documentation for possible filters.

    - --- - - - - - -
    Parameters:filters – filters – dict
    Returns:masking views – list
    +
    +
    Parameters
    +

    filters – filters – dict

    +
    +
    Returns
    +

    masking views – list

    +
    +
    -get_masking_views_by_host(**kwargs)
    +get_masking_views_by_host(**kwargs)
    -get_masking_views_by_initiator_group(initiator_group_name)[source]
    +get_masking_views_by_initiator_group(initiator_group_name)[source]

    Given a host (initiator group), retrieve the masking view name.

    Retrieve the list of masking views associated with the given initiator group.

    - --- - - - - - -
    Parameters:initiator_group_name – name of the initiator group – str
    Returns:masking view names – list
    +
    +
    Parameters
    +

    initiator_group_name – name of the initiator group – str

    +
    +
    Returns
    +

    masking view names – list

    +
    +
    -get_masking_views_from_host(host_id)[source]
    +get_masking_views_from_host(host_id)[source]

    Retrieve masking view information for a specified host.

    - --- - - - - - -
    Parameters:host_id – name of the host – str
    Returns:masking views – list
    +
    +
    Parameters
    +

    host_id – name of the host – str

    +
    +
    Returns
    +

    masking views – list

    +
    +
    -get_masking_views_from_storage_group(storagegroup)[source]
    +get_masking_views_from_storage_group(storagegroup)[source]

    Return any masking views associated with a storage group.

    - --- - - - - - -
    Parameters:storagegroup – storage group name – str
    Returns:masking view list – list
    +
    +
    Parameters
    +

    storagegroup – storage group name – str

    +
    +
    Returns
    +

    masking view list – list

    +
    +
    -get_maskingview_connections(**kwargs)
    +get_maskingview_connections(**kwargs)
    -get_mv_from_sg(**kwargs)
    +get_mv_from_sg(**kwargs)
    -get_mvs_from_host(**kwargs)
    +get_mvs_from_host(**kwargs)
    -get_num_vols_in_sg(**kwargs)
    +get_num_vols_in_sg(**kwargs)
    -get_num_vols_in_storage_group(storage_group_name)[source]
    +get_num_vols_in_storage_group(storage_group_name)[source]

    Get the number of volumes in a storage group.

    - --- - - - - - -
    Parameters:storage_group_name – storage group name – str
    Returns:number of volumes – int
    +
    +
    Parameters
    +

    storage_group_name – storage group name – str

    +
    +
    Returns
    +

    number of volumes – int

    +
    +
    -get_port_group(port_group_id)[source]
    +get_port_group(port_group_id)[source]

    Get port group details.

    - --- - - - - - -
    Parameters:port_group_id – name of the portgroup – str
    Returns:port group details – dict
    +
    +
    Parameters
    +

    port_group_id – name of the portgroup – str

    +
    +
    Returns
    +

    port group details – dict

    +
    +
    -get_port_group_common_masking_views(port_group_name, initiator_group_name)[source]
    +get_port_group_common_masking_views(port_group_name, initiator_group_name)[source]

    Get common masking views for a given port group and initiator group.

    - --- - - - - - -
    Parameters:
      -
    • port_group_name – port group name – str
    • -
    • initiator_group_name – initiator group name – str
    • +
      +
      Parameters
      +
        +
      • port_group_name – port group name – str

      • +
      • initiator_group_name – initiator group name – str

      -
    Returns:

    masking views - list

    -
    +
    +
    Returns
    +

    masking views - list

    +
    +
    -get_port_group_from_masking_view(masking_view_id)[source]
    +get_port_group_from_masking_view(masking_view_id)[source]

    Given a masking view, get the associated port group.

    - --- - - - - - -
    Parameters:masking_view_id – masking view name – str
    Returns:name of the port group – str
    +
    +
    Parameters
    +

    masking_view_id – masking view name – str

    +
    +
    Returns
    +

    name of the port group – str

    +
    +
    -get_port_group_list(filters=None)[source]
    +get_port_group_list(filters=None)[source]

    Get port group details.

    - --- - - - - - -
    Parameters:filters – optional filters – dict
    Returns:port groups – list
    +
    +
    Parameters
    +

    filters – optional filters – dict

    +
    +
    Returns
    +

    port groups – list

    +
    +
    -get_port_identifier(director, port_no)[source]
    +get_port_identifier(director, port_no)[source]

    Get the identifier (wwn) of the physical port.

    - --- - - - - - -
    Parameters:
      -
    • director – the id of the director – str
    • -
    • port_no – the number of the port – str
    • +
      +
      Parameters
      +
        +
      • director – the id of the director – str

      • +
      • port_no – the number of the port – str

      -
    Returns:

    wwn (FC) or iqn (iscsi) – str or None

    -
    +
    +
    Returns
    +

    wwn (FC) or iqn (iscsi) – str or None

    +
    +
    -get_port_list(filters=None)[source]
    +get_port_list(filters=None)[source]

    Query for a list of Symmetrix port keys.

    Note a mixture of Front end, back end and RDF port specific values are not allowed. See UniSphere documentation for possible values.

    - --- - - - - - -
    Parameters:filters – optional filters e.g. {‘vnx_attached’: ‘true’} – dict
    Returns:port key dicts – list
    +
    +
    Parameters
    +

    filters – optional filters e.g. {‘vnx_attached’: ‘true’} – dict

    +
    +
    Returns
    +

    port key dicts – list

    +
    +
    -get_portgroup(**kwargs)
    +get_portgroup(**kwargs)
    -get_portgroup_from_maskingview(**kwargs)
    +get_portgroup_from_maskingview(**kwargs)
    -get_portgroup_list(**kwargs)
    +get_portgroup_list(**kwargs)
    -get_ports_from_pg(**kwargs)
    +get_ports_from_pg(**kwargs)
    -get_ports_from_port_group(port_group)[source]
    +get_ports_from_port_group(port_group)[source]

    Get a list of port identifiers from a port group.

    - --- - - - - - -
    Parameters:port_group – name of the portgroup – list
    Returns:port ids – list
    +
    +
    Parameters
    +

    port_group – name of the portgroup – list

    +
    +
    Returns
    +

    port ids – list

    +
    +
    -get_service_level(service_level_id)[source]
    +get_service_level(service_level_id)[source]

    Get details on a specific service level.

    - --- - - - - - -
    Parameters:service_level_id – service level agreement – str
    Returns:service level details – dict
    +
    +
    Parameters
    +

    service_level_id – service level agreement – str

    +
    +
    Returns
    +

    service level details – dict

    +
    +
    -get_service_level_list(filters=None)[source]
    +get_service_level_list(filters=None)[source]

    Retrieve the list of service levels from the array.

    - --- - - - - - -
    Parameters:filters – optional filters – dict
    Returns:service level names – list
    +
    +
    Parameters
    +

    filters – optional filters – dict

    +
    +
    Returns
    +

    service level names – list

    +
    +
    -get_size_of_device_on_array(device_id)[source]
    +get_size_of_device_on_array(device_id)[source]

    Get the size of the volume from the array.

    - --- - - - - - -
    Parameters:device_id – device id – str
    Returns:size – float
    +
    +
    Parameters
    +

    device_id – device id – str

    +
    +
    Returns
    +

    size – float

    +
    +
    -get_slo(**kwargs)
    +get_slo(**kwargs)
    -get_slo_list(**kwargs)
    +get_slo_list(**kwargs)
    -get_srp(srp)[source]
    +get_srp(srp)[source]

    Get details on a specific SRP.

    - --- - - - - - -
    Parameters:srp – storage resource pool id – str
    Returns:srp details – dict
    +
    +
    Parameters
    +

    srp – storage resource pool id – str

    +
    +
    Returns
    +

    srp details – dict

    +
    +
    -get_srp_list(filters=None)[source]
    +get_srp_list(filters=None)[source]

    Get a list of available SRPs on a given array.

    - --- - - - - - -
    Parameters:filters – filter parameters – dict
    Returns:SRPs – list
    +
    +
    Parameters
    +

    filters – filter parameters – dict

    +
    +
    Returns
    +

    SRPs – list

    +
    +
    -get_storage_group(storage_group_name)[source]
    +get_storage_group(storage_group_name)[source]

    Given a name, return storage group details.

    - --- - - - - - -
    Parameters:storage_group_name – name of the storage group – str
    Returns:storage group details – dict
    +
    +
    Parameters
    +

    storage_group_name – name of the storage group – str

    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -get_storage_group_demand_report(srp_id=None)[source]
    +get_storage_group_demand_report(srp_id=None)[source]

    Get the storage group demand report.

    Get the storage group demand report from Unisphere.

    - --- - - - - - -
    Parameters:srp_id – id of the Storage Resource Pool – str
    Returns:demand report – dict
    +
    +
    Parameters
    +

    srp_id – id of the Storage Resource Pool – str

    +
    +
    Returns
    +

    demand report – dict

    +
    +
    -get_storage_group_from_masking_view(masking_view_id)[source]
    +get_storage_group_from_masking_view(masking_view_id)[source]

    Given a masking view, get the associated storage group.

    - --- - - - - - -
    Parameters:masking_view_id – masking view name – str
    Returns:name of the storage group – str
    +
    +
    Parameters
    +

    masking_view_id – masking view name – str

    +
    +
    Returns
    +

    name of the storage group – str

    +
    +
    -get_storage_group_from_volume(volume_id)[source]
    +get_storage_group_from_volume(volume_id)[source]

    Retrieve storage group information for a specified volume.

    - --- - - - - - -
    Parameters:volume_id – device id – str
    Returns:storage groups – list
    +
    +
    Parameters
    +

    volume_id – device id – str

    +
    +
    Returns
    +

    storage groups – list

    +
    +
    -get_storage_group_list(filters=None)[source]
    +get_storage_group_list(filters=None)[source]

    Return a list of storage groups.

    - --- - - - - - -
    Parameters:filters – filter parameters – dict
    Returns:storage groups – list
    +
    +
    Parameters
    +

    filters – filter parameters – dict

    +
    +
    Returns
    +

    storage groups – list

    +
    +
    -get_storagegroup_from_maskingview(**kwargs)
    +get_storagegroup_from_maskingview(**kwargs)
    -get_storagegroup_from_vol(**kwargs)
    +get_storagegroup_from_vol(**kwargs)
    -get_target_wwns_from_pg(**kwargs)
    +get_target_wwns_from_pg(**kwargs)
    -get_target_wwns_from_port_group(port_group_id)[source]
    +get_target_wwns_from_port_group(port_group_id)[source]

    Get the director ports’ WWNs.

    - --- - - - - - -
    Parameters:port_group_id – the name of the port group – str
    Returns:target_wwns – target wwns for the port group – list
    +
    +
    Parameters
    +

    port_group_id – the name of the port group – str

    +
    +
    Returns
    +

    target_wwns – target wwns for the port group – list

    +
    +
    -get_vol_effective_wwn_details_84(**kwargs)
    +get_vol_effective_wwn_details_84(**kwargs)
    -get_vols_from_storagegroup(**kwargs)
    +get_vols_from_storagegroup(**kwargs)
    -get_volume(device_id)[source]
    +get_volume(device_id)[source]

    Get a volume from array.

    - --- - - - - - -
    Parameters:device_id – device id – str
    Returns:volume details – dict
    +
    +
    Parameters
    +

    device_id – device id – str

    +
    +
    Returns
    +

    volume details – dict

    +
    +
    -get_volume_effective_wwn_details(vol_list, output_file_name=None)[source]
    +get_volume_effective_wwn_details(vol_list, output_file_name=None)[source]

    Get the effective wwn for a list of vols.

    Get volume details for a list of volume device ids.

    - --- - - - - - -
    Parameters:
      -
    • vol_list – device id(s) – list
    • -
    • output_file_name – name of the output file – str
    • +
      +
      Parameters
      +
        +
      • vol_list – device id(s) – list

      • +
      • output_file_name – name of the output file – str

      -
    Returns:

    volume details list (nested) – list

    -
    +
    +
    Returns
    +

    volume details list (nested) – list

    +
    +
    -get_volume_list(filters=None)[source]
    +get_volume_list(filters=None)[source]

    Get list of volumes from array.

    - --- - - - - - -
    Parameters:filters – filters parameters – dict
    Returns:device ids – list
    +
    +
    Parameters
    +

    filters – filters parameters – dict

    +
    +
    Returns
    +

    device ids – list

    +
    +
    -get_volumes_from_storage_group(storage_group_id)[source]
    +get_volumes_from_storage_group(storage_group_id)[source]

    Retrieve volume information associated with a given storage group.

    - --- - - - - - -
    Parameters:storage_group_id – storage group id – name
    Returns:device ids – list
    +
    +
    Parameters
    +

    storage_group_id – storage group id – name

    +
    +
    Returns
    +

    device ids – list

    +
    +
    -get_workload_settings()[source]
    +get_workload_settings()[source]

    Get valid workload options from array.

    - --- - - - -
    Returns:workload settings – list
    +
    +
    Returns
    +

    workload settings – list

    +
    +
    -is_child_sg_in_parent_sg(**kwargs)
    +is_child_sg_in_parent_sg(**kwargs)
    -is_child_storage_group_in_parent_storage_group(child_name, parent_name)[source]
    +is_child_storage_group_in_parent_storage_group(child_name, parent_name)[source]

    Check if a child storage group is a member of a parent group.

    - --- - - - - - -
    Parameters:
      -
    • child_name – child sg name – str
    • -
    • parent_name – parent sg name – str
    • +
      +
      Parameters
      +
        +
      • child_name – child sg name – str

      • +
      • parent_name – parent sg name – str

      -
    Returns:

    bool

    -
    +
    +
    Returns
    +

    bool

    +
    +
    -is_compression_capable()[source]
    +is_compression_capable()[source]

    Check if array is compression capable.

    - --- - - - -
    Returns:bool
    +
    +
    Returns
    +

    bool

    +
    +
    -is_initiator_in_host(initiator)[source]
    +is_initiator_in_host(initiator)[source]

    Check to see if a given initiator is already assigned to a host.

    - --- - - - - - -
    Parameters:initiator – the initiator ID – str
    Returns:if initiator is assigned – bool
    +
    +
    Parameters
    +

    initiator – the initiator ID – str

    +
    +
    Returns
    +

    if initiator is assigned – bool

    +
    +
    -is_volume_in_storage_group(device_id, storage_group_id)[source]
    +is_volume_in_storage_group(device_id, storage_group_id)[source]

    See if a volume is a member of the given storage group.

    - --- - - - - - -
    Parameters:
      -
    • device_id – device id – str
    • -
    • storage_group_id – storage group id – name
    • +
      +
      Parameters
      +
        +
      • device_id – device id – str

      • +
      • storage_group_id – storage group id – name

      -
    Returns:

    bool

    -
    +
    +
    Returns
    +

    bool

    +
    +
    -is_volume_in_storagegroup(**kwargs)
    +is_volume_in_storagegroup(**kwargs)
    -modify_host(host_id, host_flag_dict=None, remove_init_list=None, add_init_list=None, new_name=None)[source]
    +modify_host(host_id, host_flag_dict=None, remove_init_list=None, add_init_list=None, new_name=None)[source]

    Modify an existing host.

    Only one parameter can be modified at a time.

    - --- - - - - - -
    Parameters:
      -
    • host_id – host name – str
    • -
    • host_flag_dict – host flags – dict
    • -
    • remove_init_list – initiators to be removed – list
    • -
    • add_init_list – initiators to be added – list
    • -
    • new_name – new host name – str
    • -
    -
    Returns:

    modified host details – dict

    -
    +
    +
    Parameters
    +
      +
    • host_id – host name – str

    • +
    • host_flag_dict – host flags – dict

    • +
    • remove_init_list – initiators to be removed – list

    • +
    • add_init_list – initiators to be added – list

    • +
    • new_name – new host name – str

    • +
    +
    +
    Returns
    +

    modified host details – dict

    +
    +
    -modify_host_group(host_group_id, host_flag_dict=None, remove_host_list=None, add_host_list=None, new_name=None)[source]
    +modify_host_group(host_group_id, host_flag_dict=None, remove_host_list=None, add_host_list=None, new_name=None)[source]

    Modify an existing host group.

    Only one parameter can be modified at a time.

    - --- - - - - - -
    Parameters:
      -
    • host_group_id – name of the host group – str
    • -
    • host_flag_dict – host flags – dict
    • -
    • remove_host_list – hosts to be removed – list
    • -
    • add_host_list – hosts to be added – list
    • -
    • new_name – new name of the host group – str
    • -
    -
    Returns:

    modified host group details – dict

    -
    +
    +
    Parameters
    +
      +
    • host_group_id – name of the host group – str

    • +
    • host_flag_dict – host flags – dict

    • +
    • remove_host_list – hosts to be removed – list

    • +
    • add_host_list – hosts to be added – list

    • +
    • new_name – new name of the host group – str

    • +
    +
    +
    Returns
    +

    modified host group details – dict

    +
    +
    -modify_hostgroup(**kwargs)
    +modify_hostgroup(**kwargs)
    -modify_initiator(initiator_id, remove_masking_entry=None, replace_init=None, rename_alias=None, set_fcid=None, initiator_flags=None)[source]
    +modify_initiator(initiator_id, remove_masking_entry=None, replace_init=None, rename_alias=None, set_fcid=None, initiator_flags=None)[source]

    Modify an initiator.

    Only one parameter can be edited at a time.

    - --- - - - - - -
    Parameters:
      -
    • initiator_id – initiator id – str
    • -
    • remove_masking_entry – ‘true’ or ‘false’ – str
    • -
    • replace_init – new initiator id – str
    • -
    • rename_alias – (‘new node name’, ‘new port name’) – tuple
    • -
    • set_fcid – fcid – str
    • -
    • initiator_flags – initiator flags to set – dict
    • -
    -
    Returns:

    modified initiator details – dict

    -
    +
    +
    Parameters
    +
      +
    • initiator_id – initiator id – str

    • +
    • remove_masking_entry – ‘true’ or ‘false’ – str

    • +
    • replace_init – new initiator id – str

    • +
    • rename_alias – (‘new node name’, ‘new port name’) – tuple

    • +
    • set_fcid – fcid – str

    • +
    • initiator_flags – initiator flags to set – dict

    • +
    +
    +
    Returns
    +

    modified initiator details – dict

    +
    +
    -modify_port_group(port_group_id, remove_port=None, add_port=None, rename_port_group=None)[source]
    +modify_port_group(port_group_id, remove_port=None, add_port=None, rename_port_group=None)[source]

    Modify an existing port group.

    Only one parameter can be modified at a time.

    - --- - - - - - -
    Parameters:
      -
    • port_group_id – name of the port group – str
    • -
    • remove_port – port details (director_id, port_id) – tuple
    • -
    • add_port – port details (director_id, port_id) – tuple
    • -
    • rename_port_group – new port group name – str
    • -
    -
    Returns:

    modified port group details – dict

    -
    +
    +
    Parameters
    +
      +
    • port_group_id – name of the port group – str

    • +
    • remove_port – port details (director_id, port_id) – tuple

    • +
    • add_port – port details (director_id, port_id) – tuple

    • +
    • rename_port_group – new port group name – str

    • +
    +
    +
    Returns
    +

    modified port group details – dict

    +
    +
    -modify_portgroup(**kwargs)
    +modify_portgroup(**kwargs)
    -modify_service_level(service_level_id, new_name)[source]
    +modify_service_level(service_level_id, new_name)[source]

    Modify an SLO.

    Currently, the only modification permitted is renaming.

    - --- - - - - - -
    Parameters:
      -
    • service_level_id – current name of the service level – str
    • -
    • new_name – new name for the – str
    • +
      +
      Parameters
      +
        +
      • service_level_id – current name of the service level – str

      • +
      • new_name – new name for the – str

      -
    Returns:

    modified service level details – dict

    -
    +
    +
    Returns
    +

    modified service level details – dict

    +
    +
    -modify_slo(**kwargs)
    +modify_slo(**kwargs)
    -modify_storage_group(storage_group_id, payload)[source]
    +modify_storage_group(storage_group_id, payload)[source]

    Modify a storage group.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • payload – request payload – dict
    • +
      +
      Parameters
      +
        +
      • storage_group_id – storage group id – str

      • +
      • payload – request payload – dict

      -
    Returns:

    modified storage group details – dict

    -
    +
    +
    Returns
    +

    modified storage group details – dict

    +
    +
    -move_volumes_between_storage_groups(device_ids, source_storagegroup_name, target_storagegroup_name, force=False, _async=False)[source]
    +move_volumes_between_storage_groups(device_ids, source_storagegroup_name, target_storagegroup_name, force=False, _async=False)[source]

    Move volumes to a different storage group.

    Requires force set to True if volume is in a masking view.

    - --- - - - - - -
    Parameters:
      -
    • device_ids – volume device id(s) – str or list
    • -
    • source_storagegroup_name – originating storage group name – str
    • -
    • target_storagegroup_name – destination storage group name – str
    • -
    • force – force flag – bool
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group details – dict

    -
    +
    +
    Parameters
    +
      +
    • device_ids – volume device id(s) – str or list

    • +
    • source_storagegroup_name – originating storage group name – str

    • +
    • target_storagegroup_name – destination storage group name – str

    • +
    • force – force flag – bool

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -remove_child_sg_from_parent_sg(**kwargs)
    +remove_child_sg_from_parent_sg(**kwargs)
    -remove_child_storage_group_from_parent_group(child_storage_group, parent_storage_group)[source]
    +remove_child_storage_group_from_parent_group(child_storage_group, parent_storage_group)[source]

    Remove a storage group from its parent storage group.

    This method removes a child storage group from its parent group.

    - --- - - - - - -
    Parameters:
      -
    • child_storage_group – child storage group id – str
    • -
    • parent_storage_group – parent storage group id – str
    • +
      +
      Parameters
      +
        +
      • child_storage_group – child storage group id – str

      • +
      • parent_storage_group – parent storage group id – str

      -
    Returns:

    storage group details – dict

    -
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -remove_vol_from_storagegroup(**kwargs)
    +remove_vol_from_storagegroup(**kwargs)
    -remove_volume_from_storage_group(storage_group_id, vol_id, _async=False)[source]
    +remove_volume_from_storage_group(storage_group_id, vol_id, _async=False, remote_array_1_id=None, remote_array_1_sgs=None, remote_array_2_id=None, remote_array_2_sgs=None)[source]

    Remove a volume from a given storage group.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • vol_id – device id – str
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • vol_id – device id – str

    • +
    • _async – if call should be async – bool

    • +
    • remote_array_1_id – 12 digit serial number of remote array, +optional – str

    • +
    • remote_array_1_sgs – list of storage groups on remote array to +add Remote device, Unisphere instance must be local to R1 +storage group otherwise volumes will only be added to the +local group – str or list

    • +
    • remote_array2_id – optional digit serial number of remote array, +only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional +– str

    • +
    • remote_array2_sgs – storage groups on remote array, optional +– str or list

    • +
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -rename_masking_view(masking_view_id, new_name)[source]
    +rename_masking_view(masking_view_id, new_name)[source]

    Rename an existing masking view.

    Currently, the only supported modification is “rename”.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_id – current name of the masking view – str
    • -
    • new_name – new name of the masking view – str
    • +
      +
      Parameters
      +
        +
      • masking_view_id – current name of the masking view – str

      • +
      • new_name – new name of the masking view – str

      -
    Returns:

    modified masking view details – dict

    -
    +
    +
    Returns
    +

    modified masking view details – dict

    +
    +
    -rename_volume(device_id, new_name)[source]
    +rename_volume(device_id, new_name)[source]

    Rename a volume.

    - --- - - - -
    Parameters:
      -
    • device_id – device id – str
    • -
    • new_name – new name for the volume – str
    • +
      +
      Parameters
      +
        +
      • device_id – device id – str

      • +
      • new_name – new name for the volume – str

      -
    +
    +
    -set_host_io_limit_iops_or_mbps(storage_group, iops, dynamic_distribution, mbps=None)[source]
    +set_host_io_limit_iops_or_mbps(storage_group, iops, dynamic_distribution, mbps=None)[source]

    Set the Host IO Limits on an existing storage group.

    - --- - - - - - -
    Parameters:
      -
    • storage_group – storage group id – str
    • -
    • iops – IO per second, min Value 100, must be specified as -multiple of 100 – int
    • -
    • dynamic_distribution – ‘Always’, ‘Never’, ‘OnFailure’ – str
    • -
    • mbps – MB per second, min Value 100, must be specified as -multiple of 100 – int
    • -
    -
    Returns:

    storage group details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group – storage group id – str

    • +
    • iops – IO per second, min Value 100, must be specified as +multiple of 100 – int

    • +
    • dynamic_distribution – ‘Always’, ‘Never’, ‘OnFailure’ – str

    • +
    • mbps – MB per second, min Value 100, must be specified as +multiple of 100 – int

    • +
    +
    +
    Returns
    +

    storage group details – dict

    +
    +
    -update_storage_group_qos(storage_group_id, qos_specs)[source]
    +update_storage_group_qos(storage_group_id, qos_specs)[source]

    Update the storage group instance with QoS details.

    If maxIOPS or maxMBPS is in qos_specs, then DistributionType can be modified in addition to maxIOPs or/and maxMBPS. @@ -5353,26 +4660,22 @@

    PyU4V.univmax_conn - - - -Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • qos_specs – qos specifications – dict
    • +
      +
      Parameters
      +
        +
      • storage_group_id – storage group id – str

      • +
      • qos_specs – qos specifications – dict

      - - -Returns:

      storage group details – dict

      - - - - +
      +
      Returns
      +

      storage group details – dict

      +
      +

    -update_storagegroup_qos(**kwargs)
    +update_storagegroup_qos(**kwargs)
    @@ -5383,767 +4686,660 @@

    PyU4V.univmax_conn
    -class PyU4V.replication.ReplicationFunctions(array_id, rest_client)[source]
    +class PyU4V.replication.ReplicationFunctions(array_id, rest_client)[source]

    Bases: object

    ReplicationFunctions.

    -are_vols_rdf_paired(**kwargs)
    +are_vols_rdf_paired(**kwargs)
    -are_volumes_rdf_paired(remote_array, device_id, target_device, rdf_group)[source]
    +are_volumes_rdf_paired(remote_array, device_id, target_device, rdf_group)[source]

    Check if a pair of volumes are RDF paired.

    - --- - - - - - -
    Parameters:
      -
    • remote_array – remote array serial number – str
    • -
    • device_id – device id – str
    • -
    • target_device – target device id – str
    • -
    • rdf_group – rdf group number – int
    • -
    -
    Returns:

    paired, state – bool, string

    -
    +
    +
    Parameters
    +
      +
    • remote_array – remote array serial number – str

    • +
    • device_id – device id – str

    • +
    • target_device – target device id – str

    • +
    • rdf_group – rdf group number – int

    • +
    +
    +
    Returns
    +

    paired, state – bool, string

    +
    +
    -choose_snapshot_from_list_in_console(**kwargs)
    +choose_snapshot_from_list_in_console(**kwargs)
    -create_storage_group_snapshot(storage_group_id, snap_name, ttl=None, hours=False)[source]
    +create_storage_group_snapshot(storage_group_id, snap_name, ttl=None, hours=False, secure=False)[source]

    Create a snapVx snapshot of a storage group.

    To establish a new generation of an existing SnapVX snapshot for a source SG, use the same name as the existing snapshot for the new snapshot.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – source storage group id – str
    • -
    • snap_name – snapshot name – str
    • -
    • ttl – Time To Live – str
    • -
    • hours – if TTL is in hours instead of days – bool
    • -
    -
    Returns:

    snapshot details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – source storage group id – str

    • +
    • snap_name – snapshot name – str

    • +
    • ttl – Time To Live – str

    • +
    • hours – if TTL is in hours instead of days – bool

    • +
    • secure – sets secure snapshot, snapshot created with secure +option can not be deleted before ttl expires – bool

    • +
    +
    +
    Returns
    +

    snapshot details – dict

    +
    +
    -create_storage_group_srdf_pairings(storage_group_id, remote_sid, srdf_mode, establish=None, _async=False, rdfg_number=None, force_new_rdf_group=False)[source]
    +create_storage_group_srdf_pairings(storage_group_id, remote_sid, srdf_mode, establish=None, _async=False, rdfg_number=None, force_new_rdf_group=False)[source]

    SRDF protect a storage group.

    Valid modes are ‘Active’, ‘AdaptiveCopyDisk’, ‘Synchronous’, and ‘Asynchronous’.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • remote_sid – remote array id – str
    • -
    • srdf_mode – replication mode – str
    • -
    • establish – establish srdf – bool
    • -
    • _async – if call should be async – bool
    • -
    • rdfg_number – rdf group number – int
    • -
    • force_new_rdf_group – if force command should be applied – bool
    • -
    -
    Returns:

    storage group rdf details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • remote_sid – remote array id – str

    • +
    • srdf_mode – replication mode – str

    • +
    • establish – establish srdf – bool

    • +
    • _async – if call should be async – bool

    • +
    • rdfg_number – rdf group number – int

    • +
    • force_new_rdf_group – if force command should be applied – bool

    • +
    +
    +
    Returns
    +

    storage group rdf details – dict

    +
    +
    -create_storagegroup_snap(**kwargs)
    +create_storagegroup_snap(**kwargs)
    -create_storagegroup_srdf_pairings(**kwargs)
    +create_storagegroup_srdf_pairings(**kwargs)
    -delete_storage_group_snapshot(storage_group_id, snap_name, gen=0)[source]
    +delete_storage_group_snapshot(storage_group_id, snap_name, gen=0)[source]

    Delete the snapshot of a storage group.

    - --- - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • snap_name – snapshot name – str
    • -
    • gen – snapshot generation number – int
    • +
      +
      Parameters
      +
        +
      • storage_group_id – storage group id – str

      • +
      • snap_name – snapshot name – str

      • +
      • gen – snapshot generation number – int

      -
    +
    +
    -delete_storage_group_srdf(storage_group_id, srdf_group_number=None)[source]
    +delete_storage_group_srdf(storage_group_id, srdf_group_number=None)[source]

    Delete srdf pairings for a given storage group.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • srdf_group_number – srdf group number – int
    • +
      +
      Parameters
      +
        +
      • storage_group_id – storage group id – str

      • +
      • srdf_group_number – srdf group number – int

      -
    Returns:

    storage group rdf details – dict

    -
    +
    +
    Returns
    +

    storage group rdf details – dict

    +
    +
    -delete_storagegroup_snapshot(**kwargs)
    +delete_storagegroup_snapshot(**kwargs)
    -delete_storagegroup_srdf(**kwargs)
    +delete_storagegroup_srdf(**kwargs)
    -establish_storage_group_srdf(storage_group_id, srdf_group_number, establish_options=None, _async=False)[source]
    +establish_storage_group_srdf(storage_group_id, srdf_group_number, establish_options=None, _async=False)[source]

    Establish io on the links for the given storage group.

    Optional boolean parameters to set are ‘bypass’, ‘metroBias’, ‘star’, ‘hop2’, ‘force’, ‘symForce’, ‘full’.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • srdf_group_number – srdf group number – int
    • -
    • establish_options – establish parameters – dict
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group rdf details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • srdf_group_number – srdf group number – int

    • +
    • establish_options – establish parameters – dict

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    storage group rdf details – dict

    +
    +
    -establish_storagegroup_srdf(**kwargs)
    +establish_storagegroup_srdf(**kwargs)
    -failback_storage_group_srdf(storage_group_id, srdf_group_number, failback_options=None, _async=False)[source]
    +failback_storage_group_srdf(storage_group_id, srdf_group_number, failback_options=None, _async=False)[source]

    Failback a given storage group.

    Optional boolean parameters to set are ‘bypass’, ‘recoverPoint’, ‘star’, ‘hop2’, ‘force’, ‘symForce’, ‘remote’.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • srdf_group_number – srdf group number – int
    • -
    • failback_options – failback parameters – dict
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group rdf details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • srdf_group_number – srdf group number – int

    • +
    • failback_options – failback parameters – dict

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    storage group rdf details – dict

    +
    +
    -failback_storagegroup_srdf(**kwargs)
    +failback_storagegroup_srdf(**kwargs)
    -failover_storage_group_srdf(storage_group_id, srdf_group_number, failover_options=None, _async=False)[source]
    +failover_storage_group_srdf(storage_group_id, srdf_group_number, failover_options=None, _async=False)[source]

    Failover a given storage group.

    Optional boolean parameters to set are ‘bypass’, ‘star’, ‘restore’, ‘immediate’, ‘hop2’, ‘force’, ‘symForce’, ‘remote’, ‘establish’.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • srdf_group_number – srdf group number – int
    • -
    • failover_options – failover parameters – dict
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group rdf details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • srdf_group_number – srdf group number – int

    • +
    • failover_options – failover parameters – dict

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    storage group rdf details – dict

    +
    +
    -failover_storagegroup_srdf(**kwargs)
    +failover_storagegroup_srdf(**kwargs)
    -find_expired_snapvx_snapshots()[source]
    +find_expired_snapvx_snapshots()[source]

    Find all expired snapvx snapshots.

    Parses through all Snapshots for array and lists those that have snapshots where the expiration date has passed however snapshots have not been deleted as they have links.

    - --- - - - -
    Returns:expired snapshot details – list
    +
    +
    Returns
    +

    expired snapshot details – list

    +
    +
    -get_array_replication_capabilities()[source]
    +get_array_replication_capabilities()[source]

    Check what replication facilities are available.

    - --- - - - -
    Returns:replication capability details – dict
    +
    +
    Returns
    +

    replication capability details – dict

    +
    +
    -get_rdf_group(rdf_number)[source]
    +get_rdf_group(rdf_number)[source]

    Get specific rdf group details.

    - --- - - - - - -
    Parameters:rdf_number – rdf group number – int
    Returns:rdf group details – dict
    +
    +
    Parameters
    +

    rdf_number – rdf group number – int

    +
    +
    Returns
    +

    rdf group details – dict

    +
    +
    -get_rdf_group_list()[source]
    +get_rdf_group_list()[source]

    Get rdf group list from array.

    - --- - - - -
    Returns:rdf group list – list
    +
    +
    Returns
    +

    rdf group list – list

    +
    +
    -get_rdf_group_number(rdf_group_label)[source]
    +get_rdf_group_number(rdf_group_label)[source]

    Given a group label, return the associated group number.

    - --- - - - - - -
    Parameters:rdf_group_label – rdf group label – str
    Returns:rdf group number – int
    +
    +
    Parameters
    +

    rdf_group_label – rdf group label – str

    +
    +
    Returns
    +

    rdf group number – int

    +
    +
    -get_rdf_group_volume(rdf_number, device_id)[source]
    +get_rdf_group_volume(rdf_number, device_id)[source]

    Get specific volume details, from an RDF group.

    - --- - - - - - -
    Parameters:
      -
    • rdf_number – rdf group number – int
    • -
    • device_id – device id – str
    • +
      +
      Parameters
      +
        +
      • rdf_number – rdf group number – int

      • +
      • device_id – device id – str

      -
    Returns:

    rdf group volume details – dict

    -
    +
    +
    Returns
    +

    rdf group volume details – dict

    +
    +
    -get_rdf_group_volume_list(rdf_number)[source]
    +get_rdf_group_volume_list(rdf_number)[source]

    Get specific volume details, from an RDF group.

    - --- - - - - - -
    Parameters:rdf_number – rdf group number – int
    Returns:device ids – list
    +
    +
    Parameters
    +

    rdf_number – rdf group number – int

    +
    +
    Returns
    +

    device ids – list

    +
    +
    -get_replication_enabled_storage_groups(has_snapshots=False, has_srdf=False)[source]
    +get_replication_enabled_storage_groups(has_snapshots=False, has_srdf=False)[source]

    Return list of storage groups with replication.

    - --- - - - - - -
    Parameters:
      -
    • has_snapshots – return only storage groups with snapshots
    • -
    • has_srdf – return only storage groups with SRDF
    • +
      +
      Parameters
      +
        +
      • has_snapshots – return only storage groups with snapshots

      • +
      • has_srdf – return only storage groups with SRDF

      -
    Returns:

    list of storage groups with associated replication

    -
    +
    +
    Returns
    +

    list of storage groups with associated replication

    +
    +
    -get_replication_info()[source]
    +get_replication_info()[source]

    Return replication information for an array.

    - --- - - - -
    Returns:replication details – dict
    +
    +
    Returns
    +

    replication details – dict

    +
    +
    -get_snapshot_generation_details(sg_id, snap_name, gen_num)[source]
    +get_snapshot_generation_details(sg_id, snap_name, gen_num)[source]

    Get the details for a particular snapshot generation.

    - --- - - - - - -
    Parameters:
      -
    • sg_id – storage group id – str
    • -
    • snap_name – snapshot name – str
    • -
    • gen_num – generation number – int
    • +
      +
      Parameters
      +
        +
      • sg_id – storage group id – str

      • +
      • snap_name – snapshot name – str

      • +
      • gen_num – generation number – int

      -
    Returns:

    snapshot generation details – dict

    -
    +
    +
    Returns
    +

    snapshot generation details – dict

    +
    +
    -get_storage_group_rep(**kwargs)
    +get_storage_group_rep(**kwargs)
    -get_storage_group_rep_list(**kwargs)
    +get_storage_group_rep_list(**kwargs)
    -get_storage_group_replication_details(storage_group_id)[source]
    +get_storage_group_replication_details(storage_group_id)[source]

    Given a storage group id, return storage group srdf info.

    - --- - - - - - -
    Parameters:storage_group_id – storage group id – str
    Returns:storage group replication details – dict
    +
    +
    Parameters
    +

    storage_group_id – storage group id – str

    +
    +
    Returns
    +

    storage group replication details – dict

    +
    +
    -get_storage_group_snapshot_generation_list(storage_group_id, snap_name)[source]
    +get_storage_group_snapshot_generation_list(storage_group_id, snap_name)[source]

    Get a snapshot and its generation count information for an sg.

    The most recent snapshot will have a gen number of 0. The oldest snapshot will have a gen number = genCount - 1 (i.e. if there are 4 generations of particular snapshot, the oldest will have a gen num of 3).

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – name of the storage group – str
    • -
    • snap_name – the name of the snapshot – str
    • +
      +
      Parameters
      +
        +
      • storage_group_id – name of the storage group – str

      • +
      • snap_name – the name of the snapshot – str

      -
    Returns:

    generation numbers – list

    -
    +
    +
    Returns
    +

    generation numbers – list

    +
    +
    -get_storage_group_snapshot_list(storage_group_id)[source]
    +get_storage_group_snapshot_list(storage_group_id)[source]

    Get a list of snapshots associated with a storage group.

    - --- - - - - - -
    Parameters:storage_group_id – storage group id – str
    Returns:snapshot ids – list
    +
    +
    Parameters
    +

    storage_group_id – storage group id – str

    +
    +
    Returns
    +

    snapshot ids – list

    +
    +
    -get_storage_group_srdf_details(storage_group_id, rdfg_num)[source]
    +get_storage_group_srdf_details(storage_group_id, rdfg_num)[source]

    Get the details for an rdf group on a particular storage group.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – replicated storage group id – str
    • -
    • rdfg_num – rdf group number – int
    • +
      +
      Parameters
      +
        +
      • storage_group_id – replicated storage group id – str

      • +
      • rdfg_num – rdf group number – int

      -
    Returns:

    storage group rdf details – dict

    -
    +
    +
    Returns
    +

    storage group rdf details – dict

    +
    +
    -get_storage_group_srdf_group_list(storage_group_id)[source]
    +get_storage_group_srdf_group_list(storage_group_id)[source]

    Get the rdf group numbers for a storage group.

    - --- - - - - - -
    Parameters:storage_group_id – replicated storage group id – str
    Returns:rdf group numbers – list
    +
    +
    Parameters
    +

    storage_group_id – replicated storage group id – str

    +
    +
    Returns
    +

    rdf group numbers – list

    +
    +
    -get_storagegroup_snapshot_generation_list(**kwargs)
    +get_storagegroup_snapshot_generation_list(**kwargs)
    -get_storagegroup_snapshot_list(**kwargs)
    +get_storagegroup_snapshot_list(**kwargs)
    -get_storagegroup_srdf_details(**kwargs)
    +get_storagegroup_srdf_details(**kwargs)
    -get_storagegroup_srdfg_list(**kwargs)
    +get_storagegroup_srdfg_list(**kwargs)
    -is_snapvx_licensed()[source]
    +is_snapvx_licensed()[source]

    Check if the snapVx feature is licensed and enabled.

    - --- - - - -
    Returns:bool
    +
    +
    Returns
    +

    bool

    +
    +
    -is_vol_in_rep_session(**kwargs)
    +is_vol_in_rep_session(**kwargs)
    -is_volume_in_replication_session(device_id)[source]
    +is_volume_in_replication_session(device_id)[source]

    Check if a volume is in a replication session.

    - --- - - - - - -
    Parameters:device_id – device id – str
    Returns:snap vx target, snap vx source, rdf group – bool, bool, list
    +
    +
    Parameters
    +

    device_id – device id – str

    +
    +
    Returns
    +

    snap vx target, snap vx source, rdf group – bool, bool, list

    +
    +
    +link_gen_snapshot(sg_id, snap_name, link_sg_name, _async=False, gen_num=0)[source]

    Link a snapshot to another storage group.

    Target storage group will be created if it does not exist.

    - --- - - - - - -
    Parameters:
      -
    • sg_id – storage group id – str
    • -
    • snap_name – snapshot name – str
    • -
    • link_sg_name – target storage group name – str
    • -
    • _async – if call should be async – bool
    • -
    • gen_num – snapshot generation number – int
    • -
    -
    Returns:

    snapshot details – dict

    -
    +
    +
    Parameters
    +
      +
    • sg_id – storage group id – str

    • +
    • snap_name – snapshot name – str

    • +
    • link_sg_name – target storage group name – str

    • +
    • _async – if call should be async – bool

    • +
    • gen_num – snapshot generation number – int

    • +
    +
    +
    Returns
    +

    snapshot details – dict

    +
    +
    -modify_storage_group_snapshot(src_storage_grp_id, tgt_storage_grp_id, snap_name, link=False, unlink=False, restore=False, new_name=None, gen_num=0, _async=False)[source]
    +modify_storage_group_snapshot(src_storage_grp_id, tgt_storage_grp_id, snap_name, link=False, unlink=False, restore=False, new_name=None, gen_num=0, _async=False)[source]

    Modify a storage group snapshot.

    Please note that only one parameter can be modified at a time. Default action is not to create full copy

    - --- - - - - - -
    Parameters:
      -
    • src_storage_grp_id – name of the storage group – str
    • -
    • tgt_storage_grp_id – target sg id (Can be None) – str
    • -
    • snap_name – snapshot name – str
    • -
    • link – link action required – bool
    • -
    • unlink – unlink action required – bool
    • -
    • restore – restore action required – bool
    • -
    • new_name – new name for the snapshot – str
    • -
    • gen_num – generation number – int
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    modified storage group snapshot details – dict

    -
    +
    +
    Parameters
    +
      +
    • src_storage_grp_id – name of the storage group – str

    • +
    • tgt_storage_grp_id – target sg id (Can be None) – str

    • +
    • snap_name – snapshot name – str

    • +
    • link – link action required – bool

    • +
    • unlink – unlink action required – bool

    • +
    • restore – restore action required – bool

    • +
    • new_name – new name for the snapshot – str

    • +
    • gen_num – generation number – int

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    modified storage group snapshot details – dict

    +
    +
    -modify_storage_group_srdf(storage_group_id, action, srdf_group_number, options=None, _async=False)[source]
    +modify_storage_group_srdf(storage_group_id, action, srdf_group_number, options=None, _async=False)[source]

    Modify the state of a rdf group.

    This may be a long running task depending on the size of the SRDF group, can switch to async call if required. Available actions are ‘Establish’, ‘Split’, ‘Suspend’, ‘Restore’, ‘Resume’, ‘Failover’, ‘Failback’, ‘Swap’, ‘SetBias’, and ‘SetMode’.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • action – the rdf action –str
    • -
    • srdf_group_number – srdf group number – int
    • -
    • options – srdf options e.g. -{setMode’: {‘mode’: ‘Asynchronous’}} – dict
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group rdf details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • action – the rdf action –str

    • +
    • srdf_group_number – srdf group number – int

    • +
    • options – srdf options e.g. +{setMode’: {‘mode’: ‘Asynchronous’}} – dict

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    storage group rdf details – dict

    +
    +
    -modify_storagegroup_snap(**kwargs)
    +modify_storagegroup_snap(**kwargs)
    -modify_storagegroup_srdf(**kwargs)
    +modify_storagegroup_srdf(**kwargs)
    -rename_snapshot(sg_id, snap_name, new_name, gen_num=0)[source]
    +rename_snapshot(sg_id, snap_name, new_name, gen_num=0)[source]

    Rename an existing storage group snapshot.

    - --- - - - - - -
    Parameters:
      -
    • sg_id – storage group id – str
    • -
    • snap_name – snapshot name – str
    • -
    • new_name – new snapshot name – str
    • -
    • gen_num – snapshot generation number – int
    • -
    -
    Returns:

    snapshot details – dict

    -
    +
    +
    Parameters
    +
      +
    • sg_id – storage group id – str

    • +
    • snap_name – snapshot name – str

    • +
    • new_name – new snapshot name – str

    • +
    • gen_num – snapshot generation number – int

    • +
    +
    +
    Returns
    +

    snapshot details – dict

    +
    +
    -restore_snapshot(sg_id, snap_name, gen_num=0)[source]
    +restore_snapshot(sg_id, snap_name, gen_num=0)[source]

    Restore a storage group to its snapshot.

    - --- - - - - - -
    Parameters:
      -
    • sg_id – storage group id – str
    • -
    • snap_name – snapshot name – str
    • -
    • gen_num – snapshot generation number – int
    • +
      +
      Parameters
      +
        +
      • sg_id – storage group id – str

      • +
      • snap_name – snapshot name – str

      • +
      • gen_num – snapshot generation number – int

      -
    Returns:

    snapshot details – dict

    -
    +
    +
    Returns
    +

    snapshot details – dict

    +
    +
    -suspend_storage_group_srdf(storage_group_id, srdf_group_number, suspend_options=None, _async=False)[source]
    +suspend_storage_group_srdf(storage_group_id, srdf_group_number, suspend_options=None, _async=False)[source]

    Suspend IO on the links for the given storage group.

    Optional boolean parameters to set are “bypass”, “metroBias”, “star”, “immediate”, “hop2”, “consExempt”, “force”, “symForce”.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_id – storage group id – str
    • -
    • srdf_group_number – srdf group number – int
    • -
    • suspend_options – suspend parameters – dict
    • -
    • _async – if call should be async – bool
    • -
    -
    Returns:

    storage group rdf details – dict

    -
    +
    +
    Parameters
    +
      +
    • storage_group_id – storage group id – str

    • +
    • srdf_group_number – srdf group number – int

    • +
    • suspend_options – suspend parameters – dict

    • +
    • _async – if call should be async – bool

    • +
    +
    +
    Returns
    +

    storage group rdf details – dict

    +
    +
    -suspend_storagegroup_srdf(**kwargs)
    +suspend_storagegroup_srdf(**kwargs)
    +unlink_gen_snapshot(sg_id, snap_name, unlink_sg_name, _async=False, gen_num=0)[source]

    Unlink a snapshot from another storage group.

    - --- - - - - - -
    Parameters:
      -
    • sg_id – storage group id – str
    • -
    • snap_name – snapshot name – str
    • -
    • unlink_sg_name – target storage group name – str
    • -
    • _async – if call should be async – bool
    • -
    • gen_num – snapshot generation number – int
    • +
      +
      Parameters
      +
        +
      • sg_id – storage group id – str

      • +
      • snap_name – snapshot name – str

      • +
      • unlink_sg_name – target storage group name – str

      • +
      • _async – if call should be async – bool

      • +
      • gen_num – snapshot generation number – int

      -
    Returns:

    snapshot details – dict

    -
    +
    +
    Returns
    +

    snapshot details – dict

    +
    +
    @@ -6154,52 +5350,45 @@

    PyU4V.univmax_conn
    -class PyU4V.rest_requests.RestRequests(username, password, verify, base_url, interval, retries, application_type=None)[source]
    +class PyU4V.rest_requests.RestRequests(username, password, verify, base_url, interval, retries, application_type=None)[source]

    Bases: object

    RestRequests.

    -close_session()[source]
    +close_session()[source]

    Close the current session.

    -establish_rest_session()[source]
    +establish_rest_session()[source]

    Establish a REST session.

    - --- - - - -
    Returns:session – object
    +
    +
    Returns
    +

    session – object

    +
    +
    -rest_request(target_url, method, params=None, request_object=None, timeout=None)[source]
    +rest_request(target_url, method, params=None, request_object=None, timeout=None)[source]

    Send a request to the target api.

    Valid methods are ‘GET’, ‘POST’, ‘PUT’, ‘DELETE’.

    - --- - - - - - -
    Parameters:
      -
    • target_url – target url –str
    • -
    • method – method – str
    • -
    • params – Additional URL parameters – dict
    • -
    • request_object – request payload – dict
    • -
    • timeout – optional timeout override – int
    • +
      +
      Parameters
      +
        +
      • target_url – target url –str

      • +
      • method – method – str

      • +
      • params – Additional URL parameters – dict

      • +
      • request_object – request payload – dict

      • +
      • timeout – optional timeout override – int

      -
    Returns:

    server response, status code – dict, int

    -
    +
    +
    Returns
    +

    server response, status code – dict, int

    +
    +
    @@ -6210,187 +5399,157 @@

    PyU4V.univmax_conn
    -class PyU4V.system.SystemFunctions(array_id, rest_client)[source]
    +class PyU4V.system.SystemFunctions(array_id, rest_client)[source]

    Bases: object

    SystemFunctions.

    -delete_health_check(health_check_id, array_id=None)[source]
    +delete_health_check(health_check_id, array_id=None)[source]

    Delete a health check record.

    - --- - - - -
    Parameters:
      -
    • health_check_id – health check id – str
    • -
    • array_id – array id – str
    • +
      +
      Parameters
      +
        +
      • health_check_id – health check id – str

      • +
      • array_id – array id – str

      -
    +
    +
    -get_disk_details(disk_id, array_id=None)[source]
    +get_disk_details(disk_id, array_id=None)[source]

    Get details for specified disk id.

    - --- - - - - - -
    Parameters:
      -
    • disk_id – disk id – str
    • -
    • array_id – array id – str
    • +
      +
      Parameters
      +
        +
      • disk_id – disk id – str

      • +
      • array_id – array id – str

      -
    Returns:

    disk details – dict

    -
    +
    +
    Returns
    +

    disk details – dict

    +
    +
    -get_disk_id_list(array_id=None, failed=False)[source]
    +get_disk_id_list(array_id=None, failed=False)[source]

    Get a list of disks ids installed.

    - --- - - - - - -
    Parameters:
      -
    • array_id – array id – str
    • -
    • failed – if only failed disks should be returned – bool
    • +
      +
      Parameters
      +
        +
      • array_id – array id – str

      • +
      • failed – if only failed disks should be returned – bool

      -
    Returns:

    disk ids – list

    -
    +
    +
    Returns
    +

    disk ids – list

    +
    +
    -get_health_check_details(health_check_id, array_id=None)[source]
    +get_health_check_details(health_check_id, array_id=None)[source]

    Gets details of individual health check.

    - --- - - - - - -
    Parameters:
      -
    • health_check_id – health check id – str
    • -
    • array_id – array id – str
    • +
      +
      Parameters
      +
        +
      • health_check_id – health check id – str

      • +
      • array_id – array id – str

      -
    Returns:

    health check details – dict

    -
    +
    +
    Returns
    +

    health check details – dict

    +
    +
    -get_system_health(array_id=None)[source]
    +get_system_health(array_id=None)[source]

    Query for system health information.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:system health – dict
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    system health – dict

    +
    +
    -get_tagged_objects(tag_name)[source]
    +get_tagged_objects(tag_name)[source]

    Get a list of objects with specified tag.

    - --- - - - - - -
    Parameters:tag_name – tag name – str
    Returns:tags – list
    +
    +
    Parameters
    +

    tag_name – tag name – str

    +
    +
    Returns
    +

    tags – list

    +
    +
    -get_tags(array_id=None, tag_name=None, storage_group_id=None, num_of_storage_groups=None, num_of_arrays=None)[source]
    +get_tags(array_id=None, tag_name=None, storage_group_id=None, num_of_storage_groups=None, num_of_arrays=None)[source]

    Query for a list of tag names.

    The input parameters represent optional filters for the tag query, including any filters will apply that filter to the list of returned tags.

    - --- - - - - - -
    Parameters:
      -
    • array_id – filter by array id – str
    • -
    • tag_name – filter by tag name – str
    • -
    • storage_group_id – filter by storage group id – str
    • -
    • num_of_storage_groups – filter by tags that are in x or greater -amount of storage groups – int
    • -
    • num_of_arrays – filter by tags that in y or greater amount of -arrays – int
    • -
    -
    Returns:

    tags – list

    -
    +
    +
    Parameters
    +
      +
    • array_id – filter by array id – str

    • +
    • tag_name – filter by tag name – str

    • +
    • storage_group_id – filter by storage group id – str

    • +
    • num_of_storage_groups – filter by tags that are in x or greater +amount of storage groups – int

    • +
    • num_of_arrays – filter by tags that in y or greater amount of +arrays – int

    • +
    +
    +
    Returns
    +

    tags – list

    +
    +
    -list_system_health_check(array_id=None)[source]
    +list_system_health_check(array_id=None)[source]

    List previously run system health checks.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:system health checks – list
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    system health checks – list

    +
    +
    -perform_health_check(array_id=None, description=None)[source]
    +perform_health_check(array_id=None, description=None)[source]

    Initiate a environmental health check.

    - --- - - - - - -
    Parameters:
      -
    • array_id – array id – str
    • -
    • description – description for health check, if not set this will -default to ‘PyU4V-array_id-date-time’
    • +
      +
      Parameters
      +
        +
      • array_id – array id – str

      • +
      • description – description for health check, if not set this will +default to ‘PyU4V-array_id-date-time’

      -
    Returns:

    health check property details – dict

    -
    +
    +
    Returns
    +

    health check property details – dict

    +
    +
    @@ -6401,46 +5560,40 @@

    PyU4V.univmax_conn
    -class PyU4V.workload_planner.WLPFunctions(array_id, rest_client)[source]
    +class PyU4V.workload_planner.WLPFunctions(array_id, rest_client)[source]

    Bases: object

    -get_headroom(array_id, workload=None, srp=None, slo=None)[source]
    +get_headroom(array_id, workload=None, srp=None, slo=None)[source]

    Get the Remaining Headroom Capacity.

    Get the headroom capacity for a given srp/ slo/ workload combination.

    - --- - - - - - -
    Parameters:
      -
    • array_id – array id – str
    • -
    • workload – the workload type – str
    • -
    • srp – storage resource pool id – str
    • -
    • slo – service level id – str
    • -
    -
    Returns:

    headroom details – dict

    -
    +
    +
    Parameters
    +
      +
    • array_id – array id – str

    • +
    • workload – the workload type – str

    • +
    • srp – storage resource pool id – str

    • +
    • slo – service level id – str

    • +
    +
    +
    Returns
    +

    headroom details – dict

    +
    +
    -get_wlp_information(array_id)[source]
    +get_wlp_information(array_id)[source]

    Get the latest timestamp from WLP for processing New Workloads.

    - --- - - - - - -
    Parameters:array_id – array id – str
    Returns:wlp details – dict
    +
    +
    Parameters
    +

    array_id – array id – str

    +
    +
    Returns
    +

    wlp details – dict

    +
    +
    @@ -6469,645 +5622,535 @@

    PyU4V.utils
    -class PyU4V.tools.openstack.migrate_utils.MigrateUtils(conn)[source]
    +class PyU4V.tools.openstack.migrate_utils.MigrateUtils(conn)[source]

    Bases: object

    OpenStack migrate utils.

    -
    +
    -static check_input(txt_str, option)[source]
    +static check_input(txt_str, option)[source]

    Check the input against the expected option.

    - --- - - - - - -
    Parameters:
      -
    • txt_str – text string – str
    • -
    • option – ‘Y’, ‘N’ or ‘X’ – str
    • +
      +
      Parameters
      +
        +
      • txt_str – text string – str

      • +
      • option – ‘Y’, ‘N’ or ‘X’ – str

      -
    Returns:

    boolean

    -
    +
    +
    Returns
    +

    boolean

    +
    +
    -check_masking_view_for_migration(masking_view_name, revert=False)[source]
    +check_masking_view_for_migration(masking_view_name, revert=False)[source]

    Check if the masking view can be migrated.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_name – the masking view name – str
    • -
    • revert – is it a revert case – boolean
    • +
      +
      Parameters
      +
        +
      • masking_view_name – the masking view name – str

      • +
      • revert – is it a revert case – boolean

      -
    Returns:

    flag – boolean

    -
    +
    +
    Returns
    +

    flag – boolean

    +
    +
    -choose_storage_group(masking_view_name, child_storage_group_list, port_group, initiator_group, revert=False)[source]
    +choose_storage_group(masking_view_name, child_storage_group_list, port_group, initiator_group, revert=False)[source]

    Choose a child storage group from the list.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_name – the masking view name – str
    • -
    • child_storage_group_list – the storage group list – list
    • -
    • port_group – The port group name – str
    • -
    • initiator_group – the initiator group name – str
    • -
    • revert – revert back – boolean
    • -
    -
    Returns:

    element details – dict, child storage group name – str

    -
    +
    +
    Parameters
    +
      +
    • masking_view_name – the masking view name – str

    • +
    • child_storage_group_list – the storage group list – list

    • +
    • port_group – The port group name – str

    • +
    • initiator_group – the initiator group name – str

    • +
    • revert – revert back – boolean

    • +
    +
    +
    Returns
    +

    element details – dict, child storage group name – str

    +
    +
    -choose_subset_volumes(storage_group_name, volume_list)[source]
    +choose_subset_volumes(storage_group_name, volume_list)[source]

    Validate the sub list is within the full list.

    - --- - - - - - -
    Parameters:
      -
    • storage_group_name – storage group name – str
    • -
    • volume_list – sub list – list
    • +
      +
      Parameters
      +
        +
      • storage_group_name – storage group name – str

      • +
      • volume_list – sub list – list

      -
    Returns:

    volume_list – list

    -
    +
    +
    Returns
    +

    volume_list – list

    +
    +
    -compile_new_element_names(masking_view_name, port_group_name, host_name, storage_group_name, revert=False)[source]
    +compile_new_element_names(masking_view_name, port_group_name, host_name, storage_group_name, revert=False)[source]

    Compile elements from mv, sg, host etc.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_name – masking view name – str
    • -
    • port_group_name – port group name – str
    • -
    • host_name – host name – str
    • -
    • storage_group_name – storage group name – str
    • -
    • revert – is it a revert case – boolean
    • -
    -
    Returns:

    element details – dict

    -
    +
    +
    Parameters
    +
      +
    • masking_view_name – masking view name – str

    • +
    • port_group_name – port group name – str

    • +
    • host_name – host name – str

    • +
    • storage_group_name – storage group name – str

    • +
    • revert – is it a revert case – boolean

    • +
    +
    +
    Returns
    +

    element details – dict

    +
    +
    -create_child_storage_group_and_add_to_parent(element_dict)[source]
    +create_child_storage_group_and_add_to_parent(element_dict)[source]

    Create child storage group.

    - --- - - - -
    Parameters:element_dict – element details – dict
    +
    +
    Parameters
    +

    element_dict – element details – dict

    +
    +
    -get_element_dict(component_dict, cd_str, re_str, port_group_name, host_name)[source]
    +get_element_dict(component_dict, cd_str, re_str, port_group_name, host_name)[source]

    Compile elements from mv, sg, host etc.

    - --- - - - - - -
    Parameters:
      -
    • component_dict – masking view dict – dict
    • -
    • cd_str – compression disabled – str
    • -
    • re_str – replication enabled – str
    • -
    • port_group_name – port group name – str
    • -
    • host_name – host name – str
    • -
    -
    Returns:

    element details – dict

    -
    +
    +
    Parameters
    +
      +
    • component_dict – masking view dict – dict

    • +
    • cd_str – compression disabled – str

    • +
    • re_str – replication enabled – str

    • +
    • port_group_name – port group name – str

    • +
    • host_name – host name – str

    • +
    +
    +
    Returns
    +

    element details – dict

    +
    +
    -get_element_dict_revert(component_dict, storage_group_name, cd_str, re_str, port_group_name, host_name)[source]
    +get_element_dict_revert(component_dict, storage_group_name, cd_str, re_str, port_group_name, host_name)[source]

    Compile elements from mv, sg, host etc.

    - --- - - - - - -
    Parameters:
      -
    • component_dict – masking view dict – dict
    • -
    • storage_group_name – storage group name – str
    • -
    • cd_str – compression disabled – str
    • -
    • re_str – replication enabled – str
    • -
    • port_group_name – port group name – str
    • -
    • host_name – host name – str
    • -
    -
    Returns:

    element details – dict

    -
    +
    +
    Parameters
    +
      +
    • component_dict – masking view dict – dict

    • +
    • storage_group_name – storage group name – str

    • +
    • cd_str – compression disabled – str

    • +
    • re_str – replication enabled – str

    • +
    • port_group_name – port group name – str

    • +
    • host_name – host name – str

    • +
    +
    +
    Returns
    +

    element details – dict

    +
    +
    -get_elements_from_masking_view(masking_view_name)[source]
    +get_elements_from_masking_view(masking_view_name)[source]

    Get components from masking view.

    - --- - - - - - -
    Parameters:masking_view_name – masking view name – str
    Returns:portgroup – str, storagegroup – str, host – str
    +
    +
    Parameters
    +

    masking_view_name – masking view name – str

    +
    +
    Returns
    +

    portgroup – str, storagegroup – str, host – str

    +
    +
    -get_masking_view(masking_view_name)[source]
    +get_masking_view(masking_view_name)[source]

    Get the masking view object from the name.

    - --- - - - - - -
    Parameters:masking_view_name – masking view name – str
    Returns:masking view – dict
    +
    +
    Parameters
    +

    masking_view_name – masking view name – str

    +
    +
    Returns
    +

    masking view – dict

    +
    +
    -get_masking_view_component_dict(masking_view_name, revert=False)[source]
    +get_masking_view_component_dict(masking_view_name, revert=False)[source]

    Get components from input string.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_name – the masking view name – str
    • -
    • revert – is it a revert back – boolean
    • -
    -
    Returns:

    object components – dict

    -
    -
    - -
    +
    +
    Parameters
    +
      +
    • masking_view_name – the masking view name – str

    • +
    • revert – is it a revert back – boolean

    • +
    +
    +
    Returns
    +

    object components – dict

    +
    +
    +
    + +
    -static get_object_components(regex_str, input_str)[source]
    +static get_object_components(regex_str, input_str)[source]

    Get components from input string.

    - --- - - - - - -
    Parameters:
      -
    • regex_str – the regex – str
    • -
    • input_str – the input string – str
    • +
      +
      Parameters
      +
        +
      • regex_str – the regex – str

      • +
      • input_str – the input string – str

      -
    Returns:

    dict

    -
    +
    +
    Returns
    +

    dict

    +
    +
    -get_object_components_and_correct_host(regex_str, input_str)[source]
    +get_object_components_and_correct_host(regex_str, input_str)[source]

    Get components from input string.

    - --- - - - - - -
    Parameters:
      -
    • regex_str – the regex – str
    • -
    • input_str – the input string – str
    • +
      +
      Parameters
      +
        +
      • regex_str – the regex – str

      • +
      • input_str – the input string – str

      -
    Returns:

    object components – dict

    -
    +
    +
    Returns
    +

    object components – dict

    +
    +
    -get_or_create_cascaded_storage_group(element_dict)[source]
    +get_or_create_cascaded_storage_group(element_dict)[source]

    Get or create cascaded storage group.

    - --- - - - - - -
    Parameters:element_dict – element dictionary – dict
    Returns:parent storage group – dict
    +
    +
    Parameters
    +

    element_dict – element dictionary – dict

    +
    +
    Returns
    +

    parent storage group – dict

    +
    +
    -get_or_create_elements(element_dict, revert=False)[source]
    +get_or_create_elements(element_dict, revert=False)[source]

    Get or create component elements.

    - --- - - - -
    Parameters:
      -
    • element_dict – element details – dict
    • -
    • revert – is it a revert back – boolean
    • +
      +
      Parameters
      +
        +
      • element_dict – element details – dict

      • +
      • revert – is it a revert back – boolean

      -
    +
    +
    -get_or_create_masking_view(element_dict, port_group, host, revert=False)[source]
    +get_or_create_masking_view(element_dict, port_group, host, revert=False)[source]

    Get or create masking view from component elements.

    - --- - - - - - -
    Parameters:
      -
    • element_dict – element details – dict
    • -
    • port_group – port group name – str
    • -
    • host – host name – str
    • -
    • revert – is it a revert case – boolean
    • -
    -
    Returns:

    masking view – dict

    -
    +
    +
    Parameters
    +
      +
    • element_dict – element details – dict

    • +
    • port_group – port group name – str

    • +
    • host – host name – str

    • +
    • revert – is it a revert case – boolean

    • +
    +
    +
    Returns
    +

    masking view – dict

    +
    +
    -get_storage_group(storage_group_name)[source]
    +get_storage_group(storage_group_name)[source]

    Get the storage group object from the name.

    - --- - - - - - -
    Parameters:storage_group_name – storage group name – str
    Returns:storage group – dict
    +
    +
    Parameters
    +

    storage_group_name – storage group name – str

    +
    +
    Returns
    +

    storage group – dict

    +
    +
    -get_storage_group_component_dict(storage_group_name)[source]
    +get_storage_group_component_dict(storage_group_name)[source]

    Parse the storage group string.

    - --- - - - - - -
    Parameters:storage_group_name – the storage group name – str
    Returns:object components – dict
    +
    +
    Parameters
    +

    storage_group_name – the storage group name – str

    +
    +
    Returns
    +

    object components – dict

    +
    +
    -get_storage_group_qos_details(storage_group_details)[source]
    +get_storage_group_qos_details(storage_group_details)[source]

    Get the storage group QoS details.

    - --- - - - - - -
    Param:storage_group_details – dict
    Returns:QoS details – dict
    +
    +
    Param
    +

    storage_group_details – dict

    +
    +
    Returns
    +

    QoS details – dict

    +
    +
    -get_volume_list(storage_group_name)[source]
    +get_volume_list(storage_group_name)[source]

    Get the list of volumes from the storage group.

    - --- - - - - - -
    Parameters:storage_group_name – the storage group name – str
    Returns:volume list – list, create volume – boolean
    -
    - -
    +
    +
    Parameters
    +

    storage_group_name – the storage group name – str

    +
    +
    Returns
    +

    volume list – list, create volume – boolean

    +
    +
    +
    + +
    -static get_workload(storage_group)[source]
    +static get_workload(storage_group)[source]

    Get the workload from the storagegroup object.

    - --- - - - - - -
    Parameters:storage_group – storagegroup – object
    Returns:workload – str
    +
    +
    Parameters
    +

    storage_group – storagegroup – object

    +
    +
    Returns
    +

    workload – str

    +
    +
    -input(txt)[source]
    +input(txt)[source]

    Handle input.

    - --- - - - - - -
    Parameters:txt – text in – str
    Returns:txt_out – str
    +
    +
    Parameters
    +

    txt – text in – str

    +
    +
    Returns
    +

    txt_out – str

    +
    +
    -move_volumes_from_source_to_target(device_ids, source_storage_group, target_storage_group, create_volume_flag)[source]
    +move_volumes_from_source_to_target(device_ids, source_storage_group, target_storage_group, create_volume_flag)[source]

    Get or create masking view from component elements.

    - --- - - - - - -
    Parameters:
      -
    • device_ids – list of device ids – str
    • -
    • source_storage_group – the source sg – str
    • -
    • target_storage_group – the target sg – str
    • -
    • create_volume_flag – create volume flag – boolean
    • -
    -
    Returns:

    message – str

    -
    +
    +
    Parameters
    +
      +
    • device_ids – list of device ids – str

    • +
    • source_storage_group – the source sg – str

    • +
    • target_storage_group – the target sg – str

    • +
    • create_volume_flag – create volume flag – boolean

    • +
    +
    +
    Returns
    +

    message – str

    +
    +
    -print_component_dict(masking_view_name, revert=False)[source]
    +print_component_dict(masking_view_name, revert=False)[source]

    Print the components to the screen.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_name – the masking view name – str
    • -
    • revert – is it a revert back – boolean
    • -
    -
    Returns:

    component details – dict

    -
    -
    - -
    +
    +
    Parameters
    +
      +
    • masking_view_name – the masking view name – str

    • +
    • revert – is it a revert back – boolean

    • +
    +
    +
    Returns
    +

    component details – dict

    +
    +
    +
    + +
    -static print_pretty_table(datadict)[source]
    +static print_pretty_table(datadict)[source]

    Print the data in the dict.

    - --- - - - -
    Parameters:datadict – the data dictionary – dict
    +
    +
    Parameters
    +

    datadict – the data dictionary – dict

    +
    +
    -
    +
    -static print_to_log(print_str, level='DEBUG')[source]
    +static print_to_log(print_str, level='DEBUG')[source]

    Print to the logs

    - --- - - - -
    Parameters:
      -
    • print_str – string to print – str
    • -
    • level – the debug level – str
    • +
      +
      Parameters
      +
        +
      • print_str – string to print – str

      • +
      • level – the debug level – str

      -
    +
    +
    -set_qos(source_storage_group_name, target_storage_group_name)[source]
    +set_qos(source_storage_group_name, target_storage_group_name)[source]

    Check and set QoS.

    - --- - - - -
    Parameters:
      -
    • source_storage_group_name – source SG name – str
    • -
    • target_storage_group_name – target SG name – str
    • +
      +
      Parameters
      +
        +
      • source_storage_group_name – source SG name – str

      • +
      • target_storage_group_name – target SG name – str

      -
    +
    +
    -smart_print(print_str, level, *args)[source]
    +smart_print(print_str, level, *args)[source]

    Print with variable arguments.

    - --- - - - -
    Parameters:
      -
    • print_str – the print string – str
    • -
    • level – the debug level – str
    • -
    • args – one or more arguments
    • -
    -
    -
    - -
    +
    +
    Parameters
    +
      +
    • print_str – the print string – str

    • +
    • level – the debug level – str

    • +
    • args – one or more arguments

    • +
    +
    +
    +
    + +
    -static truncate_string(str_to_truncate, max_num)[source]
    +static truncate_string(str_to_truncate, max_num)[source]

    Truncate a string by taking first and last characters.

    - --- - - - - - -
    Parameters:
      -
    • str_to_truncate – the string to be truncated – str
    • -
    • max_num – the maximum number of characters – int
    • +
      +
      Parameters
      +
        +
      • str_to_truncate – the string to be truncated – str

      • +
      • max_num – the maximum number of characters – int

      -
    Returns:

    truncated string or original string – str

    -
    +
    +
    Returns
    +

    truncated string or original string – str

    +
    +
    -validate_existing_masking_view(masking_view_details, old_port_group, old_host, element_dict, revert=False)[source]
    +validate_existing_masking_view(masking_view_details, old_port_group, old_host, element_dict, revert=False)[source]

    Validate the masking view.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_details – masking view details – dict
    • -
    • old_port_group – port group name – str
    • -
    • old_host – host name – str
    • -
    • element_dict – the element dictionary – dict
    • -
    • revert – is it a revert back – boolean
    • -
    -
    Returns:

    flag – boolean

    -
    -
    - -
    +
    +
    Parameters
    +
      +
    • masking_view_details – masking view details – dict

    • +
    • old_port_group – port group name – str

    • +
    • old_host – host name – str

    • +
    • element_dict – the element dictionary – dict

    • +
    • revert – is it a revert back – boolean

    • +
    +
    +
    Returns
    +

    flag – boolean

    +
    +
    +
    + +
    -static validate_list(full_list, sub_list)[source]
    +static validate_list(full_list, sub_list)[source]

    Validate the sub list is within the full list.

    - --- - - - - - -
    Parameters:
      -
    • full_list – full list – list
    • -
    • sub_list – sub list – list
    • +
      +
      Parameters
      +
        +
      • full_list – full list – list

      • +
      • sub_list – sub list – list

      -
    Returns:

    flag – boolean

    -
    +
    +
    Returns
    +

    flag – boolean

    +
    +
    -validate_masking_view(masking_view_name, revert=False)[source]
    +validate_masking_view(masking_view_name, revert=False)[source]

    Validate the masking view string.

    - --- - - - - - -
    Parameters:
      -
    • masking_view_name – masking view name – str
    • -
    • revert – revert back – boolean
    • -
    -
    Returns:

    validate flag – boolean

    -
    -
    - -
    +
    +
    Parameters
    +
      +
    • masking_view_name – masking view name – str

    • +
    • revert – revert back – boolean

    • +
    +
    +
    Returns
    +

    validate flag – boolean

    +
    +
    +
    + +
    -static verify_protocol(protocol)[source]
    +static verify_protocol(protocol)[source]

    Verify the protocol.

    - --- - - - - - -
    Parameters:protocol – ‘I’ or ‘F’ – str
    Returns:boolean
    +
    +
    Parameters
    +

    protocol – ‘I’ or ‘F’ – str

    +
    +
    Returns
    +

    boolean

    +
    +
    diff --git a/docs/build/html/PyU4V.utils.html b/docs/build/html/PyU4V.utils.html index 10c10060..6721f3af 100644 --- a/docs/build/html/PyU4V.utils.html +++ b/docs/build/html/PyU4V.utils.html @@ -8,7 +8,7 @@ - PyU4V.utils — PyU4V 9.1.1.0 documentation + PyU4V.utils — PyU4V 9.1.2.0 documentation @@ -189,18 +189,16 @@

    PyU4V.utils
    -PyU4V.utils.config_handler.set_logger_and_config(file_path=None)[source]
    +PyU4V.utils.config_handler.set_logger_and_config(file_path=None)[source]

    Set logger and config file.

    - --- - - - - - -
    Parameters:file_path – path to PyU4V configuration file – str
    Returns:config parser – obj
    +
    +
    Parameters
    +

    file_path – path to PyU4V configuration file – str

    +
    +
    Returns
    +

    config parser – obj

    +
    +
    @@ -217,67 +215,55 @@

    PyU4V.utils
    -PyU4V.utils.decorators.deprecation_notice(func_class, start_version, end_version)[source]
    +PyU4V.utils.decorators.deprecation_notice(func_class, start_version, end_version)[source]

    Notify the user of function deprecation in a future version.

    - --- - - - - - -
    Parameters:
      -
    • func_class – the class name for deprecated function – str
    • -
    • start_version – the start Unisphere version – float
    • -
    • end_version – the end Unisphere version – float
    • +
      +
      Parameters
      +
        +
      • func_class – the class name for deprecated function – str

      • +
      • start_version – the start Unisphere version – float

      • +
      • end_version – the end Unisphere version – float

      -
    Returns:

    decorated function – decorator

    -
    +
    +
    Returns
    +

    decorated function – decorator

    +
    +
    -PyU4V.utils.decorators.refactoring_notice(func_class, path, start_version, end_version)[source]
    +PyU4V.utils.decorators.refactoring_notice(func_class, path, start_version, end_version)[source]

    Notify the user of function refactoring elsewhere in PyU4V.

    - --- - - - - - -
    Parameters:
      -
    • func_class – the class name for deprecated function – str
    • -
    • path – path to the new function – str
    • -
    • start_version – the start Unisphere version – float
    • -
    • end_version – the end Unisphere version – float
    • +
      +
      Parameters
      +
        +
      • func_class – the class name for deprecated function – str

      • +
      • path – path to the new function – str

      • +
      • start_version – the start Unisphere version – float

      • +
      • end_version – the end Unisphere version – float

      -
    Returns:

    decorated function – decorator

    -
    +
    +
    Returns
    +

    decorated function – decorator

    +
    +
    -PyU4V.utils.decorators.retry(exceptions, total_attempts=3, delay=3, backoff=2)[source]
    +PyU4V.utils.decorators.retry(exceptions, total_attempts=3, delay=3, backoff=2)[source]

    Decorator for retrying function calls.

    - --- - - - -
    Parameters:
      -
    • exceptions – expected exceptions to retry on – class or tuple
    • -
    • total_attempts – times to run function before failure. – int
    • -
    • delay – initial delay between retries in seconds. – int
    • -
    • backoff – delay multiplier between each attempt – int
    • +
      +
      Parameters
      +
        +
      • exceptions – expected exceptions to retry on – class or tuple

      • +
      • total_attempts – times to run function before failure. – int

      • +
      • delay – initial delay between retries in seconds. – int

      • +
      • backoff – delay multiplier between each attempt – int

      -
    +
    +
    @@ -286,87 +272,87 @@

    PyU4V.utils
    -exception PyU4V.utils.exception.InvalidInputException(message=None, **kwargs)[source]
    +exception PyU4V.utils.exception.InvalidInputException(message=None, **kwargs)[source]

    Bases: PyU4V.utils.exception.PyU4VException

    InvalidInputException.

    -message = 'Invalid input received: %(data)s'
    +message = 'Invalid input received: %(data)s'
    -exception PyU4V.utils.exception.MissingConfigurationException(message=None, **kwargs)[source]
    +exception PyU4V.utils.exception.MissingConfigurationException(message=None, **kwargs)[source]

    Bases: PyU4V.utils.exception.PyU4VException

    MissingConfigurationFileException

    -message = 'PyU4V settings not be loaded, please check file location or univmax_conn input parameters.'
    +message = 'PyU4V settings not be loaded, please check file location or univmax_conn input parameters.'
    -exception PyU4V.utils.exception.PyU4VException(message=None, **kwargs)[source]
    -

    Bases: exceptions.Exception

    +exception PyU4V.utils.exception.PyU4VException(message=None, **kwargs)[source] +

    Bases: Exception

    PyU4VException.

    -code = 500
    +code = 500
    -headers = {}
    +headers = {}
    -message = 'An unknown exception occurred.'
    +message = 'An unknown exception occurred.'
    -safe = False
    +safe = False
    -exception PyU4V.utils.exception.ResourceNotFoundException(message=None, **kwargs)[source]
    +exception PyU4V.utils.exception.ResourceNotFoundException(message=None, **kwargs)[source]

    Bases: PyU4V.utils.exception.PyU4VException

    ResourceNotFoundException.

    -message = 'The requested resource was not found: %(data)s'
    +message = 'The requested resource was not found: %(data)s'
    -exception PyU4V.utils.exception.UnauthorizedRequestException(message=None, **kwargs)[source]
    +exception PyU4V.utils.exception.UnauthorizedRequestException(message=None, **kwargs)[source]

    Bases: PyU4V.utils.exception.PyU4VException

    UnauthorizedRequestException.

    -message = 'Unauthorized request - please check credentials'
    +message = 'Unauthorized request - please check credentials'
    -exception PyU4V.utils.exception.VolumeBackendAPIException(message=None, **kwargs)[source]
    +exception PyU4V.utils.exception.VolumeBackendAPIException(message=None, **kwargs)[source]

    Bases: PyU4V.utils.exception.PyU4VException

    VolumeBackendAPIException.

    -message = 'Bad or unexpected response from the storage volume backend API: %(data)s'
    +message = 'Bad or unexpected response from the storage volume backend API: %(data)s'
    @@ -377,23 +363,21 @@

    PyU4V.utils
    -PyU4V.utils.file_handler.create_list_from_file(file_name)[source]
    +PyU4V.utils.file_handler.create_list_from_file(file_name)[source]

    Given a file, create a list from its contents.

    - --- - - - - - -
    Parameters:file_name – the path to the file – str
    Returns:file contents – list
    +
    +
    Parameters
    +

    file_name – the path to the file – str

    +
    +
    Returns
    +

    file contents – list

    +
    +
    -PyU4V.utils.file_handler.read_csv_values(file_name, convert=False)[source]
    +PyU4V.utils.file_handler.read_csv_values(file_name, convert=False)[source]

    Read any csv file with headers.

    You can extract the multiple lists from the headers in the CSV file. In your own script, call this function and assign to data variable, @@ -401,57 +385,45 @@

    PyU4V.utils - - - -Parameters:
      -
    • file_name – path to CSV file – str
    • -
    • convert – convert strings to equivalent data type – bool
    • +
      +
      Parameters
      +
        +
      • file_name – path to CSV file – str

      • +
      • convert – convert strings to equivalent data type – bool

      - - -Returns:

      CSV parsed data – dict

      - - - - +
      +
      Returns
      +

      CSV parsed data – dict

      +
      +

    -PyU4V.utils.file_handler.write_dict_to_csv_file(file_path, dictionary)[source]
    +PyU4V.utils.file_handler.write_dict_to_csv_file(file_path, dictionary)[source]

    Write dictionary data to CSV spreadsheet.

    - --- - - - -
    Parameters:
      -
    • file_path – path including name of the file to be written to – str
    • -
    • dictionary – data to be written to file – dict
    • +
      +
      Parameters
      +
        +
      • file_path – path including name of the file to be written to – str

      • +
      • dictionary – data to be written to file – dict

      -
    +
    +
    -PyU4V.utils.file_handler.write_to_csv_file(file_name, data)[source]
    +PyU4V.utils.file_handler.write_to_csv_file(file_name, data)[source]

    Write list data to CSV spreadsheet.

    - --- - - - -
    Parameters:
      -
    • file_name – name of the file to be written to – str
    • -
    • data – data to be written to file – list
    • +
      +
      Parameters
      +
        +
      • file_name – name of the file to be written to – str

      • +
      • data – data to be written to file – list

      -
    +
    +
    diff --git a/docs/build/html/_modules/PyU4V/common.html b/docs/build/html/_modules/PyU4V/common.html index ab00ad20..dce33724 100644 --- a/docs/build/html/_modules/PyU4V/common.html +++ b/docs/build/html/_modules/PyU4V/common.html @@ -8,7 +8,7 @@ - PyU4V.common — PyU4V 9.1.1.0 documentation + PyU4V.common — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/PyU4V/migration.html b/docs/build/html/_modules/PyU4V/migration.html index ce9f2e02..dfd85f17 100644 --- a/docs/build/html/_modules/PyU4V/migration.html +++ b/docs/build/html/_modules/PyU4V/migration.html @@ -8,7 +8,7 @@ - PyU4V.migration — PyU4V 9.1.1.0 documentation + PyU4V.migration — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/PyU4V/performance.html b/docs/build/html/_modules/PyU4V/performance.html index e0241510..1dd5fee0 100644 --- a/docs/build/html/_modules/PyU4V/performance.html +++ b/docs/build/html/_modules/PyU4V/performance.html @@ -8,7 +8,7 @@ - PyU4V.performance — PyU4V 9.1.1.0 documentation + PyU4V.performance — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/PyU4V/provisioning.html b/docs/build/html/_modules/PyU4V/provisioning.html index 8334c3c8..24da64e7 100644 --- a/docs/build/html/_modules/PyU4V/provisioning.html +++ b/docs/build/html/_modules/PyU4V/provisioning.html @@ -8,7 +8,7 @@ - PyU4V.provisioning — PyU4V 9.1.1.0 documentation + PyU4V.provisioning — PyU4V 9.1.2.0 documentation @@ -1931,7 +1931,7 @@

    Source code for PyU4V.provisioning

             :param cap_unit: capacity unit (MB, GB, TB, CYL) -- str
             :param _async: if call should be async -- bool
             :param vol_name: name to give to the volume, optional -- str
    -        :param create_new_volumes: new volumes only, no ro-use -- bool
    +        :param create_new_volumes: new volumes only, no re-use -- bool
             :returns: storage group details -- dict
             """
             return self.add_new_volume_to_storage_group(
    @@ -1940,7 +1940,9 @@ 

    Source code for PyU4V.provisioning

     
     
    [docs] def add_new_volume_to_storage_group( self, storage_group_id, num_vols, vol_size, cap_unit, _async=False, - vol_name=None, create_new_volumes=None): + vol_name=None, create_new_volumes=None, remote_array_1_id=None, + remote_array_1_sgs=None, remote_array_2_id=None, + remote_array_2_sgs=None): """Expand an existing storage group by adding new volumes. :param storage_group_id: storage group id -- str @@ -1950,6 +1952,17 @@

    Source code for PyU4V.provisioning

             :param _async: if call should be async -- bool
             :param vol_name: name to give to the volume, optional -- str
             :param create_new_volumes: new volumes only, no ro-use -- bool
    +        :param remote_array_1_id: 12 digit serial number of remote array,
    +               optional -- str
    +        :param remote_array_1_sgs: list of storage groups on remote array to
    +               add Remote device, Unisphere instance must be local to R1
    +               storage group otherwise volumes will only be added to the
    +               local group -- str or list
    +        :param remote_array2_id: optional digit serial number of remote array,
    +               only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional
    +               -- str
    +        :param remote_array2_sgs: storage groups on remote array, optional
    +               -- str or list
             :returns: storage group details -- dict
             """
             add_volume_param = {'emulation': 'FBA'}
    @@ -1975,7 +1988,18 @@ 

    Source code for PyU4V.provisioning

             expand_sg_data = ({'editStorageGroupActionParam': {
                 'expandStorageGroupParam': {
                     'addVolumeParam': add_volume_param}}})
    -
    +        if remote_array_1_id and remote_array_1_sgs:
    +            if not isinstance(remote_array_1_sgs, list):
    +                remote_array_1_sgs = [remote_array_1_sgs]
    +            add_volume_param.update({'remoteSymmSGInfoParam': {
    +                'remote_symmetrix_1_id': remote_array_1_id,
    +                'remote_symmetrix_1_sgs': remote_array_1_sgs}})
    +            if remote_array_2_id and remote_array_2_sgs:
    +                if not isinstance(remote_array_2_sgs, list):
    +                    remote_array_2_sgs = [remote_array_2_sgs]
    +                add_volume_param['remoteSymmSGInfoParam'].update({
    +                    'remote_symmetrix_2_id': remote_array_2_id,
    +                    'remote_symmetrix_2_sgs': remote_array_2_sgs})
             if _async:
                 expand_sg_data.update(ASYNC_UPDATE)
             return self.modify_storage_group(storage_group_id, expand_sg_data)
    @@ -1999,19 +2023,57 @@

    Source code for PyU4V.provisioning

             """
             return self.remove_volume_from_storage_group(sg_id, vol_id, _async)
     
    -
    [docs] def remove_volume_from_storage_group(self, storage_group_id, vol_id, - _async=False): +
    [docs] def remove_volume_from_storage_group( + self, storage_group_id, vol_id, _async=False, + remote_array_1_id=None, remote_array_1_sgs=None, + remote_array_2_id=None, remote_array_2_sgs=None): """Remove a volume from a given storage group. :param storage_group_id: storage group id -- str :param vol_id: device id -- str :param _async: if call should be async -- bool + :param remote_array_1_id: 12 digit serial number of remote array, + optional -- str + :param remote_array_1_sgs: list of storage groups on remote array to + add Remote device, Unisphere instance must be local to R1 + storage group otherwise volumes will only be added to the + local group -- str or list + :param remote_array2_id: optional digit serial number of remote array, + only used in multihop SRDF, e.g. R11, or R1 - R21 - R2 optional + -- str + :param remote_array2_sgs: storage groups on remote array, optional + -- str or list :returns: storage group details -- dict """ if not isinstance(vol_id, list): vol_id = [vol_id] payload = ({'editStorageGroupActionParam': { 'removeVolumeParam': {'volumeId': vol_id}}}) + + if remote_array_1_id and remote_array_1_sgs: + if not isinstance(remote_array_1_sgs, list): + remote_array_1_sgs = [remote_array_1_sgs] + payload.update( + {'editStorageGroupActionParam': { + 'removeVolumeParam': { + 'volumeId': vol_id, + 'remoteSymmSGInfoParam': { + 'remote_symmetrix_1_id': remote_array_1_id, + 'remote_symmetrix_1_sgs': remote_array_1_sgs}}} + }) + if remote_array_2_id and remote_array_2_sgs: + if not isinstance(remote_array_2_sgs, list): + remote_array_2_sgs = [remote_array_2_sgs] + payload.update( + {'editStorageGroupActionParam': { + 'removeVolumeParam': { + 'volumeId': vol_id, + 'remoteSymmSGInfoParam': { + 'remote_symmetrix_1_id': remote_array_1_id, + 'remote_symmetrix_1_sgs': remote_array_1_sgs, + 'remote_symmetrix_2_id': remote_array_2_id, + 'remote_symmetrix_2_sgs': remote_array_1_sgs + }}}}) if _async: payload.update(ASYNC_UPDATE) return self.modify_storage_group(storage_group_id, payload)
    diff --git a/docs/build/html/_modules/PyU4V/replication.html b/docs/build/html/_modules/PyU4V/replication.html index 4de63577..4f0bf655 100644 --- a/docs/build/html/_modules/PyU4V/replication.html +++ b/docs/build/html/_modules/PyU4V/replication.html @@ -8,7 +8,7 @@ - PyU4V.replication — PyU4V 9.1.1.0 documentation + PyU4V.replication — PyU4V 9.1.2.0 documentation @@ -373,7 +373,8 @@

    Source code for PyU4V.replication

                                                       hours)
     
     
    [docs] def create_storage_group_snapshot( - self, storage_group_id, snap_name, ttl=None, hours=False): + self, storage_group_id, snap_name, ttl=None, hours=False, + secure=False): """Create a snapVx snapshot of a storage group. To establish a new generation of an existing SnapVX snapshot for a @@ -384,11 +385,16 @@

    Source code for PyU4V.replication

             :param snap_name: snapshot name -- str
             :param ttl: Time To Live -- str
             :param hours: if TTL is in hours instead of days -- bool
    +        :param secure: sets secure snapshot, snapshot created with secure
    +               option can not be deleted before ttl expires -- bool
             :returns: snapshot details -- dict
             """
             payload = {'snapshotName': snap_name}
             if ttl:
    -            payload.update({'timeToLive': ttl})
    +            if secure:
    +                payload.update({'secure': ttl})
    +            else:
    +                payload.update({'timeToLive': ttl})
                 if hours:
                     payload.update({'timeInHours': 'True'})
             return self.create_resource(
    diff --git a/docs/build/html/_modules/PyU4V/rest_requests.html b/docs/build/html/_modules/PyU4V/rest_requests.html
    index 1aafad17..befccfdd 100644
    --- a/docs/build/html/_modules/PyU4V/rest_requests.html
    +++ b/docs/build/html/_modules/PyU4V/rest_requests.html
    @@ -8,7 +8,7 @@
       
       
       
    -  PyU4V.rest_requests — PyU4V 9.1.1.0 documentation
    +  PyU4V.rest_requests — PyU4V 9.1.2.0 documentation
       
     
       
    diff --git a/docs/build/html/_modules/PyU4V/system.html b/docs/build/html/_modules/PyU4V/system.html
    index 9b41b0a8..e917ee03 100644
    --- a/docs/build/html/_modules/PyU4V/system.html
    +++ b/docs/build/html/_modules/PyU4V/system.html
    @@ -8,7 +8,7 @@
       
       
       
    -  PyU4V.system — PyU4V 9.1.1.0 documentation
    +  PyU4V.system — PyU4V 9.1.2.0 documentation
       
     
       
    diff --git a/docs/build/html/_modules/PyU4V/tools/openstack/migrate_utils.html b/docs/build/html/_modules/PyU4V/tools/openstack/migrate_utils.html
    new file mode 100644
    index 00000000..c725c436
    --- /dev/null
    +++ b/docs/build/html/_modules/PyU4V/tools/openstack/migrate_utils.html
    @@ -0,0 +1,1121 @@
    +
    +
    +
    +
    +  
    +
    +  
    +  
    +  
    +  
    +  PyU4V.tools.openstack.migrate_utils — PyU4V 9.1.2.0 documentation
    +  
    +
    +  
    +  
    +  
    +  
    +
    +  
    +  
    +  
    +    
    +      
    +        
    +        
    +        
    +        
    +    
    +    
    +
    +    
    +
    +  
    +  
    +  
    +    
    +     
    +
    +
    +
    +
    +   
    +  
    + + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + +
    + +
      + +
    • Docs »
    • + +
    • Module code »
    • + +
    • PyU4V.tools.openstack.migrate_utils
    • + + +
    • + +
    • + +
    + + +
    +
    +
    +
    + +

    Source code for PyU4V.tools.openstack.migrate_utils

    +# Copyright (c) 2019 Dell Inc. or its subsidiaries.
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#        http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +"""
    +OpenStack migrate_utils.py.
    +
    +Migrate utilities for OpenStack
    +"""
    +
    +from __future__ import print_function
    +
    +from builtins import input
    +import logging
    +import re
    +import sys
    +import uuid
    +
    +from PyU4V.utils import exception
    +
    +import prettytable
    +
    +LOG = logging.getLogger(__name__)
    +
    +YES_CONSTANTS = ['y', 'yes']
    +NO_CONSTANTS = ['n', 'no']
    +EXIT_CONSTANTS = ['x', 'exit']
    +
    +VERSION = '2.0.0'
    +
    +DEBUG = 'DEBUG'
    +INFO = 'INFO'
    +WARNING = 'WARNING'
    +ERROR = 'ERROR'
    +
    +
    +
    [docs]class MigrateUtils(object): + """OpenStack migrate utils.""" + + def __init__(self, conn): + """Initialize class. + + :param conn: the request connection -- obj + """ + self.conn = conn + +
    [docs] @staticmethod + def check_input(txt_str, option): + """Check the input against the expected option. + + :param txt_str: text string -- str + :param option: 'Y', 'N' or 'X' -- str + :returns: boolean + """ + if option == 'Y': + return True if txt_str.lower() in YES_CONSTANTS else False + elif option == 'N': + return True if txt_str.lower() in NO_CONSTANTS else False + elif option == 'X': + LOG.debug('I am exiting') + return True if txt_str.lower() in EXIT_CONSTANTS else False + else: + return False
    + +
    [docs] @staticmethod + def print_to_log(print_str, level=DEBUG): + """Print to the logs + + :param print_str: string to print -- str + :param level: the debug level -- str + """ + if level == ERROR: + LOG.error(print_str) + elif level == WARNING: + LOG.warning(print_str) + elif level == INFO: + LOG.info(print_str) + else: + LOG.debug(print_str)
    + +
    [docs] @staticmethod + def print_pretty_table(datadict): + """Print the data in the dict. + + :param datadict: the data dictionary -- dict + """ + t = prettytable.PrettyTable(['Key', 'Value']) + for k, v in datadict.items(): + if v is not None: + t.add_row([k, v]) + print(t) + LOG.debug(t) + print('\n')
    + +
    [docs] def smart_print(self, print_str, level, *args): + """Print with variable arguments. + + :param print_str: the print string -- str + :param level: the debug level -- str + :param args: one or more arguments + """ + print_str = print_str % args + self.print_to_log(print_str, level) + print(print_str)
    + +
    [docs] def get_elements_from_masking_view(self, masking_view_name): + """Get components from masking view. + + :param masking_view_name: masking view name -- str + :returns: portgroup -- str, storagegroup -- str, host -- str + """ + masking_view_components = {} + try: + masking_view_components['portgroup'] = ( + self.conn.provisioning.get_element_from_masking_view( + masking_view_name, portgroup=True)) + masking_view_components['storagegroup'] = ( + self.conn.provisioning.get_element_from_masking_view( + masking_view_name, storagegroup=True)) + masking_view_components['initiatorgroup'] = ( + self.conn.provisioning.get_element_from_masking_view( + masking_view_name, host=True)) + except exception.ResourceNotFoundException: + exception_message = ( + 'Cannot find one of the components of %s' % masking_view_name) + self.smart_print(exception_message, ERROR) + raise exception.ResourceNotFoundException( + data=exception_message) + + self.print_pretty_table(masking_view_components) + return masking_view_components
    + +
    [docs] @staticmethod + def verify_protocol(protocol): + """Verify the protocol. + + :param protocol: 'I' or 'F' -- str + :returns: boolean + """ + return (True if len(protocol) == 1 and ( + 'I' in protocol or 'F' in protocol) else False)
    + +
    [docs] @staticmethod + def get_object_components(regex_str, input_str): + """Get components from input string. + + :param regex_str: the regex -- str + :param input_str: the input string -- str + :returns: dict + """ + full_str = re.compile(regex_str) + match = full_str.match(input_str) + return match.groupdict() if match else None
    + +
    [docs] def get_object_components_and_correct_host(self, regex_str, input_str): + """Get components from input string. + + :param regex_str: the regex -- str + :param input_str: the input string -- str + :returns: object components -- dict + """ + object_dict = self.get_object_components(regex_str, input_str) + if object_dict and 'host' in object_dict: + if object_dict['host'].endswith('-'): + object_dict['host'] = object_dict['host'][:-1] + return object_dict
    + +
    [docs] def get_masking_view_component_dict( + self, masking_view_name, revert=False): + """Get components from input string. + + :param masking_view_name: the masking view name -- str + :param revert: is it a revert back -- boolean + :returns: object components -- dict + """ + if revert: + regex_str = (r'^(?P<prefix>OS)-(?P<host>.+?)(?P<protocol>I|F)-' + r'(?P<portgroup>(?!CD|RE|CD-RE).+)-(?P<postfix>MV)$') + else: + regex_str = (r'^(?P<prefix>OS)-(?P<host>.+?)((?P<srp>SRP.+?)-' + r'(?P<slo>.+?)-(?P<workload>.+?)|(?P<no_slo>No_SLO))-' + r'(?P<protocol>I|F)(?P<CD>-CD|s*)(?P<RE>-RE|s*)-' + r'(?P<postfix>MV)$') + return self.get_object_components_and_correct_host( + regex_str, masking_view_name)
    + +
    [docs] @staticmethod + def truncate_string(str_to_truncate, max_num): + """Truncate a string by taking first and last characters. + + :param str_to_truncate: the string to be truncated -- str + :param max_num: the maximum number of characters -- int + :returns: truncated string or original string -- str + """ + if len(str_to_truncate) > max_num: + new_num = len(str_to_truncate) - max_num // 2 + first_chars = str_to_truncate[:max_num // 2] + last_chars = str_to_truncate[new_num:] + str_to_truncate = first_chars + last_chars + return str_to_truncate
    + +
    [docs] def print_component_dict(self, masking_view_name, revert=False): + """Print the components to the screen. + + :param masking_view_name: the masking view name -- str + :param revert: is it a revert back -- boolean + :returns: component details -- dict + """ + if revert: + self.smart_print('\n', DEBUG) + self.smart_print( + 'Checking if masking view is in the following format: ', + DEBUG) + self.smart_print( + '\tOS-[shortHostName]-[protocol]-[portgroup_name]-MV', + DEBUG) + component_dict = self.get_masking_view_component_dict( + masking_view_name, revert) + print('\n') + else: + self.smart_print('\n', DEBUG) + self.smart_print( + 'Checking if masking view is in the following 2 formats: ', + DEBUG) + self.smart_print( + '\tOS-[shortHostName]-[SRP]-[SLO]-[workload]-[protocol]-MV', + DEBUG) + self.smart_print('\t\tOR', DEBUG) + self.smart_print('\tOS-[shortHostName]-No_SLO-[protocol]-MV', + DEBUG) + self.smart_print('\n', DEBUG) + component_dict = self.get_masking_view_component_dict( + masking_view_name) + self.smart_print('COMPONENTS OF %s', DEBUG, masking_view_name) + if component_dict: + self.print_pretty_table(component_dict) + + return component_dict
    + +
    [docs] def check_masking_view_for_migration( + self, masking_view_name, revert=False): + """Check if the masking view can be migrated. + + :param masking_view_name: the masking view name -- str + :param revert: is it a revert case -- boolean + :returns: flag -- boolean + """ + if revert: + component_dict = self.print_component_dict( + masking_view_name, revert) + if component_dict and self.verify_protocol( + component_dict['protocol']): + print_str = '%s HAS BEEN VERIFIED TO BEING IN THE NEW FORMAT.' + self.smart_print(print_str, DEBUG, masking_view_name) + return True + else: + print_str = ( + '%s IS NOT IN THE NEW FORMAT, MIGRATION WILL NOT ' + 'PROCEED.') + self.smart_print(print_str, WARNING, masking_view_name) + return False + else: + component_dict = self.print_component_dict(masking_view_name) + if component_dict and self.verify_protocol( + component_dict['protocol']): + print_str = '%s HAS BEEN VERIFIED TO BEING IN THE OLD FORMAT.' + self.smart_print(print_str, DEBUG, masking_view_name) + return True + else: + print_str = ('%s IS NOT IN THE OLD FORMAT, MIGRATION WILL NOT ' + 'PROCEED.') + self.smart_print(print_str, WARNING, masking_view_name) + return False
    + +
    [docs] def get_storage_group_component_dict(self, storage_group_name): + """Parse the storage group string. + + :param storage_group_name: the storage group name -- str + :returns: object components -- dict + """ + regex_str = (r'^(?P<prefix>OS)-(?P<host>.+?)' + r'((?P<no_slo>No_SLO)|((?P<srp>SRP.+?)-' + r'(?P<sloworkload>.+?)))-(?P<portgroup>.+?)' + r'(?P<after_pg>$|-CD|-RE)') + return self.get_object_components_and_correct_host( + regex_str, storage_group_name)
    + +
    [docs] def get_element_dict_revert( + self, component_dict, storage_group_name, cd_str, re_str, + port_group_name, host_name): + """Compile elements from mv, sg, host etc. + + :param component_dict: masking view dict -- dict + :param storage_group_name: storage group name -- str + :param cd_str: compression disabled -- str + :param re_str: replication enabled -- str + :param port_group_name: port group name -- str + :param host_name: host name -- str + :returns: element details -- dict + """ + element_dict = {} + + sg_component_dict = self.get_storage_group_component_dict( + storage_group_name) + if sg_component_dict: + if sg_component_dict['sloworkload']: + storagegroup = self.get_storage_group(storage_group_name) + if storagegroup: + prefix = (component_dict['prefix'] + + '-' + component_dict['host'] + + '-' + sg_component_dict['srp'] + + '-' + storagegroup['slo'] + + '-' + self.get_workload(storagegroup) + + '-' + component_dict['protocol'] + + cd_str + re_str) + element_dict['new_mv_name'] = prefix + '-MV' + element_dict['new_sg_name'] = prefix + '-SG' + + element_dict['srp'] = sg_component_dict['srp'] + element_dict['service_level'] = storagegroup['slo'] + element_dict['workload'] = self.get_workload(storagegroup) + else: + return element_dict + else: + prefix = (component_dict['prefix'] + '-' + + component_dict['host'] + '-' + + 'No_SLO' + '-' + + component_dict['protocol'] + + cd_str + re_str) + element_dict['new_mv_name'] = prefix + '-MV' + element_dict['new_sg_name'] = prefix + '-SG' + + element_dict['port_group'] = port_group_name + element_dict['initiator_group'] = host_name + return element_dict
    + +
    [docs] @staticmethod + def get_workload(storage_group): + """Get the workload from the storagegroup object. + + :param storage_group: storagegroup -- object + :returns: workload -- str + """ + try: + workload = storage_group['workload'] + except KeyError: + workload = 'NONE' + return workload
    + +
    [docs] def get_element_dict(self, component_dict, cd_str, re_str, + port_group_name, host_name): + """Compile elements from mv, sg, host etc. + + :param component_dict: masking view dict -- dict + :param cd_str: compression disabled -- str + :param re_str: replication enabled -- str + :param port_group_name: port group name -- str + :param host_name: host name -- str + :returns: element details -- dict + """ + element_dict = dict() + element_dict['new_mv_name'] = (component_dict['prefix'] + '-' + + component_dict['host'] + '-' + + component_dict['protocol'] + '-' + + port_group_name + '-MV') + element_dict['new_sg_parent_name'] = (component_dict['prefix'] + '-' + + component_dict['host'] + '-' + + component_dict['protocol'] + + '-' + port_group_name + '-SG') + + if component_dict['srp']: + slo_wl_combo = self.truncate_string( + component_dict['slo'] + component_dict['workload'], 10) + element_dict['new_sg_name'] = (component_dict['prefix'] + '-' + + component_dict['host'] + '-' + + component_dict['srp'] + '-' + + slo_wl_combo + + '-' + port_group_name + cd_str + + re_str) + element_dict['srp'] = component_dict['srp'] + element_dict['service_level'] = component_dict['slo'] + element_dict['workload'] = component_dict['workload'] + else: + element_dict['new_sg_name'] = (component_dict['prefix'] + '-' + + component_dict['host'] + '-' + + 'No_SLO' + '-' + + port_group_name + cd_str + + re_str) + element_dict['port_group'] = port_group_name + element_dict['initiator_group'] = host_name + return element_dict
    + +
    [docs] def compile_new_element_names( + self, masking_view_name, port_group_name, host_name, + storage_group_name, revert=False): + """Compile elements from mv, sg, host etc. + + :param masking_view_name: masking view name -- str + :param port_group_name: port group name -- str + :param host_name: host name -- str + :param storage_group_name: storage group name -- str + :param revert: is it a revert case -- boolean + :returns: element details -- dict + """ + element_dict = {} + cd_str = '' + re_str = '' + regex_all = '\\S+' + if re.search('^OS-' + regex_all + '-CD', storage_group_name): + cd_str = '-CD' + element_dict['CD'] = 'CD' + if re.search('^OS-' + regex_all + '-RE', storage_group_name): + re_str = '-RE' + element_dict['RE'] = 'RE' + component_dict = self.get_masking_view_component_dict( + masking_view_name, revert) + if component_dict: + if revert: + element_dict = self.get_element_dict_revert( + component_dict, storage_group_name, cd_str, re_str, + port_group_name, host_name) + else: + element_dict = self.get_element_dict( + component_dict, cd_str, re_str, + port_group_name, host_name) + else: + print_str = 'UNABLE TO PARSE %s, MIGRATION WILL NOT ' \ + 'PROCEED.' + self.smart_print(print_str, WARNING, masking_view_name) + + return element_dict
    + +
    [docs] def validate_existing_masking_view( + self, masking_view_details, old_port_group, old_host, + element_dict, revert=False): + """Validate the masking view. + + :param masking_view_details: masking view details -- dict + :param old_port_group: port group name -- str + :param old_host: host name -- str + :param element_dict: the element dictionary -- dict + :param revert: is it a revert back -- boolean + :returns: flag -- boolean + """ + self.smart_print( + 'NEW MASKING VIEW %s', DEBUG, + masking_view_details['maskingViewId']) + masking_view_components = self.get_elements_from_masking_view( + masking_view_details['maskingViewId']) + if old_port_group != masking_view_components['portgroup']: + self.smart_print( + 'Portgroups are not equal, please assess', DEBUG) + return False + if old_host != masking_view_components['initiatorgroup']: + print_str = 'Hosts are not equal, please assess' + self.smart_print(print_str, WARNING) + return False + if revert: + if element_dict['new_sg_name'] != ( + masking_view_components['storagegroup']): + print_str = 'Storage group is not equal, please assess' + self.smart_print(print_str, WARNING) + return False + else: + if element_dict['new_sg_parent_name'] != ( + masking_view_components['storagegroup']): + print_str = ( + 'Parent storage group is not equal, please assess') + self.smart_print(print_str, WARNING) + return False + # Check if child storage group exists + child_storage_group = self.get_storage_group( + element_dict['new_sg_name']) + if child_storage_group: + # Check if the child SG is part of the parent + self._existing_child_storage_group_check( + element_dict['new_sg_name'], + element_dict['new_sg_parent_name']) + else: + self.create_child_storage_group_and_add_to_parent( + element_dict) + return True
    + +
    [docs] def get_storage_group(self, storage_group_name): + """Get the storage group object from the name. + + :param storage_group_name: storage group name -- str + :returns: storage group -- dict + """ + storage_group = None + try: + storage_group = self.conn.provisioning.get_storage_group( + storage_group_name) + except exception.ResourceNotFoundException: + print_str = 'Storage group %s not found' + self.smart_print(print_str, WARNING, storage_group_name) + return storage_group
    + +
    [docs] def create_child_storage_group_and_add_to_parent(self, element_dict): + """Create child storage group. + + :param element_dict: element details -- dict + """ + print_str = '%s child storage group does not exist so creating it.' + self.smart_print(print_str, DEBUG, element_dict['new_sg_name']) + # Create a new child storage group with one volume in it + disable_compression = False + if 'CD' in element_dict: + disable_compression = True + if 'srp' in element_dict: + message = self.conn.provisioning.create_non_empty_storage_group( + element_dict['srp'], + element_dict['new_sg_name'], + element_dict['service_level'], + element_dict['workload'], '1', '1', 'GB', + disable_compression) + else: + message = self.conn.provisioning.create_empty_storage_group( + None, element_dict['new_sg_name'], None, None) + # Add a volume to it + self.conn.provisioning.create_volume_from_storage_group_return_id( + 'first_vol', element_dict['new_sg_name'], '1') + + print_str = 'CREATED CHILD STORAGE GROUP %s.' + self.smart_print(print_str, DEBUG, element_dict['new_sg_name']) + self.print_pretty_table(message) + # Add the child to the parent storage group + self._add_child_to_parent(element_dict['new_sg_name'], + element_dict['new_sg_parent_name'])
    + + def _existing_child_storage_group_check( + self, storage_group_child, storage_group_parent): + """Check that child is part of parent, if not, add it + + :param storage_group_child: child storage group name -- str + :param storage_group_parent: parent storage group name -- str + """ + prov = self.conn.provisioning + if not prov.is_child_storage_group_in_parent_storage_group( + storage_group_child, storage_group_parent): + print_str = ( + 'The child sg is not part of the parent sg: %s') + self.smart_print( + print_str, DEBUG, storage_group_child) + self._add_child_to_parent( + storage_group_child, storage_group_parent) + + def _add_child_to_parent(self, child_storage_group, parent_storage_group): + """Add child storage group to parent storage group + + :param child_storage_group: child storage group name -- str + :param parent_storage_group: parent storage group name -- str + """ + message = ( + self.conn.provisioning.add_child_storage_group_to_parent_group( + child_storage_group, parent_storage_group)) + print_str = 'ADDED CHILD STORAGE GROUP %s TO PARENT STORAGE GROUP %s.' + self.smart_print(print_str, DEBUG, child_storage_group, + parent_storage_group) + self.print_pretty_table(message) + +
    [docs] def get_or_create_cascaded_storage_group(self, element_dict): + """Get or create cascaded storage group. + + :param element_dict: element dictionary -- dict + :returns: parent storage group -- dict + """ + storage_group_parent = self.get_storage_group( + element_dict['new_sg_parent_name']) + if not storage_group_parent: + print_str = ( + '%s parent storage group does not exist so ' + 'creating it.') + self.smart_print( + print_str, DEBUG, element_dict['new_sg_parent_name']) + # Create a new empty parent storage group + message = self.conn.provisioning.create_empty_storage_group( + element_dict['srp'], element_dict['new_sg_parent_name'], + None, None) + self.print_pretty_table(message) + storage_group_parent = self.get_storage_group( + element_dict['new_sg_parent_name']) + storage_group_child = self.get_storage_group( + element_dict['new_sg_name']) + if not storage_group_child: + self.create_child_storage_group_and_add_to_parent(element_dict) + else: + self._existing_child_storage_group_check( + element_dict['new_sg_name'], + element_dict['new_sg_parent_name']) + + return storage_group_parent
    + +
    [docs] def get_or_create_elements(self, element_dict, revert=False): + """Get or create component elements. + + :param element_dict: element details -- dict + :param revert: is it a revert back -- boolean + """ + if revert: + storage_group = self.get_storage_group( + element_dict['new_sg_name']) + if not storage_group: + # Create a new storage group with one volume in it + prov = self.conn.provisioning + message = prov.create_non_empty_storage_group( + element_dict['srp'], + element_dict['new_sg_name'], + element_dict['service_level'], + element_dict['workload'], '1', '1', 'GB') + self.print_pretty_table(message) + storage_group = self.get_storage_group( + element_dict['new_sg_name']) + else: + storage_group = self.get_or_create_cascaded_storage_group( + element_dict) + if storage_group: + port_group = element_dict['port_group'] + initiator_group = element_dict['initiator_group'] + self.conn.provisioning.create_masking_view_existing_components( + port_group, element_dict['new_mv_name'], + storage_group['storageGroupId'], + host_name=initiator_group) + else: + exception_message = ( + 'Cannot create or find the storagegroup.') + self.smart_print(exception_message, ERROR) + raise exception.ResourceNotFoundException( + data=exception_message)
    + +
    [docs] def get_masking_view(self, masking_view_name): + """Get the masking view object from the name. + + :param masking_view_name: masking view name -- str + :returns: masking view -- dict + """ + masking_view = None + try: + masking_view = self.conn.provisioning.get_masking_view( + masking_view_name) + except exception.ResourceNotFoundException: + print_str = 'Masking view %s not found.' + self.smart_print(print_str, WARNING, masking_view_name) + return masking_view
    + +
    [docs] def get_or_create_masking_view( + self, element_dict, port_group, host, revert=False): + """Get or create masking view from component elements. + + :param element_dict: element details -- dict + :param port_group: port group name -- str + :param host: host name -- str + :param revert: is it a revert case -- boolean + :returns: masking view -- dict + """ + new_masking_view_details = self.get_masking_view( + element_dict['new_mv_name']) + if new_masking_view_details: + if self.validate_existing_masking_view( + new_masking_view_details, port_group, host, + element_dict, revert): + print_str = ( + 'The existing masking view %s will be used.') + self.smart_print( + print_str, DEBUG, element_dict['new_mv_name']) + self.smart_print('\n', DEBUG) + else: + print_str = ( + 'Something is wrong with the existing masking view %s.') + self.smart_print( + print_str, WARNING, element_dict['new_mv_name']) + else: + print_str = 'Creating masking view %s.' + self.smart_print(print_str, DEBUG, element_dict['new_mv_name']) + self.get_or_create_elements(element_dict, revert) + new_masking_view_details = self.get_masking_view( + element_dict['new_mv_name']) + return new_masking_view_details
    + +
    [docs] def move_volumes_from_source_to_target( + self, device_ids, source_storage_group, target_storage_group, + create_volume_flag): + """Get or create masking view from component elements. + + :param device_ids: list of device ids -- str + :param source_storage_group: the source sg -- str + :param target_storage_group: the target sg -- str + :param create_volume_flag: create volume flag -- boolean + :returns: message -- str + """ + print_str = '\nMoving %d volume(s) from %s to %s.' + self.smart_print( + print_str, DEBUG, len(device_ids), source_storage_group, + target_storage_group) + self.smart_print( + '\nPlease be patient, this may take several minutes...', + DEBUG) + # Create a small volume + if create_volume_flag: + last_volume = 'last_vol' + str(uuid.uuid1())[-10:] + self.conn.provisioning.create_volume_from_storage_group_return_id( + last_volume, source_storage_group, '1') + # Move the volume from the old storage group to the + # new storage group + message = self.conn.provisioning.move_volumes_between_storage_groups( + device_ids, source_storage_group, target_storage_group, + force=False) + return message
    + +
    [docs] @staticmethod + def validate_list(full_list, sub_list): + """Validate the sub list is within the full list. + + :param full_list: full list -- list + :param sub_list: sub list -- list + :returns: flag -- boolean + """ + return True if all(elem in full_list for elem in sub_list) else False
    + +
    [docs] def choose_subset_volumes(self, storage_group_name, volume_list): + """Validate the sub list is within the full list. + + :param storage_group_name: storage group name -- str + :param volume_list: sub list -- list + :returns: volume_list -- list + """ + create_volume_flag = False + self.smart_print('Here is the full list of volumes in SG %s: %s', + DEBUG, storage_group_name, volume_list) + txt = ('Which do you want to migrate (comma separated list): ', + volume_list) + txt_out = self.input(txt) + if txt_out: + sub_volume_list = txt_out.split(',') + sub_volume_list = [x.strip(' \'') for x in sub_volume_list] + if self.validate_list(volume_list, sub_volume_list): + if len(volume_list) == len(sub_volume_list): + create_volume_flag = True + volume_list = sub_volume_list + else: + print_str = ('Unable to validate your list, ' + 'no volumes will be migrated.') + self.smart_print(print_str, WARNING) + volume_list = [] + else: + self.smart_print('You cannot input an empty list', DEBUG) + txt = 'Do you want to choose again Y/N or X:' + txt_out = self.input(txt) + if self.check_input(txt_out, 'Y'): + volume_list, create_vol = self.choose_subset_volumes( + storage_group_name, volume_list) + else: + sys.exit() + return volume_list, create_volume_flag
    + +
    [docs] def get_volume_list(self, storage_group_name): + """Get the list of volumes from the storage group. + + :param storage_group_name: the storage group name -- str + :returns: volume list -- list, create volume -- boolean + """ + volume_list = self.conn.provisioning.get_volumes_from_storage_group( + storage_group_name) + print_str = 'There are %d volume in storage group %s.' + self.smart_print(print_str, DEBUG, len(volume_list), + storage_group_name) + txt = ('Do you want to migrate all %s volumes: Y/N or X(ignore): ' + % len(volume_list)) + txt_out = self.input(txt) + if self.check_input(txt_out, 'Y'): + # Move list of devices from old to new masking view + print_str = ('Moving all volumes between source ' + 'and target storage groups.') + self.smart_print(print_str, DEBUG) + create_volume_flag = True + elif self.check_input(txt_out, 'N'): + volume_list, create_volume_flag = self.choose_subset_volumes( + storage_group_name, volume_list) + else: + return list(), False + + return volume_list, create_volume_flag
    + +
    [docs] def choose_storage_group( + self, masking_view_name, child_storage_group_list, port_group, + initiator_group, revert=False): + """Choose a child storage group from the list. + + :param masking_view_name: the masking view name -- str + :param child_storage_group_list: the storage group list -- list + :param port_group: The port group name -- str + :param initiator_group: the initiator group name -- str + :param revert: revert back -- boolean + :returns: element details -- dict, child storage group name -- str + """ + element_dict = {} + child_storage_group_name = None + for child_storage_group_name in child_storage_group_list: + txt = ('Which storage group do you want to migrate:\n\t ' + '%s. Y/N: ' % child_storage_group_name) + txt_out = self.input(txt) + if 'Y' in txt_out: + # Compile the new names of the SGs and MV + element_dict = self.compile_new_element_names( + masking_view_name, port_group, initiator_group, + child_storage_group_name, revert) + return element_dict, child_storage_group_name + return element_dict, child_storage_group_name
    + +
    [docs] def validate_masking_view(self, masking_view_name, revert=False): + """Validate the masking view string. + + :param masking_view_name: masking view name -- str + :param revert: revert back -- boolean + :returns: validate flag -- boolean + """ + if re.search('^OS-', masking_view_name): + try: + if revert: + return True if self.get_masking_view_component_dict( + masking_view_name, True) else False + else: + return True if self.get_masking_view_component_dict( + masking_view_name) else False + except Exception: + return False + else: + return False
    + +
    [docs] def input(self, txt): + """Handle input. + + :param txt: text in -- str + :returns: txt_out -- str + """ + txt_out = '' + try: + txt_out = input(txt) + except EOFError: + self.smart_print('Problem with input stream', ERROR) + return txt_out
    + +
    [docs] def get_storage_group_qos_details(self, storage_group_details): + """Get the storage group QoS details. + + :param: storage_group_details -- dict + :returns: QoS details -- dict + """ + qos_dict = {} + try: + storage_group_qos_details = storage_group_details['hostIOLimit'] + qos_dict['sg_maxiops'] = ( + storage_group_qos_details['host_io_limit_io_sec']) + qos_dict['sg_maxmbps'] = ( + storage_group_qos_details['host_io_limit_mb_sec']) + qos_dict['sg_distribution_type'] = ( + storage_group_qos_details['dynamicDistribution']) + except KeyError: + self.smart_print( + 'hostIOLimit(QoS details) not set storage group %s.', + DEBUG, storage_group_details['storageGroupId']) + return qos_dict
    + +
    [docs] def set_qos(self, source_storage_group_name, target_storage_group_name): + """Check and set QoS. + + :param source_storage_group_name: source SG name -- str + :param target_storage_group_name: target SG name -- str + """ + property_dict = {} + source_qos_dict = {} + target_qos_dict = {} + source_storage_group_details = self.get_storage_group( + source_storage_group_name) + target_storage_group_details = self.get_storage_group( + target_storage_group_name) + + if source_storage_group_details: + source_qos_dict = self.get_storage_group_qos_details( + source_storage_group_details) + if target_storage_group_details: + target_qos_dict = self.get_storage_group_qos_details( + target_storage_group_details) + if source_qos_dict and target_qos_dict: + if source_qos_dict['sg_maxiops'] != target_qos_dict['sg_maxiops']: + property_dict['host_io_limit_io_sec'] = ( + source_qos_dict['sg_maxiops']) + if source_qos_dict['sg_maxmbps'] != target_qos_dict['sg_maxmbps']: + property_dict['host_io_limit_mb_sec'] = ( + source_qos_dict['sg_maxmbps']) + if source_qos_dict['sg_distribution_type'] != ( + target_qos_dict['sg_distribution_type']): + property_dict['dynamicDistribution'] = ( + source_qos_dict['sg_distribution_type']) + elif source_qos_dict: + property_dict['host_io_limit_io_sec'] = ( + source_qos_dict['sg_maxiops']) + property_dict['host_io_limit_mb_sec'] = ( + source_qos_dict['sg_maxmbps']) + property_dict['dynamicDistribution'] = ( + source_qos_dict['sg_distribution_type']) + elif target_qos_dict: + self.smart_print('Resetting target HostIO limits', DEBUG) + if property_dict: + payload = {'editStorageGroupActionParam': { + 'setHostIOLimitsParam': property_dict}} + message = self.conn.provisioning.modify_storage_group( + target_storage_group_name, payload) + print_str = '%s Host IO details have changed:' + self.smart_print(print_str, DEBUG, target_storage_group_name) + self.print_pretty_table(message['hostIOLimit'])
    +
    + +
    + +
    +
    + + +
    + +
    +

    + © Copyright 2019 Dell Inc. or its subsidiaries. + +

    +
    + Built with Sphinx using a theme provided by Read the Docs. + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/_modules/PyU4V/univmax_conn.html b/docs/build/html/_modules/PyU4V/univmax_conn.html index fd6e5424..4630828d 100644 --- a/docs/build/html/_modules/PyU4V/univmax_conn.html +++ b/docs/build/html/_modules/PyU4V/univmax_conn.html @@ -8,7 +8,7 @@ - PyU4V.univmax_conn — PyU4V 9.1.1.0 documentation + PyU4V.univmax_conn — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/PyU4V/utils/config_handler.html b/docs/build/html/_modules/PyU4V/utils/config_handler.html index 0bfb6b18..8104cf53 100644 --- a/docs/build/html/_modules/PyU4V/utils/config_handler.html +++ b/docs/build/html/_modules/PyU4V/utils/config_handler.html @@ -8,7 +8,7 @@ - PyU4V.utils.config_handler — PyU4V 9.1.1.0 documentation + PyU4V.utils.config_handler — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/PyU4V/utils/decorators.html b/docs/build/html/_modules/PyU4V/utils/decorators.html index 9ed67d7a..40b079a8 100644 --- a/docs/build/html/_modules/PyU4V/utils/decorators.html +++ b/docs/build/html/_modules/PyU4V/utils/decorators.html @@ -8,7 +8,7 @@ - PyU4V.utils.decorators — PyU4V 9.1.1.0 documentation + PyU4V.utils.decorators — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/PyU4V/utils/exception.html b/docs/build/html/_modules/PyU4V/utils/exception.html index 8dbd8975..e5511c91 100644 --- a/docs/build/html/_modules/PyU4V/utils/exception.html +++ b/docs/build/html/_modules/PyU4V/utils/exception.html @@ -8,7 +8,7 @@ - PyU4V.utils.exception — PyU4V 9.1.1.0 documentation + PyU4V.utils.exception — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/PyU4V/utils/file_handler.html b/docs/build/html/_modules/PyU4V/utils/file_handler.html index d3a06dd0..e6771295 100644 --- a/docs/build/html/_modules/PyU4V/utils/file_handler.html +++ b/docs/build/html/_modules/PyU4V/utils/file_handler.html @@ -8,7 +8,7 @@ - PyU4V.utils.file_handler — PyU4V 9.1.1.0 documentation + PyU4V.utils.file_handler — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/PyU4V/workload_planner.html b/docs/build/html/_modules/PyU4V/workload_planner.html index 7ccb4d72..becbdd0f 100644 --- a/docs/build/html/_modules/PyU4V/workload_planner.html +++ b/docs/build/html/_modules/PyU4V/workload_planner.html @@ -8,7 +8,7 @@ - PyU4V.workload_planner — PyU4V 9.1.1.0 documentation + PyU4V.workload_planner — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html index 91cadc20..6d09f77f 100644 --- a/docs/build/html/_modules/index.html +++ b/docs/build/html/_modules/index.html @@ -8,7 +8,7 @@ - Overview: module code — PyU4V 9.1.1.0 documentation + Overview: module code — PyU4V 9.1.2.0 documentation diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt index 6cca3588..27a6dc65 100644 --- a/docs/build/html/_sources/index.rst.txt +++ b/docs/build/html/_sources/index.rst.txt @@ -35,7 +35,7 @@ Supported PyU4V Versions ------------------------ +-----------------------+-----------------------------------------+ -| **PyU4V Version** | 9.1.1.0 | +| **PyU4V Version** | 9.1.2.0 | +-----------------------+-----------------------------------------+ | **Unisphere Version** | 9.1.0.5 | +-----------------------+-----------------------------------------+ diff --git a/docs/build/html/_sources/installation.rst.txt b/docs/build/html/_sources/installation.rst.txt index 20f3a307..f69c6f11 100644 --- a/docs/build/html/_sources/installation.rst.txt +++ b/docs/build/html/_sources/installation.rst.txt @@ -5,7 +5,7 @@ Requirements ------------ +-----------------------+-----------------------------------------+ -| **PyU4V Version** | 9.1.1.0 | +| **PyU4V Version** | 9.1.2.0 | +-----------------------+-----------------------------------------+ | **Unisphere Version** | 9.1.0.5 | +-----------------------+-----------------------------------------+ diff --git a/docs/build/html/_sources/tools.rst.txt b/docs/build/html/_sources/tools.rst.txt new file mode 100644 index 00000000..1d689038 --- /dev/null +++ b/docs/build/html/_sources/tools.rst.txt @@ -0,0 +1,80 @@ + +Tools Guide +=========== + +First, make sure that PyU4V is installed_. Then visit the quick_start_ +section to make sure you have secure connectivity to your array. + +OpenStack +--------- + +**Description** + +This script facilitates the seamless(live) migration of volumes from the SMIS +masking view structure to the REST masking view structure introduced in Pike. +This is only applicable if you have existing volumes created in Ocata or an +earlier release. + +.. important:: + Running this script is not necessary unless you intend 'Live Migrating' + from one compute node to another. + +**Pre-requisites** + +1. The OpenStack system must first be successfully upgraded to Pike or a post + Pike release. +2. All your existing compute nodes must be online. +3. Avoid executing any cinder operations when running migrate.py python script. +4. Avoid Unisphere for PowerMax upgrades or VMAX / PowerMAX OS upgrades when + running migrate.py python script. + +**Recommendations** + +1. It is recommended to create a test instance in OpenStack to force a + creation of a masking view on the array. When you run the script it + should move the volumes to the child storage group associated with that + volume type. If it does not and it creates a masking view or storage + group with a slightly different name then please file a bug on the Github + issues page for this project. +2. It is also recommended to move one volume first and verify it has been + moved to the correct storage group within the correct masking view. +3. If in any doubt, please file an issue on the Github issues page for this + project issues_. + +The script can be run using python 2.7, python3.6 and python 3.7. It is +recommended you run from the PyU4V base directory, however you can run from +the 'openstack' directory so long as you copy/create PyU4V.conf in that +directory. + +.. code-block:: bash + + $ alias python3='/usr/bin/python3.7' + $ cd $PYU4V_WORKING_DIR + $ python3 PyU4V/tools/openstack/migrate.py + +.. code-block:: bash + + $ alias python3='/usr/bin/python3.7' + $ cp ./PyU4V.conf $PYU4V_WORKING_DIR/PyU4V/tools/openstack/. + $ cd $PYU4V_WORKING_DIR/PyU4V/tools/openstack + $ python3 migrate.py + +.. warning:: + Python 2.7 is nearing EOL and will not be maintained past 2020 + +.. note:: + - Only masking views that are eligible for migrating will be presented. + - You have the option to migrate all volume's or a subset of volumes, + in a storage group. + - The old masking view and storage group will remain even if all volumes + have been migrated, so you can always move them back if in any doubt. + - The new masking view will contain the same port group and initiator + group as the original. + - If you find any issues, please open them on the Github issues page for + this project issues_. + +.. URL LINKS + +.. _issues: https://github.com/MichaelMcAleer/PyU4V/issues +.. _installed: http://pyu4v.readthedocs.io/en/latest/installation.html +.. _quick_start: http://pyu4v.readthedocs.io/en/latest/quick_start.html diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css index 0807176e..ea6972d5 100644 --- a/docs/build/html/_static/basic.css +++ b/docs/build/html/_static/basic.css @@ -231,6 +231,16 @@ a.headerlink { visibility: hidden; } +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -279,6 +289,12 @@ img.align-center, .figure.align-center, object.align-center { margin-right: auto; } +img.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + .align-left { text-align: left; } @@ -287,6 +303,10 @@ img.align-center, .figure.align-center, object.align-center { text-align: center; } +.align-default { + text-align: center; +} + .align-right { text-align: right; } @@ -358,6 +378,11 @@ table.align-center { margin-right: auto; } +table.align-default { + margin-left: auto; + margin-right: auto; +} + table caption span.caption-number { font-style: italic; } @@ -391,6 +416,16 @@ table.citation td { border-bottom: none; } +th > p:first-child, +td > p:first-child { + margin-top: 0px; +} + +th > p:last-child, +td > p:last-child { + margin-bottom: 0px; +} + /* -- figures --------------------------------------------------------------- */ div.figure { @@ -460,11 +495,58 @@ ol.upperroman { list-style: upper-roman; } +li > p:first-child { + margin-top: 0px; +} + +li > p:last-child { + margin-bottom: 0px; +} + +dl.footnote > dt, +dl.citation > dt { + float: left; +} + +dl.footnote > dd, +dl.citation > dd { + margin-bottom: 0em; +} + +dl.footnote > dd:after, +dl.citation > dd:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dt:after { + content: ":"; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + dl { margin-bottom: 15px; } -dd p { +dd > p:first-child { margin-top: 0px; } @@ -537,6 +619,12 @@ dl.glossary dt { font-style: oblique; } +.classifier:before { + font-style: normal; + margin: 0.5em; + content: ":"; +} + abbr, acronym { border-bottom: dotted 1px; cursor: help; diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js index 344db17d..b33f87fc 100644 --- a/docs/build/html/_static/doctools.js +++ b/docs/build/html/_static/doctools.js @@ -87,14 +87,13 @@ jQuery.fn.highlightText = function(text, className) { node.nextSibling)); node.nodeValue = val.substr(0, pos); if (isInSVG) { - var bbox = span.getBBox(); var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - rect.x.baseVal.value = bbox.x; + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; rect.y.baseVal.value = bbox.y; rect.width.baseVal.value = bbox.width; rect.height.baseVal.value = bbox.height; rect.setAttribute('class', className); - var parentOfText = node.parentNode.parentNode; addItems.push({ "parent": node.parentNode, "target": rect}); diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index d421e80e..321bac61 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -1,10 +1,10 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '9.1.1.0', + VERSION: '9.1.2.0', LANGUAGE: 'None', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, + NAVIGATION_WITH_KEYS: false }; \ No newline at end of file diff --git a/docs/build/html/_static/jquery.js b/docs/build/html/_static/jquery.js index 644d35e2..a1c07fd8 100644 --- a/docs/build/html/_static/jquery.js +++ b/docs/build/html/_static/jquery.js @@ -1,4 +1,2 @@ -/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), -a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), -null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    +
    + +
    +

    Tools Guide

    +

    First, make sure that PyU4V is installed. Then visit the quick_start +section to make sure you have secure connectivity to your array.

    +
    +

    OpenStack

    +

    Description

    +

    This script facilitates the seamless(live) migration of volumes from the SMIS +masking view structure to the REST masking view structure introduced in Pike. +This is only applicable if you have existing volumes created in Ocata or an +earlier release.

    +
    +

    Important

    +

    Running this script is not necessary unless you intend ‘Live Migrating’ +from one compute node to another.

    +
    +

    Pre-requisites

    +
      +
    1. The OpenStack system must first be successfully upgraded to Pike or a post +Pike release.

    2. +
    3. All your existing compute nodes must be online.

    4. +
    5. Avoid executing any cinder operations when running migrate.py python script.

    6. +
    7. Avoid Unisphere for PowerMax upgrades or VMAX / PowerMAX OS upgrades when +running migrate.py python script.

    8. +
    +

    Recommendations

    +
      +
    1. It is recommended to create a test instance in OpenStack to force a +creation of a masking view on the array. When you run the script it +should move the volumes to the child storage group associated with that +volume type. If it does not and it creates a masking view or storage +group with a slightly different name then please file a bug on the Github +issues page for this project.

    2. +
    3. It is also recommended to move one volume first and verify it has been +moved to the correct storage group within the correct masking view.

    4. +
    5. If in any doubt, please file an issue on the Github issues page for this +project issues.

    6. +
    +

    The script can be run using python 2.7, python3.6 and python 3.7. It is +recommended you run from the PyU4V base directory, however you can run from +the ‘openstack’ directory so long as you copy/create PyU4V.conf in that +directory.

    +
    $ alias python3='/usr/bin/python3.7'
    +$ cd $PYU4V_WORKING_DIR
    +$ python3 PyU4V/tools/openstack/migrate.py
    +
    +
    +
    $ alias python3='/usr/bin/python3.7'
    +$ cp ./PyU4V.conf $PYU4V_WORKING_DIR/PyU4V/tools/openstack/.
    +$ cd $PYU4V_WORKING_DIR/PyU4V/tools/openstack
    +$ python3 migrate.py
    +
    +
    +
    +

    Warning

    +

    Python 2.7 is nearing EOL and will not be maintained past 2020

    +
    +
    +

    Note

    +
      +
    • Only masking views that are eligible for migrating will be presented.

    • +
    • You have the option to migrate all volume’s or a subset of volumes, +in a storage group.

    • +
    • The old masking view and storage group will remain even if all volumes +have been migrated, so you can always move them back if in any doubt.

    • +
    • The new masking view will contain the same port group and initiator +group as the original.

    • +
    • If you find any issues, please open them on the Github issues page for +this project issues.

    • +
    +
    +
    +
    + + +
    + +
    + + +
    +
    + +
    + +
    + + + + + + + + + + + + \ No newline at end of file

    PyU4V.univmax_conn

    univmax_conn.py.

    -class PyU4V.univmax_conn.U4VConn(username=None, password=None, server_ip=None, port=None, verify=None, u4v_version='91', interval=5, retries=200, array_id=None, application_type=None, remote_array=None)[source]
    +class PyU4V.univmax_conn.U4VConn(username=None, password=None, server_ip=None, port=None, verify=None, u4v_version='91', interval=5, retries=200, array_id=None, application_type=None, remote_array=None)[source]

    Bases: object

    U4VConn.

    -close_session()[source]
    +close_session()[source]

    Close the current rest session.

    -set_array_id(array_id)[source]
    +set_array_id(array_id)[source]

    Set the array serial number.

    - --- - - - -
    Parameters:array_id – the array serial number – str
    +
    +
    Parameters
    +

    array_id – the array serial number – str

    +
    +
    -set_requests_timeout(timeout_value)[source]
    +set_requests_timeout(timeout_value)[source]

    Set the requests timeout.

    - --- - - - -
    Parameters:timeout_value – the new timeout value – int
    +
    +
    Parameters
    +

    timeout_value – the new timeout value – int

    +
    +
    -validate_unisphere()[source]
    +validate_unisphere()[source]

    Check that the minimum version of Unisphere is in-use.

    If the version of Unisphere used does not meet minimum requirements the application will exit gracefully.

    - --- - - - -
    Raises:SystemExit
    +
    +
    Raises
    +

    SystemExit

    +
    +
    @@ -249,93 +240,81 @@