libnetworkcache - Client for ShaCache and ShaDir HTTP Server
The goal of libnetworkcache python library is to abstract the HTTP calls. It works as wrapper of python httplib to use the Networkcache HTTP Server.
- The Networkcache HTTP Server are sub-divided into two Web services:
It is a simple HTTP Server used to cache files.
It is a simple HTTP Server used to cache information, working like a directory.
Please see slapos/libnetworkcache.py and slapos/libnetworkcachetests.py
- Add support for Python 3.
- cli: new –suffix-key option.
- Support shacache-ca-file and shadir-ca-file options in networkcachehelper.
- Add shacache-ca-file and shadir-ca-file options, that are required to use a self-signed server certificate in python >= 2.7.9.
- Make information dict use str instead of unicode.
- Compatibility with pyOpenSSL >= 0.14
- Use ‘openssl’ executable if pyOpenSSL is not available.
- New scripts to download & upload manually from command line.
- Small API changes. slapos.networkcachehelper is deprecated.
- Many bugfixes and code cleanup.
- Performance/reliability improvements, by:
- using pyOpenSSL instead of spawning openssl subprocesses
- reducing the number of created temporary files
- Define timeouts for every connection we initiate. May allow not to hang forever in a hostile environment when connection to networkcache server can stall / be reset.
- Don’t use logger.debug() but logger.info() in helpers so that it doesn’t. silent an error.
- Fix regression where multiple certificates caused most of them to be ignored.
- Correctly return False if no entry is found while downloading.
- Add high-level helper functions to easily download/upload to networkcache.
- Set timeout in httplib connections.
- networkcache won’t stupidly loop for 1000 iterations if “certificate” parameter is a string instead of a list.
- Binary cache support.
- If given key has multiple signed values pick up the first one.
- Create infinite certificates.
- Bugfix: Do not trust received content.
- Bugfix: Do not try to validate against empty signatures.
- Remove M2Crypto dependency and rely on openssl binary presence.
- Fix signing and verification.
- Simplify key generation and use slapos.cfg file by default.
- Internals: Increase test coverage.
- Authentication keys are supported.
- Re-implemente signature support.
- Follow corrected specification.
- internals: Use urllib2.
- Implement signature checking of downloaded content.
- Deal with proxy in correct way.
- Incompatible change: NetworkcacheClient.download returns opened temporary file object, which will be deleted on close. This minimises memory footprint.
- Minimise memory footprint during upload.
- Use PUT instead of POST during upload.
- Initial version.