Merge remote-tracking branch 'origin/master' into 0.1.x

Change-Id: I0f906989dd62bd4357308ce5d12ec13fbd9fb1c8
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..dd2946a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,64 @@
+*.py[cod]
+
+# C extensions
+*.so
+
+# Packages
+*.egg*
+*.egg-info
+dist
+build
+eggs
+parts
+bin
+var
+sdist
+develop-eggs
+.installed.cfg
+lib
+lib64
+
+# Installer logs
+pip-log.txt
+
+# Unit test / coverage reports
+cover/
+.coverage*
+!.coveragerc
+.tox
+nosetests.xml
+.testrepository
+.venv
+
+# Translations
+*.mo
+
+# Mr Developer
+.mr.developer.cfg
+.project
+.pydevproject
+
+# Complexity
+output/*.html
+output/*/index.html
+
+# Sphinx
+doc/build
+doc/source/_static/patrole.conf.sample
+
+# pbr generates these
+AUTHORS
+ChangeLog
+
+# Editors
+*~
+.*.swp
+.*sw?
+*.idea
+
+# Files created by releasenotes build
+releasenotes/build
+
+# Misc
+.stestr
+
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..2bf473a
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,18 @@
+language: python
+
+install:
+  - pip install tox
+
+script:
+  - tox
+
+jobs:
+  include:
+    - stage: style
+      python: "3.5"
+      env: TOXENV=pep8
+    - stage: unit tests
+      python: "2.7"
+      env: TOXENV=py27
+    - python: "3.5"
+      env: TOXENV=py35
diff --git a/README.md b/README.md
index c0e0c8f..c3775b1 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+[![Travis-CI](https://travis-ci.com/tungstenfabric/tungsten-tempest.svg?branch=master)](https://travis-ci.com/tungstenfabric/tungsten-tempest)
+
 Tempest Integration of Tungsten Fabric (Contrail)
 =================================================
 
diff --git a/pylintrc b/pylintrc
deleted file mode 100644
index e33289b..0000000
--- a/pylintrc
+++ /dev/null
@@ -1,380 +0,0 @@
-[MASTER]
-
-# Specify a configuration file.
-#rcfile=
-
-# Python code to execute, usually for sys.path manipulation such as
-# pygtk.require().
-#init-hook=
-
-# Add files or directories to the blacklist. They should be base names, not
-# paths.
-ignore=CVS
-
-# Pickle collected data for later comparisons.
-persistent=yes
-
-# List of plugins (as comma separated values of python modules names) to load,
-# usually to register additional checkers.
-load-plugins=
-
-# Use multiple processes to speed up Pylint.
-jobs=1
-
-# Allow loading of arbitrary C extensions. Extensions are imported into the
-# active Python interpreter and may run arbitrary code.
-unsafe-load-any-extension=no
-
-# A comma-separated list of package or module names from where C extensions may
-# be loaded. Extensions are loading into the active Python interpreter and may
-# run arbitrary code
-extension-pkg-whitelist=
-
-
-[MESSAGES CONTROL]
-
-# Only show warnings with the listed confidence levels. Leave empty to show
-# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
-confidence=
-
-# Enable the message, report, category or checker with the given id(s). You can
-# either give multiple identifier separated by comma (,) or put this option
-# multiple time. See also the "--disable" option for examples.
-#enable=
-
-# Disable the message, report, category or checker with the given id(s). You
-# can either give multiple identifiers separated by comma (,) or put this
-# option multiple times (only on the command line, not in the configuration
-# file where it should appear only once).You can also use "--disable=all" to
-# disable everything first and then reenable specific checks. For example, if
-# you want to run only the similarities checker, you can use "--disable=all
-# --enable=similarities". If you want to run only the classes checker, but have
-# no Warning level messages displayed, use"--disable=all --enable=classes
-# --disable=W"
-
-disable=protected-access,fixme,too-many-branches,
-        attribute-defined-outside-init,too-many-locals,
-        too-many-arguments,too-many-statements,
-        too-many-return-statements,too-few-public-methods,
-        import-error,too-many-lines,too-many-instance-attributes,
-        too-many-public-methods,duplicate-code,broad-except,
-        redefined-builtin,missing-docstring,no-member,bad-continuation,
-        bad-indentation,superfluous-parens,literal-comparison,unused-import,
-        no-self-use,unused-variable,anomalous-backslash-in-string,
-        line-too-long,len-as-condition,unnecessary-pass,
-        # Crashes, see #743.
-        redefined-variable-type,
-        # bug in 1.7.2 https://github.com/PyCQA/pylint/issues/1493
-        not-callable
-
-
-[REPORTS]
-
-# Set the output format. Available formats are text, parseable, colorized, msvs
-# (visual studio) and html. You can also give a reporter class, eg
-# mypackage.mymodule.MyReporterClass.
-output-format=parseable
-
-# Put messages in a separate file for each module / package specified on the
-# command line instead of printing them on stdout. Reports (if any) will be
-# written in a file name "pylint_global.[txt|html]".
-files-output=no
-
-# Tells whether to display a full report or only the messages
-reports=no
-
-# Python expression which should return a note less than 10 (10 is the highest
-# note). You have access to the variables errors warning, statement which
-# respectively contain the number of errors / warnings messages and the total
-# number of statements analyzed. This is used by the global evaluation report
-# (RP0004).
-evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
-
-# Template used to display messages. This is a python new-style format string
-# used to format the message information. See doc for all details
-#msg-template=
-
-
-[LOGGING]
-
-# Logging modules to check that the string format arguments are in logging
-# function parameter format
-logging-modules=logging
-
-
-[MISCELLANEOUS]
-
-# List of note tags to take in consideration, separated by a comma.
-notes=FIXME,XXX,TODO
-
-
-[SIMILARITIES]
-
-# Minimum lines number of a similarity.
-min-similarity-lines=4
-
-# Ignore comments when computing similarities.
-ignore-comments=yes
-
-# Ignore docstrings when computing similarities.
-ignore-docstrings=yes
-
-# Ignore imports when computing similarities.
-ignore-imports=no
-
-
-[VARIABLES]
-
-# Tells whether we should check for unused import in __init__ files.
-init-import=no
-
-# A regular expression matching the name of dummy variables (i.e. expectedly
-# not used).
-dummy-variables-rgx=_$|dummy
-
-# List of additional names supposed to be defined in builtins. Remember that
-# you should avoid to define new builtins when possible.
-additional-builtins=
-
-# List of strings which can identify a callback function by name. A callback
-# name must start or end with one of those strings.
-callbacks=cb_,_cb
-
-
-[FORMAT]
-
-# Maximum number of characters on a single line.
-max-line-length=100
-
-# Regexp for a line that is allowed to be longer than the limit.
-ignore-long-lines=^\s*(# )?<?https?://\S+>?$
-
-# Allow the body of an if to be on the same line as the test if there is no
-# else.
-single-line-if-stmt=no
-
-# List of optional constructs for which whitespace checking is disabled
-no-space-check=trailing-comma,dict-separator
-
-# Maximum number of lines in a module
-max-module-lines=1000
-
-# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
-# tab).
-indent-string='    '
-
-# Number of spaces of indent required inside a hanging or continued line.
-indent-after-paren=4
-
-# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
-expected-line-ending-format=
-
-
-[BASIC]
-
-# List of builtins function names that should not be used, separated by a comma
-bad-functions=map,filter,input
-
-# Good variable names which should always be accepted, separated by a comma
-good-names=i,j,k,ex,Run,_
-
-# Bad variable names which should always be refused, separated by a comma
-bad-names=foo,bar,baz,toto,tutu,tata
-
-# Colon-delimited sets of names that determine each other's naming style when
-# the name regexes allow several styles.
-name-group=
-
-# Include a hint for the correct naming format with invalid-name
-include-naming-hint=no
-
-# Regular expression matching correct function names
-function-rgx=[a-z_][a-z0-9_]{2,30}$
-
-# Naming hint for function names
-function-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression matching correct variable names
-variable-rgx=[a-z_][a-z0-9_]{2,30}$
-
-# Naming hint for variable names
-variable-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression matching correct constant names
-const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
-
-# Naming hint for constant names
-const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$
-
-# Regular expression matching correct attribute names
-attr-rgx=[a-z_][a-z0-9_]{2,30}$
-
-# Naming hint for attribute names
-attr-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression matching correct argument names
-argument-rgx=[a-z_][a-z0-9_]{2,30}$
-
-# Naming hint for argument names
-argument-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression matching correct class attribute names
-class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
-
-# Naming hint for class attribute names
-class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
-
-# Regular expression matching correct inline iteration names
-inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
-
-# Naming hint for inline iteration names
-inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$
-
-# Regular expression matching correct class names
-class-rgx=[A-Z_][a-zA-Z0-9]+$
-
-# Naming hint for class names
-class-name-hint=[A-Z_][a-zA-Z0-9]+$
-
-# Regular expression matching correct module names
-module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
-
-# Naming hint for module names
-module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
-
-# Regular expression matching correct method names
-method-rgx=[a-z_][a-z0-9_]{2,75}$
-
-# Naming hint for method names
-method-name-hint=[a-z_][a-z0-9_]{2,30}$
-
-# Regular expression which should only match function or class names that do
-# not require a docstring.
-no-docstring-rgx=__.*__
-
-# Minimum line length for functions/classes that require docstrings, shorter
-# ones are exempt.
-docstring-min-length=-1
-
-# List of decorators that define properties, such as abc.abstractproperty.
-property-classes=abc.abstractproperty
-
-
-[TYPECHECK]
-
-# Tells whether missing members accessed in mixin class should be ignored. A
-# mixin class is detected if its name ends with "mixin" (case insensitive).
-ignore-mixin-members=yes
-
-# List of module names for which member attributes should not be checked
-# (useful for modules/projects where namespaces are manipulated during runtime
-# and thus existing member attributes cannot be deduced by static analysis
-ignored-modules=
-
-# List of classes names for which member attributes should not be checked
-# (useful for classes with attributes dynamically set).
-ignored-classes=SQLObject, optparse.Values, thread._local, _thread._local
-
-# List of members which are set dynamically and missed by pylint inference
-# system, and so shouldn't trigger E1101 when accessed. Python regular
-# expressions are accepted.
-generated-members=REQUEST,acl_users,aq_parent
-
-# List of decorators that create context managers from functions, such as
-# contextlib.contextmanager.
-contextmanager-decorators=contextlib.contextmanager
-
-
-[SPELLING]
-
-# Spelling dictionary name. Available dictionaries: none. To make it working
-# install python-enchant package.
-spelling-dict=
-
-# List of comma separated words that should not be checked.
-spelling-ignore-words=
-
-# A path to a file that contains private dictionary; one word per line.
-spelling-private-dict-file=
-
-# Tells whether to store unknown words to indicated private dictionary in
-# --spelling-private-dict-file option instead of raising a message.
-spelling-store-unknown-words=no
-
-
-[DESIGN]
-
-# Maximum number of arguments for function / method
-max-args=5
-
-# Argument names that match this expression will be ignored. Default to name
-# with leading underscore
-ignored-argument-names=_.*
-
-# Maximum number of locals for function / method body
-max-locals=15
-
-# Maximum number of return / yield for function / method body
-max-returns=6
-
-# Maximum number of branch for function / method body
-max-branches=12
-
-# Maximum number of statements in function / method body
-max-statements=50
-
-# Maximum number of parents for a class (see R0901).
-max-parents=7
-
-# Maximum number of attributes for a class (see R0902).
-max-attributes=7
-
-# Minimum number of public methods for a class (see R0903).
-min-public-methods=2
-
-# Maximum number of public methods for a class (see R0904).
-max-public-methods=20
-
-
-[CLASSES]
-
-# List of method names used to declare (i.e. assign) instance attributes.
-defining-attr-methods=__init__,__new__,setUp
-
-# List of valid names for the first argument in a class method.
-valid-classmethod-first-arg=cls
-
-# List of valid names for the first argument in a metaclass class method.
-valid-metaclass-classmethod-first-arg=mcs
-
-# List of member names, which should be excluded from the protected access
-# warning.
-exclude-protected=_asdict,_fields,_replace,_source,_make
-
-
-[IMPORTS]
-
-# Deprecated modules which should not be used, separated by a comma
-deprecated-modules=regsub,TERMIOS,Bastion,rexec
-
-# Create a graph of every (i.e. internal and external) dependencies in the
-# given file (report RP0402 must not be disabled)
-import-graph=
-
-# Create a graph of external dependencies in the given file (report RP0402 must
-# not be disabled)
-ext-import-graph=
-
-# Create a graph of internal dependencies in the given file (report RP0402 must
-# not be disabled)
-int-import-graph=
-
-
-[EXCEPTIONS]
-
-# Exceptions that will emit a warning when being caught. Defaults to
-# "Exception"
-overgeneral-exceptions=Exception
-
-
-
diff --git a/requirements.txt b/requirements.txt
index 84d7047..f45ae7a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,6 +2,4 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-Patrole>=0.2.0
-pylint
-
+Patrole
diff --git a/setup.cfg b/setup.cfg
index 5ee9609..6836aa1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -4,7 +4,7 @@
 description-file =
     README.rst
 author = OpenStack
-author-email = openstack-dev@lists.openstack.org
+author-email = openstack-discuss@lists.openstack.org
 home-page = https://docs.openstack.org/tungsten-tempest/latest/
 classifier =
     Environment :: OpenStack
diff --git a/test-requirements.txt b/test-requirements.txt
index 2757893..45d7ddf 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,8 +1,6 @@
 # The order of packages is significant, because pip processes them in the order
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
-hacking>=0.12.0,<0.13 # Apache-2.0
 
-sphinx>=1.6.2 # BSD
-openstackdocstheme>=1.17.0 # Apache-2.0
-
+hacking>=1.1.0,<1.2.0 # Apache-2.0
+pylint
diff --git a/tox.ini b/tox.ini
index 17529a8..e3d3ee0 100644
--- a/tox.ini
+++ b/tox.ini
@@ -18,12 +18,14 @@
        -r{toxinidir}/test-requirements.txt
 commands =
     find . -type f -name "*.pyc" -delete
-    stestr --test-path ./tungsten_tempest_plugin/tests/unit run {posargs}
 
 [testenv:pep8]
 basepython = python3
-commands = flake8 {posargs}
-           check-uuid --package tungsten_tempest_plugin.tests.api
+deps =
+    -r{toxinidir}/test-requirements.txt
+commands =
+    flake8
+    check-uuid --package tungsten_tempest_plugin.tests.api
 
 [testenv:uuidgen]
 basepython = python3
@@ -86,16 +88,15 @@
 # [H205] Use assert(Greater|Less)(Equal) for comparison.
 # [H210] Require 'autospec', 'spec', or 'spec_set' in mock.patch/mock.patch.object calls
 # [H904] Delay string interpolations at logging calls.
-enable-extensions = H106,H203,H204,H205,H210,H904
+enable-extensions = H106,H203,H204,H205,H210,H904,H306
 show-source = True
 # E123, E125 skipped as they are invalid PEP-8.
 #
 # H405 is another one that is good as a guideline, but sometimes
 # multiline doc strings just don't have a natural summary
 # line. Rejecting code for this reason is wrong.
-ignore = E123,E125,H405
 builtins = _
-exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
+exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tungsten_tempest_plugin/services/contrail/json/
 
 [hacking]
 local-check-factory = tungsten_tempest_plugin.hacking.checks.factory
diff --git a/tungsten_tempest_plugin/config.py b/tungsten_tempest_plugin/config.py
index d1982ad..620c36a 100644
--- a/tungsten_tempest_plugin/config.py
+++ b/tungsten_tempest_plugin/config.py
@@ -38,6 +38,9 @@
     cfg.StrOpt('catalog_type',
                default='sdn-l-config',
                help="Catalog type of the SDN service"),
+    cfg.StrOpt('contrail_version',
+               default='5.0',
+               help="Version of SDN service"),
 ]
 
 tungsten_log_group = cfg.OptGroup(
diff --git a/tungsten_tempest_plugin/hacking/__init__.py b/tungsten_tempest_plugin/hacking/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tungsten_tempest_plugin/hacking/__init__.py
diff --git a/tungsten_tempest_plugin/hacking/checks.py b/tungsten_tempest_plugin/hacking/checks.py
new file mode 100644
index 0000000..3b05010
--- /dev/null
+++ b/tungsten_tempest_plugin/hacking/checks.py
@@ -0,0 +1,224 @@
+# Copyright 2013 IBM Corp.
+# Copyright 2017 AT&T Corporation.
+# All Rights Reserved.
+#
+#   Licensed under the Apache License, Version 2.0 (the "License"); you may
+#   not use this file except in compliance with the License. You may obtain
+#   a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#   License for the specific language governing permissions and limitations
+#   under the License.
+
+import os
+import re
+
+import pycodestyle
+
+
+PYTHON_CLIENTS = ['contrail']
+
+PYTHON_CLIENT_RE = re.compile('import (%s)client' % '|'.join(PYTHON_CLIENTS))
+TEST_DEFINITION = re.compile(r'^\s*def test.*')
+SETUP_TEARDOWN_CLASS_DEFINITION = re.compile(r'^\s+def (setUp|tearDown)Class')
+SCENARIO_DECORATOR = re.compile(r'\s*@.*services\((.*)\)')
+VI_HEADER_RE = re.compile(r"^#\s+vim?:.+")
+RAND_NAME_HYPHEN_RE = re.compile(r".*rand_name\(.+[\-\_][\"\']\)")
+MUTABLE_DEFAULT_ARGS = re.compile(r"^\s*def .+\((.+=\{\}|.+=\[\])")
+TESTTOOLS_SKIP_DECORATOR = re.compile(r'\s*@testtools\.skip\((.*)\)')
+CLASS = re.compile(r"^class .+")
+RBAC_CLASS_NAME_RE = re.compile(r'class .+RbacTest')
+RULE_VALIDATION_DECORATOR = re.compile(
+    r'\s*@rbac_rule_validation.action\(.*')
+IDEMPOTENT_ID_DECORATOR = re.compile(r'\s*@idempotent_id\((.*)\)')
+
+have_rbac_decorator = False
+
+
+def import_no_clients_in_api_tests(physical_line, filename):
+    """Check for client imports from tungsten_tempest_plugin/tests/api
+
+    T102: Cannot import python clients
+    """
+    if "tugnsten_tempest_plugin/tests/api" in filename:
+        res = PYTHON_CLIENT_RE.match(physical_line)
+        if res:
+            return (physical_line.find(res.group(1)),
+                    ("T102: python clients import not allowed "
+                     "in tungsten_tempest_plugin/tests/api/* or "
+                     "tugnsten_tempest_plugin/tests/scenario/* tests"))
+
+
+def no_setup_teardown_class_for_tests(physical_line, filename):
+    """Check that tests do not use setUpClass/tearDownClass
+
+    T105: Tests cannot use setUpClass/tearDownClass
+    """
+    if pycodestyle.noqa(physical_line):
+        return
+
+    if SETUP_TEARDOWN_CLASS_DEFINITION.match(physical_line):
+        return (physical_line.find('def'),
+                "T105: (setUp|tearDown)Class can not be used in tests")
+
+
+def no_vi_headers(physical_line, line_number, lines):
+    """Check for vi editor configuration in source files.
+
+    By default vi modelines can only appear in the first or
+    last 5 lines of a source file.
+
+    T106
+    """
+    # NOTE(gilliard): line_number is 1-indexed
+    if line_number <= 5 or line_number > len(lines) - 5:
+        if VI_HEADER_RE.match(physical_line):
+            return 0, "T106: Don't put vi configuration in source files"
+
+
+def service_tags_not_in_module_path(physical_line, filename):
+    """Check that a service tag isn't in the module path
+
+    A service tag should only be added if the service name isn't already in
+    the module path.
+
+    T107
+    """
+    matches = SCENARIO_DECORATOR.match(physical_line)
+    if matches:
+        services = matches.group(1).split(',')
+        for service in services:
+            service_name = service.strip().strip("'")
+            modulepath = os.path.split(filename)[0]
+            if service_name in modulepath:
+                return (physical_line.find(service_name),
+                        "T107: service tag should not be in path")
+
+
+def no_hyphen_at_end_of_rand_name(logical_line, filename):
+    """Check no hyphen at the end of rand_name() argument
+
+    T108
+    """
+    msg = "T108: hyphen should not be specified at the end of rand_name()"
+    if RAND_NAME_HYPHEN_RE.match(logical_line):
+        return 0, msg
+
+
+def no_mutable_default_args(logical_line):
+    """Check that mutable object isn't used as default argument
+
+    N322: Method's default argument shouldn't be mutable
+    """
+    msg = "N322: Method's default argument shouldn't be mutable!"
+    if MUTABLE_DEFAULT_ARGS.match(logical_line):
+        yield (0, msg)
+
+
+def no_testtools_skip_decorator(logical_line):
+    """Check that methods do not have the testtools.skip decorator
+
+    T109
+    """
+    if TESTTOOLS_SKIP_DECORATOR.match(logical_line):
+        yield (0, "T109: Cannot use testtools.skip decorator; instead use "
+               "decorators.skip_because from tempest.lib")
+
+
+def use_rand_uuid_instead_of_uuid4(logical_line, filename):
+    """Check that tests use data_utils.rand_uuid() instead of uuid.uuid4()
+
+    T113
+    """
+    if 'uuid.uuid4()' not in logical_line:
+        return
+
+    msg = ("T113: Tests should use data_utils.rand_uuid()/rand_uuid_hex() "
+           "instead of uuid.uuid4()/uuid.uuid4().hex")
+    yield (0, msg)
+
+
+def no_rbac_rule_validation_decorator(physical_line, filename):
+    """Check that each test has the ``rbac_rule_validation.action`` decorator.
+
+    Checks whether the test function has "@rbac_rule_validation.action"
+    above it; otherwise checks that it has "@decorators.idempotent_id" above
+    it and "@rbac_rule_validation.action" above that.
+
+    Assumes that ``rbac_rule_validation.action`` decorator is either the first
+    or second decorator above the test function; otherwise this check fails.
+
+    P100
+    """
+    global have_rbac_decorator
+
+    if ("tungsten_tempest_plugin/tests/api" in filename or
+            "tungsten_tempest_plugin/tests/scenario" in filename):
+
+        if RULE_VALIDATION_DECORATOR.match(physical_line):
+            have_rbac_decorator = True
+            return
+
+        if TEST_DEFINITION.match(physical_line):
+            if not have_rbac_decorator:
+                return (0, "Must use rbac_rule_validation.action "
+                           "decorator for API and scenario tests")
+
+            have_rbac_decorator = False
+
+
+def no_rbac_suffix_in_test_filename(filename):
+    """Check that RBAC filenames end with "_rbac" suffix.
+
+    P101
+    """
+    if "tungsten_tempest_plugin/tests/api" in filename:
+
+        if filename.endswith('rbac_base.py'):
+            return
+
+        if not filename.endswith('_rbac.py'):
+            return 0, "RBAC test filenames must end in _rbac suffix"
+
+
+def no_rbac_test_suffix_in_test_class_name(physical_line, filename):
+    """Check that RBAC class names end with "RbacTest"
+
+    P102
+    """
+    if "tunsgten_tempest_plugin/tests/api" in filename:
+
+        if filename.endswith('rbac_base.py'):
+            return
+
+        if CLASS.match(physical_line):
+            if not RBAC_CLASS_NAME_RE.match(physical_line):
+                return 0, "RBAC test class names must end in 'RbacTest'"
+
+
+def no_client_alias_in_test_cases(logical_line, filename):
+    """Check that test cases don't use "self.client" to define a client.
+
+    P103
+    """
+    if "tungsten_tempest_plugin/tests/api" in filename:
+        if "self.client" in logical_line or "cls.client" in logical_line:
+            return 0, "Do not use 'self.client' as a service client alias"
+
+
+def factory(register):
+    register(import_no_clients_in_api_tests)
+    register(no_setup_teardown_class_for_tests)
+    register(no_vi_headers)
+    register(no_hyphen_at_end_of_rand_name)
+    register(no_mutable_default_args)
+    register(no_testtools_skip_decorator)
+    register(use_rand_uuid_instead_of_uuid4)
+    register(service_tags_not_in_module_path)
+    register(no_rbac_rule_validation_decorator)
+    register(no_rbac_suffix_in_test_filename)
+    register(no_rbac_test_suffix_in_test_class_name)
diff --git a/tungsten_tempest_plugin/services/contrail/json/contrail_client.py b/tungsten_tempest_plugin/services/contrail/json/contrail_client.py
new file mode 100644
index 0000000..949df68
--- /dev/null
+++ b/tungsten_tempest_plugin/services/contrail/json/contrail_client.py
@@ -0,0 +1,128 @@
+# Copyright 2018 AT&T Corp
+# All Rights Reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+from oslo_serialization import jsonutils as json
+
+from six.moves import urllib
+from tempest.lib.common import rest_client as service_client
+
+from tungsten_tempest_plugin.services.contrail.json import base
+
+
+class ContrailClient(base.BaseContrailClient):
+    """Generic client for Contrail API
+
+    Client implements all basic CRUD functions for Contrail API.
+    http://www.opencontrail.org/documentation/api/r5.0/contrail_openapi.html
+    """
+
+    def _pluralize(self, resource_name):
+        """Contrail API ignores common rules for pluralization. For example:
+
+        .. Fetch a specific firewall-policy
+        .. GET /firewall-policy/{id}
+        and
+        .. List collection of firewall-policy
+        .. GET /firewall-policys
+
+        This method is created so if it will be ever changed we can update it
+        in one place.
+        """
+        return resource_name + 's'
+
+    def _underscore_to_dash(self, name):
+        return name.replace("_", "-")
+
+    def _build_uri(self, name, **kwargs):
+        uri = "/%s" % self._underscore_to_dash(name)
+        if kwargs:
+            uri += '?' + urllib.parse.urlencode(kwargs, doseq=1)
+        return uri
+
+    def _lister(self, plural_name):
+        def _list(**filters):
+            uri = self._build_uri(plural_name, **filters)
+            resp, body = self.get(uri)
+            result = {plural_name: json.loads(body)}
+            self.expected_success(200, resp.status)
+            return service_client.ResponseBody(resp, result)
+
+        return _list
+
+    def _deleter(self, resource_name):
+        def _delete(resource_id):
+            uri = '%s/%s' % (resource_name, resource_id)
+            uri = self._build_uri(uri)
+            resp, body = self.delete(uri)
+            self.expected_success(200, resp.status)
+            return service_client.ResponseBody(resp, body)
+
+        return _delete
+
+    def _shower(self, resource_name):
+        def _show(resource_id, **fields):
+            uri = '%s/%s' % (resource_name, resource_id)
+            uri = self._build_uri(uri)
+
+            if fields:
+                uri += '?' + urllib.parse.urlencode(fields, doseq=1)
+            resp, body = self.get(uri)
+            body = json.loads(body)
+            self.expected_success(200, resp.status)
+            return service_client.ResponseBody(resp, body)
+
+        return _show
+
+    def _creater(self, resource_name):
+        def _create(**kwargs):
+            uri = self._build_uri(self._pluralize(resource_name))
+            post_data = json.dumps({
+                self._underscore_to_dash(resource_name): kwargs})
+            resp, body = self.post(uri, post_data)
+            body = json.loads(body)
+            self.expected_success(200, resp.status)
+            return service_client.ResponseBody(resp, body)
+
+        return _create
+
+    def _updater(self, resource_name):
+        def _update(res_id, **kwargs):
+            uri = '%s/%s' % (resource_name, res_id)
+            uri = self._build_uri(uri)
+            put_data = json.dumps({
+                self._underscore_to_dash(resource_name): kwargs})
+            resp, body = self.put(uri, put_data)
+            body = json.loads(body) if body else {}
+            self.expected_success(200, resp.status)
+            return service_client.ResponseBody(resp, body)
+
+        return _update
+
+    def __getattr__(self, name):
+        """Client entry point
+
+        Once user will call CRUD method it will be managed here.
+        """
+        method_prefixes = ["list_", "delete_", "show_", "create_", "update_"]
+        method_functors = [self._lister,
+                           self._deleter,
+                           self._shower,
+                           self._creater,
+                           self._updater]
+        for index, prefix in enumerate(method_prefixes):
+            prefix_len = len(prefix)
+            if name[:prefix_len] == prefix:
+                return method_functors[index](name[prefix_len:])
+        raise AttributeError(name)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/rbac_base.py b/tungsten_tempest_plugin/tests/api/contrail/rbac_base.py
index 6a1b6c8..5a1fbd8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/rbac_base.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/rbac_base.py
@@ -18,6 +18,10 @@
 """
 
 from oslo_log import log as logging
+from patrole_tempest_plugin import rbac_utils
+from tempest import config
+from tempest.lib import exceptions
+from tempest import test
 
 from tungsten_tempest_plugin.services.contrail.json.access_control_client \
     import AccessControlClient
@@ -33,6 +37,8 @@
     import BGPAsAServiceClient
 from tungsten_tempest_plugin.services.contrail.json.config_client import \
     ConfigClient
+from tungsten_tempest_plugin.services.contrail.json.contrail_client import \
+    ContrailClient
 from tungsten_tempest_plugin.services.contrail.json.database_client import \
     ContrailDatabaseClient
 from tungsten_tempest_plugin.services.contrail.json.\
@@ -90,21 +96,26 @@
 from tungsten_tempest_plugin.services.contrail.json.vm_contrail_client import \
     VmContrailClient
 
-from patrole_tempest_plugin import rbac_utils
-
-from tempest import config
-from tempest import test
-
-from tempest.lib import exceptions
-
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
-class BaseContrailTest(test.BaseTestCase):
+def get_contail_version():
+    return float(CONF.sdn.contrail_version)
+
+
+class BaseContrailTest(rbac_utils.RbacUtilsMixin, test.BaseTestCase):
     """Base class for Contrail tests."""
     credentials = ['primary', 'admin']
 
+    required_contrail_version = None
+
+    @classmethod
+    def skip_if_contrail_version_less(cls, version):
+        if get_contail_version() < version:
+            msg = "The tests require Contrail >= %s" % version
+            raise cls.skipException(msg)
+
     @classmethod
     def skip_checks(cls):
         super(BaseContrailTest, cls).skip_checks()
@@ -113,10 +124,8 @@
         if "admin" not in CONF.auth.tempest_roles:
             raise cls.skipException(
                 "%s skipped because tempest roles is not admin" % cls.__name__)
-
-    @classmethod
-    def setup_credentials(cls):
-        super(BaseContrailTest, cls).setup_credentials()
+        if cls.required_contrail_version:
+            cls.skip_if_contrail_version_less(cls.required_contrail_version)
 
     @classmethod
     def get_auth_providers(cls):
@@ -130,7 +139,8 @@
         cls.admin_client = cls.os_admin.networks_client
         dscv = CONF.identity.disable_ssl_certificate_validation
         ca_certs = CONF.identity.ca_certificates_file
-        cls.rbac_utils = rbac_utils.RbacUtils(cls)
+        cls.setup_rbac_utils()
+
         cls.access_control_client = AccessControlClient(
             cls.auth_provider,
             CONF.sdn.catalog_type,
@@ -376,28 +386,17 @@
             CONF.sdn.endpoint_type,
             disable_ssl_certificate_validation=dscv,
             ca_certs=ca_certs)
+        cls.contrail_client = ContrailClient(
+            cls.auth_provider,
+            CONF.sdn.catalog_type,
+            CONF.identity.region,
+            CONF.sdn.endpoint_type,
+            disable_ssl_certificate_validation=dscv,
+            ca_certs=ca_certs)
 
     @classmethod
     def resource_setup(cls):
         cls.tenant_name = cls.os_primary.credentials.tenant_name
-        if CONF.auth.use_dynamic_credentials:
-            # Create a contrail project for tests
-            post_body = {
-                'parent_type': 'domain',
-                'fq_name': ['default-domain', cls.tenant_name]
-            }
-            try:
-                resp_body = cls.project_client.create_projects(**post_body)
-                cls.project_uuid = resp_body['project']['uuid']
-            except exceptions.Conflict:
-                resp_body = cls.project_client.list_projects()
-                for project in resp_body['projects']:
-                    if cls.tenant_name in project['fq_name']:
-                        cls.project_uuid = project['uuid']
-
-    @classmethod
-    def resource_cleanup(cls):
-        super(BaseContrailTest, cls).resource_cleanup()
 
     @classmethod
     def _try_delete_resource(cls, delete_callable, *args, **kwargs):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py b/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
index 36d8713..c95c349 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
@@ -17,22 +17,18 @@
 Tempest test-case to test Access Control using RBAC roles
 """
 
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class AccessControlTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test Access Control objects using RBAC roles
-    """
+    """Test class to test Access Control objects using RBAC roles"""
 
     def _create_api_access_lists(self):
         api_list_name = data_utils.rand_name('test-api-list')
@@ -78,44 +74,36 @@
         return new_ctrl_list
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_api_access_lists")
-    @idempotent_id('2bfde8fd-36fe-4e69-ba59-6f2db8941e7d')
+                                 rules=["list_api_access_lists"])
+    @decorators.idempotent_id('2bfde8fd-36fe-4e69-ba59-6f2db8941e7d')
     def test_list_api_access_lists(self):
-        """
-        test method for list api access list
-        """
+        """test method for list api access list"""
         with self.rbac_utils.override_role(self):
             self.access_control_client.list_api_access_lists()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_api_access_lists")
-    @idempotent_id('b2b5f50c-07d8-4d79-b9a4-78187ad97353')
+                                 rules=["create_api_access_lists"])
+    @decorators.idempotent_id('b2b5f50c-07d8-4d79-b9a4-78187ad97353')
     def test_create_api_access_lists(self):
-        """
-        test method for create api access list
-        """
+        """test method for create api access list"""
         with self.rbac_utils.override_role(self):
             self._create_api_access_lists()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_api_access_list")
-    @idempotent_id('b82e8e6b-83b5-424d-9652-ef6a34067f4f')
+                                 rules=["show_api_access_list"])
+    @decorators.idempotent_id('b82e8e6b-83b5-424d-9652-ef6a34067f4f')
     def test_show_api_access_list(self):
-        """
-        test method for show api access list
-        """
+        """test method for show api access list"""
         new_api_list = self._create_api_access_lists()
         with self.rbac_utils.override_role(self):
             self.access_control_client.show_api_access_list(
                 new_api_list['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_api_access_list")
-    @idempotent_id('edc88825-1e2e-47ff-b7b4-f68d6310fbad')
+                                 rules=["update_api_access_list"])
+    @decorators.idempotent_id('edc88825-1e2e-47ff-b7b4-f68d6310fbad')
     def test_update_api_access_list(self):
-        """
-        test method for update api access list
-        """
+        """test method for update api access list"""
         new_api_list = self._create_api_access_lists()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -124,46 +112,38 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_api_access_list")
-    @idempotent_id('f27d9044-95f2-4733-81ed-df9340dbd421')
+                                 rules=["delete_api_access_list"])
+    @decorators.idempotent_id('f27d9044-95f2-4733-81ed-df9340dbd421')
     def test_delete_api_access_list(self):
-        """
-        test method for delete api access list
-        """
+        """test method for delete api access list"""
         new_api_list = self._create_api_access_lists()
         with self.rbac_utils.override_role(self):
             self.access_control_client.delete_api_access_list(
                 new_api_list['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_access_control_lists")
-    @idempotent_id('c56a1338-a9d1-4286-8aeb-3a0d60d93037')
+                                 rules=["list_access_control_lists"])
+    @decorators.idempotent_id('c56a1338-a9d1-4286-8aeb-3a0d60d93037')
     def test_list_access_control_lists(self):
-        """
-        test method for list access control list
-        """
+        """test method for list access control list"""
         with self.rbac_utils.override_role(self):
             self.access_control_client.list_access_control_lists()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_access_control_lists")
-    @idempotent_id('9f225d2b-5376-42f5-97aa-cf63be47fa19')
+                                 rules=["create_access_control_lists"])
+    @decorators.idempotent_id('9f225d2b-5376-42f5-97aa-cf63be47fa19')
     def test_create_access_control(self):
-        """
-        test method for create access control list
-        """
+        """test method for create access control list"""
         # Create Security Group
         sec_group = self._create_security_groups()
         with self.rbac_utils.override_role(self):
             self._create_access_control_lists(sec_group['name'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_access_control_list")
-    @idempotent_id('f0ed882b-f3de-48b7-884a-637ee0b7d6b6')
+                                 rules=["show_access_control_list"])
+    @decorators.idempotent_id('f0ed882b-f3de-48b7-884a-637ee0b7d6b6')
     def test_show_access_control_list(self):
-        """
-        test method for show access control list
-        """
+        """test method for show access control list"""
         # Create Security Group
         sec_group = self._create_security_groups()
         new_ctrl_list = self._create_access_control_lists(
@@ -173,12 +153,10 @@
                 new_ctrl_list['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_access_control_list")
-    @idempotent_id('9a4b3133-dd07-4a1a-b282-f7770c372fb8')
+                                 rules=["update_access_control_list"])
+    @decorators.idempotent_id('9a4b3133-dd07-4a1a-b282-f7770c372fb8')
     def test_update_access_control_list(self):
-        """
-        test method for update access control list
-        """
+        """test method for update access control list"""
         sec_group = self._create_security_groups()
         new_ctrl_list = self._create_access_control_lists(
             sec_group['name'])
@@ -189,12 +167,10 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_access_control_list")
-    @idempotent_id('36a8ace1-71ca-4c7c-8667-d8387d6f964a')
+                                 rules=["delete_access_control_list"])
+    @decorators.idempotent_id('36a8ace1-71ca-4c7c-8667-d8387d6f964a')
     def test_delete_access_control_list(self):
-        """
-        test method for delete access control list
-        """
+        """test method for delete access control list"""
         # Create Security Group
         sec_group = self._create_security_groups()
         new_ctrl_list = self._create_access_control_lists(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py b/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
index a191f45..b1cff9a 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
@@ -18,62 +18,43 @@
 """
 
 from oslo_log import log as logging
+from patrole_tempest_plugin import rbac_rule_validation
+from tempest import config
+from tempest.lib.common.utils import data_utils
+from tempest.lib import decorators
 
 from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
-from patrole_tempest_plugin import rbac_rule_validation
-
-from tempest import config
-
-from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
-
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class AlarmContrailTest(rbac_base.BaseContrailTest):
+    """Test class to test Alarm objects using RBAC roles"""
 
-    """
-    Test class to test Alarm objects using RBAC roles
-    """
-
-    def _create_global_system_config(self):
-        config_name = data_utils.rand_name('test-config')
-        parent_type = 'config-root'
-        config_fq_name = [config_name]
-        new_config = \
-            self.config_client.create_global_system_configs(
-                parent_type=parent_type,
-                display_name=config_name,
-                fq_name=config_fq_name)['global-system-config']
-        self.addCleanup(self._try_delete_resource,
-                        (self.config_client.
-                         delete_global_system_config),
-                        new_config['uuid'])
-        return new_config
-
-    def _create_alarm(self, global_system_config):
+    def _create_alarm(self):
         post_body = {
-            'fq_name': [global_system_config,
+            'fq_name': ['default-domain',
+                        self.tenant_name,
                         data_utils.rand_name('alarm')],
             'alarm_severity': 1,
-            'parent_type': 'global-system-config',
+            'parent_type': 'project',
             'uve_keys': {
-                'uve_key': ['analytics_node']
+                'uve_key': ['virtual-network']
             },
             'alarm_rules': {
                 'or_list': [{
                     'and_list': [{
                         'operation': '!=',
-                        'operand1': 'NodeStatus.process_info.process_state',
+                        'operand1': data_utils.rand_name('tempest-alarm'),
                         'operand2': {
-                            'json_value': '"PROCESS_STATE_RUNNING"'
+                            'uve_attribute': 'name'
                         }
                     }]
                 }]
             }
         }
+
         resp_body = self.alarm_client.create_alarms(
             **post_body)
         alarm_uuid = resp_body['alarm']['uuid']
@@ -89,62 +70,45 @@
         self.alarm_client.update_alarm(alarm_uuid, **put_body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_alarms")
-    @idempotent_id('dc7d19dd-dd5e-4ec8-bf0c-c6d9d83a60a8')
+                                 rules=["list_alarms"])
+    @decorators.idempotent_id('dc7d19dd-dd5e-4ec8-bf0c-c6d9d83a60a8')
     def test_list_alarms(self):
-        """
-        test method for list alarms
-        """
+        """test method for list alarms"""
         with self.rbac_utils.override_role(self):
             self.alarm_client.list_alarms()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_alarms")
-    @idempotent_id('7fe55d0c-e54a-4bb7-95a6-9c53f9e9c4bf')
+                                 rules=["create_alarms"])
+    @decorators.idempotent_id('7fe55d0c-e54a-4bb7-95a6-9c53f9e9c4bf')
     def test_create_alarms(self):
-        """
-        test method for create alarms
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for create alarms"""
         with self.rbac_utils.override_role(self):
-            self._create_alarm(global_system_config)
+            self._create_alarm()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_alarm")
-    @idempotent_id('ab0ccbe4-7bfe-4176-890a-d438ee04290d')
+                                 rules=["show_alarm"])
+    @decorators.idempotent_id('ab0ccbe4-7bfe-4176-890a-d438ee04290d')
     def test_show_alarm(self):
-        """
-        test method for show alarms
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        alarm_uuid = self._create_alarm(global_system_config)
+        """test method for show alarms"""
+        alarm_uuid = self._create_alarm()
         with self.rbac_utils.override_role(self):
             self.alarm_client.show_alarm(alarm_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_alarm")
-    @idempotent_id('ab331cca-ee53-4106-9b30-7319bfb1bea7')
+                                 rules=["update_alarm"])
+    @decorators.idempotent_id('ab331cca-ee53-4106-9b30-7319bfb1bea7')
     def test_update_alarm(self):
-        """
-        test method for update alarms
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        alarm_uuid = self._create_alarm(global_system_config)
+        """test method for update alarms"""
+        alarm_uuid = self._create_alarm()
         with self.rbac_utils.override_role(self):
             self._update_alarm(alarm_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_alarm")
-    @idempotent_id('84fadb14-77c0-4f21-b5b2-1da7a2fd27e6')
+                                 rules=["delete_alarm"])
+    @decorators.idempotent_id('84fadb14-77c0-4f21-b5b2-1da7a2fd27e6')
     def test_delete_alarm(self):
-        """
-        test method for delete alarms
-        """
+        """test method for delete alarms"""
         # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        alarm_uuid = self._create_alarm(global_system_config)
+        alarm_uuid = self._create_alarm()
         with self.rbac_utils.override_role(self):
             self.alarm_client.delete_alarm(alarm_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py b/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
index 69da2d3..a6cdcdb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
@@ -17,21 +17,18 @@
 Tempest test-case to test Alias IP and IP pools objects using RBAC roles
 """
 
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class AliasIPsTest(rbac_base.BaseContrailTest):
-    """
-    Test class to test Alias IP and IP pools objects using RBAC roles
-    """
+    """Test class to test Alias IP and IP pools objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -115,33 +112,27 @@
         return new_alias_ip
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_alias_ips")
-    @idempotent_id('899d6824-0755-41ef-adef-03eb1858bcb0')
+                                 rules=["list_alias_ips"])
+    @decorators.idempotent_id('899d6824-0755-41ef-adef-03eb1858bcb0')
     def test_list_alias_ips(self):
-        """
-        test method for list alias IP
-        """
+        """test method for list alias IP"""
         with self.rbac_utils.override_role(self):
             self.alias_ip_client.list_alias_ips()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_alias_ips")
-    @idempotent_id('bc9aae29-22a8-4eed-a31f-c0ded300e3a3')
+                                 rules=["create_alias_ips"])
+    @decorators.idempotent_id('bc9aae29-22a8-4eed-a31f-c0ded300e3a3')
     def test_create_alias_ips(self):
-        """
-        test method for create alias IP
-        """
+        """test method for create alias IP"""
         new_alias_ip_pool = self._create_alias_ip_pools()
         with self.rbac_utils.override_role(self):
             self._create_alias_ips(new_alias_ip_pool, '2.2.3.1')
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_alias_ip")
-    @idempotent_id('d20318b1-c204-44e7-a44c-66f6a1fbe7a0')
+                                 rules=["show_alias_ip"])
+    @decorators.idempotent_id('d20318b1-c204-44e7-a44c-66f6a1fbe7a0')
     def test_show_alias_ip(self):
