diff options
author | Hans Feldt <hans.feldt@ericsson.com> | 2015-06-05 10:17:01 +0200 |
---|---|---|
committer | Hans Feldt <hans.feldt@ericsson.com> | 2015-06-09 13:05:12 +0000 |
commit | adf4a310ea7138866e77b0759a07042daac0cca7 (patch) | |
tree | 682d385c85622a73aa0a1a25ba37d52e6a61c9bd /yardstick/benchmark | |
parent | 508e01d81a96c8ede773e6d0dd332892e9600ea7 (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.py | 21 |
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 |