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:
from cliff import show, lister
from osc_lib import utils as osc_utils

from workloadmgrclient.openstack.common import strutils
from workloadmgrclient.v1 import WorkloadmgrCommand


class TrustCommand(WorkloadmgrCommand):
    resource = "trusts"


class CreateTrust(TrustCommand, show.ShowOne):
    """Creates a trust."""

    @staticmethod
    def _add_arguments(parser):
        parser.add_argument(
            "role_name",
            metavar="<role_name>",
            help="name of the role that user what to delete to triliovault service.",
        )
        parser.add_argument(
            "--is_cloud_trust",
            metavar="{True,False}",
            type=strutils.bool_from_string,
            help="Set to true if creating cloud admin trust,"
            " While creating cloud trust use same user and tenant"
            " which used to configure TVault and keep the role admin.",
            default=False,
        )

    def take_action(self, parsed_args):
        client = self.get_client()
        res = client.create(parsed_args.role_name, parsed_args.is_cloud_trust) or []
        d = {}
        columns = "Name"
        for v in res:
            if type(v) is dict:
                for k, v1 in list(v.items()):
                    d.setdefault(k, str(v1))
            columns = list(d.keys())
        data = osc_utils.get_dict_properties(d, columns)
        return columns, data
        """
        info = {key: str(value) for key, value in trust_obj.items()
                for trust_obj in res if isinstance(trust_obj, dict)}
        columns = list(info.keys())
        data = osc_utils.get_dict_properties(info, columns)
        return columns, data
        """


class ListTrust(TrustCommand, lister.Lister):
    """List all the trusts."""

    def take_action(self, parsed_args):
        client = self.get_client()
        result = client.list() or []
        columns = ["name", "value", "status", "created_at"]
        headers = ["TrustID", "Value", "Status", "CreatedAt"]
        return (
            headers,
            (osc_utils.get_dict_properties(obj, columns) for obj in result),
        )


class ShowTrust(TrustCommand, show.ShowOne):
    """Show details of the trust."""

    @staticmethod
    def _add_arguments(parser):
        parser.add_argument("trust_id", metavar="<trust_id>", help="trust ID.")

    def take_action(self, parsed_args):
        client = self.get_client()
        trust_obj = client.get(parsed_args.trust_id) or {}
        columns = list(trust_obj.keys())
        data = osc_utils.get_dict_properties(trust_obj, columns)
        return columns, data


class DeleteTrust(TrustCommand):
    """Delete the trust."""

    @staticmethod
    def _add_arguments(parser):
        parser.add_argument(
            "trust_id", metavar="<trust_id>", help="ID of trust to delete."
        )

    def take_action(self, parsed_args):
        client = self.get_client()
        client.delete(parsed_args.trust_id)


class SchedulerTrustValidation(TrustCommand):
    """Validate scheduler trust for a given workload."""

    @staticmethod
    def _add_arguments(parser):
        parser.add_argument("workload_id", metavar="<workload_id>", help="workload ID.")

    def take_action(self, parsed_args):
        client = self.get_client()
        result = client.validate_scheduler_trust(parsed_args.workload_id)
        print(result)