예제 #1
0
파일: cli.py 프로젝트: figtools/figgy-cli
    def is_setup_command(args):
        """
        Returns True for 'special' commands that configure figgy itself or follow non-normal execution paths.
        Needed to skip past steps that are not necessary because figgy isn't set up yet, or to support a special
        use case (like sandbox logins).
        """

        return Utils.is_set_true(configure, args) \
               or Utils.command_set(sandbox, args) \
               or Utils.is_set_true(version, args) \
               or Utils.attr_exists(profile, args) \
               or Utils.is_set_true(upgrade, args)
예제 #2
0
    def find_matching_optional_arguments(
            self, arguments: List[CliCommand]) -> Set[CliCommand]:
        optional_args = set()
        for arg in arguments:
            if Utils.is_set_true(arg, self.args):
                optional_args.add(arg)

        return optional_args
예제 #3
0
    def __init__(self, colors_enabled: bool, resource: CliCommand,
                 command: CliCommand, run_env: RunEnv, role: AssumableRole,
                 args: argparse.Namespace):
        self.colors_enabled = colors_enabled
        self.command: CliCommand = command
        self.resource: CliCommand = resource

        # This enables us to have "commands" without resources. Like `figgy login` instead of `figgy login login`.
        # Makes things a bit more flexible.
        self.command = self.command if command else resource

        self.args = args
        self.run_env: RunEnv = run_env
        self.selected_role: AssumableRole = role
        self.role: Role = self.selected_role.role if self.selected_role else None
        self.ci_config_path = Utils.attr_if_exists(config, args)
        self.from_path = Utils.attr_if_exists(from_path, args)
        self.out_file = Utils.attr_if_exists(out, args)
        self.query_prefix = Utils.attr_if_exists(prefix, args)
        self.service = Utils.attr_if_exists(service, args)
        self.profile = Utils.attr_if_exists(profile, args)

        # Flags like --prompt that are unset or set to true
        self.repl = Utils.is_set_true(replication_only, args)
        self.manual = Utils.is_set_true(manual, args)
        self.point_in_time = Utils.is_set_true(point_in_time, args)
        self.all_profiles = Utils.is_set_true(all_profiles, args)
        self.skip_upgrade = Utils.is_set_true(skip_upgrade, args)
        self.configure = Utils.is_set_true(configure, args)
        self.version = Utils.is_set_true(version, args)

        logger.info(self.__dict__)
예제 #4
0
    def __init__(self, run_env: RunEnv, role: Role, args, resource: CliCommand,
                 defaults: Optional[CLIDefaults]):
        super().__init__(run_env, resource, defaults=defaults)
        self.role = role  # type: Role
        self.args = args
        self.ci_config_path = Utils.attr_if_exists(config, args)
        self.from_path = Utils.attr_if_exists(from_path, args)
        self.out_file = Utils.attr_if_exists(out, args)
        self.prefix = Utils.attr_if_exists(prefix, args)
        self.service = Utils.attr_if_exists(service, args)

        # Flags like --prompt that are unset or set to true
        self.repl = Utils.is_set_true(replication_only, args)
        self.manual = Utils.is_set_true(manual, args)
        self.point_in_time = Utils.is_set_true(point_in_time, args)
        self.all_profiles = Utils.is_set_true(all_profiles, args)
        self.skip_upgrade = Utils.is_set_true(skip_upgrade, args)
        self.replication_only = Utils.is_set_true(replication_only, args)
        self.point_in_time = Utils.is_set_true(point_in_time, args)
        self.profile = Utils.attr_if_exists(profile, args)
예제 #5
0
 def has_optional_arguments(self, argument: CliCommand):
     return Utils.is_set_true(argument, self.args)