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:
# Copyright (c) 2014 TrilioData, Inc.
# All Rights Reserved.
import abc
import logging
import six
from cliff import _argparse
from cliff import command
from cliff import lister
from cliff import show
from workloadmgrclient.v1.client import Client  # noqa


logger = logging.getLogger(__name__)


# cliff.command.Command is abstract class so that metaclass of
# subclass must be subclass of metaclass of all its base.
# otherwise metaclass conflict exception is raised.
class WorkloadmgrCommandMeta(abc.ABCMeta):
    def __new__(cls, name, bases, cls_dict):
        if "log" not in cls_dict:
            cls_dict["log"] = logging.getLogger(cls_dict["__module__"] + "." + name)
        return super(WorkloadmgrCommandMeta, cls).__new__(cls, name, bases, cls_dict)


@six.add_metaclass(WorkloadmgrCommandMeta)
class WorkloadmgrCommand(command.Command):
    values_specs = []
    json_indent = None
    resource = "workloads"
    shadow_resource = None
    parent_id = None

    def run(self, parsed_args):
        logger.debug("run(%s)", parsed_args)
        return super(WorkloadmgrCommand, self).run(parsed_args)

    @property
    def cmd_resource(self):
        if self.shadow_resource:
            return self.shadow_resource
        return self.resource

    def get_client(self):
        return getattr(self.app.client_manager.workloadmgr, self.cmd_resource)

    def get_parser(self, prog_name):
        parser = super(WorkloadmgrCommand, self).get_parser(prog_name)
        self._add_arguments(parser)
        return parser

    @staticmethod
    def _add_arguments(parser):
        pass

    def add_known_arguments(self, parser):
        pass

    def set_extra_attrs(self, parsed_args):
        pass

    def args2body(self, parsed_args):
        return {}