-        """
-        test method for show alias IP
-        """
+        """test method for show alias IP"""
         new_alias_ip_pool = self._create_alias_ip_pools()
         new_alias_ip = self._create_alias_ips(new_alias_ip_pool, '2.2.3.2')
         with self.rbac_utils.override_role(self):
@@ -149,12 +140,10 @@
                 new_alias_ip['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_alias_ip")
-    @idempotent_id('c237b18f-d899-4b80-8e9b-068244a24612')
+                                 rules=["update_alias_ip"])
+    @decorators.idempotent_id('c237b18f-d899-4b80-8e9b-068244a24612')
     def test_update_alias_ip(self):
-        """
-        test method for update alias IP
-        """
+        """test method for update alias IP"""
         new_alias_ip_pool = self._create_alias_ip_pools()
         new_alias_ip = self._create_alias_ips(new_alias_ip_pool, '2.2.3.3')
         update_name = data_utils.rand_name('test')
@@ -164,12 +153,10 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_alias_ip")
-    @idempotent_id('456c641c-9066-4125-8dec-d1529ad8f1ba')
+                                 rules=["delete_alias_ip"])
+    @decorators.idempotent_id('456c641c-9066-4125-8dec-d1529ad8f1ba')
     def test_delete_alias_ip(self):
-        """
-        test method for delete alias IP
-        """
+        """test method for delete alias IP"""
         new_alias_ip_pool = self._create_alias_ip_pools()
         new_alias_ip = self._create_alias_ips(new_alias_ip_pool, '2.2.3.4')
         with self.rbac_utils.override_role(self):
@@ -177,44 +164,36 @@
                 new_alias_ip['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_alias_ip_pools")
-    @idempotent_id('ffe85f35-589a-4b90-a1d3-6aed92a85954')
+                                 rules=["list_alias_ip_pools"])
+    @decorators.idempotent_id('ffe85f35-589a-4b90-a1d3-6aed92a85954')
     def test_list_alias_ip_pools(self):
-        """
-        est method for list alias IP pools
-        """
+        """est method for list alias IP pools"""
         with self.rbac_utils.override_role(self):
             self.alias_ip_client.list_alias_ip_pools()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_alias_ip_pools")
-    @idempotent_id('83abd2c0-d46a-4337-87d0-31cdb86e4226')
+                                 rules=["create_alias_ip_pools"])
+    @decorators.idempotent_id('83abd2c0-d46a-4337-87d0-31cdb86e4226')
     def test_create_alias_ip_pools(self):
-        """
-        test method for create alias IP pool
-        """
+        """test method for create alias IP pool"""
         with self.rbac_utils.override_role(self):
             self._create_alias_ip_pools()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_alias_ip_pool")
-    @idempotent_id('a1cbe111-ccba-4fa4-ba59-7d1ee08a15db')
+                                 rules=["show_alias_ip_pool"])
+    @decorators.idempotent_id('a1cbe111-ccba-4fa4-ba59-7d1ee08a15db')
     def test_show_alias_ip_pool(self):
-        """
-        test method for show alias IP pool
-        """
+        """test method for show alias IP pool"""
         new_alias_ip_pool = self._create_alias_ip_pools()
         with self.rbac_utils.override_role(self):
             self.alias_ip_client.show_alias_ip_pool(
                 new_alias_ip_pool['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_alias_ip_pool")
-    @idempotent_id('7f3448d7-22f1-4808-b3eb-15eeb3f079aa')
+                                 rules=["update_alias_ip_pool"])
+    @decorators.idempotent_id('7f3448d7-22f1-4808-b3eb-15eeb3f079aa')
     def test_update_alias_ip_pool(self):
-        """
-        test method for update alias IP pool
-        """
+        """test method for update alias IP pool"""
         new_alias_ip_pool = self._create_alias_ip_pools()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -223,12 +202,10 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_alias_ip_pool")
-    @idempotent_id('f59ea4fb-d10f-40c8-a8fa-dcd948ca89c8')
+                                 rules=["delete_alias_ip_pool"])
+    @decorators.idempotent_id('f59ea4fb-d10f-40c8-a8fa-dcd948ca89c8')
     def test_delete_alias_ip_pool(self):
-        """
-        test method for delete alias IP pool
-        """
+        """test method for delete alias IP pool"""
         new_alias_ip_pool = self._create_alias_ip_pools()
         with self.rbac_utils.override_role(self):
             self.alias_ip_client.delete_alias_ip_pool(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py b/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
index 9d94dba..36996c4 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
@@ -18,44 +18,24 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ContrailAnalyticsNodeTest(rbac_base.BaseContrailTest):
+    """Test class to test analytics node objects using RBAC roles"""
 
-    """
-    Test class to test analytics node objects using RBAC roles
-    """
-
-    def _create_global_system_config(self):
-        config_name = data_utils.rand_name('test-config')
-        parent_type = 'config-root'
-        config_fq_name = [config_name]
-        new_config = \
-            self.config_client.create_global_system_configs(
-                parent_type=parent_type,
-                display_name=config_name,
-                fq_name=config_fq_name)['global-system-config']
-        self.addCleanup(self._try_delete_resource,
-                        (self.config_client.
-                         delete_global_system_config),
-                        new_config['uuid'])
-        return new_config
-
-    def _create_analytics_node(self, global_system_config):
+    def _create_analytics_node(self):
         node_name = data_utils.rand_name('analytics-node')
         post_data = {
-            'fq_name': [global_system_config, node_name],
+            'fq_name': ['default-global-system-config', node_name],
             'parent_type': 'global-system-config'
         }
         new_node = self.analytics_node_client.create_analytics_nodes(
@@ -66,64 +46,46 @@
         return new_node
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_analytics_nodes")
-    @idempotent_id('d3002e37-4b42-446d-b144-1b53f0dadfd3')
+                                 rules=["list_analytics_nodes"])
+    @decorators.idempotent_id('d3002e37-4b42-446d-b144-1b53f0dadfd3')
     def test_list_analytics_nodes(self):
-        """
-        test method for list analytics nodes
-        """
+        """test method for list analytics nodes"""
         with self.rbac_utils.override_role(self):
             self.analytics_node_client.list_analytics_nodes()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_analytics_node")
-    @idempotent_id('b51043fd-77ba-4312-b96f-569ed5153338')
+                                 rules=["show_analytics_node"])
+    @decorators.idempotent_id('b51043fd-77ba-4312-b96f-569ed5153338')
     def test_show_analytics_node(self):
-        """
-        test method for show analytics nodes
-        """
-        # create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_node = self._create_analytics_node(global_system_config)
+        """test method for show analytics nodes"""
+        new_node = self._create_analytics_node()
         with self.rbac_utils.override_role(self):
             self.analytics_node_client.show_analytics_node(new_node['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_analytics_nodes")
-    @idempotent_id('c57482c9-fcb4-4f41-95b0-7f0ffeee3dc3')
+                                 rules=["create_analytics_nodes"])
+    @decorators.idempotent_id('c57482c9-fcb4-4f41-95b0-7f0ffeee3dc3')
     def test_create_analytics_nodes(self):
-        """
-        test method for create analytics nodes
-        """
-        # create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for create analytics nodes"""
         with self.rbac_utils.override_role(self):
-            self._create_analytics_node(global_system_config)
+            self._create_analytics_node()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_analytics_node")
-    @idempotent_id('ff50a2df-6283-409e-ab03-c13b63acc8a0')
+                                 rules=["update_analytics_node"])
+    @decorators.idempotent_id('ff50a2df-6283-409e-ab03-c13b63acc8a0')
     def test_update_analytics_node(self):
-        """
-        test method for update analytics nodes
-        """
-        # create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_node = self._create_analytics_node(global_system_config)
+        """test method for update analytics nodes"""
+        new_node = self._create_analytics_node()
         update_name = data_utils.rand_name('updated_node')
         with self.rbac_utils.override_role(self):
             self.analytics_node_client.update_analytics_node(
                 new_node['uuid'], display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_analytics_node")
-    @idempotent_id('972f997a-c89f-4227-8ae9-5a2335ec0b0a')
+                                 rules=["delete_analytics_node"])
+    @decorators.idempotent_id('972f997a-c89f-4227-8ae9-5a2335ec0b0a')
     def test_delete_analytics_node(self):
-        """
-        test method for delete analytics nodes
-        """
-        # create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_node = self._create_analytics_node(global_system_config)
+        """test method for delete analytics nodes"""
+        new_node = self._create_analytics_node()
         with self.rbac_utils.override_role(self):
             self.analytics_node_client.delete_analytics_node(new_node['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py b/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
index 950af4c..0281352 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
@@ -17,23 +17,18 @@
 Tempest test-case to test attachment clients objects using RBAC roles
 """
 
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class AttachmentsClientTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test attachment client objects using RBAC roles
-    """
+    """Test class to test attachment client objects using RBAC roles"""
 
     def _create_provider_attachments(self):
         provider_name = data_utils.rand_name('test-provider-attachment')
@@ -62,44 +57,36 @@
         return new_customer
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_provider_attachments")
-    @idempotent_id('961dbf54-ae4f-42e8-9d27-69fa7df39013')
+                                 rules=["list_provider_attachments"])
+    @decorators.idempotent_id('961dbf54-ae4f-42e8-9d27-69fa7df39013')
     def test_list_provider_attachments(self):
-        """
-        test method for list provider attachment objects
-        """
+        """test method for list provider attachment objects"""
         with self.rbac_utils.override_role(self):
             self.attachments_client.list_provider_attachments()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_provider_attachments")
-    @idempotent_id('73ad032e-3e81-4dcc-be55-1987484207cd')
+                                 rules=["create_provider_attachments"])
+    @decorators.idempotent_id('73ad032e-3e81-4dcc-be55-1987484207cd')
     def test_create_providerattach(self):
-        """
-        test method for create provider attachment objects
-        """
+        """test method for create provider attachment objects"""
         with self.rbac_utils.override_role(self):
             self._create_provider_attachments()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_provider_attachment")
-    @idempotent_id('7b5278bc-dd79-495a-9f74-448c04f52bd2')
+                                 rules=["show_provider_attachment"])
+    @decorators.idempotent_id('7b5278bc-dd79-495a-9f74-448c04f52bd2')
     def test_show_provider_attachment(self):
-        """
-        test method for delete provider attachment objects
-        """
+        """test method for delete provider attachment objects"""
         new_provider = self._create_provider_attachments()
         with self.rbac_utils.override_role(self):
             self.attachments_client.show_provider_attachment(
                 new_provider['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_provider_attachment")
-    @idempotent_id('3516ff99-eddf-4932-afa4-433a43a0e5ac')
+                                 rules=["update_provider_attachment"])
+    @decorators.idempotent_id('3516ff99-eddf-4932-afa4-433a43a0e5ac')
     def test_update_provider_attachment(self):
-        """
-        test method for update provider attachment objects
-        """
+        """test method for update provider attachment objects"""
         new_provider = self._create_provider_attachments()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -108,56 +95,46 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_provider_attachment")
-    @idempotent_id('234d5505-2abf-418b-b43b-ea6f5a724fd3')
+                                 rules=["delete_provider_attachment"])
+    @decorators.idempotent_id('234d5505-2abf-418b-b43b-ea6f5a724fd3')
     def test_delete_provider_attachment(self):
-        """
-        test method for delete provider attachment objects
-        """
+        """test method for delete provider attachment objects"""
         new_provider = self._create_provider_attachments()
         with self.rbac_utils.override_role(self):
             self.attachments_client.delete_provider_attachment(
                 new_provider['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_customer_attachments")
-    @idempotent_id('3eca8fd8-ec3c-4a0e-8f62-b15d28796b7f')
+                                 rules=["list_customer_attachments"])
+    @decorators.idempotent_id('3eca8fd8-ec3c-4a0e-8f62-b15d28796b7f')
     def test_list_customer_attachments(self):
-        """
-        test method for list customer attachment objects
-        """
+        """test method for list customer attachment objects"""
         with self.rbac_utils.override_role(self):
             self.attachments_client.list_customer_attachments()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_customer_attachments")
-    @idempotent_id('53f93053-554c-4202-b763-0230d9a0553a')
+                                 rules=["create_customer_attachments"])
+    @decorators.idempotent_id('53f93053-554c-4202-b763-0230d9a0553a')
     def test_create_customerattachments(self):
-        """
-        test method for create customer attachment objects
-        """
+        """test method for create customer attachment objects"""
         with self.rbac_utils.override_role(self):
             self._create_customer_attachments()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_customer_attachment")
