def map_luns(self, config): """ LIO will have objects already defined by the lun module, so this method, brings those objects into the gateways TPG """ target_config = config.config["targets"][self.iqn] for disk_id, disk in target_config['disks'].items(): stg_object = lookup_storage_object_by_disk(config, disk_id) if stg_object is None: err_msg = "Could not map {} to LUN. Disk not found".format(disk_id) self.logger.error(err_msg) self.error = True self.error_msg = err_msg return self._map_lun(config, stg_object, disk) if self.error: return
def delete(self, config): saved_err = None if self.target is None: self.load_config() # Ignore errors. Target was probably not setup. Try to clean up # disks. if self.target: try: self.target.delete() except RTSLibError as err: self.logger.error("lio target deletion failed {}".format(err)) saved_err = err # drop down and try to delete disks for disk in config.config['targets'][self.iqn]['disks']: so = lookup_storage_object_by_disk(config, disk) if so is None: self.logger.debug("lio disk lookup failed {}") # SO may not have got setup. Ignore. continue if so.status == 'activated': # Still mapped so ignore. continue try: so.delete() except RTSLibError as err: self.logger.error("lio disk deletion failed {}".format(err)) if saved_err is None: saved_err = err # Try the other disks. if saved_err: raise RTSLibError(saved_err)