From 4bf3b18f921b7bc7ecf3d34cb74fd80176cae8d5 Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Thu, 28 Jun 2018 17:17:08 +0100 Subject: Move "read_yaml_file" to common.yaml_loader JIRA: YARDSTICK-1265 Change-Id: Ic2813dca7fc9a3230632f6e8bd75aeacc7e951b0 Signed-off-by: Rodolfo Alonso Hernandez --- yardstick/benchmark/contexts/base.py | 5 +++-- yardstick/benchmark/contexts/standalone/model.py | 6 +++--- yardstick/common/utils.py | 9 --------- yardstick/common/yaml_loader.py | 12 ++++++++---- yardstick/tests/unit/benchmark/contexts/test_base.py | 3 ++- yardstick/tests/unit/benchmark/contexts/test_heat.py | 8 +++++--- yardstick/tests/unit/benchmark/contexts/test_node.py | 8 +++++--- 7 files changed, 26 insertions(+), 25 deletions(-) diff --git a/yardstick/benchmark/contexts/base.py b/yardstick/benchmark/contexts/base.py index 022e365e4..796a14bc2 100644 --- a/yardstick/benchmark/contexts/base.py +++ b/yardstick/benchmark/contexts/base.py @@ -14,6 +14,7 @@ import os from yardstick.common import constants from yardstick.common import utils +from yardstick.common import yaml_loader from yardstick.common.constants import YARDSTICK_ROOT_PATH @@ -73,13 +74,13 @@ class Context(object): def read_pod_file(self, attrs): self.file_path = file_path = attrs.get("file", "pod.yaml") try: - cfg = utils.read_yaml_file(self.file_path) + cfg = yaml_loader.read_yaml_file(self.file_path) except IOError as io_error: if io_error.errno != errno.ENOENT: raise self.file_path = os.path.join(YARDSTICK_ROOT_PATH, file_path) - cfg = utils.read_yaml_file(self.file_path) + cfg = yaml_loader.read_yaml_file(self.file_path) self.nodes.extend(cfg["nodes"]) self.controllers.extend([node for node in cfg["nodes"] diff --git a/yardstick/benchmark/contexts/standalone/model.py b/yardstick/benchmark/contexts/standalone/model.py index 764cde3f7..ecddcbbe0 100644 --- a/yardstick/benchmark/contexts/standalone/model.py +++ b/yardstick/benchmark/contexts/standalone/model.py @@ -26,7 +26,7 @@ import xml.etree.ElementTree as ET from yardstick import ssh from yardstick.common import constants from yardstick.common import exceptions -from yardstick.common.utils import read_yaml_file +from yardstick.common import yaml_loader from yardstick.network_services.utils import PciAddress from yardstick.network_services.helpers.cpu import CpuSysCores @@ -399,13 +399,13 @@ class StandaloneContextHelper(object): nodes = [] nfvi_host = [] try: - cfg = read_yaml_file(self.file_path) + cfg = yaml_loader.read_yaml_file(self.file_path) except IOError as io_error: if io_error.errno != errno.ENOENT: raise self.file_path = os.path.join(constants.YARDSTICK_ROOT_PATH, file_path) - cfg = read_yaml_file(self.file_path) + cfg = yaml_loader.read_yaml_file(self.file_path) nodes.extend([node for node in cfg["nodes"] if str(node["role"]) != nfvi_role]) nfvi_host.extend([node for node in cfg["nodes"] if str(node["role"]) == nfvi_role]) diff --git a/yardstick/common/utils.py b/yardstick/common/utils.py index 251e5cc6c..f9fe0e336 100644 --- a/yardstick/common/utils.py +++ b/yardstick/common/utils.py @@ -37,7 +37,6 @@ from oslo_utils import encodeutils import yardstick from yardstick.common import exceptions -from yardstick.common.yaml_loader import yaml_load logger = logging.getLogger(__name__) @@ -528,11 +527,3 @@ def wait_until_true(predicate, timeout=60, sleep=1, exception=None): if exception and issubclass(exception, Exception): raise exception # pylint: disable=raising-bad-type raise exceptions.WaitTimeout - - -def read_yaml_file(path): - """Read yaml file""" - - with open(path) as stream: - data = yaml_load(stream) - return data diff --git a/yardstick/common/yaml_loader.py b/yardstick/common/yaml_loader.py index 0572bd582..18673be7c 100644 --- a/yardstick/common/yaml_loader.py +++ b/yardstick/common/yaml_loader.py @@ -10,10 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -# yardstick: this file is copied from python-heatclient and slightly modified - -from __future__ import absolute_import - import yaml @@ -23,6 +19,7 @@ if hasattr(yaml, 'CSafeLoader'): else: yaml_loader = type('CustomLoader', (yaml.SafeLoader,), {}) + if hasattr(yaml, 'CSafeDumper'): yaml_dumper = yaml.CSafeDumper else: @@ -31,3 +28,10 @@ else: def yaml_load(tmpl_str): return yaml.load(tmpl_str, Loader=yaml_loader) + + +def read_yaml_file(path): + """Read yaml file""" + with open(path) as stream: + data = yaml_load(stream) + return data diff --git a/yardstick/tests/unit/benchmark/contexts/test_base.py b/yardstick/tests/unit/benchmark/contexts/test_base.py index 8f1cbcc55..64499cf14 100644 --- a/yardstick/tests/unit/benchmark/contexts/test_base.py +++ b/yardstick/tests/unit/benchmark/contexts/test_base.py @@ -19,6 +19,7 @@ import mock from yardstick.benchmark.contexts import base from yardstick.benchmark.contexts.base import Context +from yardstick.common import yaml_loader from yardstick.tests.unit import base as ut_base from yardstick.common.constants import YARDSTICK_ROOT_PATH @@ -129,7 +130,7 @@ class ContextTestCase(ut_base.BaseUnitTestCase): mock_get_ctx.assert_called_once() self.assertIsNone(result) - @mock.patch('yardstick.common.utils.read_yaml_file') + @mock.patch.object(yaml_loader, 'read_yaml_file') def test_read_pod_file(self, mock_read_yaml_file): attrs = {'name': 'foo', 'task_id': '12345678', diff --git a/yardstick/tests/unit/benchmark/contexts/test_heat.py b/yardstick/tests/unit/benchmark/contexts/test_heat.py index 7605ef29a..7782d96bd 100644 --- a/yardstick/tests/unit/benchmark/contexts/test_heat.py +++ b/yardstick/tests/unit/benchmark/contexts/test_heat.py @@ -20,6 +20,7 @@ from yardstick.benchmark.contexts import model from yardstick.common import constants as consts from yardstick.common import exceptions as y_exc from yardstick.common import openstack_utils +from yardstick.common import yaml_loader from yardstick import ssh @@ -80,12 +81,13 @@ class HeatContextTestCase(unittest.TestCase): self.assertIsNone(self.test_context.heat_parameters) self.assertIsNone(self.test_context.key_filename) - @mock.patch('yardstick.common.utils.read_yaml_file') + @mock.patch.object(yaml_loader, 'read_yaml_file') @mock.patch('yardstick.benchmark.contexts.heat.PlacementGroup') @mock.patch('yardstick.benchmark.contexts.heat.ServerGroup') @mock.patch('yardstick.benchmark.contexts.heat.Network') @mock.patch('yardstick.benchmark.contexts.heat.Server') - def test_init(self, mock_server, mock_network, mock_sg, mock_pg, mock_read_yaml): + def test_init(self, mock_server, mock_network, mock_sg, mock_pg, + mock_read_yaml): mock_read_yaml.return_value = self.HEAT_POD_SAMPLE pgs = {'pgrp1': {'policy': 'availability'}} @@ -764,7 +766,7 @@ class HeatContextTestCase(unittest.TestCase): nodes = self.test_context._get_physical_nodes() self.assertEquals(nodes, {}) - @mock.patch('yardstick.common.utils.read_yaml_file') + @mock.patch.object(yaml_loader, 'read_yaml_file') def test__get_physical_node_for_server(self, mock_read_yaml): attrs = {'name': 'foo', 'task_id': '12345678', diff --git a/yardstick/tests/unit/benchmark/contexts/test_node.py b/yardstick/tests/unit/benchmark/contexts/test_node.py index 5d7b24c3d..4c8d3d1d8 100644 --- a/yardstick/tests/unit/benchmark/contexts/test_node.py +++ b/yardstick/tests/unit/benchmark/contexts/test_node.py @@ -8,14 +8,16 @@ ############################################################################## import os -import unittest import errno + import mock +import unittest -from yardstick.common import constants as consts from yardstick.benchmark.contexts import base from yardstick.benchmark.contexts import node +from yardstick.common import constants as consts from yardstick.common import exceptions +from yardstick.common import yaml_loader class NodeContextTestCase(unittest.TestCase): @@ -56,7 +58,7 @@ class NodeContextTestCase(unittest.TestCase): self.assertEqual(self.test_context.env, {}) self.assertEqual(self.test_context.attrs, {}) - @mock.patch('yardstick.common.utils.read_yaml_file') + @mock.patch.object(yaml_loader, 'read_yaml_file') @mock.patch('{}.os.path.join'.format(PREFIX)) def test_init_negative(self, mock_path_join, read_mock): special_path = '/foo/bar/error_file' -- cgit 1.2.3-korg