summaryrefslogtreecommitdiffstats
path: root/cli/objects
diff options
context:
space:
mode:
Diffstat (limited to 'cli/objects')
-rw-r--r--cli/objects/room.py88
1 files changed, 88 insertions, 0 deletions
diff --git a/cli/objects/room.py b/cli/objects/room.py
new file mode 100644
index 0000000..66d0dba
--- /dev/null
+++ b/cli/objects/room.py
@@ -0,0 +1,88 @@
+import sys
+import argparse
+from cli.utils import check_address
+
+class OgRoom():
+
+ @staticmethod
+ def add_room(rest, args):
+ parser = argparse.ArgumentParser(prog='ogcli add room')
+ parser.add_argument('--name',
+ nargs='?',
+ required=True,
+ help='give a name to the room')
+ parser.add_argument('--netmask',
+ nargs='?',
+ required=True,
+ help='provide the netmask for the room')
+ parser.add_argument('--center',
+ nargs='?',
+ type=int,
+ required=True,
+ help='provide the id of the center that will contain the room')
+ parser.add_argument('--location',
+ nargs='?',
+ required=False,
+ help='specify the location of the room')
+ parser.add_argument('--gateway',
+ nargs='?',
+ required=True,
+ help='address of the main gateway in the room')
+ parser.add_argument('--ntp',
+ nargs='?',
+ required=False,
+ help='address of the ntp server')
+ parser.add_argument('--dns',
+ nargs='?',
+ required=False,
+ help='address of the dns server')
+ parser.add_argument('--group',
+ nargs='?',
+ type=int,
+ required=False,
+ help='id of the group that will contain 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 parsed_args.ntp and not check_address(parsed_args.ntp):
+ print('invalid ntp address', file=sys.stderr)
+ err = True
+ if parsed_args.dns and not check_address(parsed_args.dns):
+ print('invalid dns address', file=sys.stderr)
+ err = True
+ if err:
+ parser.print_help(file=sys.stderr)
+ sys.exit(1)
+
+ payload = {
+ 'name': parsed_args.name,
+ 'netmask': parsed_args.netmask,
+ 'center': parsed_args.center
+ }
+ if parsed_args.gateway:
+ payload['gateway'] = parsed_args.gateway
+ if parsed_args.ntp:
+ payload['ntp'] = parsed_args.ntp
+ if parsed_args.dns:
+ payload['dns'] = parsed_args.dns
+ if parsed_args.group:
+ payload['group'] = parsed_args.group
+ rest.post('/room/add', payload=payload)
+
+ @staticmethod
+ def delete_room(rest, args):
+ parser = argparse.ArgumentParser(prog='ogcli delete room')
+ parser.add_argument('--id',
+ nargs='?',
+ required=True,
+ help='room id in database')
+ parsed_args = parser.parse_args(args)
+ payload = {'id': parsed_args.id}
+ rest.post('/room/delete', payload=payload)
+