diff options
author | Roberto Hueso Gómez <rhueso@soleta.eu> | 2020-06-19 12:23:59 +0200 |
---|---|---|
committer | Roberto Hueso Gómez <rhueso@soleta.eu> | 2020-06-19 12:23:59 +0200 |
commit | dbdfc106bfc599ba86c4870b342e684eaf0b2476 (patch) | |
tree | 13ac14b82d2b9cb56ae343b656fe56e4fd68b4b0 | |
parent | d7b54d08bbcd55029daf57f726784950276accb3 (diff) |
Rewrite basic structure
This commit:
- Adds OgREST class as a wrapper for HTTP REST requests.
- Adds objects folder which will contain available functions for each object in
the OpenGnsys ecosystem (e.g. client, image, etc.).
-rwxr-xr-x | ogcli.py | 14 | ||||
-rw-r--r-- | ogcli/objects/__init__.py | 0 | ||||
-rw-r--r-- | ogcli/objects/og_client.py | 6 | ||||
-rw-r--r-- | ogcli/ogcli.py | 32 |
4 files changed, 32 insertions, 20 deletions
@@ -14,7 +14,7 @@ class CLI(): self.cfg = json.load(json_file) except json.JSONDecodeError: sys.exit(f'ERROR: Failed parse malformed JSON file ' - f'{OG_CLI_CFG_PATH}') + f'{OG_CLI_CFG_PATH}') except: sys.exit(f'ERROR: cannot open {OG_CLI_CFG_PATH}') @@ -24,20 +24,12 @@ class CLI(): parser.add_argument('command', help='Subcommand to run') args = parser.parse_args(sys.argv[1:2]) - if not hasattr(self, args.command): + if not hasattr(self.ogcli, args.command): parser.print_help() sys.exit('Unknown command') # Call the command with the same name. - getattr(self, args.command)(sys.argv[2:]) - - def list(self, args): - parser = argparse.ArgumentParser() - parser.add_argument('item', choices=['clients']) - parser.parse_args(args) - - if parser.item == 'clients': - self.ogcli.client_list() + getattr(self.ogcli, args.command)(sys.argv[2:]) if __name__ == "__main__": CLI() diff --git a/ogcli/objects/__init__.py b/ogcli/objects/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ogcli/objects/__init__.py diff --git a/ogcli/objects/og_client.py b/ogcli/objects/og_client.py new file mode 100644 index 0000000..ca91036 --- /dev/null +++ b/ogcli/objects/og_client.py @@ -0,0 +1,6 @@ +class OgClient(): + + @staticmethod + def list_clients(rest): + r = rest.get('/clients') + print(r.json()) diff --git a/ogcli/ogcli.py b/ogcli/ogcli.py index d383e2d..37fb2e0 100644 --- a/ogcli/ogcli.py +++ b/ogcli/ogcli.py @@ -1,18 +1,32 @@ +from ogcli.objects.og_client import OgClient +import argparse import requests +import sys -class OgCLI(): - def __init__(self, cfg): - self.api_token = cfg['api_token'] +class OgREST(): + def __init__(self, ip, port, api_token): + self.URL = f'http://{ip}:{port}' + self.HEADERS = {'Authorization' : api_token} - def client_list(self): - headers = {'Authorization' : self.api_token} + def get(self, path): try: - r = requests.get('http://127.0.0.1:8888/clients', - headers=headers) + r = requests.get(f'{self.URL}/clients', + headers=self.HEADERS) if r.status_code != 200: sys.exit(f"Cannot connect to ogServer: " - f"{r.status_code} HTTP status code") + f"{r.status_code} HTTP status code") except IOError as e: sys.exit(f"Cannot connect to ogServer: {e}") + return r + +class OgCLI(): + def __init__(self, cfg): + self.rest = OgREST(cfg['ip'], cfg['port'], cfg['api_token']) + + def list(self, args): + parser = argparse.ArgumentParser() + parser.add_argument('item', choices=['clients']) + args = parser.parse_args(args) - print(r.json()) + if args.item == 'clients': + OgClient.list_clients(self.rest) |