repo: sync repo with new API

Add repo update.
Example command:
  update repo --id 20 --address 192.168.1.189 192.168.1.191 --name test --center 1

Use addr instead of ip to pass a list of addresses.
master
Alejandro Sirgo Rica 2024-08-26 14:56:29 +02:00
parent faebdd5a0d
commit 28ec68df42
2 changed files with 39 additions and 6 deletions

View File

@ -191,7 +191,7 @@ class OgCLI():
OgDisk.setup_disk(self.rest, args[1:])
def update(self, args):
choices = ['image', 'center', 'room', 'folder']
choices = ['image', 'repo', 'center', 'room', 'folder']
parser = argparse.ArgumentParser(prog='ogcli update')
parser.add_argument('update_obj', choices=choices)
@ -209,6 +209,8 @@ class OgCLI():
OgRoom.update_room(self.rest, args[1:])
elif parsed_args.update_obj == 'folder':
OgFolder.update_folder(self.rest, args[1:])
elif parsed_args.update_obj == 'repo':
OgRepo.update_repo(self.rest, args[1:])
def delete(self, args):
choices = ['server', 'repo', 'center', 'room', 'client', 'folder']

View File

@ -20,27 +20,58 @@ class OgRepo():
def add_repo(rest, args):
parser = argparse.ArgumentParser(prog='ogcli add repo')
parser.add_argument('--address',
nargs='?',
nargs='+',
required=True,
help='valid ip address')
help='IP list separated by spaces')
parser.add_argument('--name',
nargs='?',
required=True,
help='valid ip address')
help='name of the repository')
parser.add_argument('--center',
nargs='?',
type=int,
help='(Optional, Legacy) Center id serving this repository')
parsed_args = parser.parse_args(args)
payload = {
'ip': parsed_args.address,
'addr': parsed_args.address,
'name': parsed_args.name,
}
if parsed_args.center:
payload['center']: center
payload['center']: parsed_args.center
rest.post('/repository/add', payload=payload)
@staticmethod
def update_repo(rest, args):
parser = argparse.ArgumentParser(prog='ogcli add repo')
parser.add_argument('--id',
type=int,
nargs='?',
required=True,
help='repo id (list repos using "ogcli list repos")')
parser.add_argument('--address',
nargs='+',
required=True,
help='IP list separated by spaces')
parser.add_argument('--name',
nargs='?',
required=True,
help='name of the repository')
parser.add_argument('--center',
nargs='?',
type=int,
help='(Optional, Legacy) Center id serving this repository')
parsed_args = parser.parse_args(args)
payload = {
'id': parsed_args.id,
'addr': parsed_args.address,
'name': parsed_args.name,
}
if parsed_args.center:
payload['center']: parsed_args.center
rest.post('/repository/update', payload=payload)
@staticmethod
def delete_repo(rest, args):
parser = argparse.ArgumentParser(prog='ogcli delete repo')