-    @idempotent_id('c6671540-695c-4cba-bcee-4a5d1cddd412')
+                                 rules=["show_customer_attachment"])
+    @decorators.idempotent_id('c6671540-695c-4cba-bcee-4a5d1cddd412')
     def test_show_customer_attachment(self):
-        """
-        test method for show customer attachment objects
-        """
+        """test method for show customer attachment objects"""
         new_customer = self._create_customer_attachments()
         with self.rbac_utils.override_role(self):
             self.attachments_client.show_customer_attachment(
                 new_customer['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_customer_attachment")
-    @idempotent_id('50419cca-dd03-4d02-9c06-88446647fcba')
+                                 rules=["update_customer_attachment"])
+    @decorators.idempotent_id('50419cca-dd03-4d02-9c06-88446647fcba')
     def test_update_customer_attachment(self):
-        """
-        test method for update customer attachment objects
-        """
+        """test method for update customer attachment objects"""
         new_customer = self._create_customer_attachments()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -166,12 +143,10 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_customer_attachment")
-    @idempotent_id('5385c275-8e86-4739-9cb6-d1e0ed522807')
+                                 rules=["delete_customer_attachment"])
+    @decorators.idempotent_id('5385c275-8e86-4739-9cb6-d1e0ed522807')
     def test_delete_customer_attachment(self):
-        """
-        test method for delete customer attachment objects
-        """
+        """test method for delete customer attachment objects"""
         new_customer = self._create_customer_attachments()
         with self.rbac_utils.override_role(self):
             self.attachments_client.delete_customer_attachment(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_bgp_as_a_service.py b/tungsten_tempest_plugin/tests/api/contrail/test_bgp_as_a_service.py
index 900d563..f9345b8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_bgp_as_a_service.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_bgp_as_a_service.py
@@ -17,22 +17,18 @@
 Tempest test-case to test BGP as a Service objects using RBAC roles
 """
 
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class BGPAsAServicesTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test BGP as a Service objects using RBAC roles
-    """
+    """Test class to test BGP as a Service objects using RBAC roles"""
 
     def _create_bgp_as_a_services(self):
         bgp_name = data_utils.rand_name('test-bgp')
@@ -46,56 +42,46 @@
         return new_bgp
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_bgp_as_a_services")
-    @idempotent_id('d3153cd0-379e-4e62-9780-ef237e567fc5')
+                                 rules=["list_bgp_as_a_services"])
+    @decorators.idempotent_id('d3153cd0-379e-4e62-9780-ef237e567fc5')
     def test_list_bgp_as_a_services(self):
-        """
-        test method for list bgp as a service objects
-        """
+        """test method for list bgp as a service objects"""
         with self.rbac_utils.override_role(self):
             self.bgp_as_a_service_client.list_bgp_as_a_services()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_bgp_as_a_services")
-    @idempotent_id('a039f0c4-b53a-492b-a5c5-fbdf046afcf4')
+                                 rules=["create_bgp_as_a_services"])
+    @decorators.idempotent_id('a039f0c4-b53a-492b-a5c5-fbdf046afcf4')
     def test_create_bgp_as_a_services(self):
-        """
-        test method for create bgp as a service objects
-        """
+        """test method for create bgp as a service objects"""
         with self.rbac_utils.override_role(self):
             self._create_bgp_as_a_services()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_bgp_as_a_service")
-    @idempotent_id('c2fae8b4-929c-4d2f-914d-76a7414a56dc')
+                                 rules=["show_bgp_as_a_service"])
+    @decorators.idempotent_id('c2fae8b4-929c-4d2f-914d-76a7414a56dc')
     def test_show_bgp_as_a_service(self):
-        """
-        test method for show bgp as a service objects
-        """
+        """test method for show bgp as a service objects"""
         new_bgp = self._create_bgp_as_a_services()
         with self.rbac_utils.override_role(self):
             self.bgp_as_a_service_client.show_bgp_as_a_service(
                 new_bgp['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_bgp_as_a_service")
-    @idempotent_id('78c8389a-7bb5-4027-bae1-923af3d6e77c')
+                                 rules=["delete_bgp_as_a_service"])
+    @decorators.idempotent_id('78c8389a-7bb5-4027-bae1-923af3d6e77c')
     def test_delete_bgp_as_a_service(self):
-        """
-        test method for delete bgp as a service objects
-        """
+        """test method for delete bgp as a service objects"""
         new_bgp = self._create_bgp_as_a_services()
         with self.rbac_utils.override_role(self):
             self.bgp_as_a_service_client.delete_bgp_as_a_service(
                 new_bgp['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_bgp_as_a_service")
-    @idempotent_id('38ba2ecb-71e2-4a2f-be43-e82491dffa05')
+                                 rules=["update_bgp_as_a_service"])
+    @decorators.idempotent_id('38ba2ecb-71e2-4a2f-be43-e82491dffa05')
     def test_update_bgp_as_a_service(self):
-        """
-        test method for update bgp as a service objects
-        """
+        """test method for update bgp as a service objects"""
         new_bgp = self._create_bgp_as_a_services()
         with self.rbac_utils.override_role(self):
             self.bgp_as_a_service_client.update_bgp_as_a_service(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py b/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
index 051138b..26aea25 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
@@ -17,27 +17,24 @@
 Tempest test-case to test config objects using RBAC roles
 """
 
+import json
 import random
+import testtools
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ConfigNodeTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test config node objects using RBAC roles
-    """
+    """Test class to test config node objects using RBAC roles"""
 
     @staticmethod
     def _random_ip_generator():
@@ -48,7 +45,10 @@
     def _create_config_node(self):
         config_node_ip_address = self._random_ip_generator()
         display_name = data_utils.rand_name('config_node')
-        fq_name = ["default-global-system-config", display_name]
+        if rbac_base.get_contail_version() < 3.2:
+            fq_name = [display_name]
+        else:
+            fq_name = ['default-global-system-config', display_name]
         config_node = self.config_client.create_config_nodes(
             config_node_ip_address=config_node_ip_address,
             display_name=display_name, fq_name=fq_name)
@@ -60,32 +60,26 @@
         return config_node
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_config_nodes")
-    @idempotent_id('b560e060-e4f0-45b0-93e2-55f0cb201e06')
+                                 rules=["list_config_nodes"])
+    @decorators.idempotent_id('b560e060-e4f0-45b0-93e2-55f0cb201e06')
     def test_list_config_nodes(self):
-        """
-        test method for list config node objects
-        """
+        """test method for list config node objects"""
         with self.rbac_utils.override_role(self):
             self.config_client.list_config_nodes()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_config_nodes")
-    @idempotent_id('a8d20d0d-dc5a-4cae-87c5-7f6914c3701e')
+                                 rules=["create_config_nodes"])
+    @decorators.idempotent_id('a8d20d0d-dc5a-4cae-87c5-7f6914c3701e')
     def test_create_config_nodes(self):
-        """
-        test method for create config node objects
-        """
+        """test method for create config node objects"""
         with self.rbac_utils.override_role(self):
             self._create_config_node()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_config_node")
-    @idempotent_id('16573a85-57ab-418c-bb23-5dd936e7be90')
+                                 rules=["delete_config_node"])
+    @decorators.idempotent_id('16573a85-57ab-418c-bb23-5dd936e7be90')
     def test_delete_config_node(self):
-        """
-        test method for delete config node objects
-        """
+        """test method for delete config node objects"""
         config_node = self._create_config_node()
         config_node_uuid = config_node['config-node']['uuid']
         with self.rbac_utils.override_role(self):
@@ -93,24 +87,20 @@
                 config_node_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_config_node")
-    @idempotent_id('a5b17108-4fa3-4d09-b861-e2857aab8f80')
+                                 rules=["show_config_node"])
+    @decorators.idempotent_id('a5b17108-4fa3-4d09-b861-e2857aab8f80')
     def test_show_config_node(self):
-        """
-        test method for show config node objects
-        """
+        """test method for show config node objects"""
         config_node = self._create_config_node()
         config_node_uuid = config_node['config-node']['uuid']
         with self.rbac_utils.override_role(self):
             self.config_client.show_config_node(config_node_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_config_node")
-    @idempotent_id('8f70d2c0-594b-4a94-ab15-88bd8a2e62e5')
+                                 rules=["update_config_node"])
+    @decorators.idempotent_id('8f70d2c0-594b-4a94-ab15-88bd8a2e62e5')
     def test_update_config_node(self):
-        """
-        test method for update config node objects
-        """
+        """test method for update config node objects"""
         config_node = self._create_config_node()
         config_node_uuid = config_node['config-node']['uuid']
         updated_name = data_utils.rand_name('new_config_node')
@@ -120,10 +110,7 @@
 
 
 class ConfigRootTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test config root objects using RBAC roles
-    """
+    """Test class to test config root objects using RBAC roles"""
 
     def _create_config_root(self):
         display_name = data_utils.rand_name('config_root')
@@ -138,22 +125,18 @@
         return config_root
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_config_roots")
-    @idempotent_id('291b28ea-d0d8-47cd-ac76-1f980047cb76')
+                                 rules=["create_config_roots"])
+    @decorators.idempotent_id('291b28ea-d0d8-47cd-ac76-1f980047cb76')
     def test_create_config_roots(self):
-        """
-        test method for create config root service objects
-        """
+        """test method for create config root service objects"""
         with self.rbac_utils.override_role(self):
             self._create_config_root()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_config_root")
-    @idempotent_id('bd04c0fb-3deb-4904-ad2c-1a10933c30dd')
+                                 rules=["delete_config_root"])
+    @decorators.idempotent_id('bd04c0fb-3deb-4904-ad2c-1a10933c30dd')
     def test_delete_config_root(self):
-        """
-        test method for delete config root service objects
-        """
+        """test method for delete config root service objects"""
         config_root = self._create_config_root()
         config_root_uuid = config_root['config-root']['uuid']
         with self.rbac_utils.override_role(self):
@@ -161,24 +144,20 @@
                 config_root_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_config_root")
-    @idempotent_id('fba2c419-9a83-4d88-9a26-84770544bb3f')
+                                 rules=["show_config_root"])
+    @decorators.idempotent_id('fba2c419-9a83-4d88-9a26-84770544bb3f')
     def test_show_config_root(self):
-        """
-        test method for show config root service objects
-        """
+        """test method for show config root service objects"""
         config_root = self._create_config_root()
         config_root_uuid = config_root['config-root']['uuid']
         with self.rbac_utils.override_role(self):
             self.config_client.show_config_root(config_root_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_config_root")
-    @idempotent_id('bfcc074f-5e1c-4b45-8a2a-857239f8acb0')
+                                 rules=["update_config_root"])
+    @decorators.idempotent_id('bfcc074f-5e1c-4b45-8a2a-857239f8acb0')
     def test_update_config_root(self):
-        """
-        test method for update config root service objects
-        """
+        """test method for update config root service objects"""
         config_root = self._create_config_root()
         config_root_uuid = config_root['config-root']['uuid']
         updated_name = data_utils.rand_name('new_config_root')
@@ -187,21 +166,16 @@
                 config_root_uuid, display_name=updated_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_config_roots")
-    @idempotent_id('316e7425-8fb0-41b4-9080-a76697abbafa')
+                                 rules=["list_config_roots"])
+    @decorators.idempotent_id('316e7425-8fb0-41b4-9080-a76697abbafa')
     def test_list_config_roots(self):
-        """
-        test method for list config root service objects
-        """
+        """test method for list config root service objects"""
         with self.rbac_utils.override_role(self):
             self.config_client.list_config_roots()
 
 
 class GlobalSystemConfigTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test config node objects using RBAC roles
-    """
+    """Test class to test config node objects using RBAC roles"""
 
     def _create_global_system_config(self):
         config_name = data_utils.rand_name('test-config')
@@ -219,44 +193,56 @@
         return new_config
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_global_system_configs")
-    @idempotent_id('d1d189a7-14c1-49c5-b180-cd42ed2ca123')
+                                 rules=["list_global_system_configs"])
+    @decorators.idempotent_id('d1d189a7-14c1-49c5-b180-cd42ed2ca123')
     def test_list_global_system_configs(self):
-        """
-        test method for list global system config service objects
-        """
+        """test method for list global system config service objects"""
         with self.rbac_utils.override_role(self):
             self.config_client.list_global_system_configs()
 
+    @testtools.skipUnless(rbac_base.get_contail_version() < 5,
+                          'Not supported in OpenContrail versions >= 5')
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_global_system_configs")
-    @idempotent_id('e0ba6a20-3e28-47ac-bf95-9a848fcee49a')
-    def test_create_global_sys_configs(self):
-        """
-        test method for create global system config service objects
-        """
+                                 rules=["create_global_system_configs"])
+    @decorators.idempotent_id('e0ba6a20-3e28-47ac-bf95-9a848fcee49a')
+    def test_create_global_system_configs(self):
+        """test method for create global system config service objects"""
         with self.rbac_utils.override_role(self):
             self._create_global_system_config()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_global_system_config")
-    @idempotent_id('4b9f9131-cb34-4b7d-9d06-c6aca85cce3a')
+                                 rules=["show_global_system_config"])
+    @decorators.idempotent_id('4b9f9131-cb34-4b7d-9d06-c6aca85cce3a')
     def test_show_global_system_config(self):
-        """
-        test method for show global system config service objects
-        """
-        new_config = self._create_global_system_config()
-        with self.rbac_utils.override_role(self):
-            self.config_client.show_global_system_config(
-                new_config['uuid'])
+        if rbac_base.get_contail_version() < 5:
+            new_config = self._create_global_system_config()
+            with self.rbac_utils.override_role(self):
+                self.config_client.show_global_system_config(
+                    new_config['uuid'])
+        else:
+            resp, resp_body = self.config_client.list_global_system_configs()
+            # There must exist just one global system config in Contrail
+            # verion > 4.x. There may be more than one in other versions
+            # which is bug fixed in later releases.
+            body = json.loads(resp_body)['global-system-configs']
+            self.assertGreater(len(body), 0,
+                               msg="No global system config exists. "
+                                   "There must exists "
+                                   "default-global-sytem-config "
+                                   "at least by default")
+            for gsc in body:
+                if gsc['fq_name'][0] == 'default-global-system-config':
+                    with self.rbac_utils.override_role(self):
+                        self.config_client.show_global_system_config(
+                            gsc['uuid'])
 
+    @testtools.skipUnless(rbac_base.get_contail_version() < 5,
+                          'Not supported in OpenContrail versions >= 5')
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_global_system_config")
-    @idempotent_id('4f90dc83-da59-45a4-8ab6-b387bd6c2df4')
-    def test_update_global_sys_config(self):
-        """
-        test method for update global system config service objects
-        """
+                                 rules=["update_global_system_config"])
+    @decorators.idempotent_id('4f90dc83-da59-45a4-8ab6-b387bd6c2df4')
+    def test_update_global_system_config(self):
+        """test method for update global system config service objects"""
         new_config = self._create_global_system_config()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -264,14 +250,13 @@
                 new_config['uuid'],
                 display_name=update_name)
 
+    @testtools.skipUnless(rbac_base.get_contail_version() < 5,
+                          'Not supported in OpenContrail versions >= 5')
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_global_system_config")
-    @idempotent_id('fce1653c-e657-4a1e-8ced-7e02d297d6c9')
-    def test_delete_global_sys_config(self):
-        """
-        test method for delete global system config service objects
-        """
+                                 rules=["delete_global_system_config"])
+    @decorators.idempotent_id('fce1653c-e657-4a1e-8ced-7e02d297d6c9')
+    def test_delete_global_system_config(self):
+        """test method for delete global system config service objects"""
         new_config = self._create_global_system_config()
         with self.rbac_utils.override_role(self):
-            self.config_client.delete_global_system_config(
-                new_config['uuid'])
+            self.config_client.delete_global_system_config(new_config['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_database.py b/tungsten_tempest_plugin/tests/api/contrail/test_database.py
index 97cadc7..020d595 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_database.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_database.py
@@ -18,46 +18,26 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ContrailDatabaseTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test database objects using RBAC roles
-    """
-
-    def _create_global_system_config(self):
-        config_name = data_utils.rand_name('test-config')
-        parent_type = 'config-root'
-        config_fq_name = [config_name]
-        new_config = \
-            self.config_client.create_global_system_configs(
-                parent_type=parent_type,
-                display_name=config_name,
-                fq_name=config_fq_name)['global-system-config']
-        self.addCleanup(self._try_delete_resource,
-                        (self.config_client.
-                         delete_global_system_config),
-                        new_config['uuid'])
-        return new_config
+    """Test class to test database objects using RBAC roles"""
 
     def _delete_database_node(self, db_node_id):
         return self.db_client.delete_database_node(db_node_id)
 
-    def _create_database_node(self, global_system_config):
+    def _create_database_node(self):
         name = data_utils.rand_name('database')
-        fq_name = [global_system_config, name]
+        fq_name = ['default-global-system-config', name]
         database_node_ip_address = '1.1.1.1'
         parent_type = 'global-system-config'
         db_node = self.db_client.create_databse_nodes(
@@ -72,54 +52,37 @@
         return db_node
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_database_nodes")
-    @idempotent_id('5ae6f965-6161-443f-b19e-dfa7b364c533')
+                                 rules=["list_database_nodes"])
+    @decorators.idempotent_id('5ae6f965-6161-443f-b19e-dfa7b364c533')
     def test_list_database_nodes(self):
-        """
-        test method for list database objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        self._create_database_node(global_system_config)
+        """test method for list database objects"""
+        self._create_database_node()
         with self.rbac_utils.override_role(self):
             self.db_client.list_database_nodes()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_database_node")
-    @idempotent_id('4a07d9a8-7b99-43bd-b628-06c023993aab')
+                                 rules=["show_database_node"])
+    @decorators.idempotent_id('4a07d9a8-7b99-43bd-b628-06c023993aab')
     def test_show_database_node(self):
-        """
-        test method for show database objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        db_node = self._create_database_node(global_system_config)
-        db_node_id = db_node['uuid']
+        """test method for show database objects"""
+        db_node = self._create_database_node()
         with self.rbac_utils.override_role(self):
-            self.db_client.show_database_node(db_node_id)
+            self.db_client.show_database_node(db_node['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_database_nodes")
-    @idempotent_id('b9aa9c6b-9381-44f0-94fb-e4523bf2a87e')
+                                 rules=["create_database_nodes"])
+    @decorators.idempotent_id('b9aa9c6b-9381-44f0-94fb-e4523bf2a87e')
     def test_create_database_nodes(self):
-        """
-        test method for update database objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for update database objects"""
         with self.rbac_utils.override_role(self):
-            self._create_database_node(global_system_config)
+            self._create_database_node()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_database_node")
-    @idempotent_id('6e59f393-0e55-4327-871e-7f0ad53f2e17')
+                                 rules=["update_database_node"])
+    @decorators.idempotent_id('6e59f393-0e55-4327-871e-7f0ad53f2e17')
     def test_update_database_node(self):
-        """
-        test method for update database objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        db_node = self._create_database_node(global_system_config)
+        """test method for update database objects"""
+        db_node = self._create_database_node()
         db_node_id = db_node['uuid']
         display_name = data_utils.rand_name('DatabaseNew')
         with self.rbac_utils.override_role(self):
@@ -128,15 +91,11 @@
                 display_name=display_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_database_node")
-    @idempotent_id('0cbc5a52-d7e7-4a1c-a85d-6bf44012d99b')
+                                 rules=["delete_database_node"])
+    @decorators.idempotent_id('0cbc5a52-d7e7-4a1c-a85d-6bf44012d99b')
     def test_delete_database_node(self):
-        """
-        test method for delete database objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        db_node = self._create_database_node(global_system_config)
+        """test method for delete database objects"""
+        db_node = self._create_database_node()
         db_node_id = db_node['uuid']
         with self.rbac_utils.override_role(self):
             self._delete_database_node(db_node_id)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_discovery_service_assignment.py b/tungsten_tempest_plugin/tests/api/contrail/test_discovery_service_assignment.py
index f8209e0..0731440 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_discovery_service_assignment.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_discovery_service_assignment.py
@@ -17,22 +17,20 @@
 Tempest test-case to test discovery service assignment objects using RBAC roles
 """
 
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class DiscoveryServiceAssignmentTest(rbac_base.BaseContrailTest):
+    """Test class to test discovery service assignment objects using RBAC roles
 
     """
-    Test class to test discovery service assignment objects using RBAC roles
-    """
 
     def _create_discovery_service_assignments(self):
         dsa_name = [data_utils.rand_name('test-dsa')]
@@ -45,43 +43,36 @@
         return new_dsa
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_discovery_service_assignments")
-    @idempotent_id('9ac1e4ca-8983-403f-b644-7758935f2f36')
+                                 rules=["list_discovery_service_assignments"])
+    @decorators.idempotent_id('9ac1e4ca-8983-403f-b644-7758935f2f36')
     def test_list_discovery_service(self):
-        """
-        test method for list discovery service assignment objects
-        """
+        """test method for list discovery service assignment objects"""
         with self.rbac_utils.override_role(self):
             self.dsa_client.list_ds_assignments()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_discovery_service_assignments")
-    @idempotent_id('40ad1208-a039-4809-8516-41b4dfcbd00c')
+                                 rules=["create_discovery_service_assignments"]
+                                 )
+    @decorators.idempotent_id('40ad1208-a039-4809-8516-41b4dfcbd00c')
     def test_create_discovery_service(self):
-        """
-        test method for create discovery service assignment objects
-        """
+        """test method for create discovery service assignment objects"""
         with self.rbac_utils.override_role(self):
             self._create_discovery_service_assignments()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_discovery_service_assignment")
-    @idempotent_id('63660fe9-22b8-456c-a757-a7da1abfbce8')
+                                 rules=["show_discovery_service_assignment"])
+    @decorators.idempotent_id('63660fe9-22b8-456c-a757-a7da1abfbce8')
     def test_show_discovery_service(self):
-        """
-        test method for show discovery service assignment objects
-        """
+        """test method for show discovery service assignment objects"""
         new_dsa = self._create_discovery_service_assignments()
         with self.rbac_utils.override_role(self):
             self.dsa_client.show_ds_assignment(new_dsa['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_discovery_service_assignment")
-    @idempotent_id('71ce1404-965b-4670-abb7-5b6fea3b24b7')
+                                 rules=["update_discovery_service_assignment"])
+    @decorators.idempotent_id('71ce1404-965b-4670-abb7-5b6fea3b24b7')
     def test_update_discovery_service(self):
-        """
-        test method for update discovery service assignment objects
-        """
+        """test method for update discovery service assignment objects"""
         new_dsa = self._create_discovery_service_assignments()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -91,12 +82,10 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_discovery_service_assignment")
-    @idempotent_id('e7ff845d-2140-4eb0-9720-26370459723b')
+                                 rules=["delete_discovery_service_assignment"])
+    @decorators.idempotent_id('e7ff845d-2140-4eb0-9720-26370459723b')
     def test_delete_discovery_service(self):
-        """
-        test method for delete discovery service assignment objects
-        """
+        """test method for delete discovery service assignment objects"""
         new_dsa = self._create_discovery_service_assignments()
         with self.rbac_utils.override_role(self):
             self.dsa_client.delete_ds_assignment(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_domain.py b/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
index 8e74adf..baa50fb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class DomainContrailTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test domain objects using RBAC roles
-    """
+    """Test class to test domain objects using RBAC roles"""
 
     def _create_domains(self):
         fq_name = data_utils.rand_name('domain')
@@ -57,54 +52,44 @@
         self.domain_client.update_domain(domain_uuid, **put_body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_domains")
-    @idempotent_id('fa02e27b-f661-4186-a522-69e8fcb6abf9')
+                                 rules=["list_domains"])
+    @decorators.idempotent_id('fa02e27b-f661-4186-a522-69e8fcb6abf9')
     def test_list_domains(self):
-        """
-        test method for list domain objects
-        """
+        """test method for list domain objects"""
         with self.rbac_utils.override_role(self):
             self.domain_client.list_domains()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_domains")
-    @idempotent_id('3f18be91-c37b-4e17-bf5e-b704d993f738')
+                                 rules=["create_domains"])
+    @decorators.idempotent_id('3f18be91-c37b-4e17-bf5e-b704d993f738')
     def test_create_domains(self):
-        """
-        test method for create domain objects
-        """
+        """test method for create domain objects"""
         with self.rbac_utils.override_role(self):
             self._create_domains()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_domain")
-    @idempotent_id('e79f8581-ba9f-420a-aa26-f1cb51cf4bbf')
+                                 rules=["show_domain"])
+    @decorators.idempotent_id('e79f8581-ba9f-420a-aa26-f1cb51cf4bbf')
     def test_show_domain(self):
-        """
-        test method for show domain objects
-        """
+        """test method for show domain objects"""
         domain_uuid = self._create_domains()
         with self.rbac_utils.override_role(self):
             self.domain_client.show_domain(domain_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_domain")
-    @idempotent_id('fdf72539-20b5-4bdb-b22b-70c86fbb52a4')
+                                 rules=["update_domain"])
+    @decorators.idempotent_id('fdf72539-20b5-4bdb-b22b-70c86fbb52a4')
     def test_update_domain(self):
-        """
-        test method for update domain objects
-        """
+        """test method for update domain objects"""
         domain_uuid = self._create_domains()
         with self.rbac_utils.override_role(self):
             self._update_domain(domain_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_domain")
-    @idempotent_id('abaad2b0-6bde-40b8-b257-20ca805c1dca')
+                                 rules=["delete_domain"])
+    @decorators.idempotent_id('abaad2b0-6bde-40b8-b257-20ca805c1dca')
     def test_delete_domain(self):
