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 genca
generates CA root certificate and key, required to generate developer certificates and for extension validation. The file containing the certificate (
ca.cert
is 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 gendevcert
generates 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 build
builds distributable extension file from a given directory containing extension files (./extension
by 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
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
|