TBD
Project description
# Devnest Tool
A simple CLI to manage “reservations” for the hardware in devnest.
The primary use case for this tool is to reserve shared node for debugging and development work.
Current implementation uses Jenkins APIs and metadata stored inside Jenkins to manage lifecycle of hardware in the DevNest.
Once the node is reserved it’s being put offline, so no other Jenkins user is able to use it, until reservation expires and it’s being cleaned.
### Usage
## Config File
By default, devnest looks for ~/.config/jenkins_jobs/jenkins_jobs.ini, or /etc/jenkins_jobs/jenkins_jobs.ini (in that order).
It is possible to replace CLI arguments such as user, password and url with config file containing this information and pass path to this file using –conf flag.:
` [jenkins] user=JENKINS_USERNAME password=JENKINS_API_TOKEN url=https://JENKINS_URL `
- JENKINS_API_TOKEN can be found using Jenkins at:
## Run DevNest CLI
Running in virtual environment:
` git clone https://github.com/rhos-infra/devnest.git virtualenv my-devnest-virtenv source my-devnest-virtenv/bin/activate pushd devnest pip install . devnest --help `
## Sample commands
To list based on regexp in a “shared” pool of servers ` devnest --conf config.ini list -g shared "*my_node_0?" `
To list all i a “shared” pool of servers ` devnest --conf config.ini list -g shared `
To reserve node from “shared” pool for 4h (regex must match only 1 node) ` devnest --conf config.ini reserve -g shared -t 4 *my_node_03 `
To release reservation ` devnest --conf config.ini release *my_node_03 `
CHANGES
0.0.2
offline the slave after it’s been set up
offline the slave after it’s been set up
add support for ‘disconnect’ from Jenkins master cli command - lint fix
add support for ‘disconnect’ from Jenkins master cli command
0.0.1.dev49
Add IP address to the list column
Add dump config options
Add directory options to update multiply slaves at once
Ensure force reservation is only for not reserved nodes
Add force reserve without specific node
Add host to json output when reserving
Pep8 simple fix
If no regex is specified to match the host, reserve first available within group
Add json output to management command
Few tox fixes
Add python3 compability
Allow to extend node which is already reserved
Add option to force reserve node which is currently running CI job
Add new status for the node which isn’t idle
Allows loading params from environment variables
Use CrumbRequester instead of Requester
Ensure node is temporary offline before bringing it online
Ensure node is temp offline before marking it online
Add option to list nodes based on state
Updated links after moving devnest from private to rhos-infra repo
Fix linting
Fix parsing of json if one contains wrong quotes
Add functions to setup slave based on XML file
Fix function argument name
Added AUTHORS file
Added option to set reprovision pending state
Enhance groups in columns to be comma separated list
Updated options to be more user friendly
Enable packaging
User can select parseable type output
Default location for config file
Rename Jenkins to DevNest
Added extra metadata to easy login to the box
Rename jenkinsnodecli to devnest
Added vCPU capability
Introduced node capabilities
Changed column names in the output
Changed termnology for the node status
Add option to specify owner who reserved the node
Fixed issue where node was not in sync with description
Added options to manage node groups/labels
Changed CLI arguments and supporting functions to be more restrictive for standard user, e.g. one user can’t release box of another user
Added info for the better user experience
Fix improper call to Jenkins.node (performance)
Fixed function get_reservation_endtime_epoch
Added error when no argument is specified
Initial commit of Jenkins Node CLI
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
Hashes for devnest-0.0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa9ccc97af5c65bf01181d12c1c429ad4d94723b2d9d022d93dbb0c3bd59dcc0 |
|
MD5 | cd3b065b423070865f1db035b7d7fb2a |
|
BLAKE2b-256 | 1fae26ca7c36b94f4c92c37ad88f83e34ad2291d4266c2f7d713e13e23b09fd5 |