Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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)