aboutsummaryrefslogtreecommitdiffstats
path: root/functest/opnfv_tests/openstack/patrole
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2018-02-21 07:56:26 +0100
committerCédric Ollivier <cedric.ollivier@orange.com>2018-02-28 11:32:06 +0100
commit4a47d63986e6d5192fb8367a0afa0952d2ca5a29 (patch)
tree2bd7790a4a208417d393a62911bb7593ffd7e97a /functest/opnfv_tests/openstack/patrole
parentff4817eb5e7e11780353c73a9c7d0f40948863be (diff)
Integrate Patrole as a new testcase
It's published in a new container because the current results don't allow gating. 0.2 is selected to meet OpenStack Pike's requirements. Co-Authored-By: Rémi Le Trocquer <remi.letrocquer@orange.com> Change-Id: Iafcf8f66ee3531fc43136886095774885bfc3150 Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Diffstat (limited to 'functest/opnfv_tests/openstack/patrole')
-rw-r--r--functest/opnfv_tests/openstack/patrole/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/patrole/patrole.py79
2 files changed, 79 insertions, 0 deletions
diff --git a/functest/opnfv_tests/openstack/patrole/__init__.py b/functest/opnfv_tests/openstack/patrole/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/functest/opnfv_tests/openstack/patrole/__init__.py
diff --git a/functest/opnfv_tests/openstack/patrole/patrole.py b/functest/opnfv_tests/openstack/patrole/patrole.py
new file mode 100644
index 000000000..9d72a98f3
--- /dev/null
+++ b/functest/opnfv_tests/openstack/patrole/patrole.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2018 Orange and others.
+#
+# 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
+
+# pylint: disable=missing-docstring
+
+import logging
+import os
+import time
+
+from functest.core import testcase
+from functest.opnfv_tests.openstack.snaps import snaps_utils
+from functest.opnfv_tests.openstack.tempest import conf_utils
+from functest.opnfv_tests.openstack.tempest import tempest
+
+
+class Patrole(tempest.TempestCommon):
+
+ __logger = logging.getLogger(__name__)
+
+ def __init__(self, **kwargs):
+ if "case_name" not in kwargs:
+ kwargs["case_name"] = 'patrole'
+ super(Patrole, self).__init__(**kwargs)
+ self.mode = "^patrole_tempest_plugin."
+
+ def run(self, **kwargs):
+ self.start_time = time.time()
+ try:
+ if not os.path.exists(conf_utils.TEMPEST_RESULTS_DIR):
+ os.makedirs(conf_utils.TEMPEST_RESULTS_DIR)
+ resources = self.resources.create()
+ compute_cnt = snaps_utils.get_active_compute_cnt(
+ self.resources.os_creds)
+ self.configure_tempest_patrole(
+ self.deployment_dir,
+ network_name=resources.get("network_name"),
+ image_id=resources.get("image_id"),
+ flavor_id=resources.get("flavor_id"),
+ compute_cnt=compute_cnt)
+ self.generate_test_list(self.verifier_repo_dir)
+ self.apply_tempest_blacklist()
+ self.run_verifier_tests()
+ self.parse_verifier_result()
+ self.generate_report()
+ res = testcase.TestCase.EX_OK
+ except Exception as err: # pylint: disable=broad-except
+ self.__logger.error('Error with run: %s', err)
+ res = testcase.TestCase.EX_RUN_ERROR
+ finally:
+ self.resources.cleanup()
+ self.stop_time = time.time()
+ return res
+
+ def configure_tempest_patrole(
+ self, deployment_dir, network_name=None, image_id=None,
+ flavor_id=None, compute_cnt=None):
+ # pylint: disable=too-many-arguments
+ """
+ Add/update needed parameters into tempest.conf file
+ """
+ self.__logger.debug(
+ "Updating selected tempest.conf parameters for Patrole")
+ conf_file = conf_utils.configure_verifier(deployment_dir)
+ conf_utils.configure_tempest_update_params(
+ conf_file, network_name, image_id, flavor_id, compute_cnt)
+ config = conf_utils.ConfigParser.RawConfigParser()
+ config.read(conf_file)
+ config.set('identity-feature-enabled', 'api_v2', False)
+ config.add_section('rbac')
+ config.set('rbac', 'enable_rbac', True)
+ config.set('rbac', 'rbac_test_role', 'admin')
+ with open(conf_file, 'wb') as config_file:
+ config.write(config_file)