-        """
-        test method for delete domain objects
-        """
+        """test method for delete domain objects"""
         domain_uuid = self._create_domains()
         with self.rbac_utils.override_role(self):
             self.domain_client.delete_domain(domain_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py b/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
index 95ed9a9..5d537f2 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ContrailDSARuleTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test DSA rule objects using RBAC roles
-    """
+    """Test class to test DSA rule objects using RBAC roles"""
 
     def _create_discovery_service_assignments(self):
         dsa_name = [data_utils.rand_name('test-dsa')]
@@ -61,22 +56,18 @@
         return new_rule
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_dsa_rules")
-    @idempotent_id('3227673b-96fc-4d26-ab0b-109347e9e9c2')
+                                 rules=["list_dsa_rules"])
+    @decorators.idempotent_id('3227673b-96fc-4d26-ab0b-109347e9e9c2')
     def test_list_dsa_rules(self):
-        """
-        test method for list dsa rules objects
-        """
+        """test method for list dsa rules objects"""
         with self.rbac_utils.override_role(self):
             self.dsa_rule_client.list_dsa_rules()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_dsa_rule")
-    @idempotent_id('0f90ea4f-c050-4c31-93a7-1e0c58df914e')
+                                 rules=["show_dsa_rule"])
+    @decorators.idempotent_id('0f90ea4f-c050-4c31-93a7-1e0c58df914e')
     def test_show_dsa_rule(self):
-        """
-        test method for show dsa rules objects
-        """
+        """test method for show dsa rules objects"""
         # create discover service assignment
         discovery_service_assignment = \
             self._create_discovery_service_assignments()['name']
@@ -85,12 +76,10 @@
             self.dsa_rule_client.show_dsa_rule(new_rule['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_dsa_rules")
-    @idempotent_id('c3774ca3-45d0-4ca8-a6b3-f895441b1d0e')
+                                 rules=["create_dsa_rules"])
+    @decorators.idempotent_id('c3774ca3-45d0-4ca8-a6b3-f895441b1d0e')
     def test_create_dsa_rules(self):
-        """
-        test method for create dsa rules objects
-        """
+        """test method for create dsa rules objects"""
         # create discover service assignment
         discovery_service_assignment = \
             self._create_discovery_service_assignments()['name']
@@ -98,12 +87,10 @@
             self._create_dsa_rules(discovery_service_assignment)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_dsa_rule")
-    @idempotent_id('5cfe7e8e-d91c-4183-8e6c-733e826707be')
+                                 rules=["update_dsa_rule"])
+    @decorators.idempotent_id('5cfe7e8e-d91c-4183-8e6c-733e826707be')
     def test_update_dsa_rule(self):
-        """
-        test method for update dsa rules objects
-        """
+        """test method for update dsa rules objects"""
         # create discover service assignment
         discovery_service_assignment = \
             self._create_discovery_service_assignments()['name']
@@ -114,12 +101,10 @@
                 new_rule['uuid'], display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_dsa_rule")
-    @idempotent_id('d3b869db-fa49-48f0-861a-08efd9879b15')
+                                 rules=["delete_dsa_rule"])
+    @decorators.idempotent_id('d3b869db-fa49-48f0-861a-08efd9879b15')
     def test_delete_dsa_rule(self):
-        """
-        test method for delete dsa rules objects
-        """
+        """test method for delete dsa rules objects"""
         # create discover service assignment
         discovery_service_assignment = \
             self._create_discovery_service_assignments()['name']
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_fabric.py b/tungsten_tempest_plugin/tests/api/contrail/test_fabric.py
new file mode 100644
index 0000000..1c9e380
--- /dev/null
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_fabric.py
@@ -0,0 +1,101 @@
+# Copyright 2018 AT&T Corp
+# All Rights Reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+from patrole_tempest_plugin import rbac_rule_validation
+from tempest import config
+from tempest.lib.common.utils import data_utils
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
+
+CONF = config.CONF
+
+
+class FabricContrailTest(rbac_base.BaseContrailTest):
+
+    required_contrail_version = 5
+
+    @classmethod
+    def resource_setup(cls):
+        super(FabricContrailTest, cls).resource_setup()
+        cls.fabric_uuid = cls._create_fabric()
+
+    @classmethod
+    def _create_fabric(cls):
+        fabric = cls.contrail_client.create_fabric(
+            fq_name=["default-global-system-config",
+                     data_utils.rand_name('fabric')],
+            parent_type="global-system-config")
+        cls.addClassResourceCleanup(cls._try_delete_resource,
+                                    cls.contrail_client.delete_fabric,
+                                    fabric["fabric"]["uuid"])
+        return fabric["fabric"]["uuid"]
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["list_fabrics"])
+    @decorators.idempotent_id('9005d1d6-3bd2-4378-b145-0fda130ce1d1')
+    def test_list_fabric_s(self):
+        """List fabrics
+
+        RBAC test for the Contrail list_fabrics policy
+        """
+        with self.rbac_utils.override_role(self):
+            self.contrail_client.list_fabrics()
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["create_fabric"])
+    @decorators.idempotent_id('9b216ca5-b332-41ca-9072-6c3ee325ea91')
+    def test_create_fabric(self):
+        """Create fabric
+
+        RBAC test for the Contrail create_fabric policy
+        """
+        with self.rbac_utils.override_role(self):
+            self._create_fabric()
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["show_fabric"])
+    @decorators.idempotent_id('244c3530-70e0-4efe-98be-4c2d1ffa0376')
+    def test_show_fabric(self):
+        """Show fabric
+
+        RBAC test for the Contrail show_fabric policy
+        """
+        with self.rbac_utils.override_role(self):
+            self.contrail_client.show_fabric(self.fabric_uuid)
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["delete_fabric"])
+    @decorators.idempotent_id('75edc6b9-c66a-46fc-a271-4c54e4cc77b1')
+    def test_delete_fabric(self):
+        """Delete fabric
+
+        RBAC test for the Contrail delete_fabric policy
+        """
+        fab_uuid = self._create_fabric()
+        with self.rbac_utils.override_role(self):
+            self.contrail_client.delete_fabric(fab_uuid)
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["update_fabric"])
+    @decorators.idempotent_id('f22c4c26-3843-4fc6-a8ff-7890d5ad1c39')
+    def test_update_fabric(self):
+        """Update fabric
+
+        RBAC test for the Contrail update_fabric policy
+        """
+        with self.rbac_utils.override_role(self):
+            put_body = {'display_name': data_utils.rand_name('update_fab')}
+            self.contrail_client.update_fabric(self.fabric_uuid, **put_body)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_fabric_namespaces.py b/tungsten_tempest_plugin/tests/api/contrail/test_fabric_namespaces.py
new file mode 100644
index 0000000..fe1ef6b
--- /dev/null
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_fabric_namespaces.py
@@ -0,0 +1,125 @@
+# Copyright 2018 AT&T Corp
+# All Rights Reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+from patrole_tempest_plugin import rbac_rule_validation
+from tempest import config
+from tempest.lib.common.utils import data_utils
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
+
+CONF = config.CONF
+
+
+class FabricNamespacesContrailTest(rbac_base.BaseContrailTest):
+
+    required_contrail_version = 5
+
+    @classmethod
+    def resource_setup(cls):
+        super(FabricNamespacesContrailTest, cls).resource_setup()
+        cls.fabric_namespace_uuid = cls._create_fabric_namespace()
+
+    @classmethod
+    def _create_fabric(cls):
+        # Fabric object is required as parent for fabric-namespace
+        fabric = cls.contrail_client.create_fabric(
+            fq_name=["default-global-system-config",
+                     data_utils.rand_name('fabric')],
+            parent_type="global-system-config")
+        cls.addClassResourceCleanup(cls._try_delete_resource,
+                                    cls.contrail_client.delete_fabric,
+                                    fabric["fabric"]["uuid"])
+        return fabric["fabric"]
+
+    @classmethod
+    def _create_fabric_namespace(cls):
+        fabric = cls._create_fabric()
+
+        parent_type = 'fabric'
+        name = data_utils.rand_name('fabric_namespace')
+        fq_name = fabric["fq_name"] + [name]
+
+        post_body = {
+            'fq_name': fq_name,
+            'parent_type': parent_type
+        }
+
+        resp_body = cls.contrail_client.create_fabric_namespace(**post_body)
+        cls.addClassResourceCleanup(
+            cls._try_delete_resource,
+            cls.contrail_client.delete_fabric_namespace,
+            resp_body['fabric-namespace']['uuid'])
+
+        return resp_body['fabric-namespace']['uuid']
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["list_fabric_namespaces"])
+    @decorators.idempotent_id('f9935e2a-c4b6-4694-8698-6148faf93e1a')
+    def test_list_fabric_namespaces(self):
+        """List fabric namespaces
+
+        RBAC test for the Contrail list_fabric_namespaces policy
+        """
+        with self.rbac_utils.override_role(self):
+            self.contrail_client.list_fabric_namespaces()
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["create_fabric_namespace"])
+    @decorators.idempotent_id('5bb85072-130d-4f36-a787-12b65bdd4c03')
+    def test_create_fabric_namespace(self):
+        """Create fabric namespace
+
+        RBAC test for the Contrail create_fabric_namespace policy
+        """
+        with self.rbac_utils.override_role(self):
+            self._create_fabric_namespace()
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["show_fabric_namespace"])
+    @decorators.idempotent_id('5ab5bc8f-7209-427a-9868-4fbc7a7e0d85')
+    def test_show_fabric_namespace(self):
+        """Show fabric namespace
+
+        RBAC test for the Contrail show_fabric_namespace policy
+        """
+        with self.rbac_utils.override_role(self):
+            self.contrail_client.show_fabric_namespace(
+                self.fabric_namespace_uuid)
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["delete_fabric_namespace"])
+    @decorators.idempotent_id('ff20e4bb-6110-476e-80b4-d6114981e8bf')
+    def test_delete_fabric_namespace(self):
+        """Delete fabric namespace
+
+        RBAC test for the Contrail delete_fabric_namespace policy
+        """
+        ns_uuid = self._create_fabric_namespace()
+        with self.rbac_utils.override_role(self):
+            self.contrail_client.delete_fabric_namespace(ns_uuid)
+
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
+                                 rules=["update_fabric_namespace"])
+    @decorators.idempotent_id('78514d86-fcdc-4bc6-99b9-11b5e91b5296')
+    def test_update_fabric_namespace(self):
+        """Update fabric namespace
+
+        RBAC test for the Contrail update_fabric_namespace policy
+        """
+        with self.rbac_utils.override_role(self):
+            put_body = {'display_name': data_utils.rand_name('update_fns')}
+            self.contrail_client.update_fabric_namespace(
+                self.fabric_namespace_uuid, **put_body)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py b/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
index ee325bc..e20b601 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class BaseFloatingIpTest(rbac_base.BaseContrailTest):
-
-    """
-    Base class to test floating IP objects using RBAC roles
-    """
+    """Base class to test floating IP objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -70,13 +65,13 @@
                              'uuid': cls.ipam['uuid'],
                              'attr': {
                                  'ipam_subnets': [{'subnet': subnet_ip_prefix}]
-                                 }
                              }
-                         ],
+                         }
+                     ],
                      'virtual_network_properties': {
                          'forwarding_mode': 'l3'
-                         }
-                    }
+                     }
+                     }
         body = cls.vn_client.create_virtual_networks(**post_body)
         cls.network = body['virtual-network']
 
@@ -90,10 +85,7 @@
 
 
 class FloatingIpPoolTest(BaseFloatingIpTest):
-
-    """
-    Test class to test Floating IP pool objects using RBAC roles
-    """
+    """Test class to test Floating IP pool objects using RBAC roles"""
 
     def _create_floating_ip_pool(self):
         pool_name = data_utils.rand_name('rbac-fip-pool')
@@ -114,44 +106,36 @@
         return fip_pool
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_floating_ip_pools")
-    @idempotent_id('a83ca5e8-be4b-4161-869c-f981a724cf82')
+                                 rules=["create_floating_ip_pools"])
+    @decorators.idempotent_id('a83ca5e8-be4b-4161-869c-f981a724cf82')
     def test_create_floating_ip_pools(self):
-        """
-        test method for create floating IP pool objects
-        """
+        """test method for create floating IP pool objects"""
         with self.rbac_utils.override_role(self):
             self._create_floating_ip_pool()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_floating_ip_pools")
-    @idempotent_id('9d20e78d-0463-4a0e-b30c-40770bee35bc')
+                                 rules=["list_floating_ip_pools"])
+    @decorators.idempotent_id('9d20e78d-0463-4a0e-b30c-40770bee35bc')
     def test_list_floating_ip_pools(self):
-        """
-        test method for list floating IP pool objects
-        """
+        """test method for list floating IP pool objects"""
         self._create_floating_ip_pool()
         with self.rbac_utils.override_role(self):
             self.fip_client.list_floating_ip_pools()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_floating_ip_pool")
-    @idempotent_id('1ec3124c-c15c-4ee6-b2de-2feed9599e38')
+                                 rules=["show_floating_ip_pool"])
+    @decorators.idempotent_id('1ec3124c-c15c-4ee6-b2de-2feed9599e38')
     def test_show_floating_ip_pool(self):
-        """
-        test method for show floating IP pool objects
-        """
+        """test method for show floating IP pool objects"""
         uuid = self._create_floating_ip_pool()['uuid']
         with self.rbac_utils.override_role(self):
             self.fip_client.show_floating_ip_pool(uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_floating_ip_pool")
-    @idempotent_id('6563f2e7-ae6b-483b-8c07-0111efc86817')
+                                 rules=["update_floating_ip_pool"])
+    @decorators.idempotent_id('6563f2e7-ae6b-483b-8c07-0111efc86817')
     def test_update_floating_ip_pool(self):
-        """
-        test method for update floating IP pool objects
-        """
+        """test method for update floating IP pool objects"""
         uuid = self._create_floating_ip_pool()['uuid']
         with self.rbac_utils.override_role(self):
             self.fip_client.update_floating_ip_pool(
@@ -159,22 +143,17 @@
                 display_name='rbac-fip-pool-new-name')
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_floating_ip_pool")
-    @idempotent_id('c4b449ae-2f12-49cf-9dec-2b21c143aff6')
+                                 rules=["delete_floating_ip_pool"])
+    @decorators.idempotent_id('c4b449ae-2f12-49cf-9dec-2b21c143aff6')
     def test_delete_floating_ip_pool(self):
-        """
-        test method for delete floating IP pool objects
-        """
+        """test method for delete floating IP pool objects"""
         uuid = self._create_floating_ip_pool()['uuid']
         with self.rbac_utils.override_role(self):
             self.fip_client.delete_floating_ip_pool(uuid)
 
 
 class FloatingIpTest(BaseFloatingIpTest):
-
-    """
-    Test class to test floating IP objects using RBAC roles
-    """
+    """Test class to test floating IP objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -210,44 +189,36 @@
         return fip
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_floating_ips")
-    @idempotent_id('ff05f70f-9db9-43cb-a5ce-38cbbef2c430')
+                                 rules=["create_floating_ips"])
+    @decorators.idempotent_id('ff05f70f-9db9-43cb-a5ce-38cbbef2c430')
     def test_create_floating_ips(self):
-        """
-        test method for create floating IP objects
-        """
+        """test method for create floating IP objects"""
         with self.rbac_utils.override_role(self):
             self._create_floating_ip()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_floating_ips")
-    @idempotent_id('e56046f9-32f9-41ce-9c1b-b982997ac347')
+                                 rules=["list_floating_ips"])
+    @decorators.idempotent_id('e56046f9-32f9-41ce-9c1b-b982997ac347')
     def test_list_floating_ips(self):
-        """
-        test method for list floating IP objects
-        """
+        """test method for list floating IP objects"""
         self._create_floating_ip()
         with self.rbac_utils.override_role(self):
             self.fip_client.list_floating_ips()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_floating_ip")
-    @idempotent_id('293f2c26-4101-4a2f-86d4-feb2878bd511')
+                                 rules=["show_floating_ip"])
+    @decorators.idempotent_id('293f2c26-4101-4a2f-86d4-feb2878bd511')
     def test_show_floating_ip(self):
-        """
-        test method for show floating IP objects
-        """
+        """test method for show floating IP objects"""
         uuid = self._create_floating_ip()['uuid']
         with self.rbac_utils.override_role(self):
             self.fip_client.show_floating_ip(uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_floating_ip")
-    @idempotent_id('a09283c9-73d3-42f7-876d-f33040686d6d')
+                                 rules=["update_floating_ip"])
+    @decorators.idempotent_id('a09283c9-73d3-42f7-876d-f33040686d6d')
     def test_update_floating_ip(self):
-        """
-        test method for update floating IP objects
-        """
+        """test method for update floating IP objects"""
         uuid = self._create_floating_ip()['uuid']
         with self.rbac_utils.override_role(self):
             self.fip_client.update_floating_ip(
@@ -255,12 +226,10 @@
                 display_name='rbac-fip-new-name')
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_floating_ip")
-    @idempotent_id('a26f162f-da56-4153-aed6-bffccba92bc7')
+                                 rules=["delete_floating_ip"])
+    @decorators.idempotent_id('a26f162f-da56-4153-aed6-bffccba92bc7')
     def test_delete_floating_ip(self):
-        """
-        test method for delete floating IP objects
-        """
+        """test method for delete floating IP objects"""
         uuid = self._create_floating_ip()['uuid']
         with self.rbac_utils.override_role(self):
             self.fip_client.delete_floating_ip(uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py b/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
index 6f642f9..d2b8979 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
@@ -18,44 +18,24 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ContrailForwardingClassTest(rbac_base.BaseContrailTest):
+    """Test class to test Forwarding class objects using RBAC roles"""
 
-    """
-    Test class to test Forwarding class objects using RBAC roles
-    """
-
-    def _create_global_system_config(self):
-        config_name = data_utils.rand_name('test-config')
-        parent_type = 'config-root'
-        config_fq_name = [config_name]
-        new_config = \
-            self.config_client.create_global_system_configs(
-                parent_type=parent_type,
-                display_name=config_name,
-                fq_name=config_fq_name)['global-system-config']
-        self.addCleanup(self._try_delete_resource,
-                        (self.config_client.
-                         delete_global_system_config),
-                        new_config['uuid'])
-        return new_config
-
-    def _create_qos_global_configs(self, global_system_config):
+    def _create_qos_global_configs(self):
         name = data_utils.rand_name('test-rbac-qos-global-config')
         parent_type = 'global-system-config'
-        fq_name = [global_system_config, name]
+        fq_name = ['default-global-system-config', name]
         qos_global_config = self.qos_client.create_global_qos_configs(
             fq_name=fq_name,
             parent_type=parent_type)['global-qos-config']
@@ -66,11 +46,10 @@
         return qos_global_config
 
     def _create_forwarding_class(self,
-                                 global_system_config,
                                  global_qos_config):
         display_name = data_utils.rand_name('forwarding-class')
         parent_type = 'global-qos-config'
-        fq_name = [global_system_config, global_qos_config, "1"]
+        fq_name = ['default-global-system-config', global_qos_config, "1"]
         forwarding_class_id = data_utils.rand_int_id(1, 200)
         post_data = {
             'fq_name': fq_name,
@@ -86,82 +65,60 @@
         return new_fclass
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_forwarding_classs")
-    @idempotent_id('807a66fd-d4a4-472c-a13d-7ba590509e6e')
+                                 rules=["list_forwarding_classs"])
+    @decorators.idempotent_id('807a66fd-d4a4-472c-a13d-7ba590509e6e')
     def test_list_forwarding_classs(self):
-        """
-        test method for list forwarding classes objects
-        """
+        """test method for list forwarding classes objects"""
         with self.rbac_utils.override_role(self):
             self.forwarding_class_client.list_forwarding_classs()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_forwarding_class")
-    @idempotent_id('8ef21f71-72a4-4de9-af93-6e759aa463c0')
+                                 rules=["show_forwarding_class"])
+    @decorators.idempotent_id('8ef21f71-72a4-4de9-af93-6e759aa463c0')
     def test_show_forwarding_class(self):
-        """
-        test method for show forwarding classes objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for show forwarding classes objects"""
         # Create a global qos config
-        global_qos_config = \
-            self._create_qos_global_configs(global_system_config)['name']
-        new_fclass = self._create_forwarding_class(global_system_config,
-                                                   global_qos_config)
+        self.global_qos_config = \
+            self._create_qos_global_configs()['name']
+        new_fclass = self._create_forwarding_class(self.global_qos_config)
         with self.rbac_utils.override_role(self):
             self.forwarding_class_client.show_forwarding_class(
                 new_fclass['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_forwarding_classs")
-    @idempotent_id('d098859c-ad36-4385-8fb0-c00934a99b6f')
-    def test_create_forwarding_classs(self):
-        """
-        test method for create forwarding classes objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+                                 rules=["create_forwarding_classs"])
+    @decorators.idempotent_id('d098859c-ad36-4385-8fb0-c00934a99b6f')
+    def test_create_forwarding_class(self):
+        """test method for create forwarding classes objects"""
         # Create a global qos config
-        global_qos_config = \
-            self._create_qos_global_configs(global_system_config)['name']
+        self.global_qos_config = \
+            self._create_qos_global_configs()['name']
         with self.rbac_utils.override_role(self):
-            self._create_forwarding_class(global_system_config,
-                                          global_qos_config)
+            self._create_forwarding_class(self.global_qos_config)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_forwarding_class")
-    @idempotent_id('589dc03d-a25d-48be-9d9c-d3f92ff2cfc6')
+                                 rules=["update_forwarding_class"])
+    @decorators.idempotent_id('589dc03d-a25d-48be-9d9c-d3f92ff2cfc6')
     def test_update_forwarding_class(self):
-        """
-        test method for update forwarding classes objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for update forwarding classes objects"""
         # Create a global qos config
-        global_qos_config = \
-            self._create_qos_global_configs(global_system_config)['name']
-        new_fclass = self._create_forwarding_class(global_system_config,
-                                                   global_qos_config)
+        self.global_qos_config = \
+            self._create_qos_global_configs()['name']
+        new_fclass = self._create_forwarding_class(self.global_qos_config)
         update_name = data_utils.rand_name('updated_fclass')
         with self.rbac_utils.override_role(self):
             self.forwarding_class_client.update_forwarding_class(
                 new_fclass['uuid'], display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_forwarding_class")
-    @idempotent_id('a0348ffc-68c5-4d94-ba03-d08483503ced')
+                                 rules=["delete_forwarding_class"])
+    @decorators.idempotent_id('a0348ffc-68c5-4d94-ba03-d08483503ced')
     def test_delete_forwarding_class(self):
-        """
-        test method for delete forwarding classes objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for delete forwarding classes objects"""
         # Create a global qos config
-        global_qos_config = \
-            self._create_qos_global_configs(global_system_config)['name']
-        new_fclass = self._create_forwarding_class(global_system_config,
-                                                   global_qos_config)
+        self.global_qos_config = \
+            self._create_qos_global_configs()['name']
+        new_fclass = self._create_forwarding_class(self.global_qos_config)
         with self.rbac_utils.override_role(self):
             self.forwarding_class_client.delete_forwarding_class(
                 new_fclass['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py b/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
index e8c8a3c..a798ed8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class FqnameIdTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test Fqname ID objects using RBAC roles
-    """
+    """Test class to test Fqname ID objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -55,22 +50,18 @@
         super(FqnameIdTest, cls).resource_cleanup()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="fqname_to_id")
-    @idempotent_id('1fc1350b-3146-49bc-9af5-a61a98b55541')
+                                 rules=["fqname_to_id"])
+    @decorators.idempotent_id('1fc1350b-3146-49bc-9af5-a61a98b55541')
     def test_fqname_to_id(self):
-        """
-        test method for fqname to id rules objects
-        """
+        """test method for fqname to id rules objects"""
         with self.rbac_utils.override_role(self):
             self.fq_client.fqname_to_id(fq_name=self.network['fq_name'],
                                         type=self.type)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="id_to_fqname")
-    @idempotent_id('ecdd77d7-8508-4639-86cd-b97907b363ff')
+                                 rules=["id_to_fqname"])
+    @decorators.idempotent_id('ecdd77d7-8508-4639-86cd-b97907b363ff')
     def test_id_to_fqname(self):
-        """
-        test method for id to fqname rules objects
-        """
+        """test method for id to fqname rules objects"""
         with self.rbac_utils.override_role(self):
             self.fq_client.id_to_fqname(uuid=self.network['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py b/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
index d242ffd..92ff740 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class InstanceIPTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test instance IP objects using RBAC roles
-    """
+    """Test class to test instance IP objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -65,13 +60,13 @@
                              'uuid': cls.ipam['uuid'],
                              'attr': {
                                  'ipam_subnets': [{'subnet': subnet_ip_prefix}]
-                                 }
                              }
-                         ],
+                         }
+                     ],
                      'virtual_network_properties': {
                          'forwarding_mode': 'l3'
-                         }
-                    }
+                     }
+                     }
         body = cls.vn_client.create_virtual_networks(**post_body)
         cls.network = body['virtual-network']
 
@@ -106,44 +101,36 @@
         return iip
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_instance_ips")
-    @idempotent_id('31db3b3f-c40b-4f7f-bb8b-0a110f099553')
+                                 rules=["list_instance_ips"])
+    @decorators.idempotent_id('31db3b3f-c40b-4f7f-bb8b-0a110f099553')
     def test_list_instance_ips(self):
-        """
-        test method for list instance IP objects
-        """
+        """test method for list instance IP objects"""
         self._create_instance_ip()
         with self.rbac_utils.override_role(self):
             self.iip_client.list_instance_ips()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_instance_ips")
-    @idempotent_id('78f5cd4d-345d-4d87-8b8b-4d5d3fec4a12')
+                                 rules=["create_instance_ips"])
+    @decorators.idempotent_id('78f5cd4d-345d-4d87-8b8b-4d5d3fec4a12')
     def test_create_instance_ips(self):
-        """
-        test method for create instance IP objects
-        """
+        """test method for create instance IP objects"""
         with self.rbac_utils.override_role(self):
             self._create_instance_ip()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_instance_ip")
-    @idempotent_id('276f3838-d9cb-4432-bbb4-db31c4c1db5c')
+                                 rules=["show_instance_ip"])
+    @decorators.idempotent_id('276f3838-d9cb-4432-bbb4-db31c4c1db5c')
     def test_show_instance_ip(self):
-        """
-        test method for update instance IP objects
-        """
+        """test method for update instance IP objects"""
         uuid = self._create_instance_ip()['uuid']
         with self.rbac_utils.override_role(self):
             self.iip_client.show_instance_ip(uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_instance_ip")
-    @idempotent_id('b85975a5-176f-44b1-a615-b6f0a39a7708')
+                                 rules=["update_instance_ip"])
+    @decorators.idempotent_id('b85975a5-176f-44b1-a615-b6f0a39a7708')
     def test_update_instance_ip(self):
-        """
-        test method for update instance IP objects
-        """
+        """test method for update instance IP objects"""
         uuid = self._create_instance_ip()['uuid']
         with self.rbac_utils.override_role(self):
             self.iip_client.update_instance_ip(
@@ -151,12 +138,10 @@
                 display_name='rbac-iip-new-name')
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_instance_ip")
-    @idempotent_id('d9c1d400-1dfb-4adb-8d97-0e8b498226b7')
+                                 rules=["delete_instance_ip"])
+    @decorators.idempotent_id('d9c1d400-1dfb-4adb-8d97-0e8b498226b7')
     def test_delete_instance_ip(self):
