mirror of https://git.48k.eu/ogcli/
Add 'list disks'
Enables consuming /client/setup API from ogServer in order to fetch partition and disk setup information from a given client. Example, if pc11 is a client with 1 disk, 4 part (1:linux,2-3:empty,4:cache): ogcli list disk --client-ip 192.168.56.11 { "partitions": [ { "disk": 1, "partition": 0, "code": 1, "size": 52428800, "used_size": 0, "filesystem": 0, "os": 0, "image": 0, "software": 0 }, { "disk": 1, "partition": 1, "code": 131, "size": 40000000, "used_size": 4, "filesystem": 6, "os": 8, "image": 0, "software": 0 }, { "disk": 1, "partition": 2, "code": 0, "size": 0, "used_size": 0, "filesystem": 1, "os": 0, "image": 0, "software": 0 }, { "disk": 1, "partition": 3, "code": 0, "size": 0, "used_size": 0, "filesystem": 1, "os": 0, "image": 0, "software": 0 }, { "disk": 1, "partition": 4, "code": 202, "size": 10000000, "used_size": 1, "filesystem": 2, "os": 0, "image": 0, "software": 0 } ] }master
parent
c417964179
commit
4dfb90cf56
|
@ -11,6 +11,7 @@ from cli.objects.scopes import OgScope
|
||||||
from cli.objects.modes import OgModes
|
from cli.objects.modes import OgModes
|
||||||
from cli.objects.wol import OgWol
|
from cli.objects.wol import OgWol
|
||||||
from cli.objects.images import OgImage
|
from cli.objects.images import OgImage
|
||||||
|
from cli.objects.disks import OgDisk
|
||||||
import argparse
|
import argparse
|
||||||
import requests
|
import requests
|
||||||
import sys
|
import sys
|
||||||
|
@ -51,7 +52,7 @@ class OgCLI():
|
||||||
|
|
||||||
def list(self, args):
|
def list(self, args):
|
||||||
choices = ['clients', 'scopes', 'modes', 'hardware',
|
choices = ['clients', 'scopes', 'modes', 'hardware',
|
||||||
'client', 'images']
|
'client', 'images', 'disks']
|
||||||
parser = argparse.ArgumentParser(prog='ogcli list')
|
parser = argparse.ArgumentParser(prog='ogcli list')
|
||||||
parser.add_argument('item', choices=choices)
|
parser.add_argument('item', choices=choices)
|
||||||
parsed_args = parser.parse_args([args[0]])
|
parsed_args = parser.parse_args([args[0]])
|
||||||
|
@ -68,6 +69,8 @@ class OgCLI():
|
||||||
OgScope.list_scopes(self.rest)
|
OgScope.list_scopes(self.rest)
|
||||||
elif parsed_args.item == 'images':
|
elif parsed_args.item == 'images':
|
||||||
OgImage.list_images(self.rest)
|
OgImage.list_images(self.rest)
|
||||||
|
elif parsed_args.item == 'disks':
|
||||||
|
OgDisk.list_disks(self.rest, args[1:])
|
||||||
|
|
||||||
def set(self, args):
|
def set(self, args):
|
||||||
choices = ['modes']
|
choices = ['modes']
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2021 Soleta Networks <info@soleta.eu>
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU Affero General Public License as published by the
|
||||||
|
# Free Software Foundation, version 3.
|
||||||
|
#
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
class OgDisk():
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def list_disks(rest, args):
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('--client-ip',
|
||||||
|
nargs='?',
|
||||||
|
required=True,
|
||||||
|
help='Client IP to query')
|
||||||
|
parsed_args = parser.parse_args(args)
|
||||||
|
payload = {'client': [parsed_args.client_ip]}
|
||||||
|
|
||||||
|
r = rest.get('/client/setup', payload=payload)
|
||||||
|
print(r.text)
|
Loading…
Reference in New Issue