summaryrefslogtreecommitdiffstats
path: root/cli/objects
diff options
context:
space:
mode:
Diffstat (limited to 'cli/objects')
-rw-r--r--cli/objects/center.py25
-rw-r--r--cli/objects/folder.py23
-rw-r--r--cli/objects/room.py43
3 files changed, 89 insertions, 2 deletions
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')