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'
master
Alejandro Sirgo Rica 2024-02-05 12:52:53 +01:00 committed by OpenGnSys Support Team
parent 642b0a49d4
commit 4881610656
2 changed files with 61 additions and 2 deletions

View File

@ -18,6 +18,7 @@ from cli.objects.server import OgServer
from cli.objects.live import OgLive from cli.objects.live import OgLive
from cli.objects.center import OgCenter from cli.objects.center import OgCenter
from cli.objects.room import OgRoom from cli.objects.room import OgRoom
from cli.objects.folder import OgFolder
import argparse import argparse
import requests import requests
import sys import sys
@ -199,7 +200,7 @@ class OgCLI():
OgImage.update_image(self.rest, args[1:]) OgImage.update_image(self.rest, args[1:])
def delete(self, args): def delete(self, args):
choices = ['server', 'repo', 'center', 'room', 'client'] choices = ['server', 'repo', 'center', 'room', 'client', 'folder']
parser = argparse.ArgumentParser(prog='ogcli delete') parser = argparse.ArgumentParser(prog='ogcli delete')
parser.add_argument('delete_obj', choices=choices) parser.add_argument('delete_obj', choices=choices)
@ -219,9 +220,11 @@ class OgCLI():
OgRoom.delete_room(self.rest, args[1:]) OgRoom.delete_room(self.rest, args[1:])
elif parsed_args.delete_obj == 'client': elif parsed_args.delete_obj == 'client':
OgClient.delete_client(self.rest, args[1:]) OgClient.delete_client(self.rest, args[1:])
elif parsed_args.add_obj == 'folder':
OgFolder.delete_folder(self.rest, args[1:])
def add(self, args): def add(self, args):
choices = ['server', 'repo', 'center', 'room', 'client'] choices = ['server', 'repo', 'center', 'room', 'client', 'folder']
parser = argparse.ArgumentParser(prog='ogcli add') parser = argparse.ArgumentParser(prog='ogcli add')
parser.add_argument('add_obj', choices=choices) parser.add_argument('add_obj', choices=choices)
@ -241,3 +244,5 @@ class OgCLI():
OgRoom.add_room(self.rest, args[1:]) OgRoom.add_room(self.rest, args[1:])
elif parsed_args.add_obj == 'client': elif parsed_args.add_obj == 'client':
OgClient.add_client(self.rest, args[1:]) OgClient.add_client(self.rest, args[1:])
elif parsed_args.add_obj == 'folder':
OgFolder.add_folder(self.rest, args[1:])

54
cli/objects/folder.py Normal file
View File

@ -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)