Closing keystone sessions after done with them.
[snaps.git] / snaps / domain / volume.py
index e82a60a..0ab2a7d 100644 (file)
 # limitations under the License.
 
 
+class Volume:
+    """
+    SNAPS domain object for Volumes. Should contain attributes that
+    are shared amongst cloud providers
+    """
+    def __init__(self, name, volume_id, project_id, description, size,
+                 vol_type, availability_zone, multi_attach,
+                 attachments=list()):
+        """
+        Constructor
+        :param name: the volume's name
+        :param volume_id: the volume's id
+        :param project_id: the volume's associated project id
+        :param description: the volume's description
+        :param size: the volume's size in GB
+        :param vol_type: the volume's type
+        :param availability_zone: the volume's availability zone
+        :param multi_attach: When true, volume can be attached to multiple VMs
+        :param attachments: List of dict objects containing the info on where
+                            this volume is attached
+        """
+        self.name = name
+        self.id = volume_id
+        self.project_id = project_id
+        self.description = description
+        self.size = size
+        self.type = vol_type
+        self.availability_zone = availability_zone
+        self.multi_attach = multi_attach
+        self.attachments = attachments
+
+    def __eq__(self, other):
+        return (self.name == other.name
+                and self.id == other.id
+                and self.project_id == other.project_id
+                and self.description == other.description
+                and self.size == other.size
+                and self.type == other.type
+                and self.availability_zone == other.availability_zone
+                and self.multi_attach == other.multi_attach)
+
+
 class VolumeType:
     """
     SNAPS domain object for Volume Types. Should contain attributes that