Dynatrace CLI
Project description
dt-cli — Dynatrace developer's toolbox
Dynatrace CLI is a command line utility that assists in developing, signing, and building extensions for Dynatrace Extension Framework 2.0.
dt-cli is currently in ALPHA. But it's evolving quickly with new
features for extension development and cluster management to be added soon.
Features
- Build and sign extensions from source
- Generate development certificates for extension signing
- Generate CA certificates for development
Installation
pip install dt-cli
Usage
Currently there are three basic commands available for working with extensions.
Extension subcommand has two aliases for convenience: dt ext or dt extensions.
-
dt extension gencagenerates CA root certificate and key, required to generate developer certificates and for extension validation. The file containing the certificate (
ca.certis the deafult name) needs to be placed on ActiveGates and monitored hosts that will be executing extensions.Usage: dt extension genca [OPTIONS] creates CA key and certificate, needed to create developer certificate used for extension signing Options: --ca-cert TEXT CA certificate. Default: ./ca.crt --ca-key TEXT CA key. Default: ./ca.key -h, --help Show this message and exit.
-
dt extension gendevcertgenerates a developer certificate used for signing extensions. Please note that there may be multiple developer certificates coming from a single root certificate. It's up to your organization to manage them.
Usage: dt extension gendevcert [OPTIONS] creates developer key and certificate used for extension signing Options: --ca-cert TEXT CA certificate. Default: ./ca.crt --ca-key TEXT CA key. Default: ./ca.key --dev-cert TEXT Developer certificate. Default: ./developer.crt --dev-key TEXT Developer key. Default: ./developer.key -h, --help Show this message and exit.
-
dt extension buildbuilds distributable extension file from a given directory containing extension files (./extensionby default). The extension will be signed with a developer certificate and key.Usage: dt extension build [OPTIONS] builds extension file from the given extension directory (extension in current dir. is the default) Options: --extension-directory TEXT Directory where extension files are. Default: ./extension --target-directory TEXT Directory where extension package should be written. Default: . --certificate TEXT Certificate used for signing. Default: ./developer.crt --private-key TEXT Private key used for signing. Default: ./developer.key --keep-intermediate-files Do not delete the signature and `extension.zip' files after building extension archive -h, --help Show this message and exit.
Development
This tool requires Python 3.8+ and is build with poetry. Before starting, make sure you have a dedicated virtual environment for working with this project. Create your virtual environment in project directory:
python -m venv env
Activate it before proceeding:
source ./env/bin/activate
Install poetry:
$ pip install poetry
Now you can build the project and get the wheel file:
$(env) poetry build
The resulting wheel file can be found in the dist folder, e.g. ./dist/dtcli-0.0.1-py3-none-any.whl
If you have a separate environment where dtcli should be available, you should install the wheel file there. Simply run the following command:
$ pip install dt_cli-0.0.1-py3-none-any.whl
If you want to start using it in the environment where it was built, you just use this poetry command:
$ poetry install
From this moment you can start using the command line tool directly (or from your code, see a dedicated section below):
$ dt --help
Each command contains its own help description, see:
$ dt ext build --help
Testing
Run pytest tests
poetry run pytest --flake8
Run mypy tests
poetry run pytest --mypy dtcli --strict
Run test coverage report
poetry run pytest --cov . --cov-report html
Using dt-cli from your Python code
You may want to use some commands implemented by dt-cli directly in your Python code, e.g. to automatically sign your extension in a CI environment.
Here's an example of building an extension programatically, it assumes dtcli package is already installed and available in your working environment.
from dtcli import building
building.build_extension(
extension_dir_path = './extension',
extension_zip_path = './extension.zip',
extension_zip_sig_path = './extension.zip.sig',
target_dir_path = './dist',
certificate_file_path = './developer.crt',
private_key_file_path = './developer.key',
keep_intermediate_files=False,
)
Contributions
You are welcome to contribute using Pull Requests to the respective repository. Before contributing, please read our Code of Conduct.
License
dt-cli is an Open Source Project. Please see
LICENSE for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dt-cli-0.0.9a0.tar.gz.
File metadata
- Download URL: dt-cli-0.0.9a0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.9.4 Linux/5.4.0-1043-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b852b7a8a172f2ee5078668dbb5548251b36f0b00d17ec36f08c11ba707699f
|
|
| MD5 |
c4ec8a3ff3c8d01c4a399b0c69ff37bb
|
|
| BLAKE2b-256 |
101f44aa93c3b0c65e72d547ddc1a42490a9c6c5350b8e05c1059c16c79f4512
|
File details
Details for the file dt_cli-0.0.9a0-py3-none-any.whl.
File metadata
- Download URL: dt_cli-0.0.9a0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.9.4 Linux/5.4.0-1043-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a24f9ede52b3a7912b331cfb37c2ac8ffb09c95f3d9e5502f11944e8540e7fd5
|
|
| MD5 |
5effb9993974ec7294a31561e79ea65b
|
|
| BLAKE2b-256 |
8b8511d51d5f8c7db3439482eecb728eaf5b6112169b640dc4469a6ecd7c42b6
|