Просмотр исходного кода

Moved all __repr__ methods to base class

nuwan_ag 10 лет назад
Родитель
Сommit
1df7bbfc5f

+ 29 - 1
cloudbridge/cloud/base.py

@@ -10,6 +10,8 @@ import six
 from cloudbridge.cloud.interfaces import CloudProvider
 from cloudbridge.cloud.interfaces.resources \
     import InvalidConfigurationException
+from cloudbridge.cloud.interfaces.resources import Container
+from cloudbridge.cloud.interfaces.resources import ContainerObject
 from cloudbridge.cloud.interfaces.resources import Instance
 from cloudbridge.cloud.interfaces.resources import InstanceState
 from cloudbridge.cloud.interfaces.resources import InstanceType
@@ -178,6 +180,10 @@ class BaseInstance(BaseObjectLifeCycleMixin, Instance):
     def terminal_states(self):
         return [InstanceState.TERMINATED, InstanceState.ERROR]
 
+    def __repr__(self):
+        return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
+                                            self.name, self.instance_id)
+
 
 class BaseLaunchConfig(LaunchConfig):
 
@@ -262,7 +268,7 @@ class BaseMachineImage(BaseObjectLifeCycleMixin, MachineImage):
 
     def __repr__(self):
         return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
-                                            self.id, self.name)
+                                            self.name, self.id)
 
 
 class BaseVolume(BaseObjectLifeCycleMixin, Volume):
@@ -275,6 +281,10 @@ class BaseVolume(BaseObjectLifeCycleMixin, Volume):
     def terminal_states(self):
         return [VolumeState.ERROR, VolumeState.DELETED]
 
+    def __repr__(self):
+        return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
+                                            self.name, self.id)
+
 
 class BaseSnapshot(BaseObjectLifeCycleMixin, Snapshot):
 
@@ -286,6 +296,10 @@ class BaseSnapshot(BaseObjectLifeCycleMixin, Snapshot):
     def terminal_states(self):
         return [SnapshotState.ERROR]
 
+    def __repr__(self):
+        return "<CB-{0}: {1} ({2})>".format(self.__class__.__name__,
+                                            self.name, self.id)
+
 
 class BaseKeyPair(KeyPair):
 
@@ -439,6 +453,20 @@ class BaseRegion(Region):
                 self.id == other.id
 
 
+class BaseContainerObject(ContainerObject):
+
+    def __repr__(self):
+        return "<CB-{0}: {1}>".format(self.__class__.__name__,
+                                      self.name)
+
+
+class BaseContainer(Container):
+
+    def __repr__(self):
+        return "<CB-{0}: {1}>".format(self.__class__.__name__,
+                                      self.name)
+
+
 class BaseProviderService(ProviderService):
 
     def __init__(self, provider):

+ 4 - 20
cloudbridge/cloud/providers/aws/resources.py

@@ -7,6 +7,8 @@ from boto.exception import EC2ResponseError
 from boto.s3.key import Key
 from retrying import retry
 
+from cloudbridge.cloud.base import BaseContainer
+from cloudbridge.cloud.base import BaseContainerObject
 from cloudbridge.cloud.base import BaseInstance
 from cloudbridge.cloud.base import BaseInstanceType
 from cloudbridge.cloud.base import BaseKeyPair
@@ -16,8 +18,6 @@ from cloudbridge.cloud.base import BaseSecurityGroup
 from cloudbridge.cloud.base import BaseSecurityGroupRule
 from cloudbridge.cloud.base import BaseSnapshot
 from cloudbridge.cloud.base import BaseVolume
-from cloudbridge.cloud.interfaces.resources import Container
-from cloudbridge.cloud.interfaces.resources import ContainerObject
 from cloudbridge.cloud.interfaces.resources import InstanceState
 from cloudbridge.cloud.interfaces.resources import MachineImageState
 from cloudbridge.cloud.interfaces.resources import PlacementZone
@@ -333,9 +333,6 @@ class AWSInstance(BaseInstance):
             # set the status to unknown
             self._ec2_instance.status = 'unknown'
 
-    def __repr__(self):
-        return "<CB-AWSInstance: {0}({1})>".format(self.name, self.instance_id)
-
 
 class AWSVolume(BaseVolume):
 
@@ -424,9 +421,6 @@ class AWSVolume(BaseVolume):
             # set the status to unknown
             self._volume.status = 'unknown'
 
-    def __repr__(self):
-        return "<CB-AWSVolume: {0} ({1})>".format(self.id, self.name)
-
 
 class AWSSnapshot(BaseSnapshot):
 
