Package: devnest
# Devnest ToolA 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 FileBy 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_TOKENurl=https://JENKINS_URL`JENKINS_API_TOKEN can be found using Jenkins at:https://JENKINS_URL/user/JENKINS_USERNAME/configure## Run DevNest CLIRunning in virtual environment:` git clonehttps://github.com/rhos-infra/devnest.gitvirtualenvmy-devnest-virtenvsourcemy-devnest-virtenv/bin/activatepushd devnest pip install . devnest--help`## Sample commandsTo list based on regexp in a “shared” pool of servers` devnest--confconfig.ini list-gshared"*my_node_0?"`To list all i a “shared” pool of servers` devnest--confconfig.ini list-gshared `To reserve node from “shared” pool for 4h (regex must match only 1 node)` devnest--confconfig.ini reserve-gshared-t4 *my_node_03 `To release reservation` devnest--confconfig.ini release *my_node_03 `CHANGES0.0.2offline the slave after it’s been set upoffline the slave after it’s been set upadd support for ‘disconnect’ from Jenkins master cli command - lint fixadd support for ‘disconnect’ from Jenkins master cli command0.0.1.dev49Add IP address to the list columnAdd dump config optionsAdd directory options to update multiply slaves at onceEnsure force reservation is only for not reserved nodesAdd force reserve without specific nodeAdd host to json output when reservingPep8 simple fixIf no regex is specified to match the host, reserve first available within groupAdd json output to management commandFew tox fixesAdd python3 compabilityAllow to extend node which is already reservedAdd option to force reserve node which is currently running CI jobAdd new status for the node which isn’t idleAllows loading params from environment variablesUse CrumbRequester instead of RequesterEnsure node is temporary offline before bringing it onlineEnsure node is temp offline before marking it onlineAdd option to list nodes based on stateUpdated links after moving devnest from private to rhos-infra repoFix lintingFix parsing of json if one contains wrong quotesAdd functions to setup slave based on XML fileFix function argument nameAdded AUTHORS fileAdded option to set reprovision pending stateEnhance groups in columns to be comma separated listUpdated options to be more user friendlyEnable packagingUser can select parseable type outputDefault location for config fileRename Jenkins to DevNestAdded extra metadata to easy login to the boxRename jenkinsnodecli to devnestAdded vCPU capabilityIntroduced node capabilitiesChanged column names in the outputChanged termnology for the node statusAdd option to specify owner who reserved the nodeFixed issue where node was not in sync with descriptionAdded options to manage node groups/labelsChanged CLI arguments and supporting functions to be more restrictive for standard user, e.g. one user can’t release box of another userAdded info for the better user experienceFix improper call to Jenkins.node (performance)Fixed function get_reservation_endtime_epochAdded error when no argument is specifiedInitial commit of Jenkins Node CLI