gridcli reference

This reference is generated from gridcli itself, so it matches the output of gridcli -h and of -h after any command. Some commands, such as wall, redeploy, and the machine commands, need staff rights.

gridcli

usage: gridcli [-h] [-d] [-v] [-q] [-n] [--token TOKEN | --token-file PATH]
               [--user USERNAME] [--password PASSWORD]
               [--save-credentials | --no-save-credentials] [--host HOSTNAME]
               {status,wall,redeploy,users,keys,key,images,image,machines,machine,nodes,node,devicescan,flash,instances,reservations,reservation,batch,settings,tg,rf,dyse,teams,competitions,submissions,submit}
               ...

Interact with Grid API

positional arguments:
  {status,wall,redeploy,users,keys,key,images,image,machines,machine,nodes,node,devicescan,flash,instances,reservations,reservation,batch,settings,tg,rf,dyse,teams,competitions,submissions,submit}
    status              Get Grid status
    wall                Send a message to all users
    redeploy            Redeploy all machines
    users               List users
    keys                List SSH keys
    key                 Manipulate an SSH key
    images              List images
    image               Manipulate an image
    machines            List machines
    machine             Manipulate a machine
    nodes               List nodes
    node                Manipulate a node
    devicescan          Scan machine for devices
    flash               Flash a device
    instances           List instances
    reservations        List reservations
    reservation         Manipulate a reservation
    batch               Submit a reservation template (deprecated; use
                        reservation submit)
    settings            Manage Grid settings
    tg                  Manage traffic generation and scenarios
    rf                  Manage RF scenarios
    dyse                Manage DYSE
    teams               List teams
    competitions        List competitions
    submissions         List submissions
    submit              Submit an image to a competition

