aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/orchestrator/test_heat.py26
-rw-r--r--yardstick/benchmark/contexts/heat.py11
-rw-r--r--yardstick/orchestrator/heat.py13
3 files changed, 42 insertions, 8 deletions
diff --git a/tests/unit/orchestrator/test_heat.py b/tests/unit/orchestrator/test_heat.py
new file mode 100644
index 000000000..97314c275
--- /dev/null
+++ b/tests/unit/orchestrator/test_heat.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+
+##############################################################################
+# Copyright (c) 2017 Intel Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Unittest for yardstick.benchmark.orchestrator.heat
+
+import unittest
+import uuid
+
+from yardstick.orchestrator import heat
+
+
+class HeatContextTestCase(unittest.TestCase):
+
+ def test_get_short_key_uuid(self):
+ u = uuid.uuid4()
+ k = heat.get_short_key_uuid(u)
+ self.assertEqual(heat.HEAT_KEY_UUID_LENGTH, len(k))
+ self.assertIn(k, str(u))
diff --git a/yardstick/benchmark/contexts/heat.py b/yardstick/benchmark/contexts/heat.py
index 166ca40c8..29c47b39a 100644
--- a/yardstick/benchmark/contexts/heat.py
+++ b/yardstick/benchmark/contexts/heat.py
@@ -18,7 +18,7 @@ from yardstick.benchmark.contexts.model import Server
from yardstick.benchmark.contexts.model import PlacementGroup
from yardstick.benchmark.contexts.model import Network
from yardstick.benchmark.contexts.model import update_scheduler_hints
-from yardstick.orchestrator.heat import HeatTemplate
+from yardstick.orchestrator.heat import HeatTemplate, get_short_key_uuid
from yardstick.definitions import YARDSTICK_ROOT_PATH
@@ -44,8 +44,9 @@ class HeatContext(Context):
# generate an uuid to identify yardstick_key
# the first 8 digits of the uuid will be used
self.key_uuid = uuid.uuid4()
- self.key_filename = YARDSTICK_ROOT_PATH + \
- 'yardstick/resources/files/yardstick_key-' + str(self.key_uuid)[:8]
+ self.key_filename = ''.join(
+ [YARDSTICK_ROOT_PATH, 'yardstick/resources/files/yardstick_key-',
+ get_short_key_uuid(self.key_uuid)])
super(self.__class__, self).__init__()
def init(self, attrs):
@@ -243,8 +244,8 @@ class HeatContext(Context):
with attribute name mapping when using external heat templates
'''
key_filename = pkg_resources.resource_filename(
- 'yardstick.resources', 'files/yardstick_key-{:.{width}}'.format(
- self.key_uuid, width=8))
+ 'yardstick.resources',
+ 'files/yardstick_key-' + get_short_key_uuid(self.key_uuid))
if type(attr_name) is dict:
cname = attr_name["name"].split(".")[1]
diff --git a/yardstick/orchestrator/heat.py b/yardstick/orchestrator/heat.py
index f1104d625..e32d360e4 100644
--- a/yardstick/orchestrator/heat.py
+++ b/yardstick/orchestrator/heat.py
@@ -14,11 +14,11 @@ import datetime
import getpass
import socket
import logging
-import pkg_resources
import json
from oslo_utils import encodeutils
import heatclient
+import pkg_resources
from yardstick.common import template_format
import yardstick.common.openstack_utils as op_utils
@@ -27,6 +27,13 @@ import yardstick.common.openstack_utils as op_utils
log = logging.getLogger(__name__)
+HEAT_KEY_UUID_LENGTH = 8
+
+
+def get_short_key_uuid(uuid):
+ return str(uuid)[:HEAT_KEY_UUID_LENGTH]
+
+
class HeatObject(object):
''' base class for template and stack'''
def __init__(self):
@@ -308,8 +315,8 @@ class HeatTemplate(HeatObject):
'public_key': encodeutils.safe_decode(
pkg_resources.resource_string(
'yardstick.resources',
- 'files/yardstick_key-{:.{width}}.pub'.format(
- key_uuid, width=8)),
+ 'files/yardstick_key-' +
+ get_short_key_uuid(key_uuid) + '.pub'),
'utf-8')
}
}