This is a simple Python library that offers access to infrastructure services in SemWES (formerly CloudFlow) and its derivatives. The library aims to make things like interaction with GSS (file upload, download, etc.) as easy and hassle-free as possible.
With version 1.0.0 of the library, a command-line interface was added for fully
interactive use. Simply install clfpy with pip and then execute clfpy_cli
from any terminal. For more detailed documentation, check the CLI's readme
page.
A big thank you goes to Leonardo Cosma from CETMA who initiated the creation of the CLI and also provided some of the code.
- (BUGFIX) Removed Anselm and Salomon support, fixing broken images client.
- (BUGFIX) Fixed Barbora support
- (MINOR) Added support for Barbora cluster
- (MINOR) Added method to services client to pull a Docker image
- (PATCH) Fix bad hardcoded interpreter in clfpy_cli script
- (PATCH) Re-brand CloudFlow to SemWES
- (PATCH) Fix CLI tab completion for service names
- (MINOR) Added missing methods to CLI auth client
- (MINOR) Improved tab completion in the CLI
- (PATCH) Fixed broken input for Python 2.7
- (MAJOR) Added full command-line interface for the library
- (MINOR) Added missing list_users method to
clfpy.AuthUsersClient - (PATCH) Added better exception handling to
clfpy.ServicesClientandclfpy.HpcImagesClient
- (PATH) Added exception handling to
clfpy.ServicesClient.
- (MINOR) Added
clfpy.ExtraParametersclass for parsing extraParameters strings - (PATCH) Fixed Python 2.x problem for
clfpy.ServicesClient.
- (MINOR) Added convenience function
clfpy.ServicesClient.read_env_file()for reading environment-definition files when defining services.
- (PATCH)
clfpy.ServicesClient: Added health description in case of unhealthy targets.
- (MINOR) New client
clfpy.ServicesClientfor automatic service deployment in CloudFlow - (PATCH) Fixed HPC endpoint in
test_hpy.py
- (MINOR) File upload and download now shows a status bar and the average speed by default.
- (PATCH) Bugfix: GSS test script fails with Python 2.7
- (PATCH) Bugfix: Uploading an empty file fails
Currently, the following clients are available:
clfpy.AuthClient: Client for the authentication managerclfpy.AuthUsersClient: Client for the users interface of the authentication managerclfpy.AuthProjectsClient: Client for the projects interface of the authentication managerclfpy.GssClient: Client for accessing the generic storage services (GSS)clfpy.HpcImagesClient: Client for registering Singularity images with the CloudFlow HPC clientclfpy.WfmClient: Client for interacting with the workflow manager (does not yet expose the full WFM functionality)clfpy.ServicesClient: Client for automatic service deployment. Requires Docker to be installed!
Furthermore, use clfpy.ExtraParameters for parsing extraParameters inputs in
your services.
Requires Python 2.7 or Python 3.x.
For the clfpy.ServicesClient, Docker must be installed as well and the
Docker CLI must be available under the docker command.
clfpy can be installed from the Python Package Index using pip:
pip install clfpy
Have a look at the clfpy/tests/ folder to find examples on how to use the
library.
- Make changes to the code
- Run test scripts with Python 2.7 and Python 3.x.
- Update the changelog and choose a new version number using semantic versioning.
- Update the version number in
setup.py. - Remove all files from
./distand./buildto avoid attempting to overwrite existing files when uploading. - Run
python setup.py sdist bdist_wheeland check the resulting files in./dist. - Run
twine upload dist/*to upload to PyPi. Note that this step requires a correctly configured~/.pypircfile.