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)