Skip to main content

GreenLake Activate CLI

The purpose of this is to help manage devices in HPE GreenLake Activate with an easy to use CLI interface. This tool uses the available API calls that HPE GreenLake Activate exposes for manging devices

Features

  • Query Activate inventory by:
    • device name
    • mac address
    • serial number
    • folder name
    • folder id
    • provisioning rules
  • Move devices between folders
  • Create folders in Activate
  • Create provisioning rules for folders (WIP)
  • Generate CLI commands for allowlist entries (WIP)

Requirements

  • Python 3.12 or newer
  • An HPE GreenLake Activate API credential
  • Network access to activate.arubanetworks.com

Installation

I recommend installing this package with uv. Install uv if it is not already available.

Installing uv on Linux/Mac:

curl -LsSf https://astral.sh/uv/install.sh | sh

Installing uv on Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

To install the latest published package as a global command:

uv tool install greenlake-activate-cli

Verify the installation:

glcli --version

To upgrade or remove the installed CLI:

uv tool upgrade greenlake-activate-cli
uv tool uninstall greenlake-activate-cli

Install With Python and pip

Creating a virtual environment and installing the package:

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install greenlake-activate-cli

The glcli command is then available from the venv:

glcli --version

Configuration

Run the CLI glcli configure command.

glcli configure

You will be prompted to enter (paste) in your GreenLake Activate API token. This text is hidden.

This command is essentially doing this:

mkdir -p ~/.config/greenlake-activate-cli
printf 'CREDENTIAL_1=your_api_key_here\n' \
	> ~/.config/greenlake-activate-cli/.env
chmod 600 ~/.config/greenlake-activate-cli/.env

Alternatively, you can set the environment variable manually:

export CREDENTIAL_1="your_api_key_here"

Credential sources are checked in this order:

  1. A non-empty CREDENTIAL_1 environment variable.
  2. $XDG_CONFIG_HOME/greenlake-activate-cli/.env, when XDG_CONFIG_HOME is set.
  3. ~/.config/greenlake-activate-cli/.env.
  4. .env in the current directory, retained for development and backward compatibility.

The configuration file format is:

CREDENTIAL_1=<your_api_key_here>

Usage

Query inventory by serial number:

glcli query serial PHWLKAS02 PHWLKAS03

Query inventory by MAC address:

glcli query mac aa:bb:cc:00:11:22 dd:ee:ff:33:44:55

Query inventory by folder ID or folder name:

glcli query folder 5297450
glcli query folder SiteA-South

Query provisioning rules for one folder by ID or name:

glcli query rule folder-id 63111131
glcli query rule folder-name Northwest

Move a device by serial number or MAC address:

glcli move PHWLKAS02 SiteA-South
glcli move aa:bb:cc:00:11:22 5297450

Move multiple devices from a file:

glcli move serials serials.csv SiteA-South
glcli move macs mac_addresses.csv 5297450

Create a new folder in Activate:

glcli create folder Jake_test2

Create a provisioning rule for a folder by ID or name:

glcli create rule folder-id 63061537
glcli create rule folder-name Northwest

The command prompts for the rule name, provision type (cap or rap), controller IP, and AP group. These choices map to Activate values iap_to_cap and iap_to_rap. It resolves folder names, displays the rule details for review, and asks for confirmation before sending the request. On success, it prints the created rule ID.

Serial numbers and MAC addresses can also be loaded from CSV or newline-delimited files:

glcli query serial --file serials.csv
glcli query mac --file mac_addresses.csv

Use --verbose for diagnostic logging:

glcli --verbose query serial PHWLKAS02

Exit codes are 0 for a complete result, 1 when no devices are returned, and 2 when at least one requested identifier is missing.

Troubleshooting

When in doubt, restart your shell.

The installation with uv installs this package in an isolated environment and makes glcli available to run from any directory. If uv reports that its tool directory is not on your PATH, run:

uv tool update-shell

To run the tests for development:

uv run pytest

References

Metadata

Release files for greenlake-activate-cli 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for greenlake-activate-cli 0.6.0
File Size Uploaded
greenlake_activate_cli-0.6.0.tar.gz 19.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for greenlake-activate-cli 0.6.0
File Interpreter ABI Platform
greenlake_activate_cli-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.5 kB

Release files / greenlake_activate_cli-0.6.0.tar.gz

Download URL greenlake_activate_cli-0.6.0.tar.gz
Size 19.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c8bdb176f0b3d982aee435c08368bf59d1788916847b43b27fc41510cb3d066d
BLAKE2b-256 checksum
How to use checksums
1c3d028ccb4c308af48e8bd348c8fd84df833e7c3e315aa197f4d390b27013cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / greenlake_activate_cli-0.6.0-py3-none-any.whl

Download URL greenlake_activate_cli-0.6.0-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c41803226a2eac8b41a51687667310e8a8282219a468040ecab4ee8ec700d2cc
BLAKE2b-256 checksum
How to use checksums
9ee02b28c7ac6d0a0830d6073bebae9b1a08e10a59cd45401da04cb38853714a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.6.1

2 release files

This release

0.6.0 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page