def test_get_host_in_tenant_with_ip(self): host = UnityHost.get_host(t_rest(), '192.168.112.23', tenant='tenant_1') assert_that(host.tenant.id, equal_to('tenant_1')) host = UnityHost.get_host(t_rest(), '192.168.112.23') assert_that(host.tenant, equal_to(None))
def test_update_initators_with_fc(self): host = UnityHost(cli=t_rest(), _id='Host_9') r = host.update_initiators(wwns=[ "50:00:14:40:47:B0:0C:44:50:00:14:42:D0:0C:44:11", "50:00:14:40:47:B0:0C:44:50:00:14:42:D0:0C:44:12" ]) assert_that(r, equal_to(3))
def test_add_not_exist_initiator_with_force(self): host = UnityHost(cli=t_rest(), _id='Host_9') wwn = "50:00:14:40:47:B0:0C:44:50:00:14:42:D0:0C:99:99" initiator = host.add_initiator(wwn, force_create=True) assert_that(initiator, instance_of(UnityHostInitiator)) assert_that(initiator.existed, equal_to(True)) assert_that(host.fc_host_initiators, instance_of(UnityHostInitiatorList))
def test_add_initiator(self): host = UnityHost(cli=t_rest(), _id='Host_9') wwn = "50:00:14:40:47:B0:0C:44:50:00:14:42:D0:0C:44:10" initiator = host.add_initiator(wwn) assert_that(initiator, instance_of(UnityHostInitiator)) assert_that(initiator.existed, equal_to(True)) assert_that(host.fc_host_initiators, instance_of(UnityHostInitiatorList))
def test_attach_with_retry_snap_not_skip_hlu_0_5_0_0(self): host = UnityHost(cli=t_rest(), _id='Host_27') snap = UnitySnap(_id='38654705831', cli=t_rest(version='5.0.0')) with mock.patch('storops.unity.resource.host.UnityHost.' '_modify_hlu') as mock_modify_hlu: hlu = host._attach_with_retry(snap, False) assert_that(mock_modify_hlu.called, equal_to(False)) assert_that(hlu, equal_to(0))
def test_add_initiator_iscsi(self): host = UnityHost(cli=t_rest(), _id='Host_1') iqn = "iqn.1993-08.org.debian:01:a4f95ed19999" initiator = host.add_initiator(iqn) assert_that(initiator, instance_of(UnityHostInitiator)) assert_that(initiator.existed, equal_to(True)) assert_that(host.iscsi_host_initiators, instance_of(UnityHostInitiatorList))
def test_attach_with_retry_hlu_in_use_but_no_retry(self): host = UnityHost(cli=t_rest(), _id='Host_24') lun = UnityLun(_id='sv_5610', cli=t_rest()) lun.is_cg_member = False with mock.patch('storops.unity.resource.host.UnityHost.' '_modify_hlu', new=mock.Mock(side_effect=UnityHluNumberInUseError)): assert_that(host._attach_with_retry(lun, True), equal_to(1))
def test_get_hlu_using_object_id_filter(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun = UnityLun(cli=t_rest(), _id="sv_2") filters = {'host.id': host.id, 'lun.id': lun.id} host_lun = UnityHostLunList.get(cli=t_rest(), **filters) assert_that(host_lun, instance_of(UnityHostLunList)) assert_that(len(host_lun), equal_to(1)) hlu = host.get_hlu(lun) assert_that(hlu, equal_to(host_lun[0].hlu))
def test_attach_with_retry_snap_not_skip_hlu_0(self): host = UnityHost(cli=t_rest(), _id='Host_27') snap = UnitySnap(_id='38654705831', cli=t_rest()) with mock.patch( 'storops.unity.resource.host.UnityHost.' '_random_hlu_number', new=lambda _: 12781): hlu = host._attach_with_retry(snap, False) assert_that(hlu, equal_to(0))
def test_create_cg_with_hosts(self): lun1 = UnityLun(cli=t_rest(), _id='sv_3338') host1 = UnityHost(cli=t_rest(), _id='Host_14') host2 = UnityHost(cli=t_rest(), _id='Host_15') cg = UnityConsistencyGroup.create( t_rest(), 'Muse', lun_add=[lun1], hosts=[host1, host2]) hosts = cg.block_host_access assert_that(len(hosts), equal_to(2)) for mask in hosts.access_mask: assert_that(mask, equal_to(HostLUNAccessEnum.BOTH))
def test_attach_with_retry_skip_hlu_0(self): host = UnityHost(cli=t_rest(), _id='Host_23') lun = UnityLun(_id='sv_5610', cli=t_rest()) lun.is_cg_member = False with mock.patch( 'storops.unity.resource.host.UnityHost.' '_random_hlu_number', new=lambda _: 12781): hlu = host._attach_with_retry(lun, True) assert_that(hlu, is_not(equal_to(0))) assert_that(hlu, equal_to(12781))
def test_attach_with_retry_snap_skip_hlu_0_5_0_0(self): host = UnityHost(cli=t_rest(), _id='Host_27') snap = UnitySnap(_id='38654705831', cli=t_rest(version='5.0.0')) with mock.patch( 'storops.unity.resource.host.UnityHost.' '_random_hlu_number', new=lambda _: 12782): with mock.patch('storops.unity.resource.host.UnityHost.' '_modify_hlu') as mock_modify_hlu: hlu = host._attach_with_retry(snap, True) host_lun = host.get_host_lun(snap) mock_modify_hlu.assert_called_with(host_lun, 12782) assert_that(hlu, equal_to(12782))
def test_get_hlu(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun = UnityLun(cli=t_rest(), _id="sv_2") # UnityResourceList will return the found UnityResource # When '_id' as filter. host_lun = UnityHostLunList.get(cli=t_rest(), _id="Host_10_sv_2_prod") assert_that(host_lun, instance_of(UnityHostLun)) hlu = host.get_hlu(lun) assert_that(hlu, equal_to(host_lun.hlu)) # Be caureful, this will return UnityResourceList when 'id' as filter host_lun2 = UnityHostLunList.get(cli=t_rest(), id="Host_10_sv_2_prod") assert_that(host_lun2, instance_of(UnityHostLunList)) assert_that(len(host_lun2), equal_to(1)) assert_that(host_lun, equal_to(host_lun2[0]))
def test_create_simple_host(self): host = UnityHost.create(t_rest(), name='host1', host_type=HostTypeEnum.HOST_MANUAL, os='customized os') assert_that(host.get_id(), equal_to('Host_11')) assert_that(host.name, equal_to('host1')) assert_that(host.os_type, equal_to('customized os'))
def test_get_host_ipv6_with_mask(self): host = UnityHost.get_host(t_rest(), '2001:db8:a0b:12f0::/64', tenant='tenant_1', force_create=True) assert_that(host, not_none()) assert_that(host.ip_list, only_contains('2001:db8:a0b:12f0:0:0:0:0'))
def test_fc_initiator_create(self): host = UnityHost(cli=t_rest(), _id='Host_9') type = HostInitiatorTypeEnum.FC wwn = "50:00:14:40:47:B0:0C:44:50:00:14:42:D0:0C:44:10" initiator = UnityHostInitiator.create(t_rest(), wwn, host, type) assert_that(initiator, instance_of(UnityHostInitiator)) assert_that(initiator.initiator_id, equal_to(wwn))
def test_iscsi_initiator_create(self): host = UnityHost(cli=t_rest(), _id='Host_9') type = HostInitiatorTypeEnum.ISCSI iqn = "iqn.1993-08.org.debian:01:a4f95ed14d65" initiator = UnityHostInitiator.create(t_rest(), iqn, host, type) assert_that(initiator, instance_of(UnityHostInitiator)) assert_that(initiator.initiator_id, equal_to(iqn))
def test_lun_attach_to_with_hlu(self): host = UnityHost(_id="Host_1", cli=t_rest()) lun = UnityLun(_id='sv_6', cli=t_rest(version='4.4.0')) resp = lun.attach_to(host, access_mask=HostLUNAccessEnum.BOTH, hlu=1655) assert_that(resp.is_ok(), equal_to(True))
def test_add_initiator_not_exist(self): host = UnityHost(cli=t_rest(), _id='Host_9') wwn = "50:00:14:40:47:B0:0C:44:50:00:14:42:D0:0C:99:99" def f(): host.add_initiator(wwn, force_create=False) assert_that(f, raises(UnityHostInitiatorNotFoundError))
def test_attach_alu_exceed_limit(self): host = UnityHost(cli=t_rest(), _id='Host_11') lun = UnityLun(cli=t_rest(), _id="sv_2") def f(): host.attach_alu(lun) assert_that(f, raises(UnityAttachAluExceedLimitError))
def test_attach_attached_hlu(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun = UnityLun(cli=t_rest(), _id="sv_2") def f(): host.attach_alu(lun) assert_that(f, raises(UnityAluAlreadyAttachedError))
def test_initiator_modify(self): initiator = UnityHostInitiator(cli=t_rest(), _id='HostInitiator_2') assert_that(initiator.parent_host, instance_of(UnityHost)) assert_that(initiator.parent_host.id, equal_to("Host_1")) host = UnityHost(cli=t_rest(), _id='Host_19') resp = initiator.modify(host=host) assert_that(resp.is_ok(), equal_to(True)) assert_that(initiator.parent_host, instance_of(UnityHost))
def test_delete_initiator_not_found(self): host = UnityHost(cli=t_rest(), _id='Host_1') wwn = "50:00:14:40:47:B0:0C:44:50:00:14:42:99:99:99:99" def f(): host.delete_initiator(wwn) assert_that(f, raises(UnityHostInitiatorNotFoundError))
def test_add_initiator_iscsi_already_existed(self): host = UnityHost(cli=t_rest(), _id='Host_9') iqn = "iqn.1993-08.org.debian:01:a4f95ed19999" def _inner(): host.add_initiator(iqn) assert_that(_inner, raises(UnityHostInitiatorExistedError))
def create_host(self, name, host_type=None, desc=None, os=None): host = UnityHostList.get(self._cli, name=name).first_item if host and host.existed: raise ex.UnityHostNameInUseError() else: host = UnityHost.create(self._cli, name, host_type=host_type, desc=desc, os=os) return host
def test_unity_name_not_unique_error(self): ex = UnityNameNotUniqueError(objects=None) assert_that(str(ex), equal_to('multiple objects found')) assert_that(ex.objects, equal_to(None)) host = UnityHost(_id=9999) ex = UnityNameNotUniqueError("Multipath hosts found.", objects=host) assert_that(str(ex), equal_to('Multipath hosts found.')) assert_that(ex.objects, equal_to(host))
def test_lun_modify_host_access(self): host = UnityHost(_id="Host_1", cli=t_rest()) lun = UnityLun(_id='sv_4', cli=t_rest()) host_access = [{'host': host, 'accessMask': HostLUNAccessEnum.BOTH}] lun.modify(host_access=host_access) lun.update() assert_that(lun.host_access[0].host, equal_to(host)) assert_that(lun.host_access[0].access_mask, equal_to(HostLUNAccessEnum.BOTH))
def test_nested_properties_shadow_copy(self): host = UnityHost(_id='Host_12', cli=t_rest()) host.fc_host_initiators[0].paths[0].is_logged_in = False host.fc_host_initiators[0].paths[0].initiator.type = \ HostInitiatorTypeEnum.ISCSI paths = host.fc_host_initiators[0].paths.shadow_copy() assert_that(paths[0].is_logged_in, equal_to(False)) assert_that(paths[0].initiator.type, equal_to(HostInitiatorTypeEnum.ISCSI))
def test_unknown_initiator_create(self): host = UnityHost(cli=t_rest(), _id='Host_9') type = HostInitiatorTypeEnum.UNKNOWN iqn = "iqn.1993-08.org.debian:01:a4f95ed14d65" def f(): UnityHostInitiator.create(t_rest(), iqn, host, type) assert_that(f, raises(UnityHostInitiatorUnknownType))
def create_host(self, name, host_type=None, desc=None, os=None, tenant=None): host = UnityHostList.get(self._cli, name=name) if host: raise storops.exception.UnityHostNameInUseError() else: host = UnityHost.create(self._cli, name, host_type=host_type, desc=desc, os=os, tenant=tenant) return host
def test_attach_with_retry_hlu_in_use(self): host = UnityHost(cli=t_rest(), _id='Host_23') lun = UnityLun(_id='sv_5610', cli=t_rest()) lun.is_cg_member = False with mock.patch('storops.unity.resource.host.UnityHost.' '_modify_hlu', new=mock.Mock(side_effect=UnityHluNumberInUseError)): assert_that( calling(host._attach_with_retry).with_args(lun, True), raises(UnityHluNumberInUseError))
def test_get_hlu(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun = UnityLun(cli=t_rest(), _id="sv_2") host_lun = UnityHostLunList.get(_id="Host_10_sv_2_prod", cli=t_rest()) hlu = host.get_hlu(lun) assert_that(hlu, equal_to(host_lun.hlu))
def test_delete_host_and_ip_port(self): host = UnityHost(cli=t_rest(), _id='Host_1') ip_port = host.host_ip_ports[0] resp = host.delete() assert_that(resp.is_ok(), equal_to(True)) assert_that(ip_port.delete, raises(UnityResourceNotFoundError))
def test_delete_ip_port(self): host = UnityHost(cli=t_rest(), _id='Host_9') resp = host.delete_ip_port('1.1.1.1') assert_that(resp.is_ok(), equal_to(True))
def test_create_subset_host(self): host = UnityHost.get_host(t_rest(), '7.7.7.7/8', force_create=True) assert_that(host.ip_list, only_contains('7.7.7.7')) assert_that(host.type, equal_to(HostTypeEnum.SUBNET))
def test_add_ip_port(self): host = UnityHost(cli=t_rest(), _id='Host_9') port = host.add_ip_port('1.1.1.1') assert_that(port.existed, equal_to(True)) assert_that(port.address, equal_to('1.1.1.1'))
def test_has_alu_true(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun1 = UnityLun(cli=t_rest(), _id="sv_2") has = host.has_alu(lun1) assert_that(has, equal_to(True))
def test_delete_initiator(self): host = UnityHost(cli=t_rest(), _id='Host_1') wwn = "50:00:14:40:47:B0:0C:44:50:00:14:42:D0:0C:44:10" resp = host.delete_initiator(wwn) assert_that(resp.is_ok(), equal_to(True))
def test_delete_host_success(self): host = UnityHost(cli=t_rest(), _id='Host_11') resp = host.delete() assert_that(resp.is_ok(), equal_to(True))
def test_has_alu_false(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun2 = UnityLun(cli=t_rest(), _id="sv_4") has = host.has_alu(lun2) assert_that(has, equal_to(False))
def test_get_hlu_not_found(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun = UnityLun(cli=t_rest(), _id="sv_4") hlu = host.get_hlu(lun) assert_that(hlu, equal_to(None))
def test_detach_attached_hlu(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun = UnityLun(cli=t_rest(), _id="sv_2") resp = host.detach_alu(lun) assert_that(resp, equal_to(None))
def test_detach_alu(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun = UnityLun(cli=t_rest(), _id="sv_4") resp = host.detach_alu(lun) assert_that(resp.is_ok(), equal_to(True))
def test_attach_alu(self): host = UnityHost(cli=t_rest(), _id='Host_10') lun = UnityLun(cli=t_rest(), _id="sv_4") hlu = host.attach_alu(lun) assert_that(hlu, equal_to(None))
def test_get_host_ip_with_mask(self): host = UnityHost.get_host(t_rest(), '10.244.209.90/32') assert_that(host.ip_list, only_contains('10.244.209.90'))