Skip to main content

lockable resource module

Project description

lockable

CircleCI PyPI version Coverage Status

Resource locking module for python.

Originally designed for following projects:

Module provides python API and simple CLI interface.

Resource is released in following cases:

  • process ends
  • when context ends when lockable.auto_lock(..) is used
  • allocation.unlock() is called
  • lockable.unlock() is called

CLI interface

% lockable --help
usage: lockable [-h] [--validate-only] [--lock-folder LOCK_FOLDER] [--resources RESOURCES]
                [--timeout TIMEOUT] [--hostname HOSTNAME]
                [--requirements REQUIREMENTS]
                [command [command ...]]

run given command while suitable resource is allocated.
Usage example: lockable --requirements {"online":true} echo using resource: $ID

positional arguments:
  command               Command to be execute during device allocation

optional arguments:
  -h, --help            show this help message and exit
  --validate-only       Only validate resources.json
  --lock-folder LOCK_FOLDER
                        lock folder
  --resources RESOURCES
                        Resources file
  --timeout TIMEOUT     Timeout for trying allocate suitable resource
  --hostname HOSTNAME   Hostname
  --requirements REQUIREMENTS
                        requirements as json string

API's

Constructor

lockable = Lockable([hostname], [resource_list_file], [lock_folder])

Allocation

allocation = lockable.lock(requirements, [timeout_s])
print(allocation.resource_info)
print(allocation.resource_id)
allocation.unlock()
# or using resource info
lockable.unlock(allocation)

or using context manager which unlock automatically

with lockable.auto_lock(requirements, [timeout_s]) as allocation:
    print(allocation.resource_info)

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

lockable-0.4.1.tar.gz (10.7 kB view hashes)

Uploaded Source

Built Distribution

lockable-0.4.1-py3-none-any.whl (7.5 kB view hashes)

Uploaded Python 3

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