summaryrefslogtreecommitdiffstats
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
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.
-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')