Thanks for the patch. I have committed it to trunk and made the following changes and fixes:
- Removed "VCLException" class, because it doesn't provide any extra benefit over using an existing "LibcloudError" class.
- Fixed a typo - 'drive' instead of 'driver'.
- Fixed test/secret.py-dist file (missing 'secure' and correct 'host' argument)
- Added 'driver' argument to the 'VCLProxy' constructor. This way we can pass this argument to LibcloudError when throwing an exception.
- Fixed some style issues (single instead of double quotes).
- Fixed mixed tabs and spaces and invalid indentation in the test file
- Removed "not supported" exceptions. Base NodeDriver class already throws an exception if a method is not implemented
- Removed unnecessary string interpolation - uri='%s' % (self.API).
- Removed unnecessary 'self.type == Provider.VCL check'.
- Removed unnecessary if in the constructor ('if host is not None'), because exception is already thrown if a host is not specified.
- Removed the 'if host[:8] != 'https://'' check. 'host' argument must be an actual hostname (e.g. myapi.cloud.com) and not a URL.
- removed 'user_agent' attribute from the 'VCLSafeTransport' and 'VLCProxy'" class, because it doesn't actually seem to be used.
- changed 'verbose' argument in the 'VLCProxy' class to default to boolean False instead of int 0.
- Changed the 'VLCProxy' class signature to look like this: (self, user, key, secure, host, port, driver, verbose=False). Now the 'host', 'port' and 'secure' arguments are used when building API url
If you have any questions let us know.