From 4881610656dbc322804ca6eba1c8d5922cd8ac09 Mon Sep 17 00:00:00 2001 From: Alejandro Sirgo Rica Date: Mon, 5 Feb 2024 12:52:53 +0100 Subject: 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' --- cli/cli.py | 9 +++++++-- cli/objects/folder.py | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 cli/objects/folder.py (limited to 'cli') diff --git a/cli/cli.py b/cli/cli.py index 0533c01..1271982 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -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 +# +# 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) -- cgit v1.2.3-18-g5258