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.1

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.1
File Size Uploaded
greenlake_activate_cli-0.6.1.tar.gz 19.2 kB Details

Built distribution (wheel)

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

Total release size: 35.6 kB

Release files / greenlake_activate_cli-0.6.1.tar.gz

Download URL greenlake_activate_cli-0.6.1.tar.gz
Size 19.2 kB
Tags Source
SHA-256 checksum
How to use checksums
175d3b6e47fe54eb7f7ddb9cbc7d0f94a20f4000da9f2603676cbbf06a0ee006
BLAKE2b-256 checksum
How to use checksums
552de7cfdb0e337828f989b61fddeeba8d27057048e387b07fbe2374a87a5408
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.1-py3-none-any.whl

Download URL greenlake_activate_cli-0.6.1-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1fe2f469df8224e30bd9e7678f02b69a5087462f2725a0311f74cb9d6117777b
BLAKE2b-256 checksum
How to use checksums
c39391bde45821baead4408ae093b36117c5cb932330ce05fd89f1be5d5c1709
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

This release

0.6.1 This release

2 release files

0.6.0

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