summaryrefslogtreecommitdiffstats
path: root/yardstick/benchmark
diff options
context:
space:
mode:
authorHans Feldt <hans.feldt@ericsson.com>2015-06-05 10:17:01 +0200
committerHans Feldt <hans.feldt@ericsson.com>2015-06-09 13:05:12 +0000
commitadf4a310ea7138866e77b0759a07042daac0cca7 (patch)
tree682d385c85622a73aa0a1a25ba37d52e6a61c9bd /yardstick/benchmark
parent508e01d81a96c8ede773e6d0dd332892e9600ea7 (diff)
Add support for multiple contexts(stacks)
A list of contexts can be specified, cross referencing between contexts is supported and shown in the added sample file. TBD can placement group work between stacks? Change-Id: I26dbe94e52ba0be5e49f50fd70540a57de2204cb JIRA: YARDSTICK-31 Signed-off-by: Hans Feldt <hans.feldt@ericsson.com>
Diffstat (limited to 'yardstick/benchmark')
-rw-r--r--yardstick/benchmark/context/model.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/yardstick/benchmark/context/model.py b/yardstick/benchmark/context/model.py
index 768c1d381..afb2d56dd 100644
--- a/yardstick/benchmark/context/model.py
+++ b/yardstick/benchmark/context/model.py
@@ -123,6 +123,7 @@ class Server(Object):
self.stack_name = context.name + "-" + self.name
self.keypair_name = context.keypair_name
self.secgroup_name = context.secgroup_name
+ self.context = context
if attrs is None:
attrs = {}
@@ -372,8 +373,8 @@ class Context(object):
except Exception as err:
sys.exit("error: failed to deploy stack: '%s'" % err)
- # copy some vital stack output into context
- for server in Server.list:
+ # Iterate the servers in this context and copy out needed info
+ for server in self.servers:
for port in server.ports.itervalues():
port["ipaddr"] = self.stack.outputs[port["stack_name"]]
@@ -391,6 +392,16 @@ class Context(object):
self.stack = None
print "Context undeployed"
- def get_server(self, name):
- '''lookup server object by name from context'''
- return self._server_map[name]
+ @staticmethod
+ def get_server(dn):
+ '''lookup server object by DN
+
+ dn is a distinguished name including the context name'''
+ if "." not in dn:
+ raise ValueError("dn '%s' is malformed" % dn)
+
+ for context in Context.list:
+ if dn in context._server_map:
+ return context._server_map[dn]
+
+ return None