def add_initiator(self, uid, force_create=True, **kwargs): initiators = UnityHostInitiatorList.get(cli=self._cli, initiator_id=uid) if not initiators: # Set the ISCSI or FC type if common.is_fc_uid(uid): uid_type = HostInitiatorTypeEnum.FC elif common.is_iscsi_uid(uid): uid_type = HostInitiatorTypeEnum.ISCSI else: uid_type = HostInitiatorTypeEnum.UNKNOWN if force_create: initiator = UnityHostInitiator.create(self._cli, uid, self, uid_type, **kwargs) else: raise ex.UnityHostInitiatorNotFoundError( 'name {} not found under host {}.'.format(uid, self.name)) else: initiator = initiators.first_item log.debug('initiator {} is existed in unity system.'.format(uid)) initiator.modify(self) return initiator.update()
def add_initiator(self, uid, force_create=True, **kwargs): initiators = UnityHostInitiatorList.get(cli=self._cli, initiator_id=uid) if not initiators: # Set the ISCSI or FC type if re.match("(\w{2}:){15}\w{2}", uid, re.I): uid_type = HostInitiatorTypeEnum.FC elif re.match("iqn.\d{4}-\d{2}.\w+.\w+:\d+:[A-F0-9]+", uid, re.I): # iqn.yyyy-mm.<reversed domain name>[:identifier] ) uid_type = HostInitiatorTypeEnum.ISCSI else: uid_type = HostInitiatorTypeEnum.UNKNOWN if force_create: initiator = UnityHostInitiator.create(self._cli, uid, self, uid_type, **kwargs) else: raise ex.UnityHostInitiatorNotFoundError( 'name {} not found under host {}.'.format(uid, self.name)) else: initiator = initiators.first_item log.debug('initiator {} is existed in unity system.'.format(uid)) initiator.modify(self) return initiator.update()
def delete_initiator(self, uid): initiators = [] if self.fc_host_initiators: initiators += self.fc_host_initiators if self.iscsi_host_initiators: initiators += self.iscsi_host_initiators for item in initiators: if item.initiator_id == uid: resp = item.delete() resp.raise_if_err() break else: raise ex.UnityHostInitiatorNotFoundError( 'name {} not found under host {}.'.format(uid, self.name)) return resp
def delete_initiator(self, uid): initiators = [] if self.fc_host_initiators: initiators += self.fc_host_initiators if self.iscsi_host_initiators: initiators += self.iscsi_host_initiators for item in initiators: if item.initiator_id == uid: # remove from the host initiator list first, # otherwise delete initiator will not work item.modify(None) resp = item.delete() resp.raise_if_err() break else: raise ex.UnityHostInitiatorNotFoundError( 'name {} not found under host {}.'.format(uid, self.name)) return resp