Skip to main content

Python Library to facilitate automated package management on distributed servers

Project description

Library Name- BOX

Task

Automate the installation/updation of modules/packages on the servers according to a given dependency config file

Dependency Config File Format

Dependency Config File Format

Library Components

  • config_parser.py - parses dependency config from given filepath

  • utils.py - set of utility functions such as dependency_install_manager, steps execution callable for fabric, etc.

  • install.py - this is the main file, which contains function to be called when the library is used

  • exceptions.py - this contains the various exceptions classes used in the library

Inputs to be given

  • dependency config file this is a dictionary of the given format with steps, action and package_name this imports the endpoints callable.

  • machines information this is a set of machine callables which define a set of machines each machine has 3 components - user, key, endpoint

Flow

  • user creates a set of callables which return endpoints for machines

  • now a dependency config file is created in specified format, which takes callables for server for each package, and action is defined (INSTALL/UNINSTALL).

  • now, path to dependency config file is given to the library function ( handle_dependencies() ) alongwith action(explained below)

    • action - this is the required action of the user, i.e. if the user wants to execute all the packages to be installed, he will specify action=INSTALL, else UNINSTALL(for executing packages to be uninstalled)

  • handle_dependencies() passes the dependency config filepath to the config_parser which returns a dictionary of endpoints (as key) and packages( as value)

  • now, for every machine manage_dependencies_on_machine() is called which takes machine and its packages and installs them using utility functions

3rd Party Library used

Examples

You can find examples of dependency config file, and sample machine group class here and here.

If you are using django, you might like to use this library via a management command , which you can find here.

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

hackerearth-box-0.2.1.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

hackerearth_box-0.2.1-py2-none-any.whl (5.5 kB view details)

Uploaded Python 2

File details

Details for the file hackerearth-box-0.2.1.tar.gz.

File metadata

File hashes

Hashes for hackerearth-box-0.2.1.tar.gz
Algorithm Hash digest
SHA256 da1355f796c781d5d71ef796c3c35fc1be5b684af44b5b526ca144fca8ed590c
MD5 917a81fad16c2e4e9370d87f8c650863
BLAKE2b-256 7923b59f598769e096dd30066a773a98a7de7af490f5f41b57ad1c9429964562

See more details on using hashes here.

File details

Details for the file hackerearth_box-0.2.1-py2-none-any.whl.

File metadata

File hashes

Hashes for hackerearth_box-0.2.1-py2-none-any.whl
Algorithm Hash digest
SHA256 4bd15539d671699f687ae21a7cf4c261e5a1b5907652fbeb9a016e53da552522
MD5 60340c0e509561d98e889fad3894e274
BLAKE2b-256 fef571c1c86df39cf96413909de4bb1f4ab8e831ace2437b1796fad73d6afd74

See more details on using hashes here.

Supported by

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