Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
import six
from cliff import show, lister
from osc_lib import utils as osc_utils
from osc_lib.cli import format_columns

from workloadmgrclient import utils
from workloadmgrclient.v1 import WorkloadmgrCommand


class BackupTargetCommand(WorkloadmgrCommand):
    resource = "backup_targets"


class ListBackupTarget(BackupTargetCommand, lister.Lister):
    """List all the backup targets."""

    def take_action(self, parsed_args):
        client = self.get_client()
        backup_targets = client.list(detailed=False) or []
        return (
            ["ID", "Type", "Backend Endpoint", "Backend Mountpath", "Is_Default", "Status", "Version", "Capacity", "Used", "Created At"],
            (
                osc_utils.get_item_properties(
                    obj, ["id", "type", "nfs_export", "nfs_export_mount_path", "is_default", "status", "version", "capacity", "used", "created_at"]
                )
                for obj in backup_targets
            ),
        )


class ShowBackupTarget(BackupTargetCommand, show.ShowOne):
    """Show details about backup targets"""

    @staticmethod
    def _add_arguments(parser):
        parser.add_argument(
            "backup_target_id", metavar="<backup_target_id>", help="ID of the backup target."
        )

    def take_action(self, parsed_args):
        client = self.get_client()
        bt_obj = utils.find_resource(client, parsed_args.backup_target_id)
        btt_id_list = []
        if bt_obj.backup_target_types:
            for btt in bt_obj.backup_target_types:
                btt_id_list.append(btt['name'])
        info = {}
        info.update(bt_obj._info)
        info['backup_target_types'] = btt_id_list
        columns = list(info.keys())
        data = osc_utils.get_dict_properties(info, columns)
        return columns, data