Skip to main content

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:

https://JENKINS_URL/user/JENKINS_USERNAME/configure

## 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

  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devnest-0.0.1.dev47.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

devnest-0.0.1.dev47-py2.py3-none-any.whl (26.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file devnest-0.0.1.dev47.tar.gz.

File metadata

  • Download URL: devnest-0.0.1.dev47.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.0

File hashes

Hashes for devnest-0.0.1.dev47.tar.gz
Algorithm Hash digest
SHA256 33f1edd11b36c640fe7228d2d30cbe3ea30170b072fb968d3f3e1e6a5e3fbb4b
MD5 95aa24ee3aedfe2cec42eec210fe1308
BLAKE2b-256 ffd57a4532c660b300a75a1a5f77b80eb0fdbeed2bff13e89ff13f2e375a6b9e

See more details on using hashes here.

File details

Details for the file devnest-0.0.1.dev47-py2.py3-none-any.whl.

File metadata

  • Download URL: devnest-0.0.1.dev47-py2.py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.0

File hashes

Hashes for devnest-0.0.1.dev47-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e9dd227de0ff2afcfc35aa8601f66fead8c18b4bc56347fa0313a70796de13c4
MD5 d1afe33a3bf1778e3735074c5f2c4fd2
BLAKE2b-256 86ad29dccbd87d2df30639ad5f21d732c3600446adea8b7d8c31de669163a550

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page