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
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size hackerearth_box-0.2.1-py2-none-any.whl (5.5 kB) | File type Wheel | Python version 2.7 | Upload date | Hashes View |
Filename, size hackerearth-box-0.2.1.tar.gz (4.2 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for hackerearth_box-0.2.1-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bd15539d671699f687ae21a7cf4c261e5a1b5907652fbeb9a016e53da552522 |
|
MD5 | 60340c0e509561d98e889fad3894e274 |
|
BLAKE2-256 | fef571c1c86df39cf96413909de4bb1f4ab8e831ace2437b1796fad73d6afd74 |