Heat: support create and attach volume in heat type context
[yardstick.git] / yardstick / benchmark / contexts / model.py
index ec47432..0bf85d0 100644 (file)
@@ -184,6 +184,14 @@ class Server(Object):     # pragma: no cover
             self.placement_groups.append(pg)
             pg.add_member(self.stack_name)
 
+        self.volume = None
+        if "volume" in attrs:
+            self.volume = attrs.get("volume")
+
+        self.volume_mountpoint = None
+        if "volume_mountpoint" in attrs:
+            self.volume_mountpoint = attrs.get("volume_mountpoint")
+
         # support servergroup attr
         self.server_group = None
         sg = attrs.get("server_group")
@@ -283,6 +291,17 @@ class Server(Object):     # pragma: no cover
             else:
                 self.flavor_name = self.flavor
 
+        if self.volume:
+            if isinstance(self.volume, dict):
+                self.volume["name"] = \
+                    self.volume.setdefault("name", server_name + "-volume")
+                template.add_volume(**self.volume)
+                template.add_volume_attachment(server_name, self.volume["name"],
+                                               mountpoint=self.volume_mountpoint)
+            else:
+                template.add_volume_attachment(server_name, self.volume,
+                                               mountpoint=self.volume_mountpoint)
+
         template.add_server(server_name, self.image, flavor=self.flavor_name,
                             flavors=self.context.flavors,
                             ports=port_name_list,