Beispiel #1
0
    def __create(self, args, **extra_args):
        if not isinstance(args, argparse.Namespace):
            raise TypeError(
                logger.error(
                    "args should of an instance of argparse.Namespace"))

        agency_host = '{0}:{1}'.format(args.host, args.agency_port)
        agency = Agency(host=agency_host, token=args.token)

        if args.service != 'default' and 'default' not in agency.rules:
            logger.warning(
                'There is no default rules defined. Please fill out the default configuration file.'
            )
            rule = Rules.create()
            agency.create_rule(rule)
            logger.warning(
                'The default rule has been created if you still wish to create {0} please '
                'rerun the command.'.format(args.service))

        elif args.service in agency.rules:
            logger.error(
                '{0} has already been created. If you wish to edit the rules for {0} please run:'
                ' customs rules {1} edit {0}'.format(args.service,
                                                     agency.host))
        else:
            rule = Rules.create(args.service)
            agency.create_rule(rule)

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #2
0
    def start(self, args, **extra_args):
        """Deploy a docker container to a specific container ship (host)

        :param args:
        :type args:
        """
        if not isinstance(args, argparse.Namespace):
            raise TypeError(
                logger.error(
                    "args should of an instance of argparse.Namespace"))

        docker_host = '{0}:{1}'.format(args.host, args.docker_port)
        agency_host = '{0}:{1}'.format(args.host, args.agency_port)

        customs = Agent(
            {
                'host': agency_host,
                'tls_path': args.agency_tls,
                'token': args.token,
                'verify': args.agency_verify
            }, args.reconcile, {
                'host': docker_host,
                'tls_path': args.docker_tls,
                'verify': args.docker_verify
            })

        customs.start()

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #3
0
    def __init__(self, sub_parser):
        logger.setup_logging('cli')
        if not isinstance(sub_parser, argparse._SubParsersAction):
            raise TypeError(logger.error("parser should of an instance of argparse._SubParsersAction"))

        # Set up rules commands.
        self._parser = sub_parser.add_parser('catalog')
        super(CatalogCommand, self).__init__()
        self._add_sub_commands()
Beispiel #4
0
    def __default(self, args, **extra_args):
        """ Rules
        """
        if not isinstance(args, argparse.Namespace):
            raise TypeError(logger.error("args should of an instance of argparse.Namespace"))

        agency_host = '{0}:{1}'.format(args.host, args.agency_port)
        agency = Agency(host=agency_host, token=args.token)
        if agency.rules:
            for rule in agency.rules:
                logger.info(rule)
        else:
            logger.error('There are no rules defined. Please create a default run the following command:'
                         '\"customs rules {0} create default\"'.format(agency_host))

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #5
0
    def __init__(self, sub_parser):
        logger.setup_logging('cli')
        if not isinstance(sub_parser, argparse._SubParsersAction):
            raise TypeError(logger.error("parser should of an instance of argparse._SubParsersAction"))

        # Set up deploy parser and pass deploy function to defaults.
        self._parser = sub_parser.add_parser('agent')
        super(AgentCommand, self).__init__()
        self._build_arguments()
        self._parser.set_defaults(func=self.start)
Beispiel #6
0
    def __edit(self, args, **extra_args):
        if not isinstance(args, argparse.Namespace):
            raise TypeError(logger.error("args should of an instance of argparse.Namespace"))

        agency_host = '{0}:{1}'.format(args.host, args.agency_port)
        agency = Agency(host=agency_host, token=args.token)

        if args.service in agency.rules:
            rule = agency.get_rule(args.service)
            rule.edit()
            agency.update_rule(rule)
        else:
            logger.error(
                'Was unable to find rules for service: {0}. Please run: '
                '\"customs rules {1} create {0}\"'.format(args.service, agency.host)
            )

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #7
0
    def __default(self, args, **extra_args):
        """ Rules
        """
        if not isinstance(args, argparse.Namespace):
            raise TypeError(
                logger.error(
                    "args should of an instance of argparse.Namespace"))

        agency_host = '{0}:{1}'.format(args.host, args.agency_port)
        agency = Agency(host=agency_host, token=args.token)
        if agency.rules:
            for rule in agency.rules:
                logger.info(rule)
        else:
            logger.error(
                'There are no rules defined. Please create a default run the following command:'
                '\"customs rules {0} create default\"'.format(agency_host))

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #8
0
    def __init__(self, sub_parser):
        logger.setup_logging('cli')
        if not isinstance(sub_parser, argparse._SubParsersAction):
            raise TypeError(
                logger.error(
                    "parser should of an instance of argparse._SubParsersAction"
                ))

        # Set up deploy parser and pass deploy function to defaults.
        self._parser = sub_parser.add_parser('agent')
        super(AgentCommand, self).__init__()
        self._build_arguments()
        self._parser.set_defaults(func=self.start)