-        """
-        test method for delete instance IP objects
-        """
+        """test method for delete instance IP objects"""
         uuid = self._create_instance_ip()['uuid']
         with self.rbac_utils.override_role(self):
             self.iip_client.delete_instance_ip(uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py b/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
index 9115fc2..b313d1d 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
@@ -18,49 +18,28 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class InterfacesTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test interfaces objects using RBAC roles
-    """
+    """Test class to test interfaces objects using RBAC roles"""
 
     router_name = data_utils.rand_name('rbac-physical-router')
     physical_if_name = data_utils.rand_name('rbac-physical-interface')
     logical_if_name = data_utils.rand_name('rbac-logical-interface')
 
-    def _create_global_system_config(self):
-        config_name = data_utils.rand_name('test-config')
-        parent_type = 'config-root'
-        config_fq_name = [config_name]
-        new_config = \
-            self.config_client.create_global_system_configs(
-                parent_type=parent_type,
-                display_name=config_name,
-                fq_name=config_fq_name)['global-system-config']
-        self.addCleanup(self._try_delete_resource,
-                        (self.config_client.
-                         delete_global_system_config),
-                        new_config['uuid'])
-        return new_config
-
     def _create_physical_router(self):
-        self.global_system_config = self._create_global_system_config()['name']
-
-        fq_name = [self.global_system_config, self.router_name]
-        post_body = {'parent_type': 'global-system-config', 'fq_name': fq_name}
+        fq_name = ['default-global-system-config', self.router_name]
+        post_body = {'parent_type': 'global-system-config'}
+        post_body['fq_name'] = fq_name
 
         router = self.router_client.create_physical_routers(
             **post_body)['physical-router']
@@ -70,9 +49,10 @@
         return router
 
     def _create_physical_interface(self):
-        fq_name = [self.global_system_config, self.router_name,
+        fq_name = ['default-global-system-config', self.router_name,
                    self.physical_if_name]
-        post_body = {'parent_type': 'physical-router', 'fq_name': fq_name}
+        post_body = {'parent_type': 'physical-router'}
+        post_body['fq_name'] = fq_name
 
         physical_if = self.interface_client.create_physical_interfaces(
             **post_body)['physical-interface']
@@ -82,9 +62,10 @@
         return physical_if
 
     def _create_logical_interface(self):
-        fq_name = [self.global_system_config, self.router_name,
+        fq_name = ['default-global-system-config', self.router_name,
                    self.physical_if_name, self.logical_if_name]
-        post_body = {'parent_type': 'physical-interface', 'fq_name': fq_name}
+        post_body = {'parent_type': 'physical-interface'}
+        post_body['fq_name'] = fq_name
 
         logical_if = self.interface_client.create_logical_interfaces(
             **post_body)['logical-interface']
@@ -94,34 +75,27 @@
         return logical_if
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_physical_interfaces")
-    @idempotent_id('c496a2b4-51b2-4674-a60e-483a315baccb')
+                                 rules=["list_physical_interfaces"])
+    @decorators.idempotent_id('c496a2b4-51b2-4674-a60e-483a315baccb')
     def test_list_physical_interfaces(self):
-        """
-        test method for list physical interfaces objects
-        """
+        """test method for list physical interfaces objects"""
         with self.rbac_utils.override_role(self):
             self.interface_client.list_physical_interfaces()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_physical_interfaces")
-    @idempotent_id('066f53d8-3d2a-4ad6-983f-243de7c12962')
+                                 rules=["create_physical_interfaces"])
+    @decorators.idempotent_id('066f53d8-3d2a-4ad6-983f-243de7c12962')
     def test_create_physical_interfaces(self):
-        """
-        test method for create physical interfaces objects
-        """
-
+        """test method for create physical interfaces objects"""
         self._create_physical_router()
         with self.rbac_utils.override_role(self):
             self._create_physical_interface()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_physical_interface")
-    @idempotent_id('91c4fc90-ed0f-42ec-87c6-ff6c2a9ab8de')
+                                 rules=["update_physical_interface"])
+    @decorators.idempotent_id('91c4fc90-ed0f-42ec-87c6-ff6c2a9ab8de')
     def test_update_physical_interface(self):
-        """
-        test method for update physical interfaces objects
-        """
+        """test method for update physical interfaces objects"""
         self._create_physical_router()
         uuid = self._create_physical_interface()['uuid']
         # Required for Contrail 3.0.3 but not for 3.1.1
@@ -136,59 +110,48 @@
                 uuid, **body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_physical_interface")
-    @idempotent_id('5d77ea76-be8c-49cc-8f08-72fbdaf9028f')
+                                 rules=["delete_physical_interface"])
+    @decorators.idempotent_id('5d77ea76-be8c-49cc-8f08-72fbdaf9028f')
     def test_delete_physical_interface(self):
-        """
-        test method for delete physical interfaces objects
-        """
+        """test method for delete physical interfaces objects"""
         self._create_physical_router()
         uuid = self._create_physical_interface()['uuid']
-
         with self.rbac_utils.override_role(self):
             self.interface_client.delete_physical_interface(uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_physical_interface")
-    @idempotent_id('2c75c7e7-ef34-4e24-9c2f-5a2182db33a6')
+                                 rules=["show_physical_interface"])
+    @decorators.idempotent_id('2c75c7e7-ef34-4e24-9c2f-5a2182db33a6')
     def test_show_physical_interface(self):
-        """
-        test method for show physical interfaces objects
-        """
+        """test method for show physical interfaces objects"""
         self._create_physical_router()
         uuid = self._create_physical_interface()['uuid']
         with self.rbac_utils.override_role(self):
             self.interface_client.show_physical_interface(uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_logical_interfaces")
-    @idempotent_id('43ac3727-4a43-42d7-b52f-df75018915b9')
+                                 rules=["list_logical_interfaces"])
+    @decorators.idempotent_id('43ac3727-4a43-42d7-b52f-df75018915b9')
     def test_list_logical_interfaces(self):
-        """
-        test method for list physical interfaces objects
-        """
+        """test method for list physical interfaces objects"""
         with self.rbac_utils.override_role(self):
             self.interface_client.list_logical_interfaces()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_logical_interfaces")
-    @idempotent_id('503facf2-0752-47e4-a0a4-7a3103133a61')
+                                 rules=["create_logical_interfaces"])
+    @decorators.idempotent_id('503facf2-0752-47e4-a0a4-7a3103133a61')
     def test_create_logical_interfaces(self):
-        """
-        test method for create logical interfaces objects
-        """
+        """test method for create logical interfaces objects"""
         self._create_physical_router()
         self._create_physical_interface()
         with self.rbac_utils.override_role(self):
             self._create_logical_interface()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_logical_interface")
-    @idempotent_id('63c991f4-6aba-454c-9c49-522dc77b3f5c')
+                                 rules=["update_logical_interface"])
+    @decorators.idempotent_id('63c991f4-6aba-454c-9c49-522dc77b3f5c')
     def test_update_logical_interface(self):
-        """
-        test method for update logical interfaces objects
-        """
+        """test method for update logical interfaces objects"""
         self._create_physical_router()
         self._create_physical_interface()
         uuid = self._create_logical_interface()['uuid']
@@ -204,12 +167,10 @@
                 uuid, **body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_logical_interface")
-    @idempotent_id('a36743d1-3ea1-4cf5-89d8-9c0b885fa625')
+                                 rules=["delete_logical_interface"])
+    @decorators.idempotent_id('a36743d1-3ea1-4cf5-89d8-9c0b885fa625')
     def test_delete_logical_interface(self):
-        """
-        test method for update logical interfaces objects
-        """
+        """test method for update logical interfaces objects"""
         self._create_physical_router()
         self._create_physical_interface()
         uuid = self._create_logical_interface()['uuid']
@@ -217,12 +178,10 @@
             self.interface_client.delete_logical_interface(uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_logical_interface")
-    @idempotent_id('f0f7fab7-eeb9-4d29-8415-31a50180fb44')
+                                 rules=["show_logical_interface"])
+    @decorators.idempotent_id('f0f7fab7-eeb9-4d29-8415-31a50180fb44')
     def test_show_logical_interface(self):
-        """
-        test method for show logical interfaces objects
-        """
+        """test method for show logical interfaces objects"""
         self._create_physical_router()
         self._create_physical_interface()
         uuid = self._create_logical_interface()['uuid']
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py b/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
index 647f053..4c220ce 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
@@ -18,24 +18,28 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+from tempest import test
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class BaseLoadBalancerTest(rbac_base.BaseContrailTest):
+    """Base class to test load balancer objects using RBAC roles"""
 
-    """
-    Base class to test load balancer objects using RBAC roles
-    """
+    @classmethod
+    def skip_checks(cls):
+        super(BaseLoadBalancerTest, cls).skip_checks()
+        if not test.is_extension_enabled('lbaas', 'network') and \
+                not test.is_extension_enabled('lbaasv2', 'network'):
+            raise cls.skipException(
+                '%s skipped - lbaas extension not enabled' % cls.__name__)
 
     def _create_load_balancer(self):
         fq_name = data_utils.rand_name('load-balancer')
@@ -167,121 +171,98 @@
 
 
 class LoadBalancerContrailTest(BaseLoadBalancerTest):
-
-    """
-    Test class to test load balancer objects using RBAC roles
-    """
+    """Test class to test load balancer objects using RBAC roles"""
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_load_balancers")
-    @idempotent_id('5d840b6b-3974-4945-916f-dd53ba27e42f')
+                                 rules=["list_load_balancers"])
+    @decorators.idempotent_id('5d840b6b-3974-4945-916f-dd53ba27e42f')
     def test_list_load_balancers(self):
-        """
-        test method for list load balancer objects
-        """
+        """test method for list load balancer objects"""
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancers()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_load_balancers")
-    @idempotent_id('6a18d506-0794-4eb9-a945-165bf146005d')
+                                 rules=["create_load_balancers"])
+    @decorators.idempotent_id('6a18d506-0794-4eb9-a945-165bf146005d')
     def test_create_load_balancers(self):
-        """
-        test method for create load balancer objects
-        """
+        """test method for create load balancer objects"""
         with self.rbac_utils.override_role(self):
             self._create_load_balancer()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_load_balancer")
-    @idempotent_id('428012aa-cd0e-4702-89d2-459046d4bd5f')
+                                 rules=["show_load_balancer"])
+    @decorators.idempotent_id('428012aa-cd0e-4702-89d2-459046d4bd5f')
     def test_show_load_balancer(self):
-        """
-        test method for show load balancer objects
-        """
+        """test method for show load balancer objects"""
         lb_uuid = self._create_load_balancer()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer(lb_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_load_balancer")
-    @idempotent_id('7cd3d7b2-b149-40c1-a801-a6a8a660bd24')
+                                 rules=["update_load_balancer"])
+    @decorators.idempotent_id('7cd3d7b2-b149-40c1-a801-a6a8a660bd24')
     def test_update_load_balancer(self):
-        """
-        test method for update load balancer objects
-        """
+        """test method for update load balancer objects"""
         lb_uuid = self._create_load_balancer()
         with self.rbac_utils.override_role(self):
             self._update_load_balancer(lb_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_load_balancer")
-    @idempotent_id('b28c6b11-d1b0-45d0-8942-638b6b590702')
+                                 rules=["delete_load_balancer"])
+    @decorators.idempotent_id('b28c6b11-d1b0-45d0-8942-638b6b590702')
     def test_delete_load_balancer(self):
-        """
-        test method for delete load balancer objects
-        """
+        """test method for delete load balancer objects"""
         lb_uuid = self._create_load_balancer()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.delete_load_balancer(lb_uuid)
 
 
 class LoadBalancerHealthMonitorContrailTest(BaseLoadBalancerTest):
+    """Test class to test load balancer Health Monitor objects using RBAC roles
 
     """
-    Test class to test load balancer Health Monitor objects using RBAC roles
-    """
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_load_balancer_health_monitors")
-    @idempotent_id('3e3d8bdc-3621-4c5e-8130-1187f445a4e6')
+                                 rules=["list_load_balancer_health_monitors"])
+    @decorators.idempotent_id('3e3d8bdc-3621-4c5e-8130-1187f445a4e6')
     def test_list_lb_health_monitors(self):
-        """
-        test method for list load balancer health monitor objects
-        """
+        """test method for list load balancer health monitor objects"""
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_lb_healthmonitors()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_load_balancer_health_monitors")
-    @idempotent_id('bddb93ad-d331-4bbc-bac6-2763cae4eb2c')
+                                 rules=["create_load_balancer_health_monitors"]
+                                 )
+    @decorators.idempotent_id('bddb93ad-d331-4bbc-bac6-2763cae4eb2c')
     def test_create_lb_health_monitors(self):
-        """
-        test method for create load balancer health monitor objects
-        """
+        """test method for create load balancer health monitor objects"""
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_health_monitor()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_load_balancer_health_monitor")
-    @idempotent_id('30d23994-1e3a-4a76-8f18-e00d0854412a')
+                                 rules=["show_load_balancer_health_monitor"])
+    @decorators.idempotent_id('30d23994-1e3a-4a76-8f18-e00d0854412a')
     def test_show_lb_health_monitor(self):
-        """
-        test method for show load balancer health monitor objects
-        """
+        """test method for show load balancer health monitor objects"""
         lb_hm_uuid = self._create_load_balancer_health_monitor()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_lb_healthmonitor(
                 lb_hm_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_load_balancer_health_monitor")
-    @idempotent_id('c32ba92c-3a69-4255-867a-1423c93faa6f')
+                                 rules=["update_load_balancer_health_monitor"])
+    @decorators.idempotent_id('c32ba92c-3a69-4255-867a-1423c93faa6f')
     def test_update_lb_health_monitor(self):
-        """
-        test method for update load balancer health monitor objects
-        """
+        """test method for update load balancer health monitor objects"""
         lb_hm_uuid = self._create_load_balancer_health_monitor()
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_health_monitor(lb_hm_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_load_balancer_health_monitor")
-    @idempotent_id('b4d7ea9d-fd8c-433b-96fc-c24866b3f6a7')
+                                 rules=["delete_load_balancer_health_monitor"])
+    @decorators.idempotent_id('b4d7ea9d-fd8c-433b-96fc-c24866b3f6a7')
     def test_delete_lb_health_monitor(self):
-        """
-        test method for delete load balancer health monitor objects
-        """
+        """test method for delete load balancer health monitor objects"""
         lb_hm_uuid = self._create_load_balancer_health_monitor()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.delete_lb_healthmonitor(
@@ -289,61 +270,48 @@
 
 
 class LoadBalancerListenerContrailTest(BaseLoadBalancerTest):
-
-    """
-    Base class to test load balancer Listener objects using RBAC roles
-    """
+    """Base class to test load balancer Listener objects using RBAC roles"""
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_load_balancer_listeners")
-    @idempotent_id('7e02882f-0eab-41c2-b48a-bf71e083b912')
+                                 rules=["list_load_balancer_listeners"])
+    @decorators.idempotent_id('7e02882f-0eab-41c2-b48a-bf71e083b912')
     def test_list_lb_listeners(self):
-        """
-        test method for list load balancer listener objects
-        """
+        """test method for list load balancer listener objects"""
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_listeners()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_load_balancer_listeners")
-    @idempotent_id('0551de87-fa4c-463f-8968-ec6f2a6098d0')
+                                 rules=["create_load_balancer_listeners"])
+    @decorators.idempotent_id('0551de87-fa4c-463f-8968-ec6f2a6098d0')
     def test_create_lb_listeners(self):
-        """
-        test method for create load balancer listener objects
-        """
+        """test method for create load balancer listener objects"""
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_listener()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_load_balancer_listener")
-    @idempotent_id('ade38959-9506-4262-8d3c-5ba5eb63d85f')
+                                 rules=["show_load_balancer_listener"])
+    @decorators.idempotent_id('ade38959-9506-4262-8d3c-5ba5eb63d85f')
     def test_show_lb_listener(self):
-        """
-        test method for show load balancer listener objects
-        """
+        """test method for show load balancer listener objects"""
         lb_listener_uuid = self._create_load_balancer_listener()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer_listener(
                 lb_listener_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_load_balancer_listener")
-    @idempotent_id('e529e538-da31-4159-91c2-6c0a828282a4')
+                                 rules=["update_load_balancer_listener"])
+    @decorators.idempotent_id('e529e538-da31-4159-91c2-6c0a828282a4')
     def test_update_lb_listener(self):
-        """
-        test method for update load balancer listener objects
-        """
+        """test method for update load balancer listener objects"""
         lb_listener_uuid = self._create_load_balancer_listener()
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_listener(lb_listener_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_load_balancer_listener")
-    @idempotent_id('feaf3e9a-ffd1-4327-ad7a-35f9e9e4989b')
+                                 rules=["delete_load_balancer_listener"])
+    @decorators.idempotent_id('feaf3e9a-ffd1-4327-ad7a-35f9e9e4989b')
     def test_delete_lb_listener(self):
-        """
-        test method for delete load balancer listener objects
-        """
+        """test method for delete load balancer listener objects"""
         lb_listener_uuid = self._create_load_balancer_listener()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.delete_load_balancer_listener(
@@ -351,120 +319,94 @@
 
 
 class LoadBalancerPoolContrailTest(BaseLoadBalancerTest):
-
-    """
-    Base class to test load balancer Pool objects using RBAC roles
-    """
+    """Base class to test load balancer Pool objects using RBAC roles"""
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_load_balancer_pools")
-    @idempotent_id('3d177a9e-7067-4e9e-b4e8-0acc5887dff0')
+                                 rules=["list_load_balancer_pools"])
+    @decorators.idempotent_id('3d177a9e-7067-4e9e-b4e8-0acc5887dff0')
     def test_list_load_balancer_pools(self):
-        """
-        test method for list load balancer pool objects
-        """
+        """test method for list load balancer pool objects"""
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_pools()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_load_balancer_pools")
-    @idempotent_id('a52c6ec7-a996-4191-9a70-7879a211a711')
+                                 rules=["create_load_balancer_pools"])
+    @decorators.idempotent_id('a52c6ec7-a996-4191-9a70-7879a211a711')
     def test_create_load_balancer_pools(self):
-        """
-        test method for create load balancer pool objects
-        """
+        """test method for create load balancer pool objects"""
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_pool()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_load_balancer_pool")
-    @idempotent_id('7923da4e-53b1-4024-9a40-5bc91cee8e2d')
+                                 rules=["show_load_balancer_pool"])
+    @decorators.idempotent_id('7923da4e-53b1-4024-9a40-5bc91cee8e2d')
     def test_show_load_balancer_pool(self):
-        """
-        test method for show load balancer pool objects
-        """
+        """test method for show load balancer pool objects"""
         lb_pool_uuid = self._create_load_balancer_pool()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer_pool(lb_pool_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_load_balancer_pool")
-    @idempotent_id('391c0c5e-c218-4c98-9b58-6d2724ec4c20')
+                                 rules=["update_load_balancer_pool"])
+    @decorators.idempotent_id('391c0c5e-c218-4c98-9b58-6d2724ec4c20')
     def test_update_load_balancer_pool(self):
-        """
-        test method for update load balancer pool objects
-        """
+        """test method for update load balancer pool objects"""
         lb_pool_uuid = self._create_load_balancer_pool()
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_pool(lb_pool_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_load_balancer_pool")
-    @idempotent_id('8b3617c0-4064-48f8-96b8-e2f996fce5c3')
+                                 rules=["delete_load_balancer_pool"])
+    @decorators.idempotent_id('8b3617c0-4064-48f8-96b8-e2f996fce5c3')
     def test_delete_load_balancer_pool(self):
-        """
-        test method for delete load balancer pool objects
-        """
+        """test method for delete load balancer pool objects"""
         lb_pool_uuid = self._create_load_balancer_pool()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.delete_load_balancer_pool(lb_pool_uuid)
 
 
 class LoadBalancerMemberContrailTest(BaseLoadBalancerTest):
-
-    """
-    Base class to test load balancer Member using RBAC roles
-    """
+    """Base class to test load balancer Member using RBAC roles"""
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_load_balancer_members")
-    @idempotent_id('b3c51463-8166-486a-a26e-0f7aeaa41e0f')
+                                 rules=["list_load_balancer_members"])
+    @decorators.idempotent_id('b3c51463-8166-486a-a26e-0f7aeaa41e0f')
     def test_list_load_balancer_members(self):
-        """
-        test method for list load balancer member objects
-        """
+        """test method for list load balancer member objects"""
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_members()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_load_balancer_members")
-    @idempotent_id('ad60688f-7a20-4dd5-8229-4076d85b9d55')
+                                 rules=["create_load_balancer_members"])
+    @decorators.idempotent_id('ad60688f-7a20-4dd5-8229-4076d85b9d55')
     def test_create_lb_members(self):
-        """
-        test method for create load balancer member objects
-        """
+        """test method for create load balancer member objects"""
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_member()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_load_balancer_member")
-    @idempotent_id('917602ff-24d5-4a07-a6a6-5e5b9539bbf1')
+                                 rules=["show_load_balancer_member"])
+    @decorators.idempotent_id('917602ff-24d5-4a07-a6a6-5e5b9539bbf1')
     def test_show_load_balancer_member(self):
-        """
-        test method for show load balancer member objects
-        """
+        """test method for show load balancer member objects"""
         lb_member_uuid = self._create_load_balancer_member()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer_member(lb_member_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_load_balancer_member")
-    @idempotent_id('b1611005-5c77-4ac0-8fcc-4a035dfbaa84')
+                                 rules=["update_load_balancer_member"])
+    @decorators.idempotent_id('b1611005-5c77-4ac0-8fcc-4a035dfbaa84')
     def test_update_lb_member(self):
-        """
-        test method for update load balancer member objects
-        """
+        """test method for update load balancer member objects"""
         lb_member_uuid = self._create_load_balancer_member()
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_member(lb_member_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_load_balancer_member")
-    @idempotent_id('dc21883a-a822-4d39-b815-4dfd6b505b0b')
+                                 rules=["delete_load_balancer_member"])
+    @decorators.idempotent_id('dc21883a-a822-4d39-b815-4dfd6b505b0b')
     def test_delete_lb_member(self):
-        """
-        test method for delete load balancer member objects
-        """
+        """test method for delete load balancer member objects"""
         lb_member_uuid = self._create_load_balancer_member()
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.delete_load_balancer_member(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py b/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
index a3b18ec..ab1dd9c 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
@@ -17,26 +17,20 @@
 Tempest test-case to test namespace objects using RBAC roles
 """
 
-
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class NamespaceContrailTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test namespace objects using RBAC roles
-    """
+    """Test class to test namespace objects using RBAC roles"""
 
     def _create_namespace(self):
         fq_name = data_utils.rand_name('namespace')
@@ -58,54 +52,44 @@
         self.namespace_client.update_namespace(namespace_uuid, **put_body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_namespaces")
-    @idempotent_id('e436390d-d669-4047-9838-421ea93e94be')
+                                 rules=["list_namespaces"])
+    @decorators.idempotent_id('e436390d-d669-4047-9838-421ea93e94be')
     def test_list_namespaces(self):
-        """
-        test method for list namespace objects
-        """
+        """test method for list namespace objects"""
         with self.rbac_utils.override_role(self):
             self.namespace_client.list_namespaces()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_namespaces")
-    @idempotent_id('503ae445-7e67-4db6-989a-af0b7f9a7e95')
+                                 rules=["create_namespaces"])
+    @decorators.idempotent_id('503ae445-7e67-4db6-989a-af0b7f9a7e95')
     def test_create_namespaces(self):
-        """
-        test method for create namespace objects
-        """
+        """test method for create namespace objects"""
         with self.rbac_utils.override_role(self):
             self._create_namespace()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_namespace")
-    @idempotent_id('f916971a-7c07-4386-b887-8b78d8a1e528')
+                                 rules=["show_namespace"])
+    @decorators.idempotent_id('f916971a-7c07-4386-b887-8b78d8a1e528')
     def test_show_namespace(self):
-        """
-        test method for show namespace objects
-        """
+        """test method for show namespace objects"""
         namespace_uuid = self._create_namespace()
         with self.rbac_utils.override_role(self):
             self.namespace_client.show_namespace(namespace_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_namespace")
-    @idempotent_id('3649f65a-922a-4b8a-9b8b-520c333e192e')
+                                 rules=["update_namespace"])
+    @decorators.idempotent_id('3649f65a-922a-4b8a-9b8b-520c333e192e')
     def test_update_namespace(self):
-        """
-        test method for update namespace objects
-        """
+        """test method for update namespace objects"""
         namespace_uuid = self._create_namespace()
         with self.rbac_utils.override_role(self):
             self._update_namespace(namespace_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_namespace")
-    @idempotent_id('80e736bf-fc7d-4274-8173-a50c883776a9')
+                                 rules=["delete_namespace"])
+    @decorators.idempotent_id('80e736bf-fc7d-4274-8173-a50c883776a9')
     def test_delete_namespace(self):
-        """
-        test method for delete namespace objects
-        """
+        """test method for delete namespace objects"""
         namespace_uuid = self._create_namespace()
         with self.rbac_utils.override_role(self):
             self.namespace_client.delete_namespace(namespace_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py b/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
index d8e72a4..755f7fe 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
@@ -17,22 +17,18 @@
 Tempest test-case to test network ipam objects using RBAC roles
 """
 
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class NetworkIpamsTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test network ipam objects using RBAC roles
-    """
+    """Test class to test network ipam objects using RBAC roles"""
 
     def _create_network_ipams(self):
         ipam_name = data_utils.rand_name('test-ipam')
@@ -46,54 +42,44 @@
         return new_ipam
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_network_ipams")
-    @idempotent_id('9ee2c4d8-3209-4ef8-86e1-0ecea2d4c5f2')
+                                 rules=["list_network_ipams"])
+    @decorators.idempotent_id('9ee2c4d8-3209-4ef8-86e1-0ecea2d4c5f2')
     def test_list_network_ipams(self):
-        """
-        test method for list n/w ipam objects
-        """
+        """test method for list n/w ipam objects"""
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.list_network_ipams()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_network_ipams")
-    @idempotent_id('ef2415ea-0810-413a-85a0-4508c9d7af91')
+                                 rules=["create_network_ipams"])
+    @decorators.idempotent_id('ef2415ea-0810-413a-85a0-4508c9d7af91')
     def test_create_network_ipams(self):
-        """
-        test method for create n/w ipam objects
-        """
+        """test method for create n/w ipam objects"""
         with self.rbac_utils.override_role(self):
             self._create_network_ipams()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_network_ipam")
-    @idempotent_id('527b19e5-068a-44e3-b175-b504eafeec6e')
+                                 rules=["show_network_ipam"])
+    @decorators.idempotent_id('527b19e5-068a-44e3-b175-b504eafeec6e')
     def test_show_network_ipam(self):
