summaryrefslogtreecommitdiffstats
path: root/cli
diff options
context:
space:
mode:
authorAlejandro Sirgo Rica <asirgo@soleta.eu>2024-02-09 11:32:10 +0100
committerOpenGnSys Support Team <soporte-og@soleta.eu>2024-02-13 12:13:00 +0100
commit9be4de87b7ba14adc6754f408d855b960ffeca25 (patch)
treea39db25f300b338ffb71a538485f22c646286d06 /cli
parent499272fa2996fa0d1152645e190d8012b6b83a50 (diff)
ogcli: add update command for folder, room and center
Expand of the update command to be able to modify the values of previous folder, room and center configurations.
Diffstat (limited to 'cli')
-rw-r--r--cli/cli.py10
-rw-r--r--cli/objects/center.py25
-rw-r--r--cli/objects/folder.py23
-rw-r--r--cli/objects/room.py43
4 files changed, 97 insertions, 4 deletions
diff --git a/cli/cli.py b/cli/cli.py
index 1271982..ecff067 100644
--- a/cli/cli.py
+++ b/cli/cli.py
@@ -186,7 +186,7 @@ class OgCLI():
OgDisk.setup_disk(self.rest, args[1:])
def update(self, args):
- choices = ['image']
+ choices = ['image', 'center', 'room', 'folder']
parser = argparse.ArgumentParser(prog='ogcli update')
parser.add_argument('update_obj', choices=choices)
@@ -198,6 +198,12 @@ class OgCLI():
parsed_args = parser.parse_args([args[0]])
if parsed_args.update_obj == 'image':
OgImage.update_image(self.rest, args[1:])
+ elif parsed_args.update_obj == 'center':
+ OgCenter.update_center(self.rest, args[1:])
+ elif parsed_args.update_obj == 'room':
+ OgRoom.update_room(self.rest, args[1:])
+ elif parsed_args.update_obj == 'folder':
+ OgFolder.update_folder(self.rest, args[1:])
def delete(self, args):
choices = ['server', 'repo', 'center', 'room', 'client', 'folder']
@@ -220,7 +226,7 @@ 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':
+ elif parsed_args.delete_obj == 'folder':
OgFolder.delete_folder(self.rest, args[1:])
def add(self, args):
diff --git a/cli/objects/center.py b/cli/objects/center.py
index 0318a57..80e5e3e 100644
--- a/cli/objects/center.py
+++ b/cli/objects/center.py
@@ -26,6 +26,31 @@ class OgCenter():
rest.post('/center/add', payload=payload)
@staticmethod
+ def update_center(rest, args):
+ parser = argparse.ArgumentParser(prog='ogcli update center')
+ parser.add_argument('--id',
+ type=int,
+ nargs='?',
+ required=True,
+ help='center id in database')
+ parser.add_argument('--name',
+ nargs='?',
+ required=True,
+ help='the new name for the center')
+ parser.add_argument('--comment',
+ nargs='?',
+ required=False,
+ help='the new comment for the center')
+ parsed_args = parser.parse_args(args)
+ payload = {
+ 'id': parsed_args.id,
+ 'name': parsed_args.name,
+ }
+ if parsed_args.comment:
+ payload['comment'] = parsed_args.comment
+ rest.post('/center/update', payload=payload)
+
+ @staticmethod
def delete_center(rest, args):
parser = argparse.ArgumentParser(prog='ogcli delete center')
parser.add_argument('--id',
diff --git a/cli/objects/folder.py b/cli/objects/folder.py
index 4b9485b..c4da900 100644
--- a/cli/objects/folder.py
+++ b/cli/objects/folder.py
@@ -18,12 +18,12 @@ class OgFolder():
group.add_argument('--center-id',
nargs='?',
type=int,
- required=True,
+ required=False,
help='provide the id of the center that will contain the folder')
group.add_argument('--room-id',
nargs='?',
type=int,
- required=True,
+ required=False,
help='provide the id of the room that will contain the folder')
parser.add_argument('--name',
@@ -42,6 +42,25 @@ class OgFolder():
rest.post('/folder/add', payload=payload)
@staticmethod
+ def update_folder(rest, args):
+ parser = argparse.ArgumentParser(prog='ogcli update folder')
+ parser.add_argument('--id',
+ type=int,
+ nargs='?',
+ required=True,
+ help='folder id in database')
+ parser.add_argument('--name',
+ nargs='?',
+ required=True,
+ help='the new name for the folder')
+ parsed_args = parser.parse_args(args)
+ payload = {
+ 'id': parsed_args.id,
+ 'name': parsed_args.name,
+ }
+ rest.post('/folder/update', payload=payload)
+
+ @staticmethod
def delete_folder(rest, args):
parser = argparse.ArgumentParser(prog='ogcli delete folder')
parser.add_argument('--id',
diff --git a/cli/objects/room.py b/cli/objects/room.py
index 9198237..f22c843 100644
--- a/cli/objects/room.py
+++ b/cli/objects/room.py
@@ -85,9 +85,52 @@ class OgRoom():
rest.post('/room/add', payload=payload)
@staticmethod
+ def update_room(rest, args):
+ parser = argparse.ArgumentParser(prog='ogcli update room')
+ parser.add_argument('--id',
+ type=int,
+ nargs='?',
+ required=True,
+ help='room id in database')
+ parser.add_argument('--name',
+ nargs='?',
+ required=True,
+ help='the updated name for the room')
+ parser.add_argument('--netmask',
+ nargs='?',
+ required=True,
+ help='the updated netmask for the room')
+ parser.add_argument('--gateway',
+ nargs='?',
+ required=True,
+ help='updated address of the main gateway in the room')
+ parsed_args = parser.parse_args(args)
+
+ err = False
+ if parsed_args.netmask and not check_address(parsed_args.netmask):
+ print('invalid netmask address', file=sys.stderr)
+ err = True
+ if parsed_args.gateway and not check_address(parsed_args.gateway):
+ print('invalid gateway address', file=sys.stderr)
+ err = True
+ if err:
+ parser.print_help(file=sys.stderr)
+ sys.exit(1)
+
+ payload = {
+ 'id': parsed_args.id,
+ 'name': parsed_args.name,
+ 'netmask': parsed_args.netmask,
+ 'gateway': parsed_args.gateway,
+ }
+
+ rest.post('/room/update', payload=payload)
+
+ @staticmethod
def delete_room(rest, args):
parser = argparse.ArgumentParser(prog='ogcli delete room')
parser.add_argument('--id',
+ type=int,
nargs='?',
required=True,
help='room id in database')