Beispiel #9
0
    def __init__(self, sub_parser):
        logger.setup_logging('cli')
        if not isinstance(sub_parser, argparse._SubParsersAction):
            raise TypeError(
                logger.error(
                    "parser should of an instance of argparse._SubParsersAction"
                ))

        # Set up rules commands.
        self._parser = sub_parser.add_parser('rules')
        super(RulesCommand, self).__init__()
        self._parser.set_defaults(func=self.__default)
        self.__add_sub_commands()
Beispiel #10
0
    def __edit(self, args, **extra_args):
        if not isinstance(args, argparse.Namespace):
            raise TypeError(
                logger.error(
                    "args should of an instance of argparse.Namespace"))

        agency_host = '{0}:{1}'.format(args.host, args.agency_port)
        agency = Agency(host=agency_host, token=args.token)

        if args.service in agency.rules:
            rule = agency.get_rule(args.service)
            rule.edit()
            agency.update_rule(rule)
        else:
            logger.error(
                'Was unable to find rules for service: {0}. Please run: '
                '\"customs rules {1} create {0}\"'.format(
                    args.service, agency.host))

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #11
0
    def __create(self, args, **extra_args):
        if not isinstance(args, argparse.Namespace):
            raise TypeError(logger.error("args should of an instance of argparse.Namespace"))

        agency_host = '{0}:{1}'.format(args.host, args.agency_port)
        agency = Agency(host=agency_host, token=args.token)

        if args.service != 'default' and 'default' not in agency.rules:
            logger.warning('There is no default rules defined. Please fill out the default configuration file.')
            rule = Rules.create()
            agency.create_rule(rule)
            logger.warning('The default rule has been created if you still wish to create {0} please '
                           'rerun the command.'.format(args.service))

        elif args.service in agency.rules:
            logger.error('{0} has already been created. If you wish to edit the rules for {0} please run:'
                         ' customs rules {1} edit {0}'.format(args.service, agency.host))
        else:
            rule = Rules.create(args.service)
            agency.create_rule(rule)

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #12
0
    def _list(self, args, **extra_args):
        if not isinstance(args, argparse.Namespace):
            raise TypeError(logger.error("args should of an instance of argparse.Namespace"))

        agency_host = '{0}:{1}'.format(args.host, args.agency_port)
        agency = Agency(host=agency_host, token=args.token)

        for services in agency.catalog.services():
            if isinstance(services, dict):
                for service, tags in services.items():
                    logger.info(service)
            else:
                logger.info(services)

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #13
0
    def _list(self, args, **extra_args):
        if not isinstance(args, argparse.Namespace):
            raise TypeError(logger.error("args should of an instance of argparse.Namespace"))

        agency_host = '{0}:{1}'.format(args.host, args.agency_port)
        agency = Agency(host=agency_host, token=args.token)

        data_centers = agency.catalog.datacenters()
        if isinstance(data_centers, list):
            for data_center in agency.catalog.datacenters():
                logger.info(data_center)
        else:
            logger.info(data_centers)

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)
Beispiel #14
0
    def start(self, args, **extra_args):
        """Deploy a docker container to a specific container ship (host)

        :param args:
        :type args:
        """
        if not isinstance(args, argparse.Namespace):
            raise TypeError(logger.error("args should of an instance of argparse.Namespace"))

        docker_host = '{0}:{1}'.format(args.host, args.docker_port)
        agency_host = '{0}:{1}'.format(args.host, args.agency_port)

        customs = Agent(
            {'host': agency_host, 'tls_path': args.agency_tls, 'token': args.token, 'verify': args.agency_verify},
            args.reconcile,
            {'host': docker_host, 'tls_path': args.docker_tls, 'verify': args.docker_verify}
        )

        customs.start()

        exit_code = 0
        if exit_code != 0:
            exit(exit_code)