-        """
-        test method for show n/w ipam objects
-        """
+        """test method for show n/w ipam objects"""
         new_ipam = self._create_network_ipams()
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.show_network_ipam(new_ipam['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_network_ipam")
-    @idempotent_id('118c1620-efb6-4cc6-8eb5-71bf8631d365')
+                                 rules=["delete_network_ipam"])
+    @decorators.idempotent_id('118c1620-efb6-4cc6-8eb5-71bf8631d365')
     def test_delete_network_ipam(self):
-        """
-        test method for delete n/w ipam objects
-        """
+        """test method for delete n/w ipam objects"""
         new_ipam = self._create_network_ipams()
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.delete_network_ipam(new_ipam['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_network_ipam")
-    @idempotent_id('44cbe2d9-583d-4215-964a-1c321f5e8d92')
+                                 rules=["update_network_ipam"])
+    @decorators.idempotent_id('44cbe2d9-583d-4215-964a-1c321f5e8d92')
     def test_update_network_ipam(self):
-        """
-        test method for update n/w ipam objects
-        """
+        """test method for update n/w ipam objects"""
         new_ipam = self._create_network_ipams()
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.update_network_ipam(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py b/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
index 572c145..b3ca053 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class NetworkPolicyTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test network policy objects using RBAC roles
-    """
+    """Test class to test network policy objects using RBAC roles"""
 
     def _create_policy(self):
         fq_name = data_utils.rand_name('network-policy')
@@ -59,54 +54,44 @@
                                                          **put_body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_network_policys")
-    @idempotent_id('fa2a28f3-a8bb-4908-95b9-1e11cf58b16f')
+                                 rules=["list_network_policys"])
+    @decorators.idempotent_id('fa2a28f3-a8bb-4908-95b9-1e11cf58b16f')
     def test_list_policys(self):
-        """
-        test method for list n/w policy objects
-        """
+        """test method for list n/w policy objects"""
         with self.rbac_utils.override_role(self):
             self.network_policy_client.list_network_policys()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_network_policys")
-    @idempotent_id('a30be228-afba-40c9-8678-ae020db68d79')
+                                 rules=["create_network_policys"])
+    @decorators.idempotent_id('a30be228-afba-40c9-8678-ae020db68d79')
     def test_create_network_policys(self):
-        """
-        test method for create n/w policy objects
-        """
+        """test method for create n/w policy objects"""
         with self.rbac_utils.override_role(self):
             self._create_policy()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_network_policy")
-    @idempotent_id('6cefe92e-8936-49a6-bce0-12da3396e7ab')
+                                 rules=["show_network_policy"])
+    @decorators.idempotent_id('6cefe92e-8936-49a6-bce0-12da3396e7ab')
     def test_show_network_policy(self):
-        """
-        test method for show n/w policy objects
-        """
+        """test method for show n/w policy objects"""
         policy_uuid = self._create_policy()
         with self.rbac_utils.override_role(self):
             self.network_policy_client.show_network_policy(policy_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_network_policy")
-    @idempotent_id('1d470505-3ad4-4870-87d7-3f0b0f9fc635')
+                                 rules=["update_network_policy"])
+    @decorators.idempotent_id('1d470505-3ad4-4870-87d7-3f0b0f9fc635')
     def test_update_network_policy(self):
-        """
-        test method for update n/w policy objects
-        """
+        """test method for update n/w policy objects"""
         policy_uuid = self._create_policy()
         with self.rbac_utils.override_role(self):
             self._update_policy(policy_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_network_policy")
-    @idempotent_id('aae9018f-e7a2-4a75-a68e-afd6c380640e')
+                                 rules=["delete_network_policy"])
+    @decorators.idempotent_id('aae9018f-e7a2-4a75-a68e-afd6c380640e')
     def test_delete_network_policy(self):
-        """
-        test method for delete n/w policy objects
-        """
+        """test method for delete n/w policy objects"""
         policy_uuid = self._create_policy()
         with self.rbac_utils.override_role(self):
             self.network_policy_client.delete_network_policy(policy_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py b/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
index 82285a1..27fe4e8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ContrailPortTupleTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test port tuple objects using RBAC roles
-    """
+    """Test class to test port tuple objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -75,43 +70,35 @@
         return new_tuple
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_port_tuples")
-    @idempotent_id('3789eef8-0e80-4057-b7b0-926655144beb')
+                                 rules=["list_port_tuples"])
+    @decorators.idempotent_id('3789eef8-0e80-4057-b7b0-926655144beb')
     def test_list_port_tuples(self):
-        """
-        test method for list port tuple objects
-        """
+        """test method for list port tuple objects"""
         with self.rbac_utils.override_role(self):
             self.port_tuple_client.list_port_tuples()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_port_tuple")
-    @idempotent_id('ae5a90ed-5771-4680-be6b-c7626caa3a52')
+                                 rules=["show_port_tuple"])
+    @decorators.idempotent_id('ae5a90ed-5771-4680-be6b-c7626caa3a52')
     def test_show_port_tuple(self):
-        """
-        test method for show port tuple objects
-        """
+        """test method for show port tuple objects"""
         new_tuple = self._create_port_tuple()
         with self.rbac_utils.override_role(self):
             self.port_tuple_client.show_port_tuple(new_tuple['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_port_tuples")
-    @idempotent_id('0e2283da-fe25-4204-b5b3-fef3c200d0c8')
+                                 rules=["create_port_tuples"])
+    @decorators.idempotent_id('0e2283da-fe25-4204-b5b3-fef3c200d0c8')
     def test_create_port_tuples(self):
-        """
-        test method for create port tuple objects
-        """
+        """test method for create port tuple objects"""
         with self.rbac_utils.override_role(self):
             self._create_port_tuple()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_port_tuple")
-    @idempotent_id('b16f19e2-ec8e-4107-961d-561890183dd0')
+                                 rules=["update_port_tuple"])
+    @decorators.idempotent_id('b16f19e2-ec8e-4107-961d-561890183dd0')
     def test_update_port_tuple(self):
-        """
-        test method for update port tuple objects
-        """
+        """test method for update port tuple objects"""
         new_tuple = self._create_port_tuple()
         update_name = data_utils.rand_name('updated_tuple')
         with self.rbac_utils.override_role(self):
@@ -119,12 +106,10 @@
                 new_tuple['uuid'], display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_port_tuple")
-    @idempotent_id('3f28e8b8-f9de-437f-a398-0a11c7fcd652')
+                                 rules=["delete_port_tuple"])
+    @decorators.idempotent_id('3f28e8b8-f9de-437f-a398-0a11c7fcd652')
     def test_delete_port_tuple(self):
-        """
-        test method for delete port tuple objects
-        """
+        """test method for delete port tuple objects"""
         new_tuple = self._create_port_tuple()
         with self.rbac_utils.override_role(self):
             self.port_tuple_client.delete_port_tuple(new_tuple['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_project.py b/tungsten_tempest_plugin/tests/api/contrail/test_project.py
index ea6d045..d4faaf6 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_project.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_project.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ProjectContrailTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test project objects using RBAC roles
-    """
+    """Test class to test project objects using RBAC roles"""
 
     def _create_project(self):
         fq_name = data_utils.rand_name('project')
@@ -58,54 +53,44 @@
         self.project_client.update_project(project_uuid, **put_body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_projects")
-    @idempotent_id('7db819fd-ceee-4a6b-9ad7-2e837c055bdd')
+                                 rules=["list_projects"])
+    @decorators.idempotent_id('7db819fd-ceee-4a6b-9ad7-2e837c055bdd')
     def test_list_projects(self):
-        """
-        test method for list project objects
-        """
+        """test method for list project objects"""
         with self.rbac_utils.override_role(self):
             self.project_client.list_projects()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_projects")
-    @idempotent_id('38b9b7a8-1568-417d-b0a3-e7adee88e4b9')
+                                 rules=["create_projects"])
+    @decorators.idempotent_id('38b9b7a8-1568-417d-b0a3-e7adee88e4b9')
     def test_create_projects(self):
-        """
-        test method for create project objects
-        """
+        """test method for create project objects"""
         with self.rbac_utils.override_role(self):
             self._create_project()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_project")
-    @idempotent_id('c47e57c4-34b0-46c2-a678-83b1fe9afd25')
+                                 rules=["show_project"])
+    @decorators.idempotent_id('c47e57c4-34b0-46c2-a678-83b1fe9afd25')
     def test_show_project(self):
-        """
-        test method for show project objects
-        """
+        """test method for show project objects"""
         project_uuid = self._create_project()
         with self.rbac_utils.override_role(self):
             self.project_client.show_project(project_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_project")
-    @idempotent_id('3d4bd416-16cc-437c-9e95-f9ceda424f8b')
+                                 rules=["update_project"])
+    @decorators.idempotent_id('3d4bd416-16cc-437c-9e95-f9ceda424f8b')
     def test_update_project(self):
-        """
-        test method for update project objects
-        """
+        """test method for update project objects"""
         project_uuid = self._create_project()
         with self.rbac_utils.override_role(self):
             self._update_project(project_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_project")
-    @idempotent_id('787ebe8b-b88d-4488-b157-f70554bdd783')
+                                 rules=["delete_project"])
+    @decorators.idempotent_id('787ebe8b-b88d-4488-b157-f70554bdd783')
     def test_delete_project(self):
-        """
-        test method for delete project objects
-        """
+        """test method for delete project objects"""
         project_uuid = self._create_project()
         with self.rbac_utils.override_role(self):
             self.project_client.delete_project(project_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py b/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
index fb1abde..91b7bbb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 LOG = logging.getLogger(__name__)
 CONF = config.CONF
 
 
 class QosConfigContrailTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test QoS config objects using RBAC roles
-    """
+    """Test class to test QoS config objects using RBAC roles"""
 
     def _delete_qos_config(self, qos_config_id):
         self.qos_client.delete_qos_config(qos_config_id)
@@ -53,55 +48,45 @@
         return qos_config
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_qos_configs")
-    @idempotent_id('6bc44b34-14d4-4e0e-b45d-fe3df047879f')
+                                 rules=["list_qos_configs"])
+    @decorators.idempotent_id('6bc44b34-14d4-4e0e-b45d-fe3df047879f')
     def test_list_qos_configs(self):
-        """
-        test method for list QoS config objects
-        """
+        """test method for list QoS config objects"""
         self._create_qos_configs()
         with self.rbac_utils.override_role(self):
             self.qos_client.list_qos_configs()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_qos_configs")
-    @idempotent_id('031b4a27-22cd-4d93-938d-ba6d0f3163ba')
+                                 rules=["create_qos_configs"])
+    @decorators.idempotent_id('031b4a27-22cd-4d93-938d-ba6d0f3163ba')
     def test_create_qos_configs(self):
-        """
-        test method for create QoS config objects
-        """
+        """test method for create QoS config objects"""
         with self.rbac_utils.override_role(self):
             self._create_qos_configs()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_qos_config")
-    @idempotent_id('a9d82b49-3492-4667-b252-ef30b0ee6eb3')
+                                 rules=["show_qos_config"])
+    @decorators.idempotent_id('a9d82b49-3492-4667-b252-ef30b0ee6eb3')
     def test_show_qos_config(self):
-        """
-        test method for show QoS config objects
-        """
+        """test method for show QoS config objects"""
         qos_config = self._create_qos_configs()
         with self.rbac_utils.override_role(self):
             self.qos_client.show_qos_config(qos_config['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_qos_config")
-    @idempotent_id('d324a5e6-cc86-4444-91a2-74592283a7ec')
+                                 rules=["delete_qos_config"])
+    @decorators.idempotent_id('d324a5e6-cc86-4444-91a2-74592283a7ec')
     def test_delete_qos_config(self):
-        """
-        test method for delete QoS config objects
-        """
+        """test method for delete QoS config objects"""
         qos_config = self._create_qos_configs()
         with self.rbac_utils.override_role(self):
             self.qos_client.delete_qos_config(qos_config['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_qos_config")
-    @idempotent_id('7f1901a5-0cf0-40bd-98a5-f8a930b11cfe')
+                                 rules=["update_qos_config"])
+    @decorators.idempotent_id('7f1901a5-0cf0-40bd-98a5-f8a930b11cfe')
     def test_update_qos_config(self):
-        """
-        test method for update QoS config objects
-        """
+        """test method for update QoS config objects"""
         qos_config = self._create_qos_configs()
         display_name = data_utils.rand_name('qos_config')
         with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py b/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py
index 1325ab9..5389c8d 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py
@@ -18,51 +18,31 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 LOG = logging.getLogger(__name__)
 CONF = config.CONF
 
 
 class QosContrailTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test QoS Config objects using RBAC roles
-    """
+    """Test class to test QoS Config objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
         super(QosContrailTest, cls).resource_setup()
 
-    def _create_global_system_config(self):
-        config_name = data_utils.rand_name('test-config')
-        parent_type = 'config-root'
-        config_fq_name = [config_name]
-        new_config = \
-            self.config_client.create_global_system_configs(
-                parent_type=parent_type,
-                display_name=config_name,
-                fq_name=config_fq_name)['global-system-config']
-        self.addCleanup(self._try_delete_resource,
-                        (self.config_client.
-                         delete_global_system_config),
-                        new_config['uuid'])
-        return new_config
-
     def _delete_qos_global_config(self, instance_id):
         return self.qos_client.delete_global_qos_config(instance_id)
 
-    def _create_qos_global_configs(self, global_system_config):
+    def _create_qos_global_configs(self):
         name = data_utils.rand_name('test-rbac-qos-global-config')
         parent_type = 'global-system-config'
-        fq_name = [global_system_config, name]
+        fq_name = ['default-global-system-config', name]
         qos_global_config = self.qos_client.create_global_qos_configs(
             fq_name=fq_name,
             parent_type=parent_type)['global-qos-config']
@@ -73,53 +53,37 @@
         return qos_global_config
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_global_qos_configs")
-    @idempotent_id('74e5a7b7-f538-4be3-90a5-6862b07fb118')
+                                 rules=["list_global_qos_configs"])
+    @decorators.idempotent_id('74e5a7b7-f538-4be3-90a5-6862b07fb118')
     def test_list_global_qos_configs(self):
-        """
-        test method for list global QoS objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        self._create_qos_global_configs(global_system_config)
+        """test method for list global QoS objects"""
+        self._create_qos_global_configs()
         with self.rbac_utils.override_role(self):
             self.qos_client.list_global_qos_configs()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_global_qos_configs")
-    @idempotent_id('d7da1ca0-7bf7-4d1b-982c-820cd37fe9fa')
+                                 rules=["create_global_qos_configs"])
+    @decorators.idempotent_id('d7da1ca0-7bf7-4d1b-982c-820cd37fe9fa')
     def test_create_global_qos_configs(self):
-        """
-        test method for create global QoS objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for create global QoS objects"""
         with self.rbac_utils.override_role(self):
-            self._create_qos_global_configs(global_system_config)
+            self._create_qos_global_configs()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_global_qos_config")
-    @idempotent_id('e3bd44e0-19a9-46e7-83d3-268dcc537ad9')
+                                 rules=["show_global_qos_config"])
+    @decorators.idempotent_id('e3bd44e0-19a9-46e7-83d3-268dcc537ad9')
     def test_show_global_qos_config(self):
-        """
-        test method for show global QoS objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        test = self._create_qos_global_configs(global_system_config)
+        """test method for show global QoS objects"""
+        test = self._create_qos_global_configs()
         with self.rbac_utils.override_role(self):
             self.qos_client.show_global_qos_config(instance_id=test['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_global_qos_config")
-    @idempotent_id('f834c4d7-bc81-4c59-bada-c4d752219a6e')
+                                 rules=["update_global_qos_config"])
+    @decorators.idempotent_id('f834c4d7-bc81-4c59-bada-c4d752219a6e')
     def test_update_global_qos_config(self):
-        """
-        test method for update global QoS objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        qos = self._create_qos_global_configs(global_system_config)
+        """test method for update global QoS objects"""
+        qos = self._create_qos_global_configs()
         display_name = data_utils.rand_name('qos_globale_config')
         with self.rbac_utils.override_role(self):
             self.qos_client.update_global_qos_config(
@@ -127,15 +91,10 @@
                 display_name=display_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_global_qos_config")
-    @idempotent_id('78b9a3da-4eb1-4f4b-8a23-a8a2e733b515')
+                                 rules=["delete_global_qos_config"])
+    @decorators.idempotent_id('78b9a3da-4eb1-4f4b-8a23-a8a2e733b515')
     def test_delete_global_qos_config(self):
-        """
-        test method for delete global QoS objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        qos_global_config = self._create_qos_global_configs(
-            global_system_config)
+        """test method for delete global QoS objects"""
+        qos_global_config = self._create_qos_global_configs()
         with self.rbac_utils.override_role(self):
             self.qos_client.delete_global_qos_config(qos_global_config['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py b/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
index 229811a..49c822e 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
@@ -18,32 +18,30 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 LOG = logging.getLogger(__name__)
 CONF = config.CONF
 
 
 class QosQueueContrailTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test QoS Queue using RBAC roles
-    """
+    """Test class to test QoS Queue using RBAC roles"""
 
     def _delete_qos_queue(self, qos_queue_id):
         self.qos_client.delete_qos_queue(qos_queue_id)
 
     def _create_qos_queues(self):
         name = data_utils.rand_name('test-rbac-qos-queue')
-        fq_name = ["default-global-system-config", "default-global-qos-config",
-                   name]
+        if rbac_base.get_contail_version() < 3.2:
+            fq_name = [name]
+        else:
+            fq_name = ['default-global-system-config',
+                       "default-global-qos-config", name]
         qos_queue = self.qos_client.create_qos_queues(
             fq_name=fq_name)['qos-queue']
         self.addCleanup(self._try_delete_resource,
@@ -52,55 +50,45 @@
         return qos_queue
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_qos_queues")
-    @idempotent_id('3d3a4397-2afe-4bbd-be59-56a1bcc2e49d')
+                                 rules=["list_qos_queues"])
+    @decorators.idempotent_id('3d3a4397-2afe-4bbd-be59-56a1bcc2e49d')
     def test_list_qos_queues(self):
-        """
-        test method for listing QoS queues
-        """
+        """test method for listing QoS queues"""
         self._create_qos_queues()
         with self.rbac_utils.override_role(self):
             self.qos_client.list_qos_queues()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_qos_queues")
-    @idempotent_id('d89c45f4-c83c-47b3-8720-7feffab4519c')
+                                 rules=["create_qos_queues"])
+    @decorators.idempotent_id('d89c45f4-c83c-47b3-8720-7feffab4519c')
     def test_create_qos_queues(self):
-        """
-         test method for creating QoS queues
-        """
+        """test method for creating QoS queues"""
         with self.rbac_utils.override_role(self):
             self._create_qos_queues()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_qos_queue")
-    @idempotent_id('d2773d5c-9858-4938-8a77-62cafd5034da')
+                                 rules=["show_qos_queue"])
+    @decorators.idempotent_id('d2773d5c-9858-4938-8a77-62cafd5034da')
     def test_show_qos_queue(self):
-        """
-        test method for showing QoS queues
-        """
+        """test method for showing QoS queues"""
         qos_queue = self._create_qos_queues()
         with self.rbac_utils.override_role(self):
             self.qos_client.show_qos_queue(qos_queue['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_qos_queue")
-    @idempotent_id('64c828d0-6594-472b-a504-40915067c7bd')
+                                 rules=["delete_qos_queue"])
+    @decorators.idempotent_id('64c828d0-6594-472b-a504-40915067c7bd')
     def test_delete_qos_queue(self):
-        """
-        test method for deleting QoS queues
-        """
+        """test method for deleting QoS queues"""
         qos_queue = self._create_qos_queues()
         with self.rbac_utils.override_role(self):
             self.qos_client.delete_qos_queue(qos_queue['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_qos_queue")
-    @idempotent_id('0733ab1a-f5aa-4e70-a011-174aa203dc33')
+                                 rules=["update_qos_queue"])
+    @decorators.idempotent_id('0733ab1a-f5aa-4e70-a011-174aa203dc33')
     def test_update_qos_queue(self):
-        """
-        test method for deleting QoS queues
-        """
+        """test method for deleting QoS queues"""
         qos_queue = self._create_qos_queues()
         display_name = data_utils.rand_name('qos_queue')
         with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_route.py b/tungsten_tempest_plugin/tests/api/contrail/test_route.py
index 06257c8..70488fa 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_route.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_route.py
@@ -20,24 +20,19 @@
 import random
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ContrailRouteTableTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test route objects using RBAC roles
-    """
+    """Test class to test route objects using RBAC roles"""
 
     def _delete_route_table(self, route_id):
         self.route_client.delete_route_table(route_id)
@@ -55,44 +50,36 @@
         return route_table
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_route_tables")
-    @idempotent_id('ca5a5d42-6e49-40e4-a5ac-de07b397b775')
+                                 rules=["list_route_tables"])
+    @decorators.idempotent_id('ca5a5d42-6e49-40e4-a5ac-de07b397b775')
     def test_list_route_tables(self):
-        """
-        test method for list route table objects
-        """
+        """test method for list route table objects"""
         self._create_route_tables()
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_tables()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_route_table")
-    @idempotent_id('084a2759-991a-4ae2-bde4-8f9915966f6e')
+                                 rules=["show_route_table"])
+    @decorators.idempotent_id('084a2759-991a-4ae2-bde4-8f9915966f6e')
     def test_show_route_table(self):
-        """
-        test method for show route table objects
-        """
+        """test method for show route table objects"""
         route_table = self._create_route_tables()
         with self.rbac_utils.override_role(self):
             self.route_client.show_route_table(route_table['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_route_tables")
-    @idempotent_id('3fab8105-c0be-4c9e-be5f-d2dce4deb921')
+                                 rules=["create_route_tables"])
+    @decorators.idempotent_id('3fab8105-c0be-4c9e-be5f-d2dce4deb921')
     def test_create_route_tables(self):
-        """
-        test method for create route table objects
-        """
+        """test method for create route table objects"""
         with self.rbac_utils.override_role(self):
             self._create_route_tables()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_route_table")
-    @idempotent_id('2acee7ad-843e-40b0-b8f8-a6d90a51c6c8')
+                                 rules=["update_route_table"])
+    @decorators.idempotent_id('2acee7ad-843e-40b0-b8f8-a6d90a51c6c8')
     def test_update_route_table(self):
-        """
-        test method for update route table objects
-        """
+        """test method for update route table objects"""
         route_table = self._create_route_tables()
         display_name = data_utils.rand_name('RouteNew')
         with self.rbac_utils.override_role(self):
@@ -101,22 +88,17 @@
                 display_name=display_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_route_table")
-    @idempotent_id('20a5086c-ec9a-43e0-ae2c-4161c0f4b280')
+                                 rules=["delete_route_table"])
+    @decorators.idempotent_id('20a5086c-ec9a-43e0-ae2c-4161c0f4b280')
     def test_delete_route_table(self):
-        """
-        test method for delete route table objects
-        """
+        """test method for delete route table objects"""
         route_table = self._create_route_tables()
         with self.rbac_utils.override_role(self):
             self._delete_route_table(route_table['uuid'])
 
 
 class ContrailInterfaceRouteTableTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test route interface table using RBAC roles
-    """
+    """Test class to test route interface table using RBAC roles"""
 
     def _delete_interface_route_table(self, route_id):
         self.route_client.delete_interface_route_table(route_id)
@@ -136,45 +118,37 @@
         return interface_route_table
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_interface_route_tables")
-    @idempotent_id('b1f8f0a6-6074-4615-a439-19869a48bc49')
+                                 rules=["list_interface_route_tables"])
+    @decorators.idempotent_id('b1f8f0a6-6074-4615-a439-19869a48bc49')
     def test_list_interface_route(self):
-        """
-        test method for list route interface table objects
-        """
+        """test method for list route interface table objects"""
         self._create_interface_route_tables()
         with self.rbac_utils.override_role(self):
             self.route_client.list_interface_route_tables()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_interface_route_table")
-    @idempotent_id('94703a28-5e33-4003-b95b-6a3cc5752fd4')
+                                 rules=["show_interface_route_table"])
+    @decorators.idempotent_id('94703a28-5e33-4003-b95b-6a3cc5752fd4')
     def test_show_interface_route(self):
-        """
-        test method for show route interface table objects
-        """
+        """test method for show route interface table objects"""
         interface_rte_table = self._create_interface_route_tables()
         with self.rbac_utils.override_role(self):
             self.route_client.show_interface_route_table(
                 interface_rte_table['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_interface_route_tables")
-    @idempotent_id('b89ef437-4759-4c04-948b-d2ff9675ab07')
+                                 rules=["create_interface_route_tables"])
+    @decorators.idempotent_id('b89ef437-4759-4c04-948b-d2ff9675ab07')
     def test_create_interface_route(self):
-        """
-        test method for create route interface table objects
-        """
+        """test method for create route interface table objects"""
         with self.rbac_utils.override_role(self):
             self._create_interface_route_tables()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_interface_route_table")
-    @idempotent_id('e9346d4f-7a07-41bc-8e88-e8ae9fa309ea')
+                                 rules=["update_interface_route_table"])
+    @decorators.idempotent_id('e9346d4f-7a07-41bc-8e88-e8ae9fa309ea')
     def test_update_interface_route(self):
-        """
-        test method for update route interface table objects
-        """
+        """test method for update route interface table objects"""
         interface_rte_table = self._create_interface_route_tables()
         display_name = data_utils.rand_name('InterfaceRouteNew')
         with self.rbac_utils.override_role(self):
@@ -183,12 +157,10 @@
                 display_name=display_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_interface_route_table")
-    @idempotent_id('b00444a5-cb4c-45bc-b393-503e9e333e98')
+                                 rules=["delete_interface_route_table"])
+    @decorators.idempotent_id('b00444a5-cb4c-45bc-b393-503e9e333e98')
     def test_delete_interface_route(self):
-        """
-        test method for delete route interface table objects
-        """
+        """test method for delete route interface table objects"""
         interface_rte_table = self._create_interface_route_tables()
         with self.rbac_utils.override_role(self):
             self._delete_interface_route_table(
@@ -196,10 +168,7 @@
 
 
 class ContrailRouteTargetsTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test route targets using RBAC roles
-    """
+    """Test class to test route targets using RBAC roles"""
 
     def _delete_route_target(self, target_id):
         self.route_client.delete_route_target(target_id)
@@ -219,44 +188,36 @@
         return route_target
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_route_targets")
-    @idempotent_id('757efd07-8027-4a16-887a-1e42f16b4140')
+                                 rules=["list_route_targets"])
+    @decorators.idempotent_id('757efd07-8027-4a16-887a-1e42f16b4140')
     def test_list_route_targets(self):
-        """
-        test method for list route target objects
-        """
+        """test method for list route target objects"""
         self._create_route_targets()
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_targets()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_route_target")
-    @idempotent_id('76c60d98-dd5e-453a-bf0e-7854f78a1a5e')
+                                 rules=["show_route_target"])
+    @decorators.idempotent_id('76c60d98-dd5e-453a-bf0e-7854f78a1a5e')
     def test_show_route_target(self):
-        """
-        test method for show route target objects
-        """
+        """test method for show route target objects"""
         target = self._create_route_targets()
         with self.rbac_utils.override_role(self):
             self.route_client.show_route_target(target['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_route_targets")
-    @idempotent_id('fcdb4ebc-b92d-49f2-88e9-68c93aec94be')
+                                 rules=["create_route_targets"])
+    @decorators.idempotent_id('fcdb4ebc-b92d-49f2-88e9-68c93aec94be')
     def test_create_route_targets(self):
-        """
-        test method for create route target objects
-        """
+        """test method for create route target objects"""
         with self.rbac_utils.override_role(self):
             self._create_route_targets()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_route_target")
-    @idempotent_id('dd830a77-4bfe-4a8c-b4e9-08b6ef2af3be')
+                                 rules=["update_route_target"])
+    @decorators.idempotent_id('dd830a77-4bfe-4a8c-b4e9-08b6ef2af3be')
     def test_update_route_target(self):
-        """
-        test method for update route target objects
-        """
+        """test method for update route target objects"""
         target = self._create_route_targets()
         display_name = data_utils.rand_name('RouteTargetNew')
         with self.rbac_utils.override_role(self):
@@ -265,22 +226,17 @@
                 display_name=display_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_route_target")
-    @idempotent_id('dfaa58f9-ec29-4d51-a475-870fac08908d')
+                                 rules=["delete_route_target"])
+    @decorators.idempotent_id('dfaa58f9-ec29-4d51-a475-870fac08908d')
     def test_delete_route_target(self):
-        """
-        test method for delete route target objects
-        """
+        """test method for delete route target objects"""
         target = self._create_route_targets()
         with self.rbac_utils.override_role(self):
             self._delete_route_target(target['uuid'])
 
 
 class ContrailRouteAggregateTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test route aggregate using RBAC roles
-    """
+    """Test class to test route aggregate using RBAC roles"""
 
     def _delete_route_aggregate(self, route_aggr_id):
         self.route_client.delete_route_aggregate(route_aggr_id)
@@ -299,45 +255,37 @@
         return route_aggr
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_route_aggregates")
-    @idempotent_id('15f2c30c-4404-4228-94a0-86c5ec5cf62e')
+                                 rules=["list_route_aggregates"])
+    @decorators.idempotent_id('15f2c30c-4404-4228-94a0-86c5ec5cf62e')
     def test_list_route_aggregates(self):
-        """
-        test method for list route aggregate objects
-        """
+        """test method for list route aggregate objects"""
         self._create_route_aggregates()
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_aggregates()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_route_aggregate")
-    @idempotent_id('c8edee30-81c4-44e2-8485-055bed853384')
+                                 rules=["show_route_aggregate"])
+    @decorators.idempotent_id('c8edee30-81c4-44e2-8485-055bed853384')
     def test_show_route_aggregate(self):
-        """
-        test method for show route aggregate objects
-        """
+        """test method for show route aggregate objects"""
         route_aggr = self._create_route_aggregates()
         with self.rbac_utils.override_role(self):
             self.route_client.show_route_aggregate(
                 route_aggr['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_route_aggregates")
-    @idempotent_id('7553a54f-e41c-4555-b745-a858c5a70690')
+                                 rules=["create_route_aggregates"])
+    @decorators.idempotent_id('7553a54f-e41c-4555-b745-a858c5a70690')
     def test_create_route_aggregates(self):
-        """
-        test method for create route aggregate objects
-        """
+        """test method for create route aggregate objects"""
         with self.rbac_utils.override_role(self):
             self._create_route_aggregates()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_route_aggregate")
-    @idempotent_id('de1e6102-0bc6-4f9b-a354-48eb051ab5e4')
+                                 rules=["update_route_aggregate"])
+    @decorators.idempotent_id('de1e6102-0bc6-4f9b-a354-48eb051ab5e4')
     def test_update_route_aggregate(self):
-        """
-        test method for update route aggregate objects
-        """
+        """test method for update route aggregate objects"""
         route_aggr = self._create_route_aggregates()
         display_name = data_utils.rand_name('RouteAggregateNew')
         with self.rbac_utils.override_role(self):
@@ -346,12 +294,10 @@
                 display_name=display_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_route_aggregate")
-    @idempotent_id('e16dbdc6-d7cf-43c7-af9d-bd76cc220200')
+                                 rules=["delete_route_aggregate"])
+    @decorators.idempotent_id('e16dbdc6-d7cf-43c7-af9d-bd76cc220200')
     def test_delete_route_aggregate(self):
-        """
-        test method for delete route aggregate objects
-        """
+        """test method for delete route aggregate objects"""
         # Create aggregate
         route_aggr = self._create_route_aggregates()
         with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routers.py b/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
index 65133b2..c07ca42 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class BaseRouterTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test router objects using RBAC roles
-    """
+    """Test class to test router objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -52,26 +47,11 @@
                                  cls.network['uuid'])
         super(BaseRouterTest, cls).resource_cleanup()
 
-    def _create_global_system_config(self):
-        config_name = data_utils.rand_name('test-config')
-        parent_type = 'config-root'
-        config_fq_name = [config_name]
-        new_config = \
-            self.config_client.create_global_system_configs(
-                parent_type=parent_type,
-                display_name=config_name,
-                fq_name=config_fq_name)['global-system-config']
-        self.addCleanup(self._try_delete_resource,
-                        (self.config_client.
-                         delete_global_system_config),
-                        new_config['uuid'])
-        return new_config
-
-    def _create_physical_router(self, global_system_config):
+    def _create_physical_router(self):
         fq_name = data_utils.rand_name('physical-router-template')
         post_body = {
             'parent_type': 'global-system-config',
-            'fq_name': [global_system_config, fq_name]}
+            'fq_name': ['default-global-system-config', fq_name]}
         router = self.router_client.create_physical_routers(
             **post_body)['physical-router']
         self.addCleanup(self._try_delete_resource,
@@ -105,11 +85,11 @@
                         router['uuid'])
         return router
 
-    def _create_global_vrouter_config(self, global_system_config):
+    def _create_global_vrouter_config(self):
         fq_name = data_utils.rand_name('global-vrouter-config-template')
         post_body = {
             'parent_type': 'global-system-config',
-            'fq_name': [global_system_config, fq_name]}
+            'fq_name': ['default-global-system-config', fq_name]}
         router = self.router_client.create_global_vrouter_configs(
             **post_body)['global-vrouter-config']
         self.addCleanup(self._try_delete_resource,
@@ -129,11 +109,11 @@
                         router['uuid'])
         return router
 
-    def _create_virtual_router(self, global_system_config):
+    def _create_virtual_router(self):
         fq_name = data_utils.rand_name('virtual-router-template')
         post_body = {
             'parent_type': 'global-system-config',
-            'fq_name': [global_system_config, fq_name]}
+            'fq_name': ['default-global-system-config', fq_name]}
         router = self.router_client.create_virtual_routers(
             **post_body)['virtual-router']
         self.addCleanup(self._try_delete_resource,
@@ -142,101 +122,74 @@
         return router
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_physical_routers")
-    @idempotent_id('349ac042-b922-4727-9e1b-8f363ee343f3')
+                                 rules=["list_physical_routers"])
+    @decorators.idempotent_id('349ac042-b922-4727-9e1b-8f363ee343f3')
     def test_list_physical_routers(self):
