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.
master
Alejandro Sirgo Rica 2024-02-09 11:32:10 +01:00 committed by OpenGnSys Support Team
parent 499272fa29
commit 9be4de87b7
4 changed files with 97 additions and 4 deletions

View File

@ -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):

View File

@ -25,6 +25,31 @@ class OgCenter():
payload['comment'] = parsed_args.desc
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')

View File

@ -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',
@ -41,6 +41,25 @@ class OgFolder():
payload['center'] = parsed_args.center_id
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')

View File

@ -84,10 +84,53 @@ class OgRoom():
payload['location'] = parsed_args.desc
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')