You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2011/09/24 13:03:57 UTC
svn commit: r1175156 - in /libcloud/trunk/libcloud: compute/base.py
dns/base.py loadbalancer/base.py storage/base.py
Author: tomaz
Date: Sat Sep 24 11:03:56 2011
New Revision: 1175156
URL: http://svn.apache.org/viewvc?rev=1175156&view=rev
Log:
Change all the base driver classes to inherit from BaseDriver and remove a bunch
of duplicated code.
Modified:
libcloud/trunk/libcloud/compute/base.py
libcloud/trunk/libcloud/dns/base.py
libcloud/trunk/libcloud/loadbalancer/base.py
libcloud/trunk/libcloud/storage/base.py
Modified: libcloud/trunk/libcloud/compute/base.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/base.py?rev=1175156&r1=1175155&r2=1175156&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/base.py (original)
+++ libcloud/trunk/libcloud/compute/base.py Sat Sep 24 11:03:56 2011
@@ -31,6 +31,7 @@ from libcloud.compute.ssh import SSHClie
# @@TR: are the imports below part of the public api for this
# module? They aren't used in here ...
from libcloud.common.base import ConnectionKey, ConnectionUserAndKey
+from libcloud.common.base import BaseDriver
from libcloud.httplib_ssl import LibcloudHTTPSConnection
from libcloud.common.base import LibcloudHTTPConnection
from libcloud.common.types import LibcloudError
@@ -320,7 +321,7 @@ class NodeAuthPassword(object):
return '<NodeAuthPassword>'
-class NodeDriver(object):
+class NodeDriver(BaseDriver):
"""
A base NodeDriver class to derive from
@@ -349,46 +350,8 @@ class NodeDriver(object):
NODE_STATE_MAP = {}
def __init__(self, key, secret=None, secure=True, host=None, port=None):
- """
- @keyword key: API key or username to used
- @type key: str
-
- @keyword secret: Secret password to be used
- @type secret: str
-
- @keyword secure: Weither to use HTTPS or HTTP. Note: Some providers
- only support HTTPS, and it is on by default.
- @type secure: bool
-
- @keyword host: Override hostname used for connections.
- @type host: str
-
- @keyword port: Override port used for connections.
- @type port: int
- """
- self.key = key
- self.secret = secret
- self.secure = secure
- args = [self.key]
-
- if self.secret != None:
- args.append(self.secret)
-
- args.append(secure)
-
- if host != None:
- args.append(host)
-
- if port != None:
- args.append(port)
-
- self.connection = self.connectionCls(*args, **self._ex_connection_class_kwargs())
-
- self.connection.driver = self
- self.connection.connect()
-
- def _ex_connection_class_kwargs(self):
- return {}
+ super(NodeDriver, self).__init__(key=key, secret=secret, secure=secure,
+ host=host, port=port)
def create_node(self, **kwargs):
"""Create a new node instance.
Modified: libcloud/trunk/libcloud/dns/base.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/dns/base.py?rev=1175156&r1=1175155&r2=1175156&view=diff
==============================================================================
--- libcloud/trunk/libcloud/dns/base.py (original)
+++ libcloud/trunk/libcloud/dns/base.py Sat Sep 24 11:03:56 2011
@@ -20,7 +20,7 @@ __all__ = [
]
-from libcloud.common.base import ConnectionUserAndKey
+from libcloud.common.base import ConnectionUserAndKey, BaseDriver
from libcloud.dns.types import RecordType
@@ -120,7 +120,7 @@ class Record(object):
self.data, self.driver.name))
-class DNSDriver(object):
+class DNSDriver(BaseDriver):
"""
DNS driver.
"""
@@ -128,27 +128,8 @@ class DNSDriver(object):
name = None
def __init__(self, key, secret=None, secure=True, host=None, port=None):
- # TODO: Refactor into BaseDriver class
- self.key = key
- self.secret = secret
- self.secure = secure
- args = [self.key]
-
- if self.secret != None:
- args.append(self.secret)
-
- args.append(secure)
-
- if host != None:
- args.append(host)
-
- if port != None:
- args.append(port)
-
- self.connection = self.connectionCls(*args)
-
- self.connection.driver = self
- self.connection.connect()
+ super(DNSDriver, self).__init__(key=key, secret=secret, secure=secure,
+ host=host, port=port)
def list_zones(self):
"""
Modified: libcloud/trunk/libcloud/loadbalancer/base.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/loadbalancer/base.py?rev=1175156&r1=1175155&r2=1175156&view=diff
==============================================================================
--- libcloud/trunk/libcloud/loadbalancer/base.py (original)
+++ libcloud/trunk/libcloud/loadbalancer/base.py Sat Sep 24 11:03:56 2011
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from libcloud.common.base import ConnectionKey
+from libcloud.common.base import ConnectionKey, BaseDriver
from libcloud.common.types import LibcloudError
__all__ = [
@@ -71,7 +71,7 @@ class LoadBalancer(object):
self.name, self.state))
-class Driver(object):
+class Driver(BaseDriver):
"""
A base LBDriver class to derive from
@@ -84,24 +84,8 @@ class Driver(object):
_VALUE_TO_ALGORITHM_MAP = {}
def __init__(self, key, secret=None, secure=True, host=None, port=None):
- self.key = key
- self.secret = secret
- args = [self.key]
-
- if self.secret is not None:
- args.append(self.secret)
-
- args.append(secure)
-
- if host != None:
- args.append(host)
-
- if port != None:
- args.append(port)
-
- self.connection = self.connectionCls(*args)
- self.connection.driver = self
- self.connection.connect()
+ super(Driver, self).__init__(key=key, secret=secret, secure=secure,
+ host=host, port=port)
def list_protocols(self):
"""
Modified: libcloud/trunk/libcloud/storage/base.py
URL: http://svn.apache.org/viewvc/libcloud/trunk/libcloud/storage/base.py?rev=1175156&r1=1175155&r2=1175156&view=diff
==============================================================================
--- libcloud/trunk/libcloud/storage/base.py (original)
+++ libcloud/trunk/libcloud/storage/base.py Sat Sep 24 11:03:56 2011
@@ -27,7 +27,7 @@ from os.path import join as pjoin
from libcloud import utils
from libcloud.common.types import LibcloudError
-from libcloud.common.base import ConnectionUserAndKey
+from libcloud.common.base import ConnectionUserAndKey, BaseDriver
from libcloud.storage.types import ObjectDoesNotExistError
CHUNK_SIZE = 8096
@@ -151,7 +151,7 @@ class Container(object):
return ('<Container: name=%s, provider=%s>'
% (self.name, self.driver.name))
-class StorageDriver(object):
+class StorageDriver(BaseDriver):
"""
A base StorageDriver to derive from.
"""
@@ -161,26 +161,8 @@ class StorageDriver(object):
hash_type = 'md5'
def __init__(self, key, secret=None, secure=True, host=None, port=None):
- self.key = key
- self.secret = secret
- self.secure = secure
- args = [self.key]
-
- if self.secret != None:
- args.append(self.secret)
-
- args.append(secure)
-
- if host != None:
- args.append(host)
-
- if port != None:
- args.append(port)
-
- self.connection = self.connectionCls(*args)
-
- self.connection.driver = self
- self.connection.connect()
+ super(StorageDriver, self).__init__(key=key, secret=secret, secure=secure,
+ host=host, port=port)
def list_containters(self):
"""