@@ -495,10 +489,6 @@ class AWSSnapshot(BaseSnapshot):
     def unshare(self, user_ids=None):
         raise NotImplementedError('share not implemented by this provider')
 
-    def __repr__(self):
-        return "<CB-AWSSnapshot: {0} ({1})>".format(self.id,
-                                                    self.name)
-
 
 class AWSKeyPair(BaseKeyPair):
 
@@ -596,7 +586,7 @@ class AWSSecurityGroupRule(BaseSecurityGroupRule):
         return None
 
 
-class AWSContainerObject(ContainerObject):
+class AWSContainerObject(BaseContainerObject):
 
     def __init__(self, provider, key):
         self._provider = provider
@@ -632,11 +622,8 @@ class AWSContainerObject(ContainerObject):
         """
         self._key.delete()
 
-    def __repr__(self):
-        return "<CB-AWSContainerObject: {0}>".format(self.name)
 
-
-class AWSContainer(Container):
+class AWSContainer(BaseContainer):
 
     def __init__(self, provider, bucket):
         self._provider = provider
@@ -676,9 +663,6 @@ class AWSContainer(Container):
         key = Key(self._bucket, name)
         return AWSContainerObject(self._provider, key)
 
-    def __repr__(self):
-        return "<CB-AWSContainer: {0}>".format(self.name)
-
 
 class AWSRegion(BaseRegion):
 

+ 4 - 19
cloudbridge/cloud/providers/openstack/resources.py

@@ -6,6 +6,8 @@ import shutil
 import ipaddress
 from swiftclient.exceptions import ClientException
 
+from cloudbridge.cloud.base import BaseContainer
+from cloudbridge.cloud.base import BaseContainerObject
 from cloudbridge.cloud.base import BaseInstance
 from cloudbridge.cloud.base import BaseInstanceType
 from cloudbridge.cloud.base import BaseKeyPair
@@ -15,8 +17,6 @@ from cloudbridge.cloud.base import BaseSecurityGroup
 from cloudbridge.cloud.base import BaseSecurityGroupRule
 from cloudbridge.cloud.base import BaseSnapshot
 from cloudbridge.cloud.base import BaseVolume
-from cloudbridge.cloud.interfaces.resources import Container
-from cloudbridge.cloud.interfaces.resources import ContainerObject
 from cloudbridge.cloud.interfaces.resources import InstanceState
 from cloudbridge.cloud.interfaces.resources import MachineImageState
 from cloudbridge.cloud.interfaces.resources import PlacementZone
@@ -346,9 +346,6 @@ class OpenStackInstance(BaseInstance):
             # set the status to unknown
             self._os_instance.status = 'unknown'
 
-    def __repr__(self):
-        return "<CB-OSInstance: {0} ({1})>".format(self.name, self.instance_id)
-
 
 class OpenStackRegion(BaseRegion):
 
@@ -458,9 +455,6 @@ class OpenStackVolume(BaseVolume):
             # set the status to unknown
             self._volume.status = 'unknown'
 
-    def __repr__(self):
-        return "<CB-OSVolume: {0} ({1})>".format(self.id, self.name)
-
 
 class OpenStackSnapshot(BaseSnapshot):
 
@@ -531,9 +525,6 @@ class OpenStackSnapshot(BaseSnapshot):
     def unshare(self, user_ids=None):
         raise NotImplementedError('share not implemented by this provider')
 
-    def __repr__(self):
-        return "<CB-OSSnapshot: {0} ({1}>".format(self.id, self.name)
-
 
 class OpenStackKeyPair(BaseKeyPair):
 
@@ -646,7 +637,7 @@ class OpenStackSecurityGroupRule(BaseSecurityGroupRule):
         return None
 
 
-class OpenStackContainerObject(ContainerObject):
+class OpenStackContainerObject(BaseContainerObject):
 
     def __init__(self, provider, cbcontainer, obj):
         self._provider = provider
@@ -692,11 +683,8 @@ class OpenStackContainerObject(ContainerObject):
                 return True
         return False
 
-    def __repr__(self):
-        return "<CB-OpenStackContainerObject: {0}>".format(self.name)
 
-
-class OpenStackContainer(Container):
+class OpenStackContainer(BaseContainer):
 
     def __init__(self, provider, container):
         self._provider = provider
@@ -741,6 +729,3 @@ class OpenStackContainer(Container):
     def create_object(self, object_name):
         self._provider.swift.put_object(self.name, object_name, None)
         return self.get(object_name)
-
-    def __repr__(self):
-        return "<CB-OpenStackContainer: {0}>".format(self.name)