repo: add add_repo function

User can add a new repository to the database using "ogcli add repo":

$ ogcli add repo --name ogcli --address 10.10.10.10
{
    "center": 1,
    "id": 13,
    "ip": "10.10.10.10",
    "name": "ogcli"
}

The --center optional parameter is used to set the center column of
"repositorios" table in the database to the specified value. If this
parameter is missing ogServer API will default to center with id 1 (the
default center). This is to not break the repository in the legacy
webconsole users.
master
Jose M. Guisado 2023-10-11 17:50:19 +02:00
parent 4e89fe44d0
commit a4bf35ef28
2 changed files with 28 additions and 1 deletions

View File

@ -209,7 +209,7 @@ class OgCLI():
OgServer.delete_server(self.rest, args[1:])
def add(self, args):
choices = ['server']
choices = ['server', 'repo']
parser = argparse.ArgumentParser(prog='ogcli add')
parser.add_argument('add_obj', choices=choices)
@ -221,3 +221,5 @@ class OgCLI():
parsed_args = parser.parse_args([args[0]])
if parsed_args.add_obj == 'server':
OgServer.add_server(self.rest, args[1:])
elif parsed_args.add_obj == 'repo':
OgRepo.add_repo(self.rest, args[1:])

View File

@ -16,6 +16,31 @@ class OgRepo():
r = rest.get('/repositories')
print_json(r.text)
@staticmethod
def add_repo(rest, args):
parser = argparse.ArgumentParser(prog='ogcli add repo')
parser.add_argument('--address',
nargs='?',
required=True,
help='valid ip address')
parser.add_argument('--name',
nargs='?',
required=True,
help='valid ip address')
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,
'name': parsed_args.name,
}
if parsed_args.center:
payload['center']: center
rest.post('/repository/add', payload=payload)
@staticmethod
def set_repo(rest, args):
parser = argparse.ArgumentParser(prog='ogcli set repo')