Ejemplo n.º 1
0
    def __init__(self, ip=None):
        self.base_ep = None
        self.admin_ep = None
        self.security_ep = None
        self.user_ep = None
        self.security_ep = None
        self.ip = ip

        self.mode = InterpreterMode.BASE

        # If you add a new endpoint, create a JSON file for it, then add it here
        self.admin_ep = Endpoint.factory(Endpoint.EpType.ADMIN, self.ip)
        self.user_ep = Endpoint.factory(Endpoint.EpType.USER, self.ip)
        self.security_ep = Endpoint.factory(Endpoint.EpType.SECURITY, self.ip)

        self.base_words = ['admin', 'user', 'security', 'login', 'exit']
        base_completer = WordCompleter(words=self.base_words, ignore_case=True)
        admin_completer = WordCompleter(words=self.admin_ep.commands.keys(),
                                        sentence=True)
        user_completer = WordCompleter(words=self.user_ep.commands.keys(),
                                       sentence=True)
        security_completer = WordCompleter(
            words=self.security_ep.commands.keys(), sentence=True)

        self.meta_completer = MetaCompleter()
        self.meta_completer.set_base_completer(base_completer)
        self.meta_completer.set_admin_completer(admin_completer)
        self.meta_completer.set_user_completer(user_completer)
        self.meta_completer.set_security_completer(security_completer)
        self.meta_completer.set_mode(InterpreterMode.BASE)
Ejemplo n.º 2
0
            with open('usertoken.json', 'r') as tokenfile:
                token = json.load(tokenfile)
    if token is None:
        print(
            'You must log in before using this command. Use sso_login.py to get a user token and save it in usertoken.json'
        )
        sys.exit(1)

    # Instantiate the appropriate endpoint:
    #   virtue          --> user_api
    #   virtue-admin    --> admin_api
    #   virtue-security --> security_api
    procname = os.path.basename(sys.argv[0])
    ep = None
    if procname == 'virtue':
        ep = Endpoint.factory(Endpoint.EpType.USER, ip)
    elif procname == 'virtue-admin':
        ep = Endpoint.factory(Endpoint.EpType.ADMIN, ip)
    elif procname == 'virtue-security':
        ep = Endpoint.factory(Endpoint.EpType.SECURITY, ip)
    elif procname == 'virtue-cli.py':
        print(
            'Please run this script through a symlink to virtue, virtue-admin, or virtue-security'
        )
        sys.exit(1)
    else:
        print('Unknown endpoint')
        sys.exit(1)

    # Use the provided token to authenticate to the API endpoint
    ep.set_token(token)