Go to file
OpenGnSys Support Team 09cb99b057 ogcli: ignore SIGPIPE
# ogcli list scope | less
 ... leave it open for one minute, then press 'q' to exit less

 it shows:

Traceback (most recent call last):
  File "/usr/bin/ogcli", line 60, in <module>
    CLI()
  File "/usr/bin/ogcli", line 56, in __init__
    getattr(self.ogcli, args.command)(sys.argv[2:])
  File "/opt/opengnsys/bin/cli/cli.py", line 93, in list
    OgScope.list_scopes(self.rest)
  File "/opt/opengnsys/bin/cli/objects/scopes.py", line 18, in list_scopes
    print_json(r.text)
  File "/opt/opengnsys/bin/cli/utils.py", line 34, in print_json
    print(json.dumps(payload, sort_keys=True, indent=2))
BrokenPipeError: [Errno 32] Broken pipe

It seems that the request library in python leaves the socket open
while it still displays the listing.

Ignore SIGPIPE which reports that socket is not there anymore, it is
a common practise to ignore this signal in socket.
2023-11-03 10:40:00 +01:00
cfg Add ip and port parameters to config 2020-06-19 12:49:49 +02:00
cli client: support for adding clients 2023-10-27 11:57:25 +02:00
examples examples: add examples folder 2022-11-13 18:49:59 +01:00
.gitignore add .gitignore 2020-06-18 16:53:41 +02:00
COPYING First commit 2020-06-18 16:44:08 +02:00
README.md README: add setup example and update commands 2022-05-20 08:54:12 +02:00
ogcli ogcli: ignore SIGPIPE 2023-11-03 10:40:00 +01:00

README.md

ogCLI

Manage your OpenGnsys environment from your command line. A CLI for the ogServer REST API.

Installation

This tool is expected to be executed from the OpenGnsys installation environment.

Before running any command copy ogcli.json inside /opt/opengnsys/etc/

Usage

ogcli {command} {object} [{command object options}]

Commands

usage: ogcli [-h] [{create,list,restore,send,set,setup}]

positional arguments:
  {create,list,restore,send,set,setup}
                        Subcommand to run

options:
  -h, --help            show this help message and exit

create

Create images.

usage: ogcli create [-h] {image}

positional arguments:
  {image}

options:
  -h, --help  show this help message and exit

list

You can list currently connected clients, disk, scope tree, boot modes, hardware/software profiles, images, and specific client information.

usage: ogcli list [-h] {clients,scopes,modes,hardware,client,images,disks}

positional arguments:
  {clients,scopes,modes,hardware,client,images,disks}

options:
  -h, --help            show this help message and exit

restore

Restore an image partition

usage: ogcli restore [-h] {image}

positional arguments:
  {image}

options:
  -h, --help  show this help message and exit

send

Send WoL, poweroff or refresh to a given scope.

usage: ogcli send [-h] {wol,poweroff,refresh}

positional arguments:
  {wol,poweroff,refresh}

options:
  -h, --help            show this help message and exit

set

Set properties of the managed computers.

You can modify boot mode using set.

usage: ogcli set [-h] {modes}

positional arguments:
  {modes}

positional arguments:
  {modes}

optional arguments:
  -h, --help  show this help message and exit

setup

Setup disks of a given scope

usage: ogcli setup [-h] {disk}

positional arguments:
  {disk}

options:
  -h, --help  show this help message and exit

Objects

They are subject to the specified command.

  • clients: Currently connected clients to the ogServer
  • client: Any specific client
  • disk: Client's disks
  • images: Partition images
  • modes: Network boot modes
  • hardware: Hardware profiles
  • scopes: Scope tree of managed computers, rooms and centers.

Examples

Client setup

DOS/MBR, first partition: 40G Linux/ext4, also add a 10G OpenGnsys cache partition. Format each partition.
ogcli setup disk --type dos --part 1,LINUX,EXT4,40G --part 4,CACHE,CACHE,10G --format 1,4 --client-ip 192.168.56.11

Changing the boot mode of computers in a particular classroom

Fetching a classroom id
ogcli list scopes

{'scope': [{'name': 'Unidad Organizativa (Default)', 'type': 'center', 'id': 1, 'scope': [{'name': 'Aula virtual', 'type': 'room', 'id': 1, ...
Fetching net boot modes
ogcli list modes

{'modes': ['11', 'pxe', '00unknown', '19pxeADMIN', '13', '10', '12']}
Changing boot mode of the classroom
ogcli set modes --room-id 1 --mode pxe

License

ogCLI is released under the GNU Affero Public License v3

Authors

Soleta Networks