diff options
author | Alejandro Sirgo Rica <asirgo@soleta.eu> | 2024-02-05 12:52:53 +0100 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2024-02-05 12:58:52 +0100 |
commit | 4881610656dbc322804ca6eba1c8d5922cd8ac09 (patch) | |
tree | 176f740fd48178c25e466229ce138fecf01a679b /cli | |
parent | 642b0a49d43d74dfe79e73c9a25d7cd32b1301b5 (diff) |
folder: add commands to create and delete folders
add command to add folders
add folder --name test --room-id 123
to delete
delete folder --id 456
you can fetch the id with 'list scopes'
Diffstat (limited to 'cli')
-rw-r--r-- | cli/cli.py | 9 | ||||
-rw-r--r-- | cli/objects/folder.py | 54 |
2 files changed, 61 insertions, 2 deletions
@@ -18,6 +18,7 @@ from cli.objects.server import OgServer from cli.objects.live import OgLive from cli.objects.center import OgCenter from cli.objects.room import OgRoom +from cli.objects.folder import OgFolder import argparse import requests import sys @@ -199,7 +200,7 @@ class OgCLI(): OgImage.update_image(self.rest, args[1:]) def delete(self, args): - choices = ['server', 'repo', 'center', 'room', 'client'] + choices = ['server', 'repo', 'center', 'room', 'client', 'folder'] parser = argparse.ArgumentParser(prog='ogcli delete') parser.add_argument('delete_obj', choices=choices) @@ -219,9 +220,11 @@ class OgCLI(): OgRoom.delete_room(self.rest, args[1:]) elif parsed_args.delete_obj == 'client': OgClient.delete_client(self.rest, args[1:]) + elif parsed_args.add_obj == 'folder': + OgFolder.delete_folder(self.rest, args[1:]) def add(self, args): - choices = ['server', 'repo', 'center', 'room', 'client'] + choices = ['server', 'repo', 'center', 'room', 'client', 'folder'] parser = argparse.ArgumentParser(prog='ogcli add') parser.add_argument('add_obj', choices=choices) @@ -241,3 +244,5 @@ class OgCLI(): OgRoom.add_room(self.rest, args[1:]) elif parsed_args.add_obj == 'client': OgClient.add_client(self.rest, args[1:]) + elif parsed_args.add_obj == 'folder': + OgFolder.add_folder(self.rest, args[1:]) diff --git a/cli/objects/folder.py b/cli/objects/folder.py new file mode 100644 index 0000000..4b9485b --- /dev/null +++ b/cli/objects/folder.py @@ -0,0 +1,54 @@ +# Copyright (C) 2020-2024 Soleta Networks <opengnsys@soleta.eu> +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the +# Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +import sys +import argparse + +class OgFolder(): + + @staticmethod + def add_folder(rest, args): + parser = argparse.ArgumentParser(prog='ogcli add folder') + + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('--center-id', + nargs='?', + type=int, + required=True, + help='provide the id of the center that will contain the folder') + group.add_argument('--room-id', + nargs='?', + type=int, + required=True, + help='provide the id of the room that will contain the folder') + + parser.add_argument('--name', + nargs='?', + required=True, + help='name of the folder to be added') + parsed_args = parser.parse_args(args) + + payload = { + 'name': parsed_args.name, + } + if parsed_args.room_id: + payload['room'] = parsed_args.room_id + if parsed_args.center_id: + payload['center'] = parsed_args.center_id + rest.post('/folder/add', payload=payload) + + @staticmethod + def delete_folder(rest, args): + parser = argparse.ArgumentParser(prog='ogcli delete folder') + parser.add_argument('--id', + nargs='?', + type=int, + required=True, + help='folder id in database') + parsed_args = parser.parse_args(args) + payload = {'id': parsed_args.id} + rest.post('/folder/delete', payload=payload) |