Metadata-Version: 2.1
Name: rlockertools
Version: 0.4.5
Summary: Useful tools to interact with Resource Locker Project
Home-page: https://github.com/red-hat-storage/rlockertools.git
Download-URL: https://pypi.org/project/rlockertools/
Author: Jim Erginbash
Author-email: jimshapedcoding@gmail.com
License: MIT
Keywords: Rlocker,rlocker,ResourceLocker,Python 3,Resource Locker
Description-Content-Type: text/markdown
License-File: LICENSE.txt

Useful tools to work with [Rlocker project API](https://github.com/red-hat-storage/rlocker.git)


# Quick Start

## Normal installation

```bash
pip install rlockertools
```

## Setup

```bash
git clone https://github.com/red-hat-storage/rlockertools.git
cd rlockertools
python -m venv venv
source venv/bin/activate
pip install ./
rlock --help
```

usage: rlock [-h] --server-url SERVER_URL --token TOKEN [--release] [--lock] [--resume-on-connection-error] [--signoff SIGNOFF]
             [--priority PRIORITY] [--search-string SEARCH_STRING] [--link LINK] [--interval INTERVAL] [--attempts ATTEMPTS]

optional arguments:
  -h, --help            show this help message and exit
  --server-url SERVER_URL
                        The URL of the Resource Locker Server
  --token TOKEN         Token of the user that creates API calls
  --release             Use this argument to release a resource
  --lock                Use this argument to lock a resource
  --resume-on-connection-error
                        Use this argument in case you don't want to break queue execution in the middle of waiting for queue status
                        being FINISHED
  --signoff SIGNOFF     Use this when lock=True, locking a resource requires signoff
  --priority PRIORITY   Use this when lock=True, specify the level of priority the resource should be locked
  --search-string SEARCH_STRING
                        Use this when lock=True, specify the lable or the name of the lockable resource
  --link LINK           Use this when lock=True, specify the link of the CI/CD pipeline that locks the resource
  --interval INTERVAL   Use this when lock=True, how many seconds to wait between each call while checking for a free resource
  --attempts ATTEMPTS   Use this when lock=True, how many times to create an API call that will check for a free resource
```

## Usage Examples

### To add a queue for locking a resource

```bash
rlock --lock --server-url=your.rlocker.instance.com --token=YOURTOKEN --search-string=nameorlabel --signoff=YOURUNIQUESIGNOFF --priority=3 --interval=15 --attempts=15
```

### To release a locked resource (filtration by signoff only)
```bash
rlock --release --server-url=your.rlocker.instance.com --token=YOURTOKEN --signoff=YOURUNIQUESIGNOFF
```


# Change log

## [0.3.8] - 2021-03-15

Initial build

## [0.3.9] - 2021-07-15

Move to new repo + bug fix

## [0.3.10] - 2021-07-15

Fix build issue

## [0.3.11] - 2021-07-19

Suppress the logs
Show safe errors when beating a queue returns !=200 status code

## [0.4] - 2022-04-12

Allow **datakwargs in the change queue method.
This is necessary to allow modification of the data section once a queue is changing

## [0.4.1] - 2022-04-13

Show more output in get_queue method in case of non 200 status code

## [0.4.2] - 2022-04-17

Address item assignment for str, should be fixed to a dictionary in change queue method

## [0.4.3] - 2022-04-28

Adding log file in order to track after the queue id number once executing from the rlock entrypoint.
Reason: In order to to API calls about the queue, we need to save it in some readable location

## [0.4.4] - 2022-06-09

Adding support for `--check` argument which will return if the given `--search-string` has available resources
by label or a name. Commit number: #15

Usage example:
`rlock --check --search-string=aws-east-2 --token=$token --server-url=$SERVER_URL`

## [0.4.5] - 2022-07-26

Fixing JSON parsing for the data section in a queue, which was not fixed totally in 0.4.2
