aboutsummaryrefslogtreecommitdiffstats
path: root/yardstick/benchmark/context/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'yardstick/benchmark/context/model.py')
-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