diff options
author | JingLu5 <lvjing5@huawei.com> | 2017-07-24 01:39:57 +0000 |
---|---|---|
committer | Jing Lu <lvjing5@huawei.com> | 2017-07-29 04:39:36 +0000 |
commit | f089a528c30b8163f52db9e5ff09f8632bc9078e (patch) | |
tree | 4647eefc9de585ad464d37823e1551d0e77d0439 /yardstick/benchmark/contexts | |
parent | 362f0330b4456414b9b05e4cc0e9e7db0c753722 (diff) |
Heat: support create and attach volume in heat type context
JIRA: YARDSTICK-756
Some test scenarios require VM with volume attached.
This work is about supporting create and attach volume in heat type context.
context:
name: demo
image: cirros-0.3.5
flavor: yardstick-flavor
user: cirros
placement_groups:
pgrp1:
policy: "availability"
servers:
athena:
floating_ip: true
# per-vm inline volume definition. if no volume size specified, then this
# volume should be an existing volume in the openstack environment
volume: yardstick-volume
placement: "pgrp1"
ares:
# per-vm inline volume definition. if volume size is specified, then this
# volume will be crated and attach to the vm
volume:
name: test-volume
size: 10
# volume mountpoint is also configurable
volume_mountpoint: /dev/vdb
placement: "pgrp1"
networks:
test:
cidr: '10.0.1.0/24'
Change-Id: Ief87b313980a59eac229eb4780d93ffc929ceb66
Signed-off-by: JingLu5 <lvjing5@huawei.com>
Diffstat (limited to 'yardstick/benchmark/contexts')
-rw-r--r-- | yardstick/benchmark/contexts/model.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/yardstick/benchmark/contexts/model.py b/yardstick/benchmark/contexts/model.py index ec474321f..0bf85d03d 100644 --- a/yardstick/benchmark/contexts/model.py +++ b/yardstick/benchmark/contexts/model.py @@ -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, |