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.

Filename, size & hash SHA256 hash help File type Python version Upload date
hackerearth_box-0.2.1-py2-none-any.whl (5.5 kB) Copy SHA256 hash SHA256 Wheel 2.7 Jun 25, 2015
hackerearth-box-0.2.1.tar.gz (4.2 kB) Copy SHA256 hash SHA256 Source None Jun 25, 2015

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page