-        """
-        test method for list physical router objects
-        """
+        """test method for list physical router objects"""
         with self.rbac_utils.override_role(self):
             self.router_client.list_physical_routers()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_physical_routers")
-    @idempotent_id('d0b7449e-9037-4f9f-8c7e-9f364c95f18a')
+                                 rules=["create_physical_routers"])
+    @decorators.idempotent_id('d0b7449e-9037-4f9f-8c7e-9f364c95f18a')
     def test_create_physical_routers(self):
-        """
-        test method for create physical router objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for create physical router objects"""
         with self.rbac_utils.override_role(self):
-            self._create_physical_router(global_system_config)
+            self._create_physical_router()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_physical_router")
-    @idempotent_id('6dfc53f4-a884-46d5-b303-22ba59c116f4')
+                                 rules=["show_physical_router"])
+    @decorators.idempotent_id('6dfc53f4-a884-46d5-b303-22ba59c116f4')
     def test_show_physical_router(self):
-        """
-        test method for show physical router objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        physical_router_uuid = self._create_physical_router(
-            global_system_config)['uuid']
+        """test method for show physical router objects"""
+        physical_router_uuid = self._create_physical_router()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.show_physical_router(physical_router_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_physical_router")
-    @idempotent_id('c270f369-8cd7-4ee3-8ab1-4580c3138a5c')
+                                 rules=["update_physical_router"])
+    @decorators.idempotent_id('c270f369-8cd7-4ee3-8ab1-4580c3138a5c')
     def test_update_physical_router(self):
-        """
-        test method for update physical router objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for update physical router objects"""
         updated_fq_name = data_utils.rand_name('rbac-physical-router-new-name')
-        physical_router_uuid = self._create_physical_router(
-            global_system_config)['uuid']
+        physical_router_uuid = self._create_physical_router()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.update_physical_router(
                 physical_router_uuid,
                 display_name=updated_fq_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_physical_router")
-    @idempotent_id('eeded742-6a8d-4e88-bfa8-fe32db463c53')
+                                 rules=["delete_physical_router"])
+    @decorators.idempotent_id('eeded742-6a8d-4e88-bfa8-fe32db463c53')
     def test_delete_physical_router(self):
-        """
-        test method for delete physical router objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        physical_router_uuid = self._create_physical_router(
-            global_system_config)['uuid']
+        """test method for delete physical router objects"""
+        physical_router_uuid = self._create_physical_router()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.delete_physical_router(physical_router_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_bgp_routers")
-    @idempotent_id('49bfb461-f99e-4585-b051-e20a3c937589')
+                                 rules=["list_bgp_routers"])
+    @decorators.idempotent_id('49bfb461-f99e-4585-b051-e20a3c937589')
     def test_list_bgp_routers(self):
-        """
-        test method for list bgp router objects
-        """
+        """test method for list bgp router objects"""
         with self.rbac_utils.override_role(self):
             self.router_client.list_bgp_routers()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_bgp_routers")
-    @idempotent_id('7567974c-040e-4edd-b3a1-c633aa9651cb')
+                                 rules=["create_bgp_routers"])
+    @decorators.idempotent_id('7567974c-040e-4edd-b3a1-c633aa9651cb')
     def test_create_bgp_routers(self):
-        """
-        test method for create bgp router objects
-        """
+        """test method for create bgp router objects"""
         # Create Routing Instance
         routing_instance = self._create_routing_instances()
         with self.rbac_utils.override_role(self):
             self._create_bgp_router(routing_instance)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_bgp_router")
-    @idempotent_id('0d3ad424-18c9-4d96-8708-fa1ebd45594b')
+                                 rules=["show_bgp_router"])
+    @decorators.idempotent_id('0d3ad424-18c9-4d96-8708-fa1ebd45594b')
     def test_show_bgp_router(self):
-        """
-        test method for show bgp router objects
-        """
+        """test method for show bgp router objects"""
         # Create Routing Instance
         routing_instance = self._create_routing_instances()
         bgp_router_uuid = self._create_bgp_router(routing_instance)['uuid']
@@ -244,12 +197,10 @@
             self.router_client.show_bgp_router(bgp_router_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_bgp_router")
-    @idempotent_id('dc50e7c5-7614-4281-8a66-282c52f3c769')
+                                 rules=["update_bgp_router"])
+    @decorators.idempotent_id('dc50e7c5-7614-4281-8a66-282c52f3c769')
     def test_update_bgp_router(self):
-        """
-        test method for update bgp router objects
-        """
+        """test method for update bgp router objects"""
         # Create Routing Instance
         routing_instance = self._create_routing_instances()
         updated_fq_name = data_utils.rand_name('rbac-bgp-router-new-name')
@@ -260,12 +211,10 @@
                 display_name=updated_fq_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_bgp_router")
-    @idempotent_id('f14aee72-cad4-4c3e-8eea-7886a81abb24')
+                                 rules=["delete_bgp_router"])
+    @decorators.idempotent_id('f14aee72-cad4-4c3e-8eea-7886a81abb24')
     def test_delete_bgp_router(self):
-        """
-        test method for delete bgp router objects
-        """
+        """test method for delete bgp router objects"""
         # Create Routing Instance
         routing_instance = self._create_routing_instances()
         bgp_router_uuid = self._create_bgp_router(routing_instance)['uuid']
@@ -273,113 +222,111 @@
             self.router_client.delete_bgp_router(bgp_router_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_global_vrouter_configs")
-    @idempotent_id('4af768d1-3cbe-4aff-bcbc-0e045cac3277')
-    def test_list_global_vrouter(self):
-        """
-        test method for list global vrouter config objects
-        """
+                                 rules=["list_global_vrouter_configs"])
+    @decorators.idempotent_id('4af768d1-3cbe-4aff-bcbc-0e045cac3277')
+    def test_list_global_vrouter_configs(self):
+        """test method for list global vrouter config objects"""
         with self.rbac_utils.override_role(self):
             self.router_client.list_global_vrouter_configs()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_global_vrouter_configs")
-    @idempotent_id('e13d800f-9304-4a06-9bf1-ad08345a13a8')
-    def test_create_global_vrouter(self):
-        """
-        test method for create global vrouter config objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+                                 rules=["create_global_vrouter_configs"])
+    @decorators.idempotent_id('e13d800f-9304-4a06-9bf1-ad08345a13a8')
+    def test_create_global_vrouter_configs(self):
+        """test method for create global vrouter config objects"""
+        # This test may make your environment unstable
+        # Juniper JTAC 2018-0912-0503
+        #
+        # Creating a global-vrouter-config object with parent as
+        # default-gloabl-system-config in a deployed environment makes vrouter
+        # linklocal metadata to go missing.
+        # vrouter-agent will stuck in Init state with "No configuration for
+        # self" error.
         with self.rbac_utils.override_role(self):
-            self._create_global_vrouter_config(global_system_config)
+            self._create_global_vrouter_config()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_global_vrouter_config")
-    @idempotent_id('3bb6f4e1-fd3f-4338-8392-f7f80974a80e')
+                                 rules=["show_global_vrouter_config"])
+    @decorators.idempotent_id('3bb6f4e1-fd3f-4338-8392-f7f80974a80e')
     def test_show_global_vrouter_config(self):
-        """
-        test method for show global vrouter config objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        global_vrouter_config_uuid = self._create_global_vrouter_config(
-            global_system_config)['uuid']
+        """test method for show global vrouter config objects"""
+        # This test may make your environment unstable
+        # Juniper JTAC 2018-0912-0503
+        #
+        # Creating a global-vrouter-config object with parent as
+        # default-gloabl-system-config in a deployed environment makes vrouter
+        # linklocal metadata to go missing.
+        # vrouter-agent will stuck in Init state with "No configuration for
+        # self" error.
+        global_vrouter_config_uuid = \
+            self._create_global_vrouter_config()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.show_global_vrouter_config(
                 global_vrouter_config_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_global_vrouter_config")
-    @idempotent_id('36fcdd51-c42b-4e67-8c26-73d4cde47507')
-    def test_update_global_vrouter(self):
-        """
-        test method for update global vrouter config objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+                                 rules=["update_global_vrouter_config"])
+    @decorators.idempotent_id('36fcdd51-c42b-4e67-8c26-73d4cde47507')
+    def test_update_global_vrouter_config(self):
+        """test method for update global vrouter config objects"""
+        # This test may make your environment unstable
+        # Juniper JTAC 2018-0912-0503
+        #
+        # Creating a global-vrouter-config object with parent as
+        # default-gloabl-system-config in a deployed environment makes vrouter
+        # linklocal metadata to go missing.
+        # vrouter-agent will stuck in Init state with "No configuration for
+        # self" error.
         updated_fq_name = data_utils.rand_name(
             'rbac-global-vrouter-config-new-name')
-        global_vrouter_config_uuid = self._create_global_vrouter_config(
-            global_system_config)['uuid']
+        global_vrouter_config_uuid = \
+            self._create_global_vrouter_config()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.update_global_vrouter_config(
                 global_vrouter_config_uuid,
                 display_name=updated_fq_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_global_vrouter_config")
-    @idempotent_id('4f3d59e8-3dac-4346-9d13-5ebe5ad8f6cf')
-    def test_delete_global_vrouter(self):
-        """
-        test method for delete global vrouter config objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        global_vrouter_config_uuid = self._create_global_vrouter_config(
-            global_system_config)['uuid']
+                                 rules=["delete_global_vrouter_config"])
+    @decorators.idempotent_id('4f3d59e8-3dac-4346-9d13-5ebe5ad8f6cf')
+    def test_delete_global_vrouter_config(self):
+        """test method for delete global vrouter config objects"""
+        global_vrouter_config_uuid = \
+            self._create_global_vrouter_config()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.delete_global_vrouter_config(
                 global_vrouter_config_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_logical_routers")
-    @idempotent_id('674bf3de-a9e5-45c2-921b-b89db73a2abe')
+                                 rules=["list_logical_routers"])
+    @decorators.idempotent_id('674bf3de-a9e5-45c2-921b-b89db73a2abe')
     def test_list_logical_routers(self):
-        """
-        test method for list logical router objects
-        """
+        """test method for list logical router objects"""
         with self.rbac_utils.override_role(self):
             self.router_client.list_logical_routers()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_logical_routers")
-    @idempotent_id('610f051b-8eba-4d3a-ba43-91386bfc0e52')
+                                 rules=["create_logical_routers"])
+    @decorators.idempotent_id('610f051b-8eba-4d3a-ba43-91386bfc0e52')
     def test_create_logical_routers(self):
-        """
-        test method for create logical router objects
-        """
+        """test method for create logical router objects"""
         with self.rbac_utils.override_role(self):
             self._create_logical_router()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_logical_router")
-    @idempotent_id('992841d4-0d5d-4d85-b513-049b33e2a2e2')
+                                 rules=["show_logical_router"])
+    @decorators.idempotent_id('992841d4-0d5d-4d85-b513-049b33e2a2e2')
     def test_show_logical_router(self):
-        """
-        test method for show logical router objects
-        """
+        """test method for show logical router objects"""
         logical_router_uuid = self._create_logical_router()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.show_logical_router(logical_router_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_logical_router")
-    @idempotent_id('518197bf-5233-4059-9021-5d7ecc74718e')
+                                 rules=["update_logical_router"])
+    @decorators.idempotent_id('518197bf-5233-4059-9021-5d7ecc74718e')
     def test_update_logical_router(self):
-        """
-        test method for update logical router objects
-        """
+        """test method for update logical router objects"""
         updated_fq_name = data_utils.rand_name('rbac-logical-router-new-name')
         logical_router_uuid = self._create_logical_router()['uuid']
         with self.rbac_utils.override_role(self):
@@ -388,79 +335,56 @@
                 display_name=updated_fq_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_logical_router")
-    @idempotent_id('70448b9c-4444-45e0-b307-7bff4dc075b1')
+                                 rules=["delete_logical_router"])
+    @decorators.idempotent_id('70448b9c-4444-45e0-b307-7bff4dc075b1')
     def test_delete_logical_router(self):
-        """
-        test method for delete logical router objects
-        """
+        """test method for delete logical router objects"""
         logical_router_uuid = self._create_logical_router()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.delete_logical_router(logical_router_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_virtual_routers")
-    @idempotent_id('604dc476-732e-4890-8665-a497360f5475')
+                                 rules=["list_virtual_routers"])
+    @decorators.idempotent_id('604dc476-732e-4890-8665-a497360f5475')
     def test_list_virtual_routers(self):
-        """
-        test method for list virtual router objects
-        """
+        """test method for list virtual router objects"""
         with self.rbac_utils.override_role(self):
             self.router_client.list_virtual_routers()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_virtual_routers")
-    @idempotent_id('114beb14-45c0-4714-a407-d160bb102022')
+                                 rules=["create_virtual_routers"])
+    @decorators.idempotent_id('114beb14-45c0-4714-a407-d160bb102022')
     def test_create_virtual_routers(self):
-        """
-        test method for create virtual router objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for create virtual router objects"""
         with self.rbac_utils.override_role(self):
-            self._create_virtual_router(global_system_config)
+            self._create_virtual_router()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_virtual_router")
-    @idempotent_id('258fe4e0-3e39-460f-aafa-e3b53c96e534')
+                                 rules=["show_virtual_router"])
+    @decorators.idempotent_id('258fe4e0-3e39-460f-aafa-e3b53c96e534')
     def test_show_virtual_router(self):
-        """
-        test method for show virtual router objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        virtual_router_uuid = self._create_virtual_router(
-            global_system_config)['uuid']
+        """test method for show virtual router objects"""
+        virtual_router_uuid = self._create_virtual_router()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.show_virtual_router(virtual_router_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_virtual_router")
-    @idempotent_id('d1c72191-2068-4552-a78f-038cdd4c9c1d')
+                                 rules=["update_virtual_router"])
+    @decorators.idempotent_id('d1c72191-2068-4552-a78f-038cdd4c9c1d')
     def test_update_virtual_router(self):
-        """
-        test method for update virtual router objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for update virtual router objects"""
         updated_fq_name = data_utils.rand_name('rbac-virtual-router-new-name')
-        virtual_router_uuid = self._create_virtual_router(
-            global_system_config)['uuid']
+        virtual_router_uuid = self._create_virtual_router()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.update_virtual_router(
                 virtual_router_uuid,
                 display_name=updated_fq_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_virtual_router")
-    @idempotent_id('efbe25d6-8763-42d4-baf6-9f342e710144')
+                                 rules=["delete_virtual_router"])
+    @decorators.idempotent_id('efbe25d6-8763-42d4-baf6-9f342e710144')
     def test_delete_virtual_router(self):
-        """
-        test method for delete virtual router objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        virtual_router_uuid = self._create_virtual_router(
-            global_system_config)['uuid']
+        """test method for delete virtual router objects"""
+        virtual_router_uuid = self._create_virtual_router()['uuid']
         with self.rbac_utils.override_role(self):
             self.router_client.delete_virtual_router(virtual_router_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routing.py b/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
index b3f80dd..850f767 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
@@ -17,22 +17,18 @@
 Tempest test-case to test routing objects using RBAC roles
 """
 
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class RoutingTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test routing objects using RBAC roles
-    """
+    """Test class to test routing objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -62,54 +58,44 @@
         return new_instance
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_routing_instances")
-    @idempotent_id('054c56ba-76b2-4161-a702-40301d8de085')
+                                 rules=["list_routing_instances"])
+    @decorators.idempotent_id('054c56ba-76b2-4161-a702-40301d8de085')
     def test_list_routing_instances(self):
-        """
-        test method for list routing instance objects
-        """
+        """test method for list routing instance objects"""
         with self.rbac_utils.override_role(self):
             self.routing_client.list_routing_instances()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_routing_instances")
-    @idempotent_id('3d44a46b-5436-43a8-b2f7-8581f0f04dbc')
+                                 rules=["create_routing_instances"])
+    @decorators.idempotent_id('3d44a46b-5436-43a8-b2f7-8581f0f04dbc')
     def test_create_routing_instances(self):
-        """
-        test method for create routing instance objects
-        """
+        """test method for create routing instance objects"""
         with self.rbac_utils.override_role(self):
             self._create_routing_instances()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_routing_instance")
-    @idempotent_id('161abb37-6037-422b-b453-108a5d10caca')
+                                 rules=["show_routing_instance"])
+    @decorators.idempotent_id('161abb37-6037-422b-b453-108a5d10caca')
     def test_show_routing_instance(self):
-        """
-        test method for show routing instance objects
-        """
+        """test method for show routing instance objects"""
         new_instance = self._create_routing_instances()
         with self.rbac_utils.override_role(self):
             self.routing_client.show_routing_instance(new_instance['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_routing_instance")
-    @idempotent_id('1d3af01e-01bf-4347-a9bc-633732339e0e')
+                                 rules=["delete_routing_instance"])
+    @decorators.idempotent_id('1d3af01e-01bf-4347-a9bc-633732339e0e')
     def test_delete_routing_instance(self):
-        """
-        test method for delete routing instance objects
-        """
+        """test method for delete routing instance objects"""
         new_instance = self._create_routing_instances()
         with self.rbac_utils.override_role(self):
             self.routing_client.delete_routing_instance(new_instance['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_routing_instance")
-    @idempotent_id('ebcfd442-2a26-4954-968b-e17e414ed0d1')
+                                 rules=["update_routing_instance"])
+    @decorators.idempotent_id('ebcfd442-2a26-4954-968b-e17e414ed0d1')
     def test_update_routing_instance(self):
-        """
-        test method for update routing instance objects
-        """
+        """test method for update routing instance objects"""
         new_instance = self._create_routing_instances()
         with self.rbac_utils.override_role(self):
             self.routing_client.update_routing_instance(
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py b/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
index 9b1dde9..dc0b619 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class RoutingPolicyTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test routing policy objects using RBAC roles
-    """
+    """Test class to test routing policy objects using RBAC roles"""
 
     def _create_routing_policy(self):
         fq_name = data_utils.rand_name('routing-policy')
@@ -59,54 +54,44 @@
                                                          **put_body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_routing_policys")
-    @idempotent_id('fe25a306-bc4f-42b3-91ca-38df01e35345')
+                                 rules=["list_routing_policys"])
+    @decorators.idempotent_id('fe25a306-bc4f-42b3-91ca-38df01e35345')
     def test_list_routing_policys(self):
-        """
-        test method for list routing policy objects
-        """
+        """test method for list routing policy objects"""
         with self.rbac_utils.override_role(self):
             self.routing_policy_client.list_routing_policys()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_routing_policys")
-    @idempotent_id('f8ca5e30-8bb3-410f-8618-8fdca70bda06')
+                                 rules=["create_routing_policys"])
+    @decorators.idempotent_id('f8ca5e30-8bb3-410f-8618-8fdca70bda06')
     def test_create_routing_policys(self):
-        """
-        test method for create routing policy objects
-        """
+        """test method for create routing policy objects"""
         with self.rbac_utils.override_role(self):
             self._create_routing_policy()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_routing_policy")
-    @idempotent_id('3421e84e-3e2a-452a-9a26-b2caf00b1cbc')
+                                 rules=["show_routing_policy"])
+    @decorators.idempotent_id('3421e84e-3e2a-452a-9a26-b2caf00b1cbc')
     def test_show_routing_policy(self):
-        """
-        test method for show routing policy objects
-        """
+        """test method for show routing policy objects"""
         policy_uuid = self._create_routing_policy()
         with self.rbac_utils.override_role(self):
             self.routing_policy_client.show_routing_policy(policy_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_routing_policy")
-    @idempotent_id('9fc1f44f-c8e2-4f5a-8239-e9b783f55d94')
+                                 rules=["update_routing_policy"])
+    @decorators.idempotent_id('9fc1f44f-c8e2-4f5a-8239-e9b783f55d94')
     def test_update_routing_policy(self):
-        """
-        test method for update routing policy objects
-        """
+        """test method for update routing policy objects"""
         policy_uuid = self._create_routing_policy()
         with self.rbac_utils.override_role(self):
             self._update_routing_policy(policy_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_routing_policy")
-    @idempotent_id('24f1cd7a-2917-4b81-a0a3-a40ed2d40c7d')
+                                 rules=["delete_routing_policy"])
+    @decorators.idempotent_id('24f1cd7a-2917-4b81-a0a3-a40ed2d40c7d')
     def test_delete_routing_policy(self):
-        """
-        test method for delete routing policy objects
-        """
+        """test method for delete routing policy objects"""
         policy_uuid = self._create_routing_policy()
         with self.rbac_utils.override_role(self):
             self.routing_policy_client.delete_routing_policy(policy_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py b/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
index 8a14b03..e537f62 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
@@ -17,24 +17,19 @@
 Tempest test-case to test service group objects using RBAC roles
 """
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class ContrailSecurityGroupTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test security group objects using RBAC roles
-    """
+    """Test class to test security group objects using RBAC roles"""
 
     def _delete_security_group(self, sec_grp_id):
         return self.security_group_client.delete_security_group(sec_grp_id)
@@ -55,57 +50,47 @@
         return sec_grp
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_security_groups")
-    @idempotent_id('a13cc1d5-f562-4b68-b732-980deb3cddf4')
+                                 rules=["list_security_groups"])
+    @decorators.idempotent_id('a13cc1d5-f562-4b68-b732-980deb3cddf4')
     def test_list_security_groups(self):
-        """
-        test method for list security group objects
-        """
+        """test method for list security group objects"""
         self._create_security_groups()
         with self.rbac_utils.override_role(self):
             self.security_group_client.list_security_groups()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_security_group")
-    @idempotent_id('c7ca1781-08ae-4fa2-bd6d-1f369950c4c4')
+                                 rules=["show_security_group"])
+    @decorators.idempotent_id('c7ca1781-08ae-4fa2-bd6d-1f369950c4c4')
     def test_show_security_group(self):
-        """
-        test method for show security group objects
-        """
+        """test method for show security group objects"""
         grp = self._create_security_groups()
         grp_id = grp['uuid']
         with self.rbac_utils.override_role(self):
             self.security_group_client.show_security_group(grp_id)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_security_group")
-    @idempotent_id('e682d7b4-deb8-4b5c-9c9b-1e1ada827b40')
+                                 rules=["delete_security_group"])
+    @decorators.idempotent_id('e682d7b4-deb8-4b5c-9c9b-1e1ada827b40')
     def test_delete_security_group(self):
-        """
-        test method for delete security group objects
-        """
+        """test method for delete security group objects"""
         grp = self._create_security_groups()
         grp_id = grp['uuid']
         with self.rbac_utils.override_role(self):
             self._delete_security_group(grp_id)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_security_groups")
-    @idempotent_id('63a2ff14-7869-40a2-962a-d65752de5651')
+                                 rules=["create_security_groups"])
+    @decorators.idempotent_id('63a2ff14-7869-40a2-962a-d65752de5651')
     def test_create_security_groups(self):
-        """
-        test method for create security group objects
-        """
+        """test method for create security group objects"""
         with self.rbac_utils.override_role(self):
             self._create_security_groups()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_security_group")
-    @idempotent_id('cf9aafe2-fffb-4028-8fd7-4d6634e144e7')
+                                 rules=["update_security_group"])
+    @decorators.idempotent_id('cf9aafe2-fffb-4028-8fd7-4d6634e144e7')
     def test_update_security_group(self):
-        """
-        test method for update security group objects
-        """
+        """test method for update security group objects"""
         grp = self._create_security_groups()
         grp_id = grp['uuid']
         display_name = data_utils.rand_name('securitygroupnew')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py b/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
index 7abe131..7cf5e24 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
@@ -17,41 +17,22 @@
 Tempest test-case to test service appliance using RBAC roles
 """
 
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class ServiceAppliancesTest(rbac_base.BaseContrailTest):
+    """Test class to test service appliances objects using RBAC roles"""
 
-    """
-    Test class to test service appliances objects using RBAC roles
-    """
-
-    def _create_global_system_config(self):
-        config_name = data_utils.rand_name('test-config')
-        parent_type = 'config-root'
-        config_fq_name = [config_name]
-        new_config = \
-            self.config_client.create_global_system_configs(
-                parent_type=parent_type,
-                display_name=config_name,
-                fq_name=config_fq_name)['global-system-config']
-        self.addCleanup(self._try_delete_resource,
-                        (self.config_client.
-                         delete_global_system_config),
-                        new_config['uuid'])
-        return new_config
-
-    def _create_service_appliance_sets(self, global_system_config):
+    def _create_service_appliance_sets(self):
         set_name = data_utils.rand_name('test-set')
-        set_fq_name = [global_system_config, set_name]
+        set_fq_name = ['default-global-system-config', set_name]
         new_set = self.service_appliances_client.create_service_appliance_sets(
             parent_type='global-system-config',
             fq_name=set_fq_name)['service-appliance-set']
@@ -76,57 +57,39 @@
         return new_appliance
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_service_appliances")
-    @idempotent_id('6b5fc17c-34e6-4d21-a53e-a0dfe69afd31')
+                                 rules=["list_service_appliances"])
+    @decorators.idempotent_id('6b5fc17c-34e6-4d21-a53e-a0dfe69afd31')
     def test_list_service_appliances(self):
-        """
-        test method for list service appliance objects
-        """
+        """test method for list service appliance objects"""
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.list_service_appliances()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_service_appliances")
-    @idempotent_id('0563c0c8-b986-466e-8540-aa8ad7a10367')
+                                 rules=["create_service_appliances"])
+    @decorators.idempotent_id('0563c0c8-b986-466e-8540-aa8ad7a10367')
     def test_create_service_appliances(self):
-        """
-        test method for create service appliance objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_set = \
-            self._create_service_appliance_sets(global_system_config)
+        """test method for create service appliance objects"""
+        new_set = self._create_service_appliance_sets()
         with self.rbac_utils.override_role(self):
             self._create_service_appliances(new_set)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_service_appliance")
-    @idempotent_id('ea30dcfe-8657-4a7d-9cf1-3176d334bf27')
+                                 rules=["show_service_appliance"])
+    @decorators.idempotent_id('ea30dcfe-8657-4a7d-9cf1-3176d334bf27')
     def test_show_service_appliance(self):
