def create_tpg(self, ip): try: gateway_name = self._get_gateway_name(ip) tpg = self.get_tpg_by_gateway_name(gateway_name) if not tpg: tpg = TPG(self.target) # Use initiator name based ACL by default. tpg.set_attribute('authentication', '0') self.logger.debug("(Gateway.create_tpg) Added tpg for portal " "ip {}".format(ip)) if ip in self.active_portal_ips: target_config = self.config.config['targets'][self.iqn] auth_config = target_config['auth'] config_chap = CHAP(auth_config['username'], auth_config['password'], auth_config['password_encryption_enabled']) if config_chap.error: self.error = True self.error_msg = config_chap.error_msg return config_chap_mutual = CHAP(auth_config['mutual_username'], auth_config['mutual_password'], auth_config['mutual_password_encryption_enabled']) if config_chap_mutual.error: self.error = True self.error_msg = config_chap_mutual.error_msg return self.update_auth(tpg, config_chap.user, config_chap.password, config_chap_mutual.user, config_chap_mutual.password) if self.enable_portal: NetworkPortal(tpg, normalize_ip_literal(ip)) tpg.enable = True self.logger.debug("(Gateway.create_tpg) Added tpg for " "portal ip {} is enabled".format(ip)) else: NetworkPortal(tpg, normalize_ip_literal(ip)) # disable the tpg on this host tpg.enable = False # by disabling tpg_enabled_sendtargets, discovery to just one # node will return all portals (default is 1) tpg.set_attribute('tpg_enabled_sendtargets', '0') self.logger.debug("(Gateway.create_tpg) Added tpg for " "portal ip {} as disabled".format(ip)) self.tpg_list.append(tpg) self.tpg_tag_by_gateway_name[gateway_name] = tpg.tag except RTSLibError as err: self.error_msg = err self.error = True else: self.changes_made = True self.logger.info("(Gateway.create_tpg) created TPG '{}' " "for target iqn '{}'".format(tpg.tag, self.iqn))
def create_tpg(self, ip): try: tpg = None gateway_name = self._get_gateway_name(ip) tpg_tag = self.tpg_tag_by_gateway_name.get(gateway_name) if tpg_tag: for tpg_item in self.tpg_list: if tpg_item.tag == tpg_tag: tpg = tpg_item if not tpg: tpg = TPG(self.target) # Use initiator name based ACL by default. tpg.set_attribute('authentication', '0') self.logger.debug("(Gateway.create_tpg) Added tpg for portal " "ip {}".format(ip)) if ip in self.active_portal_ips: if self.enable_portal: NetworkPortal(tpg, normalize_ip_literal(ip)) tpg.enable = True self.logger.debug("(Gateway.create_tpg) Added tpg for " "portal ip {} is enabled".format(ip)) else: NetworkPortal(tpg, normalize_ip_literal(ip)) # disable the tpg on this host tpg.enable = False # by disabling tpg_enabled_sendtargets, discovery to just one # node will return all portals (default is 1) tpg.set_attribute('tpg_enabled_sendtargets', '0') self.logger.debug("(Gateway.create_tpg) Added tpg for " "portal ip {} as disabled".format(ip)) self.tpg_list.append(tpg) self.tpg_tag_by_gateway_name[gateway_name] = tpg.tag except RTSLibError as err: self.error_msg = err self.error = True else: self.changes_made = True self.logger.info("(Gateway.create_tpg) created TPG '{}' " "for target iqn '{}'".format(tpg.tag, self.iqn))
def create_tpg(self, ip): try: tpg = TPG(self.target) self.logger.debug( "(Gateway.create_target) Added tpg for portal ip {}".format( ip)) if ip == self.active_portal_ip: if self.enable_portal: NetworkPortal(tpg, ip) tpg.enable = True self.logger.debug( "(Gateway.create_target) Added tpg for portal ip {} is enabled" .format(ip)) else: NetworkPortal(tpg, ip) # disable the tpg on this host tpg.enable = False # by disabling tpg_enabled_sendtargets, discovery to just one node will return all portals # default is 1 tpg.set_attribute('tpg_enabled_sendtargets', '0') self.logger.debug( "(Gateway.create_target) Added tpg for portal ip {} as disabled" .format(ip)) self.tpg_list.append(tpg) except RTSLibError as err: self.error_msg = err self.error = True else: self.changes_made = True self.logger.info( "(Gateway.create_target) created an iscsi target with iqn of '{}'" .format(self.iqn))