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.1.31.tar.gz (4.0 kB view hashes)

Uploaded Source

Built Distribution

hackerearth_box-0.1.31-py2-none-any.whl (5.3 kB view hashes)

Uploaded Python 2

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