-        """
-        test method for show service appliance objects
-        """
-        # Create global system config
-        global_system_config = \
-            self._create_global_system_config()['name']
-        new_set = \
-            self._create_service_appliance_sets(global_system_config)
+        """test method for show service appliance objects"""
+        new_set = self._create_service_appliance_sets()
         new_appliance = self._create_service_appliances(new_set)
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.show_service_appliance(
                 new_appliance['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_service_appliance")
-    @idempotent_id('a54ca33a-8590-4844-96d7-b96882b59e86')
+                                 rules=["update_service_appliance"])
+    @decorators.idempotent_id('a54ca33a-8590-4844-96d7-b96882b59e86')
     def test_update_service_appliance(self):
-        """
-        test method for update service appliance objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_set = \
-            self._create_service_appliance_sets(global_system_config)
+        """test method for update service appliance objects"""
+        new_set = self._create_service_appliance_sets()
         new_appliance = self._create_service_appliances(new_set)
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -135,69 +98,48 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_service_appliance")
-    @idempotent_id('362deff5-7b72-4929-ba81-972cfcfa1309')
+                                 rules=["delete_service_appliance"])
+    @decorators.idempotent_id('362deff5-7b72-4929-ba81-972cfcfa1309')
     def test_delete_service_appliance(self):
-        """
-        test method for delete service appliance objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_set = \
-            self._create_service_appliance_sets(global_system_config)
+        """test method for delete service appliance objects"""
+        new_set = self._create_service_appliance_sets()
         new_appliance = self._create_service_appliances(new_set)
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.delete_service_appliance(
                 new_appliance['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_service_appliance_sets")
-    @idempotent_id('c1e74da9-00b6-4c88-adda-2ce49094e570')
+                                 rules=["list_service_appliance_sets"])
+    @decorators.idempotent_id('c1e74da9-00b6-4c88-adda-2ce49094e570')
     def test_list_service_appl_sets(self):
-        """
-        test method for list service appliance sets objects
-        """
+        """test method for list service appliance sets objects"""
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.list_service_appliance_sets()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_service_appliance_sets")
-    @idempotent_id('eb00d6cf-590f-41bf-8ee4-5be625d9cb93')
+                                 rules=["create_service_appliance_sets"])
+    @decorators.idempotent_id('eb00d6cf-590f-41bf-8ee4-5be625d9cb93')
     def test_create_service_appl_sets(self):
-        """
-        test method for create service appliance sets objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
+        """test method for create service appliance sets objects"""
         with self.rbac_utils.override_role(self):
-            self._create_service_appliance_sets(global_system_config)
+            self._create_service_appliance_sets()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_service_appliance_set")
-    @idempotent_id('dd35dd04-e7d9-46bb-8f36-26835f122572')
+                                 rules=["show_service_appliance_set"])
+    @decorators.idempotent_id('dd35dd04-e7d9-46bb-8f36-26835f122572')
     def test_show_service_appl_set(self):
-        """
-        test method for show service appliance sets objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_set = self._create_service_appliance_sets(
-            global_system_config)
+        """test method for show service appliance sets objects"""
+        new_set = self._create_service_appliance_sets()
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.show_service_appliance_set(
                 new_set['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_service_appliance_set")
-    @idempotent_id('952f063b-bc71-4f62-83b1-719bce5ad4ed')
+                                 rules=["update_service_appliance_set"])
+    @decorators.idempotent_id('952f063b-bc71-4f62-83b1-719bce5ad4ed')
     def test_update_service_appl_set(self):
-        """
-        test method for update service appliance sets objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_set = self._create_service_appliance_sets(
-            global_system_config)
+        """test method for update service appliance sets objects"""
+        new_set = self._create_service_appliance_sets()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.update_service_appliance_set(
@@ -205,16 +147,11 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_service_appliance_set")
-    @idempotent_id('7b56ce24-da1d-4565-bd22-c58dc57d7045')
+                                 rules=["delete_service_appliance_set"])
+    @decorators.idempotent_id('7b56ce24-da1d-4565-bd22-c58dc57d7045')
     def test_delete_service_appl_set(self):
-        """
-        test method for delete service appliance sets objects
-        """
-        # Create global system config
-        global_system_config = self._create_global_system_config()['name']
-        new_set = self._create_service_appliance_sets(
-            global_system_config)
+        """test method for delete service appliance sets objects"""
+        new_set = self._create_service_appliance_sets()
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.delete_service_appliance_set(
                 new_set['uuid'])
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py b/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
index e629526..98283bb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
@@ -17,22 +17,18 @@
 Tempest test-case to test service clients objects using RBAC roles
 """
 
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 
 
 class ServiceClientsTest(rbac_base.BaseContrailTest):
-
-    """
-    Tempest test-case to test service clients objects using RBAC roles
-    """
+    """Tempest test-case to test service clients objects using RBAC roles"""
 
     def _create_service_template(self):
         template_name = data_utils.rand_name('test-template')
@@ -87,44 +83,36 @@
         return new_instance
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_service_templates")
-    @idempotent_id('841b1d32-4308-4fb6-852a-41bdd8c56c37')
+                                 rules=["list_service_templates"])
+    @decorators.idempotent_id('841b1d32-4308-4fb6-852a-41bdd8c56c37')
     def test_list_service_templates(self):
-        """
-        test method for list service template objects
-        """
+        """test method for list service template objects"""
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_templates()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_service_templates")
-    @idempotent_id('3f02d14a-31e2-4476-821f-87d0cc42d9fb')
+                                 rules=["create_service_templates"])
+    @decorators.idempotent_id('3f02d14a-31e2-4476-821f-87d0cc42d9fb')
     def test_create_service_templates(self):
-        """
-        test method for create service template objects
-        """
+        """test method for create service template objects"""
         with self.rbac_utils.override_role(self):
             self._create_service_template()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_service_template")
-    @idempotent_id('1f15d734-2cc6-4ded-916e-134286c6b87b')
+                                 rules=["show_service_template"])
+    @decorators.idempotent_id('1f15d734-2cc6-4ded-916e-134286c6b87b')
     def test_show_service_template(self):
-        """
-        test method for show service template objects
-        """
+        """test method for show service template objects"""
         new_template = self._create_service_template()
         with self.rbac_utils.override_role(self):
             self.service_client.show_service_template(
                 new_template['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_service_template")
-    @idempotent_id('3549debd-4c7a-4574-8d11-4190c8530a23')
+                                 rules=["update_service_template"])
+    @decorators.idempotent_id('3549debd-4c7a-4574-8d11-4190c8530a23')
     def test_update_service_template(self):
-        """
-        test method for update service template objects
-        """
+        """test method for update service template objects"""
         new_template = self._create_service_template()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -133,56 +121,46 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_service_template")
-    @idempotent_id('e86cabd2-5b7e-4ee8-86ec-db52619b852b')
+                                 rules=["delete_service_template"])
+    @decorators.idempotent_id('e86cabd2-5b7e-4ee8-86ec-db52619b852b')
     def test_delete_service_template(self):
-        """
-        test method for delete service template objects
-        """
+        """test method for delete service template objects"""
         new_template = self._create_service_template()
         with self.rbac_utils.override_role(self):
             self.service_client.delete_service_template(
                 new_template['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_service_health_checks")
-    @idempotent_id('5210d6ca-9a38-4b6b-b5b7-f836c3846079')
+                                 rules=["list_service_health_checks"])
+    @decorators.idempotent_id('5210d6ca-9a38-4b6b-b5b7-f836c3846079')
     def test_list_service_health_checks(self):
-        """
-        test method for list service health check objects
-        """
+        """test method for list service health check objects"""
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_health_checks()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_service_health_checks")
-    @idempotent_id('77716feb-0d05-4cfd-8a17-79cf0b19ed3c')
+                                 rules=["create_service_health_checks"])
+    @decorators.idempotent_id('77716feb-0d05-4cfd-8a17-79cf0b19ed3c')
     def test_create_service_health(self):
-        """
-        test method for create service health check objects
-        """
+        """test method for create service health check objects"""
         with self.rbac_utils.override_role(self):
             self._create_service_health_check()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_service_health_check")
-    @idempotent_id('80db4445-8d6c-4c8f-aa25-d4ea53d32d2c')
+                                 rules=["show_service_health_check"])
+    @decorators.idempotent_id('80db4445-8d6c-4c8f-aa25-d4ea53d32d2c')
     def test_show_service_health(self):
-        """
-        test method for show service health check objects
-        """
+        """test method for show service health check objects"""
         new_health_check = self._create_service_health_check()
         with self.rbac_utils.override_role(self):
             self.service_client.show_service_health_check(
                 new_health_check['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_service_health_check")
-    @idempotent_id('68fb1510-4b76-40cc-8979-e56e537229d2')
+                                 rules=["update_service_health_check"])
+    @decorators.idempotent_id('68fb1510-4b76-40cc-8979-e56e537229d2')
     def test_update_service_health(self):
-        """
-        test method for update service health check objects
-        """
+        """test method for update service health check objects"""
         new_health_check = self._create_service_health_check()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
@@ -191,68 +169,56 @@
                 display_name=update_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_service_health_check")
-    @idempotent_id('2dce3942-402a-48a4-b682-fdc425d3d935')
+                                 rules=["delete_service_health_check"])
+    @decorators.idempotent_id('2dce3942-402a-48a4-b682-fdc425d3d935')
     def test_delete_service_health(self):
-        """
-        test method for delete service health check objects
-        """
+        """test method for delete service health check objects"""
         new_health_check = self._create_service_health_check()
         with self.rbac_utils.override_role(self):
             self.service_client.delete_service_health_check(
                 new_health_check['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_service_instances")
-    @idempotent_id('1469c71e-f6f5-419f-9672-c3c67f879704')
+                                 rules=["create_service_instances"])
+    @decorators.idempotent_id('1469c71e-f6f5-419f-9672-c3c67f879704')
     def test_create_service_instances(self):
-        """
-        test method for create service client objects
-        """
+        """test method for create service client objects"""
         with self.rbac_utils.override_role(self):
             self._create_service_instance()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_service_instance")
-    @idempotent_id('ea5b716d-5de8-4c71-becd-f1501c22f0df')
+                                 rules=["show_service_instance"])
+    @decorators.idempotent_id('ea5b716d-5de8-4c71-becd-f1501c22f0df')
     def test_show_service_instance(self):
-        """
-        test method for show service client objects
-        """
+        """test method for show service client objects"""
         new_instance = self._create_service_instance()
         with self.rbac_utils.override_role(self):
             self.service_client.show_service_instance(
                 new_instance['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_service_instance")
-    @idempotent_id('74934833-29cd-416b-a5a6-273f733d058a')
+                                 rules=["delete_service_instance"])
+    @decorators.idempotent_id('74934833-29cd-416b-a5a6-273f733d058a')
     def test_delete_service_instance(self):
-        """
-        test method for delete service client objects
-        """
+        """test method for delete service client objects"""
         new_instance = self._create_service_instance()
         with self.rbac_utils.override_role(self):
             self.service_client.delete_service_instance(
                 new_instance['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_service_instances")
-    @idempotent_id('da6016a3-a2a8-42a8-b064-c124c22fef6f')
+                                 rules=["list_service_instances"])
+    @decorators.idempotent_id('da6016a3-a2a8-42a8-b064-c124c22fef6f')
     def test_list_service_instances(self):
-        """
-        test method for list service client objects
-        """
+        """test method for list service client objects"""
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_instances()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_service_instance")
-    @idempotent_id('a6237b99-336b-42db-a8eb-9604a1b08fc6')
+                                 rules=["update_service_instance"])
+    @decorators.idempotent_id('a6237b99-336b-42db-a8eb-9604a1b08fc6')
     def test_update_service_instance(self):
-        """
-        test method for update service client objects
-        """
+        """test method for update service client objects"""
         new_instance = self._create_service_instance()
         update_name = data_utils.rand_name('test')
         with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py b/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
index 233084e..3fa1304 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class SubnetContrailTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test subnet objects using RBAC roles
-    """
+    """Test class to test subnet objects using RBAC roles"""
 
     def _create_subnet(self):
         post_body = {
@@ -56,54 +51,44 @@
         self.subnet_client.update_subnet(subnet_uuid, **put_body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_subnets")
-    @idempotent_id('ddd1d9ae-cf2f-4a74-98ba-b0f481f27977')
+                                 rules=["list_subnets"])
+    @decorators.idempotent_id('ddd1d9ae-cf2f-4a74-98ba-b0f481f27977')
     def test_list_subnets(self):
-        """
-        test method for list subnet objects
-        """
+        """test method for list subnet objects"""
         with self.rbac_utils.override_role(self):
             self.subnet_client.list_subnets()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_subnets")
-    @idempotent_id('ee0cb904-d162-44a4-b7b0-a7451f667ed5')
+                                 rules=["create_subnets"])
+    @decorators.idempotent_id('ee0cb904-d162-44a4-b7b0-a7451f667ed5')
     def test_create_subnets(self):
-        """
-        test method for create subnet objects
-        """
+        """test method for create subnet objects"""
         with self.rbac_utils.override_role(self):
             self._create_subnet()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_subnet")
-    @idempotent_id('994618f2-5b40-460c-a6a8-6479bc15bf80')
+                                 rules=["show_subnet"])
+    @decorators.idempotent_id('994618f2-5b40-460c-a6a8-6479bc15bf80')
     def test_show_subnet(self):
-        """
-        test method for show subnet objects
-        """
+        """test method for show subnet objects"""
         subnet_uuid = self._create_subnet()
         with self.rbac_utils.override_role(self):
             self.subnet_client.show_subnet(subnet_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_subnet")
-    @idempotent_id('565e44c9-eb9b-4ae6-9ebb-db422a9751ee')
+                                 rules=["update_subnet"])
+    @decorators.idempotent_id('565e44c9-eb9b-4ae6-9ebb-db422a9751ee')
     def test_update_subnet(self):
-        """
-        test method for update subnet objects
-        """
+        """test method for update subnet objects"""
         subnet_uuid = self._create_subnet()
         with self.rbac_utils.override_role(self):
             self._update_subnet(subnet_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_subnet")
-    @idempotent_id('a733b913-7a88-45d9-ac0a-d858fa3dc662')
+                                 rules=["delete_subnet"])
+    @decorators.idempotent_id('a733b913-7a88-45d9-ac0a-d858fa3dc662')
     def test_delete_subnet(self):
-        """
-        test method for delete subnet objects
-        """
+        """test method for delete subnet objects"""
         subnet_uuid = self._create_subnet()
         with self.rbac_utils.override_role(self):
             self.subnet_client.delete_subnet(subnet_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
index 6e75327..9bfd3ad 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
@@ -18,14 +18,12 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
@@ -33,10 +31,7 @@
 
 # noinspection PyPep8Naming
 class VirtualDNSTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test virtual dns objects using RBAC roles
-    """
+    """Test class to test virtual dns objects using RBAC roles"""
 
     def _create_virtual_dns(self):
         parent_type = "domain"
@@ -77,56 +72,46 @@
         return dns_record
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_virtual_DNSs")
-    @idempotent_id('8401d690-afdf-4b6e-ad60-b9363a8cfb1d')
+                                 rules=["list_virtual_DNSs"])
+    @decorators.idempotent_id('8401d690-afdf-4b6e-ad60-b9363a8cfb1d')
     def test_list_virtual_dns(self):
-        """
-        test method for list virtual dns objects
-        """
+        """test method for list virtual dns objects"""
         with self.rbac_utils.override_role(self):
             self.virtual_dns_client.list_virtual_dns()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_virtual_DNSs")
-    @idempotent_id('a7dd2c9e-e1eb-4dc4-ac70-4d48a291a3bf')
+                                 rules=["create_virtual_DNSs"])
+    @decorators.idempotent_id('a7dd2c9e-e1eb-4dc4-ac70-4d48a291a3bf')
     def test_create_virtual_dns(self):
-        """
-        test method for create virtual dns objects
-        """
+        """test method for create virtual dns objects"""
         with self.rbac_utils.override_role(self):
             self._create_virtual_dns()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_virtual_DNS")
-    @idempotent_id('ffc0fc82-3bff-48ab-b65a-3d90b4a3154d')
+                                 rules=["show_virtual_DNS"])
+    @decorators.idempotent_id('ffc0fc82-3bff-48ab-b65a-3d90b4a3154d')
     def test_show_virtual_dns(self):
-        """
-        test method for show virtual dns objects
-        """
+        """test method for show virtual dns objects"""
         dns = self._create_virtual_dns()
         with self.rbac_utils.override_role(self):
             self.virtual_dns_client.show_virtual_dns(
                 dns['virtual-DNS']['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_virtual_DNS")
-    @idempotent_id('4793caa1-7707-4123-b1b4-c3feae91312f')
+                                 rules=["delete_virtual_DNS"])
+    @decorators.idempotent_id('4793caa1-7707-4123-b1b4-c3feae91312f')
     def test_delete_virtual_dns(self):
-        """
-        test method for delete virtual dns objects
-        """
+        """test method for delete virtual dns objects"""
         dns = self._create_virtual_dns()
         with self.rbac_utils.override_role(self):
             self.virtual_dns_client.delete_virtual_dns(
                 dns['virtual-DNS']['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_virtual_DNS")
-    @idempotent_id('2bc43935-57c1-4bf6-9868-78ccfce164bb')
+                                 rules=["update_virtual_DNS"])
+    @decorators.idempotent_id('2bc43935-57c1-4bf6-9868-78ccfce164bb')
     def test_update_virtual_dns(self):
-        """
-        test method for update virtual dns objects
-        """
+        """test method for update virtual dns objects"""
         dns = self._create_virtual_dns()
         virtual_dns_data = {"domain_name": "default-domain",
                             "default_ttl_seconds": 0,
@@ -139,34 +124,28 @@
                 display_name=display_name)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_virtual_DNS_records")
-    @idempotent_id('e9103999-2f02-4f04-a8a0-906ca4fb394d')
+                                 rules=["list_virtual_DNS_records"])
+    @decorators.idempotent_id('e9103999-2f02-4f04-a8a0-906ca4fb394d')
     def test_list_virtual_dns_records(self):
-        """
-        test method for list virtual dns record objects
-        """
+        """test method for list virtual dns record objects"""
         with self.rbac_utils.override_role(self):
             self.virtual_dns_client.list_virtual_dns_records()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_virtual_DNS_records")
-    @idempotent_id('bd9f3992-0ce4-4477-97a0-1271bc8ad9ef')
+                                 rules=["create_virtual_DNS_records"])
+    @decorators.idempotent_id('bd9f3992-0ce4-4477-97a0-1271bc8ad9ef')
     def test_create_virtual_dns_records(self):
-        """
-        test method for create virtual dns record objects
-        """
+        """test method for create virtual dns record objects"""
         # A virtual DNS is needed to create a record
         dns = self._create_virtual_dns()
         with self.rbac_utils.override_role(self):
             self._create_virtual_dns_record(dns)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_virtual_DNS_record")
-    @idempotent_id('fa3d1a2b-d788-4623-89a4-3a9ed1db7a7d')
+                                 rules=["show_virtual_DNS_record"])
+    @decorators.idempotent_id('fa3d1a2b-d788-4623-89a4-3a9ed1db7a7d')
     def test_show_virtual_dns_record(self):
-        """
-        test method for show virtual dns record objects
-        """
+        """test method for show virtual dns record objects"""
         # A virtual DNS is needed to create a record
         dns = self._create_virtual_dns()
         dns_record = self._create_virtual_dns_record(dns)
@@ -175,12 +154,10 @@
                 dns_record['virtual-DNS-record']['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_virtual_DNS_record")
-    @idempotent_id('de31e867-c997-4b4c-a095-43c647f5c192')
+                                 rules=["delete_virtual_DNS_record"])
+    @decorators.idempotent_id('de31e867-c997-4b4c-a095-43c647f5c192')
     def test_delete_virtual_dns_record(self):
-        """
-        test method for delete virtual dns record objects
-        """
+        """test method for delete virtual dns record objects"""
         # A virtual DNS is needed to create a record
         dns = self._create_virtual_dns()
         dns_record = self._create_virtual_dns_record(dns)
@@ -189,12 +166,10 @@
                 dns_record['virtual-DNS-record']['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_virtual_DNS_record")
-    @idempotent_id('65acef26-646f-4b36-923c-8a1d07e90c5c')
+                                 rules=["update_virtual_DNS_record"])
+    @decorators.idempotent_id('65acef26-646f-4b36-923c-8a1d07e90c5c')
     def test_update_virtual_dns_record(self):
-        """
-        test method for update virtual dns record objects
-        """
+        """test method for update virtual dns record objects"""
         # A virtual DNS is needed to create a record
         dns = self._create_virtual_dns()
         dns_record = self._create_virtual_dns_record(dns)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
index d8268f8..27f6775 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class VirtualIPTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test virtual ip objects using RBAC roles
-    """
+    """Test class to test virtual ip objects using RBAC roles"""
 
     def _create_virtual_ip(self):
         fq_name = data_utils.rand_name('virtual_ip')
@@ -57,54 +52,44 @@
         self.virtual_ip_client.update_virtual_ip(virtual_ip_uuid, **put_body)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_virtual_ips")
-    @idempotent_id('92303eee-bd96-48bc-a02c-39950bd19a21')
+                                 rules=["list_virtual_ips"])
+    @decorators.idempotent_id('92303eee-bd96-48bc-a02c-39950bd19a21')
     def test_list_virtual_ips(self):
-        """
-        test method for list virtual ip objects
-        """
+        """test method for list virtual ip objects"""
         with self.rbac_utils.override_role(self):
             self.virtual_ip_client.list_virtual_ips()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_virtual_ips")
-    @idempotent_id('e0070888-995d-46ab-91fc-db1412eba2f7')
+                                 rules=["create_virtual_ips"])
+    @decorators.idempotent_id('e0070888-995d-46ab-91fc-db1412eba2f7')
     def test_create_virtual_ips(self):
-        """
-        test method for create virtual ip objects
-        """
+        """test method for create virtual ip objects"""
         with self.rbac_utils.override_role(self):
             self._create_virtual_ip()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_virtual_ip")
-    @idempotent_id('2a4b3abd-c6f7-4d82-aa31-02e53d2a8fb9')
+                                 rules=["show_virtual_ip"])
+    @decorators.idempotent_id('2a4b3abd-c6f7-4d82-aa31-02e53d2a8fb9')
     def test_show_virtual_ip(self):
-        """
-        test method for show virtual ip objects
-        """
+        """test method for show virtual ip objects"""
         virtual_ip_uuid = self._create_virtual_ip()
         with self.rbac_utils.override_role(self):
             self.virtual_ip_client.show_virtual_ip(virtual_ip_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_virtual_ip")
-    @idempotent_id('0e975c92-62dc-4e6e-82cc-8cf37da3c5b2')
+                                 rules=["update_virtual_ip"])
+    @decorators.idempotent_id('0e975c92-62dc-4e6e-82cc-8cf37da3c5b2')
     def test_update_virtual_ip(self):
-        """
-        test method for update virtual ip objects
-        """
+        """test method for update virtual ip objects"""
         virtual_ip_uuid = self._create_virtual_ip()
         with self.rbac_utils.override_role(self):
             self._update_virtual_ip(virtual_ip_uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_virtual_ip")
-    @idempotent_id('fd0b2635-36bd-4345-97b7-9c0a57372eba')
+                                 rules=["delete_virtual_ip"])
+    @decorators.idempotent_id('fd0b2635-36bd-4345-97b7-9c0a57372eba')
     def test_delete_virtual_ip(self):
-        """
-        test method for delete virtual ip objects
-        """
+        """test method for delete virtual ip objects"""
         virtual_ip_uuid = self._create_virtual_ip()
         with self.rbac_utils.override_role(self):
             self.virtual_ip_client.delete_virtual_ip(virtual_ip_uuid)
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
index d69a32e..94abb45 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 LOG = logging.getLogger(__name__)
 CONF = config.CONF
 
 
 class VMContrailTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test vm objects using RBAC roles
-    """
+    """Test class to test vm objects using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -65,10 +60,10 @@
                              'uuid': cls.ipam['uuid'],
                              'attr': {
                                  'ipam_subnets': [{'subnet': subnet_ip_prefix}]
-                                 }
                              }
-                         ]
-                    }
+                         }
+                     ]
+                     }
         body = cls.vn_client.create_virtual_networks(**post_body)
         cls.network = body['virtual-network']
 
@@ -104,55 +99,45 @@
         super(VMContrailTest, cls).resource_cleanup()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_virtual_machine_interfaces")
-    @idempotent_id('e27d1fae-7324-4ef3-87b1-e7f519b1e2a7')
+                                 rules=["list_virtual_machine_interfaces"])
+    @decorators.idempotent_id('e27d1fae-7324-4ef3-87b1-e7f519b1e2a7')
     def test_list_vm_interfaces(self):
-        """
-        test method for list vm interfaces objects
-        """
+        """test method for list vm interfaces objects"""
         self._create_virual_machine_interface()
         with self.rbac_utils.override_role(self):
             self.vm_client.list_virtual_machine_interfaces()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_virtual_machine_interfaces")
-    @idempotent_id('d8a3a524-d61b-4bcb-8146-c5d4f308df8e')
+                                 rules=["create_virtual_machine_interfaces"])
+    @decorators.idempotent_id('d8a3a524-d61b-4bcb-8146-c5d4f308df8e')
     def test_add_vm_interfaces(self):
-        """
-        test method for add vm interfaces objects
-        """
+        """test method for add vm interfaces objects"""
         with self.rbac_utils.override_role(self):
             self._create_virual_machine_interface()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_virtual_machine_interface")
-    @idempotent_id('3f17125a-9060-4c4a-a23f-0fe2aba2ccef')
+                                 rules=["show_virtual_machine_interface"])
+    @decorators.idempotent_id('3f17125a-9060-4c4a-a23f-0fe2aba2ccef')
     def test_show_vm_interface(self):
-        """
-        test method for show vm interfaces objects
-        """
+        """test method for show vm interfaces objects"""
         test = self._create_virual_machine_interface()
         with self.rbac_utils.override_role(self):
             self.vm_client.show_virtual_machine_interface(test['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_virtual_machine_interface")
-    @idempotent_id('ce7f9471-ba1b-40d2-94f1-bdd0c610e22f')
+                                 rules=["delete_virtual_machine_interface"])
+    @decorators.idempotent_id('ce7f9471-ba1b-40d2-94f1-bdd0c610e22f')
     def test_delete_vm_interface(self):
-        """
-        test method for delete vm interfaces objects
-        """
+        """test method for delete vm interfaces objects"""
         body = self._create_virual_machine_interface()
         with self.rbac_utils.override_role(self):
             self.vm_client.delete_vm_interface(body['uuid'])
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_virtual_machine_interface")
-    @idempotent_id('7ca3046a-6245-4c15-914b-5a8ecdbeee11')
+                                 rules=["update_virtual_machine_interface"])
+    @decorators.idempotent_id('7ca3046a-6245-4c15-914b-5a8ecdbeee11')
     def test_update_vm_interface(self):
-        """
-        test method for update vm interfaces objects
-        """
+        """test method for update vm interfaces objects"""
         virtual_machine = self._create_virual_machine_interface()
         display_name = data_utils.rand_name('new-vitual-machine-inf-name')
         with self.rbac_utils.override_role(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
index 4475e7b..64130dc 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
@@ -18,24 +18,19 @@
 """
 
 from oslo_log import log as logging
-
-from tungsten_tempest_plugin.tests.api.contrail import rbac_base
-
 from patrole_tempest_plugin import rbac_rule_validation
-
 from tempest import config
 from tempest.lib.common.utils import data_utils
-from tempest.lib.decorators import idempotent_id
+from tempest.lib import decorators
+
+from tungsten_tempest_plugin.tests.api.contrail import rbac_base
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
 
 
 class NetworksTest(rbac_base.BaseContrailTest):
-
-    """
-    Test class to test vm network using RBAC roles
-    """
+    """Test class to test vm network using RBAC roles"""
 
     @classmethod
     def resource_setup(cls):
@@ -71,32 +66,26 @@
         return network
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="list_virtual_networks")
-    @idempotent_id('375ebc8d-dc52-4d9c-877b-85aba35b1539')
+                                 rules=["list_virtual_networks"])
+    @decorators.idempotent_id('375ebc8d-dc52-4d9c-877b-85aba35b1539')
     def test_list_virtual_networks(self):
-        """
-        test method for list vm network objects
-        """
+        """test method for list vm network objects"""
         with self.rbac_utils.override_role(self):
             self.vn_client.list_virtual_networks()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="create_virtual_networks")
-    @idempotent_id('375ebc8d-dc52-4d9c-877b-96aba35b2530')
+                                 rules=["create_virtual_networks"])
+    @decorators.idempotent_id('375ebc8d-dc52-4d9c-877b-96aba35b2530')
     def test_create_virtual_networks(self):
-        """
-        test method for create vm network objects
-        """
+        """test method for create vm network objects"""
         with self.rbac_utils.override_role(self):
             self._create_virtual_network()
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="update_virtual_network")
-    @idempotent_id('375ebc8d-dc52-4d9c-566b-150a025c1237')
+                                 rules=["update_virtual_network"])
+    @decorators.idempotent_id('375ebc8d-dc52-4d9c-566b-150a025c1237')
     def test_update_virtual_network(self):
-        """
-        test method for update vm network objects
-        """
+        """test method for update vm network objects"""
         # Create virtual network
         uuid = self._create_virtual_network()['uuid']
         with self.rbac_utils.override_role(self):
@@ -104,23 +93,19 @@
                 uuid, router_external=False)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="delete_virtual_network")
-    @idempotent_id('375ebc8d-dc52-4d9c-877b-17bcb53c3641')
+                                 rules=["delete_virtual_network"])
+    @decorators.idempotent_id('375ebc8d-dc52-4d9c-877b-17bcb53c3641')
     def test_delete_virtual_network(self):
-        """
-        test method for delete vm network objects
-        """
+        """test method for delete vm network objects"""
         uuid = self._create_virtual_network()['uuid']
         with self.rbac_utils.override_role(self):
             self.vn_client.delete_virtual_network(uuid)
 
     @rbac_rule_validation.action(service=CONF.sdn.service_name,
-                                 rule="show_virtual_network")
-    @idempotent_id('375ebc8d-dc52-4d9c-877b-27c1a1242a81')
+                                 rules=["show_virtual_network"])
+    @decorators.idempotent_id('375ebc8d-dc52-4d9c-877b-27c1a1242a81')
     def test_show_virtual_network(self):
-        """
-        test method for show vm network objects
-        """
+        """test method for show vm network objects"""
         uuid = self._create_virtual_network()['uuid']
         with self.rbac_utils.override_role(self):
             self.vn_client.show_virtual_network(uuid)