options:
  -h, --help            show this help message and exit
  -d, --debug           print debugging information (default: 30)
  -v, --verbose         be verbose (default: None)
  -q, --quiet           do not ask for confirmation (default: False)
  -n, --dry-run         dry run (default: False)
  --token TOKEN         use authentication token (default: None)
  --token-file PATH     read authentication token from PATH, or from standard
                        input if PATH is -, which keeps it out of the process
                        list (default: None)
  --user USERNAME       set username (default: None)
  --password PASSWORD   set password (default: None)
  --save-credentials    Save user credentials (default: True)
  --no-save-credentials, --nosave-credentials
                        Do not save user credentials
  --host HOSTNAME       set API host (default: https://dwslgrid.ece.drexel.edu/)

gridcli status

usage: gridcli status [-h]

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

gridcli wall

usage: gridcli wall [-h] [--async | --poll-interval SECONDS] MESSAGE

positional arguments:
  MESSAGE               Message to send

options:
  -h, --help            show this help message and exit
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli redeploy

usage: gridcli redeploy [-h] [--force] [--async | --poll-interval SECONDS]

options:
  -h, --help            show this help message and exit
  --force               Force deployment even if machine is in use
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli users

usage: gridcli users [-h] {import} ...

positional arguments:
  {import}
    import    Import users

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

gridcli users import

usage: gridcli users import [-h] [--note TEXT] FILE

positional arguments:
  FILE         CSV file containing users to import

options:
  -h, --help   show this help message and exit
  --note TEXT  note to attach to user

gridcli keys

usage: gridcli keys [-h]

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

gridcli key

usage: gridcli key [-h] {delete,add} ...

positional arguments:
  {delete,add}
    delete      Delete a key
    add         Add a key

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

gridcli key delete

usage: gridcli key delete [-h] KEY

positional arguments:
  KEY         SSH key to delete

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

gridcli key add

usage: gridcli key add [-h] PATH [PATH ...]

positional arguments:
  PATH        Path to SSH key

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

gridcli images

usage: gridcli images [-h]

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

gridcli image

usage: gridcli image [-h] {public,private,push} ...

positional arguments:
  {public,private,push}
    public              Make an image public
    private             Make an image private
    push                Push an image to one or more machines

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

gridcli image public

usage: gridcli image public [-h] NAME [NAME ...]

positional arguments:
  NAME        Image name

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

gridcli image private

usage: gridcli image private [-h] NAME [NAME ...]

positional arguments:
  NAME        Image name

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

gridcli image push

usage: gridcli image push [-h] [--async | --poll-interval SECONDS]
                          IMAGE MACHINE [MACHINE ...]

positional arguments:
  IMAGE                 Image
  MACHINE               Machine

options:
  -h, --help            show this help message and exit
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli machines

usage: gridcli machines [-h]

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

gridcli machine

usage: gridcli machine [-h] {deploy,redeploy,release} ...

positional arguments:
  {deploy,redeploy,release}
    deploy              Deploy machine
    redeploy            Re-deploy machine
    release             Release machine

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

gridcli machine deploy

usage: gridcli machine deploy [-h] [--force] [--async | --poll-interval SECONDS]
                              HOSTNAME [HOSTNAME ...]

positional arguments:
  HOSTNAME              Machine

options:
  -h, --help            show this help message and exit
  --force               Force deployment even if machine is in use
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli machine redeploy

usage: gridcli machine redeploy [-h] [--force]
                                [--async | --poll-interval SECONDS]
                                HOSTNAME [HOSTNAME ...]

positional arguments:
  HOSTNAME              Machine

options:
  -h, --help            show this help message and exit
  --force               Force deployment even if machine is in use
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli machine release

usage: gridcli machine release [-h] [--force]
                               [--async | --poll-interval SECONDS]
                               HOSTNAME [HOSTNAME ...]

positional arguments:
  HOSTNAME              Machine

options:
  -h, --help            show this help message and exit
  --force               Force deployment even if machine is in use
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli nodes

usage: gridcli nodes [-h] [--all]

options:
  -h, --help  show this help message and exit
  --all       Show all nodes

gridcli node

usage: gridcli node [-h] {profile,launch,stop,snapshot,update} ...

positional arguments:
  {profile,launch,stop,snapshot,update}
    profile             Show LXC profile for node
    launch              Launch a container
    stop                Stop a container
    snapshot            Snapshot a container
    update              Update node's active instance's LXC config

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

gridcli node profile

usage: gridcli node profile [-h] [--user USER] NODE [NODE ...]

positional arguments:
  NODE         Node

options:
  -h, --help   show this help message and exit
  --user USER  User

gridcli node launch

usage: gridcli node launch [-h] [--remote-image] [--privileged | --unprivileged]
                           [--dragonradio-service | --no-dragonradio-service]
                           [--bridge | --no-bridge]
                           [--uhd {3.9.5,3.9.7,3.15.LTS,4.0.0.0,4.2.0.0} | --no-flash]
                           [--start TIME] [--duration DURATION | --no-duration]
                           [--user USERNAME] [--csv PATH] [--owner USER]
                           [--frequency FREQUENCY] [--bandwidth BANDWIDTH]
                           [--radio-conf PATH] [--traffic] [--no-traffic]
                           [--node-id ID | --set-node-ids]
                           [--async | --poll-interval SECONDS]
                           IMAGE NODE [NODE ...]

positional arguments:
  IMAGE                 Image
  NODE                  Node

options:
  -h, --help            show this help message and exit
  --remote-image        Allow remote images
  --privileged          Make container privileged
  --unprivileged        Make container unprivileged
  --dragonradio-service
                        Keep the dragonradio service enabled
  --no-dragonradio-service
                        Disable the dragonradio service
  --bridge              Add bridge interface to container
  --no-bridge, --nobridge
                        Do not add bridge interface to container
  --uhd {3.9.5,3.9.7,3.15.LTS,4.0.0.0,4.2.0.0}
                        UHD version to use for device flashing. If not
                        specified, use the Grid's default.
  --no-flash, --noflash
                        Do not flash
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

Reservation scheduling options:
  --start TIME          Reservation start time. If not specified, start ASAP.
  --duration DURATION   Reservation duration.
  --no-duration         Reservation has unlimited duration.

Container user options:
  --user USERNAME       User given access to container
  --csv PATH            CSV file containing users to give access to container
  --owner USER          Container owner

RF options:
  --frequency FREQUENCY
                        Set center frequency
  --bandwidth BANDWIDTH
                        Set RF bandwidth
  --radio-conf PATH     Path to radio.conf

Traffic options:
  --traffic             Add traffic interface to container
  --no-traffic          Do not add traffic interface to container

Node options:
  --node-id ID          Set node ID
  --set-node-ids        Set node IDs incrementally, starting from 1

gridcli node stop

usage: gridcli node stop [-h] [--async | --poll-interval SECONDS]
                         NODE [NODE ...]

positional arguments:
  NODE                  Node

options:
  -h, --help            show this help message and exit
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli node snapshot

usage: gridcli node snapshot [-h] [--async | --poll-interval SECONDS]
                             NODE SNAPSHOTNAME

positional arguments:
  NODE                  Node
  SNAPSHOTNAME          Snapshot name

options:
  -h, --help            show this help message and exit
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli node update

usage: gridcli node update [-h] NODE

positional arguments:
  NODE        Node

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

gridcli devicescan

usage: gridcli devicescan [-h] [--image IMAGE] [--container CONTAINER]
                          [--vivado PATH] [--all-interfaces]

options:
  -h, --help            show this help message and exit
  --image IMAGE         LXC test image
  --container CONTAINER
                        Container to use
  --vivado PATH         Path to Vivado Lab in the test image (default: the first
                        of /opt/Xilinx/Vivado_Lab/2021.1/bin/vivado_lab,
                        /opt/Xilinx/Vivado_Lab/2019.1/bin/vivado_lab that
                        exists)
  --all-interfaces      Scan all interfaces, including those without a carrier

gridcli flash

usage: gridcli flash [-h] [--image IMAGE] [--container CONTAINER]
                     [--vivado PATH]
                     FIRMWARE DEV [DEV ...]

positional arguments:
  FIRMWARE              Firmware to flash
  DEV                   Device

options:
  -h, --help            show this help message and exit
  --image IMAGE         LXC test image
  --container CONTAINER
                        Container to use
  --vivado PATH         Path to Vivado Lab in the test image (default: the first
                        of /opt/Xilinx/Vivado_Lab/2021.1/bin/vivado_lab,
                        /opt/Xilinx/Vivado_Lab/2019.1/bin/vivado_lab that
                        exists)

gridcli instances

usage: gridcli instances [-h]

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

gridcli reservations

usage: gridcli reservations [-h]

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

gridcli reservation

usage: gridcli reservation [-h] {schedule,submit,info,extend,stop} ...

positional arguments:
  {schedule,submit,info,extend,stop}
    schedule            Schedule a reservation
    submit              Submit a reservation template
    info                Get reservation information
    extend              Extend a reservation
    stop                Stop a reservation

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

gridcli reservation schedule

usage: gridcli reservation schedule [-h] [--name NAME] [--remote-image]
                                    [--privileged | --unprivileged]
                                    [--dragonradio-service | --no-dragonradio-service]
                                    [--bridge | --no-bridge]
                                    [--uhd {3.9.5,3.9.7,3.15.LTS,4.0.0.0,4.2.0.0} | --no-flash]
                                    [--start TIME]
                                    [--duration DURATION | --no-duration]
                                    [--user USERNAME] [--csv PATH]
                                    [--owner USER] [--frequency FREQUENCY]
                                    [--bandwidth BANDWIDTH] [--radio-conf PATH]
                                    [--traffic] [--no-traffic]
                                    [--node-id ID | --set-node-ids]
                                    [--async | --poll-interval SECONDS]
                                    IMAGE NODE [NODE ...]

positional arguments:
  IMAGE                 Image
  NODE                  Node

options:
  -h, --help            show this help message and exit
  --name NAME           Reservation name
  --remote-image        Allow remote images
  --privileged          Make container privileged
  --unprivileged        Make container unprivileged
  --dragonradio-service
                        Keep the dragonradio service enabled
  --no-dragonradio-service
                        Disable the dragonradio service
  --bridge              Add bridge interface to container
  --no-bridge, --nobridge
                        Do not add bridge interface to container
  --uhd {3.9.5,3.9.7,3.15.LTS,4.0.0.0,4.2.0.0}
                        UHD version to use for device flashing. If not
                        specified, use the Grid's default.
  --no-flash, --noflash
                        Do not flash
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

Reservation scheduling options:
  --start TIME          Reservation start time. If not specified, start ASAP.
  --duration DURATION   Reservation duration.
  --no-duration         Reservation has unlimited duration.

Container user options:
  --user USERNAME       User given access to container
  --csv PATH            CSV file containing users to give access to container
  --owner USER          Container owner

RF options:
  --frequency FREQUENCY
                        Set center frequency
  --bandwidth BANDWIDTH
                        Set RF bandwidth
  --radio-conf PATH     Path to radio.conf

Traffic options:
  --traffic             Add traffic interface to container
  --no-traffic          Do not add traffic interface to container

Node options:
  --node-id ID          Set node ID
  --set-node-ids        Set node IDs incrementally, starting from 1

gridcli reservation submit

usage: gridcli reservation submit [-h] [--name NAME] [--image IMAGE]
                                  [--remote-image]
                                  [--privileged | --unprivileged]
                                  [--batch | --no-batch]
                                  [--dragonradio-service | --no-dragonradio-service]
                                  [--bridge | --no-bridge]
                                  [--uhd {3.9.5,3.9.7,3.15.LTS,4.0.0.0,4.2.0.0} | --no-flash]
                                  [--start TIME]
                                  [--duration DURATION | --no-duration]
                                  [--user USERNAME] [--csv PATH] [--owner USER]
                                  [--frequency FREQUENCY]
                                  [--bandwidth BANDWIDTH] [--radio-conf PATH]
                                  [--traffic] [--no-traffic]
                                  [--async | --poll-interval SECONDS]
                                  FILE

positional arguments:
  FILE                  Reservation template

options:
  -h, --help            show this help message and exit
  --name NAME           Reservation name
  --image IMAGE         Reservation image
  --remote-image        Allow remote images
  --privileged          Make container privileged
  --unprivileged        Make container unprivileged
  --batch               Start container in batch mode
  --no-batch, --nobatch
                        Do not start container in batch mode
  --dragonradio-service
                        Keep the dragonradio service enabled
  --no-dragonradio-service
                        Disable the dragonradio service
  --bridge              Add bridge interface to container
  --no-bridge, --nobridge
                        Do not add bridge interface to container
  --uhd {3.9.5,3.9.7,3.15.LTS,4.0.0.0,4.2.0.0}
                        UHD version to use for device flashing. If not
                        specified, use the Grid's default.
  --no-flash, --noflash
                        Do not flash
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

Reservation scheduling options:
  --start TIME          Reservation start time. If not specified, start ASAP.
  --duration DURATION   Reservation duration.
  --no-duration         Reservation has unlimited duration.

Container user options:
  --user USERNAME       User given access to container
  --csv PATH            CSV file containing users to give access to container
  --owner USER          Container owner

RF options:
  --frequency FREQUENCY
                        Set center frequency
  --bandwidth BANDWIDTH
                        Set RF bandwidth
  --radio-conf PATH     Path to radio.conf

Traffic options:
  --traffic             Add traffic interface to container
  --no-traffic          Do not add traffic interface to container

gridcli reservation info

usage: gridcli reservation info [-h] [--config] [IDENT]

positional arguments:
  IDENT       Reservation ID or name

options:
  -h, --help  show this help message and exit
  --config    Show reservation configuration

gridcli reservation extend

usage: gridcli reservation extend [-h] [--duration DURATION]
                                  [--async | --poll-interval SECONDS]
                                  [IDENT]

positional arguments:
  IDENT                 Reservation ID or name

options:
  -h, --help            show this help message and exit
  --duration DURATION   Amount by which to extend reservation.
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli reservation stop

usage: gridcli reservation stop [-h] [--async | --poll-interval SECONDS] [IDENT]

positional arguments:
  IDENT                 Reservation ID or name

options:
  -h, --help            show this help message and exit
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli batch

usage: gridcli batch [-h] [--name NAME] [--image IMAGE] [--remote-image]
                     [--privileged | --unprivileged] [--batch | --no-batch]
                     [--dragonradio-service | --no-dragonradio-service]
                     [--bridge | --no-bridge]
                     [--uhd {3.9.5,3.9.7,3.15.LTS,4.0.0.0,4.2.0.0} | --no-flash]
                     [--start TIME] [--duration DURATION | --no-duration]
                     [--user USERNAME] [--csv PATH] [--owner USER]
                     [--frequency FREQUENCY] [--bandwidth BANDWIDTH]
                     [--radio-conf PATH] [--traffic] [--no-traffic]
                     [--async | --poll-interval SECONDS]
                     FILE

positional arguments:
  FILE                  Reservation template

options:
  -h, --help            show this help message and exit
  --name NAME           Reservation name
  --image IMAGE         Reservation image
  --remote-image        Allow remote images
  --privileged          Make container privileged
  --unprivileged        Make container unprivileged
  --batch               Start container in batch mode
  --no-batch, --nobatch
                        Do not start container in batch mode
  --dragonradio-service
                        Keep the dragonradio service enabled
  --no-dragonradio-service
                        Disable the dragonradio service
  --bridge              Add bridge interface to container
  --no-bridge, --nobridge
                        Do not add bridge interface to container
  --uhd {3.9.5,3.9.7,3.15.LTS,4.0.0.0,4.2.0.0}
                        UHD version to use for device flashing. If not
                        specified, use the Grid's default.
  --no-flash, --noflash
                        Do not flash
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

Reservation scheduling options:
  --start TIME          Reservation start time. If not specified, start ASAP.
  --duration DURATION   Reservation duration.
  --no-duration         Reservation has unlimited duration.

Container user options:
  --user USERNAME       User given access to container
  --csv PATH            CSV file containing users to give access to container
  --owner USER          Container owner

RF options:
  --frequency FREQUENCY
                        Set center frequency
  --bandwidth BANDWIDTH
                        Set RF bandwidth
  --radio-conf PATH     Path to radio.conf

Traffic options:
  --traffic             Add traffic interface to container
  --no-traffic          Do not add traffic interface to container

gridcli settings

usage: gridcli settings [-h] {get,trafficgen} ...

positional arguments:
  {get,trafficgen}
    get             Get settings
    trafficgen      Manipulate traffic generation image

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

gridcli settings get

usage: gridcli settings get [-h]

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

gridcli settings trafficgen

usage: gridcli settings trafficgen [-h] {get,set} ...

positional arguments:
  {get,set}
    get       Get traffic generation image
    set       Set traffic generation image

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

gridcli settings trafficgen get

usage: gridcli settings trafficgen get [-h]

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

gridcli settings trafficgen set

usage: gridcli settings trafficgen set [-h] IMAGE

positional arguments:
  IMAGE       Image

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

gridcli tg

usage: gridcli tg [-h] {start,stop,info,scenarios} ...

positional arguments:
  {start,stop,info,scenarios}
    start               Start a traffic session
    stop                Stop a traffic session
    info                Get traffic session information
    scenarios           List traffic scenarios

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

gridcli tg start

usage: gridcli tg start [-h] [--start TIME] [-m PATH] [--routes | --no-routes]
                        [--async | --poll-interval SECONDS]
                        SCENARIO [RESERVATION]

positional arguments:
  SCENARIO              Traffic scenario
  RESERVATION           Reservation

options:
  -h, --help            show this help message and exit
  --start TIME          Start time
  -m PATH, --node-map PATH
                        Map from node name to scenario node
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

Dragon Radio routes:
  --routes              Add Dragon Radio-specific routes
  --no-routes           Do not add Dragon Radio-specific routes

gridcli tg stop

usage: gridcli tg stop [-h] [--async | --poll-interval SECONDS] [ID]

positional arguments:
  ID                    Traffic session ID

options:
  -h, --help            show this help message and exit
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli tg info

usage: gridcli tg info [-h] [ID]

positional arguments:
  ID          Traffic session ID

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

gridcli tg scenarios

usage: gridcli tg scenarios [-h]

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

gridcli rf

usage: gridcli rf [-h] {start,scenarios} ...

positional arguments:
  {start,scenarios}
    start            Start an RF session
    scenarios        List RF scenarios

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

gridcli rf start

usage: gridcli rf start [-h] [--start TIME] [-m PATH] [--duration DURATION | -c]
                        [--async | --poll-interval SECONDS]
                        SCENARIO [RESERVATION]

positional arguments:
  SCENARIO              RF scenario
  RESERVATION           Reservation

options:
  -h, --help            show this help message and exit
  --start TIME          Start time
  -m PATH, --node-map PATH
                        Node map
  --duration DURATION   RF duration.
  -c, --cycle           Enable cyclic scenario repetition
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls

gridcli rf scenarios

usage: gridcli rf scenarios [-h]

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

gridcli dyse

usage: gridcli dyse [-h] {config,restart} ...

positional arguments:
  {config,restart}
    config          Get configuration
    restart         Restart the DYSE

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

gridcli dyse config

usage: gridcli dyse config [-h] {get,set} ...

positional arguments:
  {get,set}
    get       Get configuration
    set       Set configuration

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

gridcli dyse config get

usage: gridcli dyse config get [-h]

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

gridcli dyse config set

usage: gridcli dyse config set [-h] PATH

positional arguments:
  PATH        Path to DYSE configuration in JSON or YAML format.

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

gridcli dyse restart

usage: gridcli dyse restart [-h] [--async | --poll-interval SECONDS] [--force]

options:
  -h, --help            show this help message and exit
  --async               Return immediately after queueing an asynchronous
                        operation
  --poll-interval SECONDS
                        Seconds between operation status polls
  --force               Bypass DYSE restart backoff and attempt limits.

gridcli teams

usage: gridcli teams [-h] [--logos] [--active] [--inactive] {list,import} ...

positional arguments:
  {list,import}
    list         List teams
    import       Import teams

options:
  -h, --help     show this help message and exit
  --logos        show team logos
  --active       Show only active teams.
  --inactive     Show only inactive teams.

gridcli teams list

usage: gridcli teams list [-h] [--logos] [--active] [--inactive]

options:
  -h, --help  show this help message and exit
  --logos     show team logos
  --active    Show only active teams.
  --inactive  Show only inactive teams.

gridcli teams import

usage: gridcli teams import [-h] [--logos PATH] [--term TERM]
                            [--include-inactive]
                            FILE

positional arguments:
  FILE                CSV or Excel file containing teams to import

options:
  -h, --help          show this help message and exit
  --logos PATH        Directory containing team logos
  --term TERM         Term, e.g., "Spring 2025"
  --include-inactive  Include inactive users in teams

gridcli competitions

usage: gridcli competitions [-h] [--active] [--inactive]

options:
  -h, --help  show this help message and exit
  --active    Show only active competitions.
  --inactive  Show only inactive competitions.

gridcli submissions

usage: gridcli submissions [-h]

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

gridcli submit

usage: gridcli submit [-h] [--team TEAM] [--radio-conf PATH] IMAGE COMPETITION

positional arguments:
  IMAGE              Image name
  COMPETITION        Competition ID, short name, or name

options:
  -h, --help         show this help message and exit
  --team TEAM        Team ID or name
  --radio-conf PATH  Path to radio.conf, or - for stdin