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/test-requirements.txt b/test-requirements.txt
index 0f4012e..45d7ddf 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,5 +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>=1.1.0,<1.2.0 # Apache-2.0
 pylint
diff --git a/tox.ini b/tox.ini
index 1bf13ec..322017c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -95,7 +95,6 @@
 # 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,H404,E303,E124,H306
 builtins = _
 exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
 
diff --git a/tungsten_tempest_plugin/hacking/checks.py b/tungsten_tempest_plugin/hacking/checks.py
index 51d3cfb..3b05010 100644
--- a/tungsten_tempest_plugin/hacking/checks.py
+++ b/tungsten_tempest_plugin/hacking/checks.py
@@ -34,7 +34,7 @@
 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*@decorators\.idempotent_id\((.*)\)')
+IDEMPOTENT_ID_DECORATOR = re.compile(r'\s*@idempotent_id\((.*)\)')
 
 have_rbac_decorator = False
 
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 935a773..3d00cbd 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
@@ -22,7 +22,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -78,7 +77,6 @@
                         new_ctrl_list['uuid'])
         return new_ctrl_list
 
-    @decorators.idempotent_id('3fe225d4-0b50-476b-a809-caf3e485ddda')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_api_access_lists")
     @idempotent_id('2bfde8fd-36fe-4e69-ba59-6f2db8941e7d')
@@ -89,7 +87,6 @@
         with self.rbac_utils.override_role(self):
             self.access_control_client.list_api_access_lists()
 
-    @decorators.idempotent_id('e114fcdc-019e-4d94-8d25-30191fba4348')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_api_access_lists")
     @idempotent_id('b2b5f50c-07d8-4d79-b9a4-78187ad97353')
@@ -100,7 +97,6 @@
         with self.rbac_utils.override_role(self):
             self._create_api_access_lists()
 
-    @decorators.idempotent_id('4589f75d-b4fc-4ed5-a1ce-efe41a8ad879')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_api_access_list")
     @idempotent_id('b82e8e6b-83b5-424d-9652-ef6a34067f4f')
@@ -113,7 +109,6 @@
             self.access_control_client.show_api_access_list(
                 new_api_list['uuid'])
 
-    @decorators.idempotent_id('54f8ceb5-183e-40c8-ba38-6c7c9298cf2f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_api_access_list")
     @idempotent_id('edc88825-1e2e-47ff-b7b4-f68d6310fbad')
@@ -128,7 +123,6 @@
                 new_api_list['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('1e715cbb-1250-4b4e-97c5-b4f0f5c61d60')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_api_access_list")
     @idempotent_id('f27d9044-95f2-4733-81ed-df9340dbd421')
@@ -141,7 +135,6 @@
             self.access_control_client.delete_api_access_list(
                 new_api_list['uuid'])
 
-    @decorators.idempotent_id('e87c5239-f62a-4791-a550-ba0c7cf354f9')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_access_control_lists")
     @idempotent_id('c56a1338-a9d1-4286-8aeb-3a0d60d93037')
@@ -152,7 +145,6 @@
         with self.rbac_utils.override_role(self):
             self.access_control_client.list_access_control_lists()
 
-    @decorators.idempotent_id('c33b8b75-f03c-44e5-9986-052819134771')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_access_control_lists")
     @idempotent_id('9f225d2b-5376-42f5-97aa-cf63be47fa19')
@@ -165,7 +157,6 @@
         with self.rbac_utils.override_role(self):
             self._create_access_control_lists(sec_group['name'])
 
-    @decorators.idempotent_id('ab268b09-629c-4eec-b138-887be03c65b4')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_access_control_list")
     @idempotent_id('f0ed882b-f3de-48b7-884a-637ee0b7d6b6')
@@ -181,7 +172,6 @@
             self.access_control_client.show_access_control_list(
                 new_ctrl_list['uuid'])
 
-    @decorators.idempotent_id('2811c098-198d-4a73-a635-816f4957057f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_access_control_list")
     @idempotent_id('9a4b3133-dd07-4a1a-b282-f7770c372fb8')
@@ -198,7 +188,6 @@
                 new_ctrl_list['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('bb6a5a21-d8d1-489f-8002-e9eb07dfe873')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_access_control_list")
     @idempotent_id('36a8ace1-71ca-4c7c-8667-d8387d6f964a')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py b/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
index 79e4f63..fafe194 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
@@ -24,8 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -89,7 +87,6 @@
         }
         self.alarm_client.update_alarm(alarm_uuid, **put_body)
 
-    @decorators.idempotent_id('fdfc89f9-e919-4a81-966e-0aadaff4ce1c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_alarms")
     @idempotent_id('dc7d19dd-dd5e-4ec8-bf0c-c6d9d83a60a8')
@@ -100,7 +97,6 @@
         with self.rbac_utils.override_role(self):
             self.alarm_client.list_alarms()
 
-    @decorators.idempotent_id('0e844c89-c7a3-4667-b996-e176d5ea460e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_alarms")
     @idempotent_id('7fe55d0c-e54a-4bb7-95a6-9c53f9e9c4bf')
@@ -113,7 +109,6 @@
         with self.rbac_utils.override_role(self):
             self._create_alarm(global_system_config)
 
-    @decorators.idempotent_id('e787e656-44ad-4aa6-8644-4ab9a2f40b83')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_alarm")
     @idempotent_id('ab0ccbe4-7bfe-4176-890a-d438ee04290d')
@@ -127,7 +122,6 @@
         with self.rbac_utils.override_role(self):
             self.alarm_client.show_alarm(alarm_uuid)
 
-    @decorators.idempotent_id('c3160759-4a68-4272-90e7-a69aa0e711f6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_alarm")
     @idempotent_id('ab331cca-ee53-4106-9b30-7319bfb1bea7')
@@ -141,7 +135,6 @@
         with self.rbac_utils.override_role(self):
             self._update_alarm(alarm_uuid)
 
-    @decorators.idempotent_id('11f2d137-4ad3-4c99-b0f9-9bde637722a2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_alarm")
     @idempotent_id('84fadb14-77c0-4f21-b5b2-1da7a2fd27e6')
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 3847402..24fa642 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
@@ -22,7 +22,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -115,7 +114,6 @@
                         new_alias_ip['uuid'])
         return new_alias_ip
 
-    @decorators.idempotent_id('ad82cd15-1d18-4ee9-9f4e-8653b27ff68d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_alias_ips")
     @idempotent_id('899d6824-0755-41ef-adef-03eb1858bcb0')
@@ -126,7 +124,6 @@
         with self.rbac_utils.override_role(self):
             self.alias_ip_client.list_alias_ips()
 
-    @decorators.idempotent_id('aae9af3b-ebb8-426e-afde-59a655352dfa')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_alias_ips")
     @idempotent_id('bc9aae29-22a8-4eed-a31f-c0ded300e3a3')
@@ -138,7 +135,6 @@
         with self.rbac_utils.override_role(self):
             self._create_alias_ips(new_alias_ip_pool, '2.2.3.1')
 
-    @decorators.idempotent_id('0d7785ab-63d6-4695-b2e1-d43706f166ed')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_alias_ip")
     @idempotent_id('d20318b1-c204-44e7-a44c-66f6a1fbe7a0')
@@ -152,7 +148,6 @@
             self.alias_ip_client.show_alias_ip(
                 new_alias_ip['uuid'])
 
-    @decorators.idempotent_id('12577013-4194-439b-b598-f83aedbc4f0f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_alias_ip")
     @idempotent_id('c237b18f-d899-4b80-8e9b-068244a24612')
@@ -168,7 +163,6 @@
                 new_alias_ip['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('31ed2a1b-48e1-44d0-bf21-304d7fb4a0ac')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_alias_ip")
     @idempotent_id('456c641c-9066-4125-8dec-d1529ad8f1ba')
@@ -182,7 +176,6 @@
             self.alias_ip_client.delete_alias_ip(
                 new_alias_ip['uuid'])
 
-    @decorators.idempotent_id('a46c088a-9b3b-4a88-9df6-d0cc41d32bf4')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_alias_ip_pools")
     @idempotent_id('ffe85f35-589a-4b90-a1d3-6aed92a85954')
@@ -193,7 +186,6 @@
         with self.rbac_utils.override_role(self):
             self.alias_ip_client.list_alias_ip_pools()
 
-    @decorators.idempotent_id('5ac92620-24af-4948-bc9f-5c43f0e65e9d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_alias_ip_pools")
     @idempotent_id('83abd2c0-d46a-4337-87d0-31cdb86e4226')
@@ -204,7 +196,6 @@
         with self.rbac_utils.override_role(self):
             self._create_alias_ip_pools()
 
-    @decorators.idempotent_id('1e8f4d95-bf80-4383-bce7-e9460214264a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_alias_ip_pool")
     @idempotent_id('a1cbe111-ccba-4fa4-ba59-7d1ee08a15db')
@@ -217,7 +208,6 @@
             self.alias_ip_client.show_alias_ip_pool(
                 new_alias_ip_pool['uuid'])
 
-    @decorators.idempotent_id('ece84364-c139-42f1-b2ab-8adad9fe11a4')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_alias_ip_pool")
     @idempotent_id('7f3448d7-22f1-4808-b3eb-15eeb3f079aa')
@@ -232,7 +222,6 @@
                 new_alias_ip_pool['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('aabbbff0-e8f8-4dc9-9e77-5c3cc390cc14')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_alias_ip_pool")
     @idempotent_id('f59ea4fb-d10f-40c8-a8fa-dcd948ca89c8')
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 2824ca2..c7dfd8d 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -66,7 +65,6 @@
                         new_node['uuid'])
         return new_node
 
-    @decorators.idempotent_id('6dbda64e-f575-4bb8-8600-b8a510e4ae96')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_analytics_nodes")
     @idempotent_id('d3002e37-4b42-446d-b144-1b53f0dadfd3')
@@ -77,7 +75,6 @@
         with self.rbac_utils.override_role(self):
             self.analytics_node_client.list_analytics_nodes()
 
-    @decorators.idempotent_id('0852bb86-6a95-476d-a964-79e73b08b839')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_analytics_node")
     @idempotent_id('b51043fd-77ba-4312-b96f-569ed5153338')
@@ -91,7 +88,6 @@
         with self.rbac_utils.override_role(self):
             self.analytics_node_client.show_analytics_node(new_node['uuid'])
 
-    @decorators.idempotent_id('a1a09763-b56b-4caf-b9d5-6d95d416dfc4')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_analytics_nodes")
     @idempotent_id('c57482c9-fcb4-4f41-95b0-7f0ffeee3dc3')
@@ -104,7 +100,6 @@
         with self.rbac_utils.override_role(self):
             self._create_analytics_node(global_system_config)
 
-    @decorators.idempotent_id('67437d99-c5b1-4d42-8a91-251c4055d4c1')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_analytics_node")
     @idempotent_id('ff50a2df-6283-409e-ab03-c13b63acc8a0')
@@ -120,7 +115,6 @@
             self.analytics_node_client.update_analytics_node(
                 new_node['uuid'], display_name=update_name)
 
-    @decorators.idempotent_id('7d62d6cc-dcd9-49e0-85e6-6115e8228ac0')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_analytics_node")
     @idempotent_id('972f997a-c89f-4227-8ae9-5a2335ec0b0a')
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 d9a924a..e61d5e8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
@@ -23,7 +23,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -62,7 +61,6 @@
                         new_customer['uuid'])
         return new_customer
 
-    @decorators.idempotent_id('67cdef12-9f9d-43ab-a9c1-332295e09036')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_provider_attachments")
     @idempotent_id('961dbf54-ae4f-42e8-9d27-69fa7df39013')
@@ -73,7 +71,6 @@
         with self.rbac_utils.override_role(self):
             self.attachments_client.list_provider_attachments()
 
-    @decorators.idempotent_id('821222e5-eea5-4980-8495-30ba3c7bdcf8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_provider_attachments")
     @idempotent_id('73ad032e-3e81-4dcc-be55-1987484207cd')
@@ -84,7 +81,6 @@
         with self.rbac_utils.override_role(self):
             self._create_provider_attachments()
 
-    @decorators.idempotent_id('e47d427d-c77a-49e5-9cb2-c0cc7b616d6a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_provider_attachment")
     @idempotent_id('7b5278bc-dd79-495a-9f74-448c04f52bd2')
@@ -97,7 +93,6 @@
             self.attachments_client.show_provider_attachment(
                 new_provider['uuid'])
 
-    @decorators.idempotent_id('d2d4aad4-08f8-4781-aec9-ede9aea6312a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_provider_attachment")
     @idempotent_id('3516ff99-eddf-4932-afa4-433a43a0e5ac')
@@ -112,7 +107,6 @@
                 new_provider['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('65b5f6ca-9eaa-451d-b20a-a0f7fbbd1622')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_provider_attachment")
     @idempotent_id('234d5505-2abf-418b-b43b-ea6f5a724fd3')
@@ -125,7 +119,6 @@
             self.attachments_client.delete_provider_attachment(
                 new_provider['uuid'])
 
-    @decorators.idempotent_id('26f459c0-942c-4152-b0eb-16cfec2ee764')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_customer_attachments")
     @idempotent_id('3eca8fd8-ec3c-4a0e-8f62-b15d28796b7f')
@@ -136,7 +129,6 @@
         with self.rbac_utils.override_role(self):
             self.attachments_client.list_customer_attachments()
 
-    @decorators.idempotent_id('67faa58a-fc42-4ba8-b67e-39213f9a372f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_customer_attachments")
     @idempotent_id('53f93053-554c-4202-b763-0230d9a0553a')
@@ -147,7 +139,6 @@
         with self.rbac_utils.override_role(self):
             self._create_customer_attachments()
 
-    @decorators.idempotent_id('b8badd01-5197-4b3e-93ed-b68c19eb890e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_customer_attachment")
     @idempotent_id('c6671540-695c-4cba-bcee-4a5d1cddd412')
@@ -160,7 +151,6 @@
             self.attachments_client.show_customer_attachment(
                 new_customer['uuid'])
 
-    @decorators.idempotent_id('6d6aeb09-9589-4ec4-811e-66cf1920bde5')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_customer_attachment")
     @idempotent_id('50419cca-dd03-4d02-9c06-88446647fcba')
@@ -175,7 +165,6 @@
                 new_customer['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('5126eff2-e9e8-424f-b842-f923c704e069')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_customer_attachment")
     @idempotent_id('5385c275-8e86-4739-9cb6-d1e0ed522807')
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 87bcc40..c503bb1 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
@@ -22,7 +22,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -46,7 +45,6 @@
                         new_bgp['uuid'])
         return new_bgp
 
-    @decorators.idempotent_id('3bb7313a-c925-4254-9716-5e37d8afa074')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_bgp_as_a_services")
     @idempotent_id('d3153cd0-379e-4e62-9780-ef237e567fc5')
@@ -57,7 +55,6 @@
         with self.rbac_utils.override_role(self):
             self.bgp_as_a_service_client.list_bgp_as_a_services()
 
-    @decorators.idempotent_id('1bcd51bd-1558-49ce-ba71-acb5df1e593a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_bgp_as_a_services")
     @idempotent_id('a039f0c4-b53a-492b-a5c5-fbdf046afcf4')
@@ -68,7 +65,6 @@
         with self.rbac_utils.override_role(self):
             self._create_bgp_as_a_services()
 
-    @decorators.idempotent_id('36cc0159-7754-4cdf-b996-6c48bbb3c89c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_bgp_as_a_service")
     @idempotent_id('c2fae8b4-929c-4d2f-914d-76a7414a56dc')
@@ -81,7 +77,6 @@
             self.bgp_as_a_service_client.show_bgp_as_a_service(
                 new_bgp['uuid'])
 
-    @decorators.idempotent_id('9d7d365b-4036-472b-8e46-6de4c0fac770')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_bgp_as_a_service")
     @idempotent_id('78c8389a-7bb5-4027-bae1-923af3d6e77c')
@@ -94,7 +89,6 @@
             self.bgp_as_a_service_client.delete_bgp_as_a_service(
                 new_bgp['uuid'])
 
-    @decorators.idempotent_id('5df56265-22be-4303-a5ce-246fc20a969f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_bgp_as_a_service")
     @idempotent_id('38ba2ecb-71e2-4a2f-be43-e82491dffa05')
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 ee9f0b7..5012953 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
@@ -26,7 +26,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -60,7 +59,6 @@
                             config_node_id)
         return config_node
 
-    @decorators.idempotent_id('fc18b48d-33f0-4262-b9e6-25be8ed0a1c8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_config_nodes")
     @idempotent_id('b560e060-e4f0-45b0-93e2-55f0cb201e06')
@@ -71,7 +69,6 @@
         with self.rbac_utils.override_role(self):
             self.config_client.list_config_nodes()
 
-    @decorators.idempotent_id('b1cf9b76-2014-4e1c-a4de-3279935f1804')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_config_nodes")
     @idempotent_id('a8d20d0d-dc5a-4cae-87c5-7f6914c3701e')
@@ -82,7 +79,6 @@
         with self.rbac_utils.override_role(self):
             self._create_config_node()
 
-    @decorators.idempotent_id('5cb27969-7cd3-4797-8379-f92e83c589b7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_config_node")
     @idempotent_id('16573a85-57ab-418c-bb23-5dd936e7be90')
@@ -96,7 +92,6 @@
             self.config_client.delete_config_node(
                 config_node_uuid)
 
-    @decorators.idempotent_id('1b21427f-4869-44a3-b617-0a272ca1268b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_config_node")
     @idempotent_id('a5b17108-4fa3-4d09-b861-e2857aab8f80')
@@ -109,7 +104,6 @@
         with self.rbac_utils.override_role(self):
             self.config_client.show_config_node(config_node_uuid)
 
-    @decorators.idempotent_id('e3fce15b-4a56-4bff-b4c9-484e375cf9b0')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_config_node")
     @idempotent_id('8f70d2c0-594b-4a94-ab15-88bd8a2e62e5')
@@ -143,7 +137,6 @@
                             config_root_uuid)
         return config_root
 
-    @decorators.idempotent_id('f4f12780-0f1e-4609-ac9a-f8f165f4c6ce')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_config_roots")
     @idempotent_id('291b28ea-d0d8-47cd-ac76-1f980047cb76')
@@ -154,7 +147,6 @@
         with self.rbac_utils.override_role(self):
             self._create_config_root()
 
-    @decorators.idempotent_id('969dc640-7ae4-4ee2-adb0-d1be8a12591a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_config_root")
     @idempotent_id('bd04c0fb-3deb-4904-ad2c-1a10933c30dd')
@@ -168,7 +160,6 @@
             self.config_client.delete_config_root(
                 config_root_uuid)
 
-    @decorators.idempotent_id('457d314c-5a79-428f-bea9-c280cfa56d4a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_config_root")
     @idempotent_id('fba2c419-9a83-4d88-9a26-84770544bb3f')
@@ -181,7 +172,6 @@
         with self.rbac_utils.override_role(self):
             self.config_client.show_config_root(config_root_uuid)
 
-    @decorators.idempotent_id('6b362490-4475-4530-bdde-e46364b99838')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_config_root")
     @idempotent_id('bfcc074f-5e1c-4b45-8a2a-857239f8acb0')
@@ -196,7 +186,6 @@
             self.config_client.update_config_root(
                 config_root_uuid, display_name=updated_name)
 
-    @decorators.idempotent_id('4234d8dd-5bbf-4d3d-8e2f-0c2a1a3f0e03')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_config_roots")
     @idempotent_id('316e7425-8fb0-41b4-9080-a76697abbafa')
@@ -229,7 +218,6 @@
                         new_config['uuid'])
         return new_config
 
-    @decorators.idempotent_id('774a814a-973e-44b6-8653-ceff86c90a45')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_global_system_configs")
     @idempotent_id('d1d189a7-14c1-49c5-b180-cd42ed2ca123')
@@ -240,7 +228,6 @@
         with self.rbac_utils.override_role(self):
             self.config_client.list_global_system_configs()
 
-    @decorators.idempotent_id('177b82c4-7884-4a27-a134-4b45fb3cf237')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_global_system_configs")
     @idempotent_id('e0ba6a20-3e28-47ac-bf95-9a848fcee49a')
@@ -251,7 +238,6 @@
         with self.rbac_utils.override_role(self):
             self._create_global_system_config()
 
-    @decorators.idempotent_id('ff9637ca-e4e8-4381-a62e-b799716ec845')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_global_system_config")
     @idempotent_id('4b9f9131-cb34-4b7d-9d06-c6aca85cce3a')
@@ -264,7 +250,6 @@
             self.config_client.show_global_system_config(
                 new_config['uuid'])
 
-    @decorators.idempotent_id('cec2ca37-ff71-4311-a8aa-6459b46dba7c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_global_system_config")
     @idempotent_id('4f90dc83-da59-45a4-8ab6-b387bd6c2df4')
@@ -279,7 +264,6 @@
                 new_config['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('3019ef0e-601c-4c7b-b709-a634a6ad0702')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_global_system_config")
     @idempotent_id('fce1653c-e657-4a1e-8ced-7e02d297d6c9')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_database.py b/tungsten_tempest_plugin/tests/api/contrail/test_database.py
index e5469e5..9586bcc 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_database.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_database.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -72,7 +71,6 @@
                         db_node['uuid'])
         return db_node
 
-    @decorators.idempotent_id('fbf74117-4fdb-4b95-9469-a71b708afd47')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_database_nodes")
     @idempotent_id('5ae6f965-6161-443f-b19e-dfa7b364c533')
@@ -86,7 +84,6 @@
         with self.rbac_utils.override_role(self):
             self.db_client.list_database_nodes()
 
-    @decorators.idempotent_id('6749a9db-54ff-448d-a590-5050a4db7946')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_database_node")
     @idempotent_id('4a07d9a8-7b99-43bd-b628-06c023993aab')
@@ -101,7 +98,6 @@
         with self.rbac_utils.override_role(self):
             self.db_client.show_database_node(db_node_id)
 
-    @decorators.idempotent_id('672bb09f-e31b-4492-9858-a190d701949f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_database_nodes")
     @idempotent_id('b9aa9c6b-9381-44f0-94fb-e4523bf2a87e')
@@ -114,7 +110,6 @@
         with self.rbac_utils.override_role(self):
             self._create_database_node(global_system_config)
 
-    @decorators.idempotent_id('f959251d-e925-4f98-a297-3bcde77fbf0d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_database_node")
     @idempotent_id('6e59f393-0e55-4327-871e-7f0ad53f2e17')
@@ -132,7 +127,6 @@
                 db_node_id=db_node_id,
                 display_name=display_name)
 
-    @decorators.idempotent_id('d6981e37-3b04-4883-8411-12fc69d2aa98')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_database_node")
     @idempotent_id('0cbc5a52-d7e7-4a1c-a85d-6bf44012d99b')
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 e578c1d..ddc0eea 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
@@ -22,7 +22,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -45,7 +44,6 @@
                         new_dsa['uuid'])
         return new_dsa
 
-    @decorators.idempotent_id('2a97b185-3c1a-4fe8-b073-9f8f9018c540')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_discovery_service_assignments")
     @idempotent_id('9ac1e4ca-8983-403f-b644-7758935f2f36')
@@ -56,7 +54,6 @@
         with self.rbac_utils.override_role(self):
             self.dsa_client.list_ds_assignments()
 
-    @decorators.idempotent_id('f6c90c82-6731-4580-af3b-aaeb6f8cc2b7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_discovery_service_assignments")
     @idempotent_id('40ad1208-a039-4809-8516-41b4dfcbd00c')
@@ -67,7 +64,6 @@
         with self.rbac_utils.override_role(self):
             self._create_discovery_service_assignments()
 
-    @decorators.idempotent_id('0612ad3e-40a6-41bd-a2be-64e5f4d134a7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_discovery_service_assignment")
     @idempotent_id('63660fe9-22b8-456c-a757-a7da1abfbce8')
@@ -79,7 +75,6 @@
         with self.rbac_utils.override_role(self):
             self.dsa_client.show_ds_assignment(new_dsa['uuid'])
 
-    @decorators.idempotent_id('3b9193ad-fe66-4b16-8398-539da153aa72')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_discovery_service_assignment")
     @idempotent_id('71ce1404-965b-4670-abb7-5b6fea3b24b7')
@@ -95,7 +90,6 @@
                 fq_name=new_dsa['fq_name'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('ecd4b3f7-21bf-4222-bb29-6c8202ba953f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_discovery_service_assignment")
     @idempotent_id('e7ff845d-2140-4eb0-9720-26370459723b')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_domain.py b/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
index 452734a..7e0e420 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -57,7 +56,6 @@
         }
         self.domain_client.update_domain(domain_uuid, **put_body)
 
-    @decorators.idempotent_id('d9db33f3-b326-47d9-972e-9f6ca33d94cb')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_domains")
     @idempotent_id('fa02e27b-f661-4186-a522-69e8fcb6abf9')
@@ -68,7 +66,6 @@
         with self.rbac_utils.override_role(self):
             self.domain_client.list_domains()
 
-    @decorators.idempotent_id('32a12708-7209-4d8a-8096-96867acff917')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_domains")
     @idempotent_id('3f18be91-c37b-4e17-bf5e-b704d993f738')
@@ -79,7 +76,6 @@
         with self.rbac_utils.override_role(self):
             self._create_domains()
 
-    @decorators.idempotent_id('8eb9d91b-21b0-443c-af70-88dda1c21c03')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_domain")
     @idempotent_id('e79f8581-ba9f-420a-aa26-f1cb51cf4bbf')
@@ -91,7 +87,6 @@
         with self.rbac_utils.override_role(self):
             self.domain_client.show_domain(domain_uuid)
 
-    @decorators.idempotent_id('7f0f1fac-2685-4405-9c83-6dee210dfab0')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_domain")
     @idempotent_id('fdf72539-20b5-4bdb-b22b-70c86fbb52a4')
@@ -103,7 +98,6 @@
         with self.rbac_utils.override_role(self):
             self._update_domain(domain_uuid)
 
-    @decorators.idempotent_id('2439c2fa-5102-4e63-9c4d-834743643fd6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_domain")
     @idempotent_id('abaad2b0-6bde-40b8-b257-20ca805c1dca')
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 4df9e9a..11f2485 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -61,7 +60,6 @@
                         new_rule['uuid'])
         return new_rule
 
-    @decorators.idempotent_id('e17800a7-1d1c-461d-a616-cdab43bcca5d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_dsa_rules")
     @idempotent_id('3227673b-96fc-4d26-ab0b-109347e9e9c2')
@@ -72,7 +70,6 @@
         with self.rbac_utils.override_role(self):
             self.dsa_rule_client.list_dsa_rules()
 
-    @decorators.idempotent_id('9350f6d8-71c5-4989-a58b-98fdfb4d4a73')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_dsa_rule")
     @idempotent_id('0f90ea4f-c050-4c31-93a7-1e0c58df914e')
@@ -87,7 +84,6 @@
         with self.rbac_utils.override_role(self):
             self.dsa_rule_client.show_dsa_rule(new_rule['uuid'])
 
-    @decorators.idempotent_id('f8bc91ba-a47a-45b0-8cdd-f770fe914974')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_dsa_rules")
     @idempotent_id('c3774ca3-45d0-4ca8-a6b3-f895441b1d0e')
@@ -101,7 +97,6 @@
         with self.rbac_utils.override_role(self):
             self._create_dsa_rules(discovery_service_assignment)
 
-    @decorators.idempotent_id('c6c60729-d515-4eca-b44e-f80021de0120')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_dsa_rule")
     @idempotent_id('5cfe7e8e-d91c-4183-8e6c-733e826707be')
@@ -118,7 +113,6 @@
             self.dsa_rule_client.update_dsa_rule(
                 new_rule['uuid'], display_name=update_name)
 
-    @decorators.idempotent_id('d966d142-4f0d-49c1-93f9-d19f2d298d0d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_dsa_rule")
     @idempotent_id('d3b869db-fa49-48f0-861a-08efd9879b15')
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 f523882..9427f77 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -114,7 +113,6 @@
 
         return fip_pool
 
-    @decorators.idempotent_id('ec00f8f2-e86c-414d-ae11-9c0daedf2993')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_floating_ip_pools")
     @idempotent_id('a83ca5e8-be4b-4161-869c-f981a724cf82')
@@ -125,7 +123,6 @@
         with self.rbac_utils.override_role(self):
             self._create_floating_ip_pool()
 
-    @decorators.idempotent_id('56dede50-6f7e-4469-ab76-e875d26500c2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_floating_ip_pools")
     @idempotent_id('9d20e78d-0463-4a0e-b30c-40770bee35bc')
@@ -137,7 +134,6 @@
         with self.rbac_utils.override_role(self):
             self.fip_client.list_floating_ip_pools()
 
-    @decorators.idempotent_id('a6dbcfc8-3b02-42f0-9854-4dfc7d1d254b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_floating_ip_pool")
     @idempotent_id('1ec3124c-c15c-4ee6-b2de-2feed9599e38')
@@ -149,7 +145,6 @@
         with self.rbac_utils.override_role(self):
             self.fip_client.show_floating_ip_pool(uuid)
 
-    @decorators.idempotent_id('b60a411d-2b9a-4a72-a1fb-f1157fff6f8d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_floating_ip_pool")
     @idempotent_id('6563f2e7-ae6b-483b-8c07-0111efc86817')
@@ -163,7 +158,6 @@
                 uuid,
                 display_name='rbac-fip-pool-new-name')
 
-    @decorators.idempotent_id('9ed5a91c-afb5-45df-a0f0-526356891386')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_floating_ip_pool")
     @idempotent_id('c4b449ae-2f12-49cf-9dec-2b21c143aff6')
@@ -215,7 +209,6 @@
                         fip['uuid'])
         return fip
 
-    @decorators.idempotent_id('b342f573-20a4-4ac7-9642-b0fbf0a56bd9')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_floating_ips")
     @idempotent_id('ff05f70f-9db9-43cb-a5ce-38cbbef2c430')
@@ -226,7 +219,6 @@
         with self.rbac_utils.override_role(self):
             self._create_floating_ip()
 
-    @decorators.idempotent_id('4c64ee6a-9183-43ac-88d5-0b8200e49f90')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_floating_ips")
     @idempotent_id('e56046f9-32f9-41ce-9c1b-b982997ac347')
@@ -238,7 +230,6 @@
         with self.rbac_utils.override_role(self):
             self.fip_client.list_floating_ips()
 
-    @decorators.idempotent_id('724b1bdd-aabf-4780-93f4-cb4a90fa59fa')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_floating_ip")
     @idempotent_id('293f2c26-4101-4a2f-86d4-feb2878bd511')
@@ -250,7 +241,6 @@
         with self.rbac_utils.override_role(self):
             self.fip_client.show_floating_ip(uuid)
 
-    @decorators.idempotent_id('19224c90-7339-4382-b4e9-8f4dc013598f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_floating_ip")
     @idempotent_id('a09283c9-73d3-42f7-876d-f33040686d6d')
@@ -264,7 +254,6 @@
                 uuid,
                 display_name='rbac-fip-new-name')
 
-    @decorators.idempotent_id('13d7e846-2080-4de4-a3ca-90ae25af6e9d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_floating_ip")
     @idempotent_id('a26f162f-da56-4153-aed6-bffccba92bc7')
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 ed0f00d..4dad685 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -86,7 +85,6 @@
                         new_fclass['uuid'])
         return new_fclass
 
-    @decorators.idempotent_id('88d84616-ce8d-46df-915f-90b560f88a4a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_forwarding_classs")
     @idempotent_id('807a66fd-d4a4-472c-a13d-7ba590509e6e')
@@ -97,7 +95,6 @@
         with self.rbac_utils.override_role(self):
             self.forwarding_class_client.list_forwarding_classs()
 
-    @decorators.idempotent_id('73b015a3-e57b-4c48-9f05-8c2453f06092')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_forwarding_class")
     @idempotent_id('8ef21f71-72a4-4de9-af93-6e759aa463c0')
@@ -116,7 +113,6 @@
             self.forwarding_class_client.show_forwarding_class(
                 new_fclass['uuid'])
 
-    @decorators.idempotent_id('8b1b3121-1f98-463c-8d39-7b750ef64254')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_forwarding_classs")
     @idempotent_id('d098859c-ad36-4385-8fb0-c00934a99b6f')
@@ -133,7 +129,6 @@
             self._create_forwarding_class(global_system_config,
                                           global_qos_config)
 
-    @decorators.idempotent_id('9c6d7400-d5dd-42b2-8e85-b056fd9f7596')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_forwarding_class")
     @idempotent_id('589dc03d-a25d-48be-9d9c-d3f92ff2cfc6')
@@ -153,7 +148,6 @@
             self.forwarding_class_client.update_forwarding_class(
                 new_fclass['uuid'], display_name=update_name)
 
-    @decorators.idempotent_id('c5349bc1-4d7a-44e4-8248-754a38865b19')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_forwarding_class")
     @idempotent_id('a0348ffc-68c5-4d94-ba03-d08483503ced')
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 d550837..d1fbabf 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -55,7 +54,6 @@
                                  cls.network['uuid'])
         super(FqnameIdTest, cls).resource_cleanup()
 
-    @decorators.idempotent_id('c3864ec4-f6c6-43ac-9fe5-e22f7afaf427')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="fqname_to_id")
     @idempotent_id('1fc1350b-3146-49bc-9af5-a61a98b55541')
@@ -67,7 +65,6 @@
             self.fq_client.fqname_to_id(fq_name=self.network['fq_name'],
                                         type=self.type)
 
-    @decorators.idempotent_id('408c13ea-852c-4349-a683-c44fe1ba4192')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="id_to_fqname")
     @idempotent_id('ecdd77d7-8508-4639-86cd-b97907b363ff')
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 9736c3f..5732cd2 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -106,7 +105,6 @@
                         iip['uuid'])
         return iip
 
-    @decorators.idempotent_id('14194425-cc47-4c30-8743-bfa5f2dcde82')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_instance_ips")
     @idempotent_id('31db3b3f-c40b-4f7f-bb8b-0a110f099553')
@@ -118,7 +116,6 @@
         with self.rbac_utils.override_role(self):
             self.iip_client.list_instance_ips()
 
-    @decorators.idempotent_id('8b902827-ba95-438e-9787-9a63fe5cb38b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_instance_ips")
     @idempotent_id('78f5cd4d-345d-4d87-8b8b-4d5d3fec4a12')
@@ -129,7 +126,6 @@
         with self.rbac_utils.override_role(self):
             self._create_instance_ip()
 
-    @decorators.idempotent_id('43d12039-e5b2-4214-9036-d6f1d02bfc94')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_instance_ip")
     @idempotent_id('276f3838-d9cb-4432-bbb4-db31c4c1db5c')
@@ -141,7 +137,6 @@
         with self.rbac_utils.override_role(self):
             self.iip_client.show_instance_ip(uuid)
 
-    @decorators.idempotent_id('f10caa56-f4a1-4680-bc27-ee549bedf8ba')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_instance_ip")
     @idempotent_id('b85975a5-176f-44b1-a615-b6f0a39a7708')
@@ -155,7 +150,6 @@
                 uuid,
                 display_name='rbac-iip-new-name')
 
-    @decorators.idempotent_id('19d96037-2ba0-44cd-8fa8-b3168672db66')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_instance_ip")
     @idempotent_id('d9c1d400-1dfb-4adb-8d97-0e8b498226b7')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py b/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
index 06bfe66..80ffdf1 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -94,7 +93,6 @@
                         logical_if['uuid'])
         return logical_if
 
-    @decorators.idempotent_id('d18774ca-34aa-4bde-b080-924be0e0ce20')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_physical_interfaces")
     @idempotent_id('c496a2b4-51b2-4674-a60e-483a315baccb')
@@ -105,7 +103,6 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.list_physical_interfaces()
 
-    @decorators.idempotent_id('f0f1ce4c-88b0-4508-badd-d01b8568f243')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_physical_interfaces")
     @idempotent_id('066f53d8-3d2a-4ad6-983f-243de7c12962')
@@ -118,7 +115,6 @@
         with self.rbac_utils.override_role(self):
             self._create_physical_interface()
 
-    @decorators.idempotent_id('b86ab6be-5fe4-436d-9047-1315945d61cf')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_physical_interface")
     @idempotent_id('91c4fc90-ed0f-42ec-87c6-ff6c2a9ab8de')
@@ -139,7 +135,6 @@
             self.interface_client.update_physical_interface(
                 uuid, **body)
 
-    @decorators.idempotent_id('18459fe9-0244-4dc8-8b0d-21be7a1229b6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_physical_interface")
     @idempotent_id('5d77ea76-be8c-49cc-8f08-72fbdaf9028f')
@@ -153,7 +148,6 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.delete_physical_interface(uuid)
 
-    @decorators.idempotent_id('4785625c-7380-4bea-8a9c-51ee89ee31e3')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_physical_interface")
     @idempotent_id('2c75c7e7-ef34-4e24-9c2f-5a2182db33a6')
@@ -166,7 +160,6 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.show_physical_interface(uuid)
 
-    @decorators.idempotent_id('fd503921-6048-454d-9b7c-9f91e39181b6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_logical_interfaces")
     @idempotent_id('43ac3727-4a43-42d7-b52f-df75018915b9')
@@ -177,7 +170,6 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.list_logical_interfaces()
 
-    @decorators.idempotent_id('2710832a-7524-4540-9b8c-c8922fd829f9')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_logical_interfaces")
     @idempotent_id('503facf2-0752-47e4-a0a4-7a3103133a61')
@@ -190,7 +182,6 @@
         with self.rbac_utils.override_role(self):
             self._create_logical_interface()
 
-    @decorators.idempotent_id('14e04feb-c685-446f-ab18-837326e4b564')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_logical_interface")
     @idempotent_id('63c991f4-6aba-454c-9c49-522dc77b3f5c')
@@ -212,7 +203,6 @@
             self.interface_client.update_logical_interface(
                 uuid, **body)
 
-    @decorators.idempotent_id('4630b04c-2516-4d66-8572-897eefa699cb')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_logical_interface")
     @idempotent_id('a36743d1-3ea1-4cf5-89d8-9c0b885fa625')
@@ -226,7 +216,6 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.delete_logical_interface(uuid)
 
-    @decorators.idempotent_id('fe0dc372-3673-472e-a283-eba1b6c0b0b2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_logical_interface")
     @idempotent_id('f0f7fab7-eeb9-4d29-8415-31a50180fb44')
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 de9699d..a739b86 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -173,7 +172,6 @@
     Test class to test load balancer objects using RBAC roles
     """
 
-    @decorators.idempotent_id('37276fa2-e26f-46ef-942a-17593912dd5a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_load_balancers")
     @idempotent_id('5d840b6b-3974-4945-916f-dd53ba27e42f')
@@ -184,7 +182,6 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancers()
 
-    @decorators.idempotent_id('768be46d-7ac4-4fc1-9238-0f89a6c5695d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_load_balancers")
     @idempotent_id('6a18d506-0794-4eb9-a945-165bf146005d')
@@ -195,7 +192,6 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer()
 
-    @decorators.idempotent_id('60c072f5-f281-417c-a4bb-49511f68c41c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_load_balancer")
     @idempotent_id('428012aa-cd0e-4702-89d2-459046d4bd5f')
@@ -207,7 +203,6 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer(lb_uuid)
 
-    @decorators.idempotent_id('a083240b-3859-457b-8493-2923ea43db17')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_load_balancer")
     @idempotent_id('7cd3d7b2-b149-40c1-a801-a6a8a660bd24')
@@ -219,7 +214,6 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer(lb_uuid)
 
-    @decorators.idempotent_id('414c845f-1496-46eb-b3ac-ce78105bc0e7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_load_balancer")
     @idempotent_id('b28c6b11-d1b0-45d0-8942-638b6b590702')
@@ -238,7 +232,6 @@
     Test class to test load balancer Health Monitor objects using RBAC roles
     """
 
-    @decorators.idempotent_id('087a7e04-dc89-4221-8c4a-bda7dd497896')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_load_balancer_health_monitors")
     @idempotent_id('3e3d8bdc-3621-4c5e-8130-1187f445a4e6')
@@ -249,7 +242,6 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_lb_healthmonitors()
 
-    @decorators.idempotent_id('52dc7c8c-111e-485d-b5bc-c4dc92ec8d70')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_load_balancer_health_monitors")
     @idempotent_id('bddb93ad-d331-4bbc-bac6-2763cae4eb2c')
@@ -260,7 +252,6 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_health_monitor()
 
-    @decorators.idempotent_id('cc7089b3-5182-428f-a5c1-300707004358')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_load_balancer_health_monitor")
     @idempotent_id('30d23994-1e3a-4a76-8f18-e00d0854412a')
@@ -273,7 +264,6 @@
             self.load_balancer_client.show_lb_healthmonitor(
                 lb_hm_uuid)
 
-    @decorators.idempotent_id('33a3f664-87aa-45f4-b9ee-44d9adfa2f14')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_load_balancer_health_monitor")
     @idempotent_id('c32ba92c-3a69-4255-867a-1423c93faa6f')
@@ -285,7 +275,6 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_health_monitor(lb_hm_uuid)
 
-    @decorators.idempotent_id('76bfe080-ed9f-44a7-ba76-37ce99db08aa')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_load_balancer_health_monitor")
     @idempotent_id('b4d7ea9d-fd8c-433b-96fc-c24866b3f6a7')
@@ -305,7 +294,6 @@
     Base class to test load balancer Listener objects using RBAC roles
     """
 
-    @decorators.idempotent_id('672d244d-a415-4186-abef-8069e1fe1780')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_load_balancer_listeners")
     @idempotent_id('7e02882f-0eab-41c2-b48a-bf71e083b912')
@@ -316,7 +304,6 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_listeners()
 
-    @decorators.idempotent_id('d6159b8e-63e4-4fd1-a08e-37b7938e2ae3')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_load_balancer_listeners")
     @idempotent_id('0551de87-fa4c-463f-8968-ec6f2a6098d0')
@@ -327,7 +314,6 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_listener()
 
-    @decorators.idempotent_id('fd4e0452-87b7-4623-a584-c85d7d5019d8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_load_balancer_listener")
     @idempotent_id('ade38959-9506-4262-8d3c-5ba5eb63d85f')
@@ -340,7 +326,6 @@
             self.load_balancer_client.show_load_balancer_listener(
                 lb_listener_uuid)
 
-    @decorators.idempotent_id('4f114d13-0f9e-4bca-8701-bc79a3b51e02')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_load_balancer_listener")
     @idempotent_id('e529e538-da31-4159-91c2-6c0a828282a4')
@@ -352,7 +337,6 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_listener(lb_listener_uuid)
 
-    @decorators.idempotent_id('1e580b6c-dc7c-4d00-ad28-faa6bcd7e01e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_load_balancer_listener")
     @idempotent_id('feaf3e9a-ffd1-4327-ad7a-35f9e9e4989b')
@@ -372,7 +356,6 @@
     Base class to test load balancer Pool objects using RBAC roles
     """
 
-    @decorators.idempotent_id('241c5a1a-b77e-4aba-920d-f42ed5757148')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_load_balancer_pools")
     @idempotent_id('3d177a9e-7067-4e9e-b4e8-0acc5887dff0')
@@ -383,7 +366,6 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_pools()
 
-    @decorators.idempotent_id('6800c907-a27e-4b27-9533-a5a1a68df8eb')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_load_balancer_pools")
     @idempotent_id('a52c6ec7-a996-4191-9a70-7879a211a711')
@@ -394,7 +376,6 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_pool()
 
-    @decorators.idempotent_id('2cfbc6ce-53ed-418f-8219-6f239fcf543e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_load_balancer_pool")
     @idempotent_id('7923da4e-53b1-4024-9a40-5bc91cee8e2d')
@@ -406,7 +387,6 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer_pool(lb_pool_uuid)
 
-    @decorators.idempotent_id('bf6ab193-5479-40d6-972c-188c901a62b5')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_load_balancer_pool")
     @idempotent_id('391c0c5e-c218-4c98-9b58-6d2724ec4c20')
@@ -418,7 +398,6 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_pool(lb_pool_uuid)
 
-    @decorators.idempotent_id('79182a4e-7ea8-46b4-ae12-351ddd10998d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_load_balancer_pool")
     @idempotent_id('8b3617c0-4064-48f8-96b8-e2f996fce5c3')
@@ -437,7 +416,6 @@
     Base class to test load balancer Member using RBAC roles
     """
 
-    @decorators.idempotent_id('759ae73b-5c2d-474e-87f6-8de2a21b890e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_load_balancer_members")
     @idempotent_id('b3c51463-8166-486a-a26e-0f7aeaa41e0f')
@@ -448,7 +426,6 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_members()
 
-    @decorators.idempotent_id('ae17a662-bb09-4c6e-8b80-9f0cc94507c6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_load_balancer_members")
     @idempotent_id('ad60688f-7a20-4dd5-8229-4076d85b9d55')
@@ -459,7 +436,6 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_member()
 
-    @decorators.idempotent_id('2992004c-a8f5-4f3d-a160-614ab46f3982')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_load_balancer_member")
     @idempotent_id('917602ff-24d5-4a07-a6a6-5e5b9539bbf1')
@@ -471,7 +447,6 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer_member(lb_member_uuid)
 
-    @decorators.idempotent_id('a04a8d05-1a4d-4cdb-a319-5c7a96a599f7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_load_balancer_member")
     @idempotent_id('b1611005-5c77-4ac0-8fcc-4a035dfbaa84')
@@ -483,7 +458,6 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_member(lb_member_uuid)
 
-    @decorators.idempotent_id('a61faa9a-4c5c-4d3b-8324-b6c1ce481bd8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_load_balancer_member")
     @idempotent_id('dc21883a-a822-4d39-b815-4dfd6b505b0b')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py b/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
index 910de07..9a547dc 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
@@ -25,7 +25,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -58,7 +57,6 @@
         }
         self.namespace_client.update_namespace(namespace_uuid, **put_body)
 
-    @decorators.idempotent_id('e4bd5d1e-0a97-4001-aba2-9142c1a8f164')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_namespaces")
     @idempotent_id('e436390d-d669-4047-9838-421ea93e94be')
@@ -69,7 +67,7 @@
         with self.rbac_utils.override_role(self):
             self.namespace_client.list_namespaces()
 
-    @decorators.idempotent_id('f16c8781-850c-4f36-b317-cb19c2c47627')
+
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_namespaces")
     @idempotent_id('503ae445-7e67-4db6-989a-af0b7f9a7e95')
@@ -80,7 +78,6 @@
         with self.rbac_utils.override_role(self):
             self._create_namespace()
 
-    @decorators.idempotent_id('fba2066e-0d2b-4ecd-98c6-8dd8afa765af')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_namespace")
     @idempotent_id('f916971a-7c07-4386-b887-8b78d8a1e528')
@@ -92,7 +89,6 @@
         with self.rbac_utils.override_role(self):
             self.namespace_client.show_namespace(namespace_uuid)
 
-    @decorators.idempotent_id('ffc17714-e0c2-4f4f-b1e1-330f5d5ada30')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_namespace")
     @idempotent_id('3649f65a-922a-4b8a-9b8b-520c333e192e')
@@ -104,7 +100,6 @@
         with self.rbac_utils.override_role(self):
             self._update_namespace(namespace_uuid)
 
-    @decorators.idempotent_id('c5230a1b-ea22-43b3-ab6c-51227aec2e53')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_namespace")
     @idempotent_id('80e736bf-fc7d-4274-8173-a50c883776a9')
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 6ee68e5..7377863 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
@@ -22,7 +22,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -46,7 +45,6 @@
                         new_ipam['uuid'])
         return new_ipam
 
-    @decorators.idempotent_id('53a9505e-6201-48c3-b457-762d360977fd')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_network_ipams")
     @idempotent_id('9ee2c4d8-3209-4ef8-86e1-0ecea2d4c5f2')
@@ -57,7 +55,6 @@
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.list_network_ipams()
 
-    @decorators.idempotent_id('05790aae-b95e-4e19-9c40-daee94ce869c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_network_ipams")
     @idempotent_id('ef2415ea-0810-413a-85a0-4508c9d7af91')
@@ -68,7 +65,6 @@
         with self.rbac_utils.override_role(self):
             self._create_network_ipams()
 
-    @decorators.idempotent_id('b91ad50e-98c1-4103-9532-54128cacd0a3')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_network_ipam")
     @idempotent_id('527b19e5-068a-44e3-b175-b504eafeec6e')
@@ -80,7 +76,6 @@
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.show_network_ipam(new_ipam['uuid'])
 
-    @decorators.idempotent_id('7c062754-212c-4585-ab4a-81539130e4fb')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_network_ipam")
     @idempotent_id('118c1620-efb6-4cc6-8eb5-71bf8631d365')
@@ -92,7 +87,6 @@
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.delete_network_ipam(new_ipam['uuid'])
 
-    @decorators.idempotent_id('fd9264de-6c91-4a4e-8f91-12798ebd4fe7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_network_ipam")
     @idempotent_id('44cbe2d9-583d-4215-964a-1c321f5e8d92')
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 1266ad9..150fb2e 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -59,7 +58,6 @@
         self.network_policy_client.update_network_policy(network_policy_uuid,
                                                          **put_body)
 
-    @decorators.idempotent_id('8f7cac43-758f-4e7f-99dc-c71d6b38c75a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_network_policys")
     @idempotent_id('fa2a28f3-a8bb-4908-95b9-1e11cf58b16f')
@@ -70,7 +68,6 @@
         with self.rbac_utils.override_role(self):
             self.network_policy_client.list_network_policys()
 
-    @decorators.idempotent_id('7981c0be-ca0b-4d1f-9f92-c33aaa1d93c7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_network_policys")
     @idempotent_id('a30be228-afba-40c9-8678-ae020db68d79')
@@ -81,7 +78,6 @@
         with self.rbac_utils.override_role(self):
             self._create_policy()
 
-    @decorators.idempotent_id('5f028687-0599-409f-a785-97b6d131f48b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_network_policy")
     @idempotent_id('6cefe92e-8936-49a6-bce0-12da3396e7ab')
@@ -93,7 +89,6 @@
         with self.rbac_utils.override_role(self):
             self.network_policy_client.show_network_policy(policy_uuid)
 
-    @decorators.idempotent_id('9a58b489-7600-4369-9b11-696ae46d8457')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_network_policy")
     @idempotent_id('1d470505-3ad4-4870-87d7-3f0b0f9fc635')
@@ -105,7 +100,6 @@
         with self.rbac_utils.override_role(self):
             self._update_policy(policy_uuid)
 
-    @decorators.idempotent_id('acabbe91-6823-446f-9590-508655a57316')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_network_policy")
     @idempotent_id('aae9018f-e7a2-4a75-a68e-afd6c380640e')
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 26122e9..f0b5f14 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -75,7 +74,6 @@
                         new_tuple['uuid'])
         return new_tuple
 
-    @decorators.idempotent_id('a799ae22-d6e3-4fec-b1df-f972fe5a003d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_port_tuples")
     @idempotent_id('3789eef8-0e80-4057-b7b0-926655144beb')
@@ -86,7 +84,6 @@
         with self.rbac_utils.override_role(self):
             self.port_tuple_client.list_port_tuples()
 
-    @decorators.idempotent_id('52a4ee6a-346e-4cc0-a33d-345ec3055224')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_port_tuple")
     @idempotent_id('ae5a90ed-5771-4680-be6b-c7626caa3a52')
@@ -98,7 +95,6 @@
         with self.rbac_utils.override_role(self):
             self.port_tuple_client.show_port_tuple(new_tuple['uuid'])
 
-    @decorators.idempotent_id('b4f70918-bea8-40e4-9b1b-5bcc5b40e298')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_port_tuples")
     @idempotent_id('0e2283da-fe25-4204-b5b3-fef3c200d0c8')
@@ -109,7 +105,6 @@
         with self.rbac_utils.override_role(self):
             self._create_port_tuple()
 
-    @decorators.idempotent_id('1483a357-d83a-48c7-b9ed-6eb45d47e129')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_port_tuple")
     @idempotent_id('b16f19e2-ec8e-4107-961d-561890183dd0')
@@ -123,7 +118,6 @@
             self.port_tuple_client.update_port_tuple(
                 new_tuple['uuid'], display_name=update_name)
 
-    @decorators.idempotent_id('96b5a8ed-7057-4630-bb99-5b7a77ecafbc')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_port_tuple")
     @idempotent_id('3f28e8b8-f9de-437f-a398-0a11c7fcd652')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_project.py b/tungsten_tempest_plugin/tests/api/contrail/test_project.py
index 4b5b50a..83293be 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_project.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_project.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -58,7 +57,6 @@
         }
         self.project_client.update_project(project_uuid, **put_body)
 
-    @decorators.idempotent_id('b1afccc4-6947-444f-9dca-1422f22ad6a9')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_projects")
     @idempotent_id('7db819fd-ceee-4a6b-9ad7-2e837c055bdd')
@@ -69,7 +67,6 @@
         with self.rbac_utils.override_role(self):
             self.project_client.list_projects()
 
-    @decorators.idempotent_id('f29f5705-9bd6-4d50-b8c4-f3450cac24d9')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_projects")
     @idempotent_id('38b9b7a8-1568-417d-b0a3-e7adee88e4b9')
@@ -80,7 +77,6 @@
         with self.rbac_utils.override_role(self):
             self._create_project()
 
-    @decorators.idempotent_id('5f71a9be-4e4e-4eff-82ee-bd15b1fb0525')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_project")
     @idempotent_id('c47e57c4-34b0-46c2-a678-83b1fe9afd25')
@@ -92,7 +88,6 @@
         with self.rbac_utils.override_role(self):
             self.project_client.show_project(project_uuid)
 
-    @decorators.idempotent_id('89f5c981-67e3-4388-a724-6debd7b759e7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_project")
     @idempotent_id('3d4bd416-16cc-437c-9e95-f9ceda424f8b')
@@ -104,7 +99,6 @@
         with self.rbac_utils.override_role(self):
             self._update_project(project_uuid)
 
-    @decorators.idempotent_id('8e0329c1-5316-4e94-a8e4-16ed329480b8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_project")
     @idempotent_id('787ebe8b-b88d-4488-b157-f70554bdd783')
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 6dab789..29215e4 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -53,7 +52,6 @@
                         qos_config['uuid'])
         return qos_config
 
-    @decorators.idempotent_id('53533827-08f1-4dbf-83c1-9e74b44d7103')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_qos_configs")
     @idempotent_id('6bc44b34-14d4-4e0e-b45d-fe3df047879f')
@@ -65,7 +63,6 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.list_qos_configs()
 
-    @decorators.idempotent_id('6ea49847-17eb-4cd7-8bb0-0eb9210593fe')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_qos_configs")
     @idempotent_id('031b4a27-22cd-4d93-938d-ba6d0f3163ba')
@@ -76,7 +73,6 @@
         with self.rbac_utils.override_role(self):
             self._create_qos_configs()
 
-    @decorators.idempotent_id('2d2ebdbc-ccf4-44e9-8257-0dc2cb35632a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_qos_config")
     @idempotent_id('a9d82b49-3492-4667-b252-ef30b0ee6eb3')
@@ -88,7 +84,6 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.show_qos_config(qos_config['uuid'])
 
-    @decorators.idempotent_id('c1638a68-a758-4284-a763-a3b81bc1f6a8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_qos_config")
     @idempotent_id('d324a5e6-cc86-4444-91a2-74592283a7ec')
@@ -100,7 +95,6 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.delete_qos_config(qos_config['uuid'])
 
-    @decorators.idempotent_id('53649c15-c159-4763-9b55-1dfa2029a8d2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_qos_config")
     @idempotent_id('7f1901a5-0cf0-40bd-98a5-f8a930b11cfe')
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 5b9bf43..d0c6a06 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
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -73,7 +72,6 @@
                         qos_global_config['uuid'])
         return qos_global_config
 
-    @decorators.idempotent_id('aad1e7b0-cbe0-48d9-baf5-e4ca6db48a0b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_global_qos_configs")
     @idempotent_id('74e5a7b7-f538-4be3-90a5-6862b07fb118')
@@ -87,7 +85,6 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.list_global_qos_configs()
 
-    @decorators.idempotent_id('c315d22e-7f9c-47cc-986b-b3245df39f7d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_global_qos_configs")
     @idempotent_id('d7da1ca0-7bf7-4d1b-982c-820cd37fe9fa')
@@ -100,7 +97,6 @@
         with self.rbac_utils.override_role(self):
             self._create_qos_global_configs(global_system_config)
 
-    @decorators.idempotent_id('4dc7e8d1-4447-455e-ac7e-7d5bde6d8de0')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_global_qos_config")
     @idempotent_id('e3bd44e0-19a9-46e7-83d3-268dcc537ad9')
@@ -114,7 +110,6 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.show_global_qos_config(instance_id=test['uuid'])
 
-    @decorators.idempotent_id('1783445a-a962-46b8-a5a9-d58c04d1d7e5')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_global_qos_config")
     @idempotent_id('f834c4d7-bc81-4c59-bada-c4d752219a6e')
@@ -131,7 +126,6 @@
                 instance_id=qos['uuid'],
                 display_name=display_name)
 
-    @decorators.idempotent_id('a26f0e42-06e1-4fce-b4cb-654aa341e3d6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_global_qos_config")
     @idempotent_id('78b9a3da-4eb1-4f4b-8a23-a8a2e733b515')
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 231470d..f6c9ec2 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -51,7 +50,6 @@
                         qos_queue['uuid'])
         return qos_queue
 
-    @decorators.idempotent_id('80ef7a1e-b700-4988-a287-ad05f6f91560')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_qos_queues")
     @idempotent_id('3d3a4397-2afe-4bbd-be59-56a1bcc2e49d')
@@ -63,7 +61,6 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.list_qos_queues()
 
-    @decorators.idempotent_id('55777be0-e120-467d-8647-e6eaf3529c85')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_qos_queues")
     @idempotent_id('d89c45f4-c83c-47b3-8720-7feffab4519c')
@@ -74,7 +71,6 @@
         with self.rbac_utils.override_role(self):
             self._create_qos_queues()
 
-    @decorators.idempotent_id('0e36617e-9e21-4c78-bac3-65c18b9c2553')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_qos_queue")
     @idempotent_id('d2773d5c-9858-4938-8a77-62cafd5034da')
@@ -86,7 +82,6 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.show_qos_queue(qos_queue['uuid'])
 
-    @decorators.idempotent_id('06ec1c06-abb7-4107-9987-d9184cc0f9c1')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_qos_queue")
     @idempotent_id('64c828d0-6594-472b-a504-40915067c7bd')
@@ -98,7 +93,6 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.delete_qos_queue(qos_queue['uuid'])
 
-    @decorators.idempotent_id('ec51c48a-e97d-48fb-8c96-342b6f5299a5')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_qos_queue")
     @idempotent_id('0733ab1a-f5aa-4e70-a011-174aa203dc33')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_route.py b/tungsten_tempest_plugin/tests/api/contrail/test_route.py
index cabd9c4..d9bdb14 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_route.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_route.py
@@ -26,7 +26,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -55,7 +54,6 @@
                         route_table['uuid'])
         return route_table
 
-    @decorators.idempotent_id('600d0839-6c13-4349-9143-90f09bab41d3')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_route_tables")
     @idempotent_id('ca5a5d42-6e49-40e4-a5ac-de07b397b775')
@@ -67,7 +65,6 @@
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_tables()
 
-    @decorators.idempotent_id('fa119fbf-9078-4607-9c85-344db9e2cf25')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_route_table")
     @idempotent_id('084a2759-991a-4ae2-bde4-8f9915966f6e')
@@ -79,7 +76,6 @@
         with self.rbac_utils.override_role(self):
             self.route_client.show_route_table(route_table['uuid'])
 
-    @decorators.idempotent_id('6f8a79fd-593f-4558-9a43-ddd4781e8e4f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_route_tables")
     @idempotent_id('3fab8105-c0be-4c9e-be5f-d2dce4deb921')
@@ -90,7 +86,6 @@
         with self.rbac_utils.override_role(self):
             self._create_route_tables()
 
-    @decorators.idempotent_id('16c9ff63-26ba-4f4d-aa10-552555753cb5')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_route_table")
     @idempotent_id('2acee7ad-843e-40b0-b8f8-a6d90a51c6c8')
@@ -105,7 +100,6 @@
                 route_id=route_table['uuid'],
                 display_name=display_name)
 
-    @decorators.idempotent_id('cedccde1-4509-4fe2-a7fb-5e6fcf32c10d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_route_table")
     @idempotent_id('20a5086c-ec9a-43e0-ae2c-4161c0f4b280')
@@ -141,7 +135,6 @@
                         interface_route_table['uuid'])
         return interface_route_table
 
-    @decorators.idempotent_id('6d34cf27-8a37-4d96-8420-f5d6013c0d84')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_interface_route_tables")
     @idempotent_id('b1f8f0a6-6074-4615-a439-19869a48bc49')
@@ -153,7 +146,6 @@
         with self.rbac_utils.override_role(self):
             self.route_client.list_interface_route_tables()
 
-    @decorators.idempotent_id('f1c4cbd9-06e7-4ab2-a5d8-0cd4d50b03ea')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_interface_route_table")
     @idempotent_id('94703a28-5e33-4003-b95b-6a3cc5752fd4')
@@ -166,7 +158,6 @@
             self.route_client.show_interface_route_table(
                 interface_rte_table['uuid'])
 
-    @decorators.idempotent_id('e2f673d0-d631-4829-957e-d3f68653e948')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_interface_route_tables")
     @idempotent_id('b89ef437-4759-4c04-948b-d2ff9675ab07')
@@ -177,7 +168,6 @@
         with self.rbac_utils.override_role(self):
             self._create_interface_route_tables()
 
-    @decorators.idempotent_id('29893eed-ecd5-489c-bc6f-0540aaea5188')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_interface_route_table")
     @idempotent_id('e9346d4f-7a07-41bc-8e88-e8ae9fa309ea')
@@ -192,7 +182,6 @@
                 interface_route_id=interface_rte_table['uuid'],
                 display_name=display_name)
 
-    @decorators.idempotent_id('e50fec3c-4232-4df3-8965-e1cabd28f1ff')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_interface_route_table")
     @idempotent_id('b00444a5-cb4c-45bc-b393-503e9e333e98')
@@ -229,7 +218,6 @@
                         route_target['uuid'])
         return route_target
 
-    @decorators.idempotent_id('7929fdbc-f12d-43e0-9804-70f3f5e94aed')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_route_targets")
     @idempotent_id('757efd07-8027-4a16-887a-1e42f16b4140')
@@ -241,7 +229,6 @@
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_targets()
 
-    @decorators.idempotent_id('b4414a4e-f782-498d-842a-bd55bbdc52d0')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_route_target")
     @idempotent_id('76c60d98-dd5e-453a-bf0e-7854f78a1a5e')
@@ -253,7 +240,6 @@
         with self.rbac_utils.override_role(self):
             self.route_client.show_route_target(target['uuid'])
 
-    @decorators.idempotent_id('64af449d-3fd9-4157-91f5-633cf1faeaa2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_route_targets")
     @idempotent_id('fcdb4ebc-b92d-49f2-88e9-68c93aec94be')
@@ -264,7 +250,6 @@
         with self.rbac_utils.override_role(self):
             self._create_route_targets()
 
-    @decorators.idempotent_id('c4c0b64e-f6d1-4704-8db7-a584c43e4199')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_route_target")
     @idempotent_id('dd830a77-4bfe-4a8c-b4e9-08b6ef2af3be')
@@ -279,7 +264,6 @@
                 route_target_id=target['uuid'],
                 display_name=display_name)
 
-    @decorators.idempotent_id('9ea8843c-11d8-4ab1-a7c8-3488d06dcc5c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_route_target")
     @idempotent_id('dfaa58f9-ec29-4d51-a475-870fac08908d')
@@ -314,7 +298,6 @@
                         route_aggr['uuid'])
         return route_aggr
 
-    @decorators.idempotent_id('457b2f2d-a614-42be-8d07-595d684cdd6e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_route_aggregates")
     @idempotent_id('15f2c30c-4404-4228-94a0-86c5ec5cf62e')
@@ -326,7 +309,6 @@
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_aggregates()
 
-    @decorators.idempotent_id('eb0990e2-ffca-4d19-947c-9a4476c9a3bc')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_route_aggregate")
     @idempotent_id('c8edee30-81c4-44e2-8485-055bed853384')
@@ -339,7 +321,6 @@
             self.route_client.show_route_aggregate(
                 route_aggr['uuid'])
 
-    @decorators.idempotent_id('c496716c-6674-41c0-a18a-a8eb8decd86b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_route_aggregates")
     @idempotent_id('7553a54f-e41c-4555-b745-a858c5a70690')
@@ -350,7 +331,6 @@
         with self.rbac_utils.override_role(self):
             self._create_route_aggregates()
 
-    @decorators.idempotent_id('2dc40190-1d1b-4ee3-ad1c-5930d532481f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_route_aggregate")
     @idempotent_id('de1e6102-0bc6-4f9b-a354-48eb051ab5e4')
@@ -365,7 +345,6 @@
                 route_aggr_id=route_aggr['uuid'],
                 display_name=display_name)
 
-    @decorators.idempotent_id('ee17d0db-7388-4428-9212-bbc4f4af07f9')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_route_aggregate")
     @idempotent_id('e16dbdc6-d7cf-43c7-af9d-bd76cc220200')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routers.py b/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
index 7b4256f..20724fb 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -142,7 +141,6 @@
                         router['uuid'])
         return router
 
-    @decorators.idempotent_id('7cbbf934-91e4-4243-a0d8-09798b92e1a2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_physical_routers")
     @idempotent_id('349ac042-b922-4727-9e1b-8f363ee343f3')
@@ -153,7 +151,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_physical_routers()
 
-    @decorators.idempotent_id('7f24af6e-b577-440e-87be-23809260bcc8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_physical_routers")
     @idempotent_id('d0b7449e-9037-4f9f-8c7e-9f364c95f18a')
@@ -166,7 +163,6 @@
         with self.rbac_utils.override_role(self):
             self._create_physical_router(global_system_config)
 
-    @decorators.idempotent_id('ba07818c-c572-459a-a3c8-2bbc1fbe485e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_physical_router")
     @idempotent_id('6dfc53f4-a884-46d5-b303-22ba59c116f4')
@@ -181,7 +177,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.show_physical_router(physical_router_uuid)
 
-    @decorators.idempotent_id('0dbc0f15-1d61-4aa4-a9bd-4e060335b960')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_physical_router")
     @idempotent_id('c270f369-8cd7-4ee3-8ab1-4580c3138a5c')
@@ -199,7 +194,6 @@
                 physical_router_uuid,
                 display_name=updated_fq_name)
 
-    @decorators.idempotent_id('7e92cc5c-1b2f-48cf-8b4d-499244866dff')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_physical_router")
     @idempotent_id('eeded742-6a8d-4e88-bfa8-fe32db463c53')
@@ -214,7 +208,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.delete_physical_router(physical_router_uuid)
 
-    @decorators.idempotent_id('964f0f98-5447-4eb7-b6ca-e1be9c57732e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_bgp_routers")
     @idempotent_id('49bfb461-f99e-4585-b051-e20a3c937589')
@@ -225,7 +218,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_bgp_routers()
 
-    @decorators.idempotent_id('f44e0191-997e-410e-84e6-fc99c1b93598')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_bgp_routers")
     @idempotent_id('7567974c-040e-4edd-b3a1-c633aa9651cb')
@@ -238,7 +230,6 @@
         with self.rbac_utils.override_role(self):
             self._create_bgp_router(routing_instance)
 
-    @decorators.idempotent_id('a0eb42de-1a3d-47aa-a0d3-37ebb6614b41')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_bgp_router")
     @idempotent_id('0d3ad424-18c9-4d96-8708-fa1ebd45594b')
@@ -252,7 +243,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.show_bgp_router(bgp_router_uuid)
 
-    @decorators.idempotent_id('e28f5741-bce5-48d8-9933-d0e38b6a122e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_bgp_router")
     @idempotent_id('dc50e7c5-7614-4281-8a66-282c52f3c769')
@@ -269,7 +259,6 @@
                 bgp_router_uuid,
                 display_name=updated_fq_name)
 
-    @decorators.idempotent_id('862b2de5-2660-4a2a-9732-d6ea3ab88eff')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_bgp_router")
     @idempotent_id('f14aee72-cad4-4c3e-8eea-7886a81abb24')
@@ -283,7 +272,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.delete_bgp_router(bgp_router_uuid)
 
-    @decorators.idempotent_id('73001d40-3127-4a99-a7d0-eb59f76fd35b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_global_vrouter_configs")
     @idempotent_id('4af768d1-3cbe-4aff-bcbc-0e045cac3277')
@@ -294,7 +282,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_global_vrouter_configs()
 
-    @decorators.idempotent_id('d37d7324-fc8a-43e0-825e-ed979341be3c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_global_vrouter_configs")
     @idempotent_id('e13d800f-9304-4a06-9bf1-ad08345a13a8')
@@ -307,7 +294,6 @@
         with self.rbac_utils.override_role(self):
             self._create_global_vrouter_config(global_system_config)
 
-    @decorators.idempotent_id('620294a4-a597-4881-836a-3cc08eb3c464')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_global_vrouter_config")
     @idempotent_id('3bb6f4e1-fd3f-4338-8392-f7f80974a80e')
@@ -323,7 +309,6 @@
             self.router_client.show_global_vrouter_config(
                 global_vrouter_config_uuid)
 
-    @decorators.idempotent_id('92fae487-86ab-492d-86fd-c06963ce5ea6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_global_vrouter_config")
     @idempotent_id('36fcdd51-c42b-4e67-8c26-73d4cde47507')
@@ -342,7 +327,6 @@
                 global_vrouter_config_uuid,
                 display_name=updated_fq_name)
 
-    @decorators.idempotent_id('945f1ddd-d787-4d93-b156-ec86267a2aca')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_global_vrouter_config")
     @idempotent_id('4f3d59e8-3dac-4346-9d13-5ebe5ad8f6cf')
@@ -358,7 +342,6 @@
             self.router_client.delete_global_vrouter_config(
                 global_vrouter_config_uuid)
 
-    @decorators.idempotent_id('279dca60-f6e4-4dc2-8568-03d186e64086')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_logical_routers")
     @idempotent_id('674bf3de-a9e5-45c2-921b-b89db73a2abe')
@@ -369,7 +352,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_logical_routers()
 
-    @decorators.idempotent_id('e2a3bd03-4573-4676-90f6-9e66dd05dad6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_logical_routers")
     @idempotent_id('610f051b-8eba-4d3a-ba43-91386bfc0e52')
@@ -380,7 +362,6 @@
         with self.rbac_utils.override_role(self):
             self._create_logical_router()
 
-    @decorators.idempotent_id('1c4274ce-31d7-45c7-94ab-7026d4c456d2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_logical_router")
     @idempotent_id('992841d4-0d5d-4d85-b513-049b33e2a2e2')
@@ -392,7 +373,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.show_logical_router(logical_router_uuid)
 
-    @decorators.idempotent_id('6faeb2a2-e833-4d39-9db1-0e06b0507f0b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_logical_router")
     @idempotent_id('518197bf-5233-4059-9021-5d7ecc74718e')
@@ -407,7 +387,6 @@
                 logical_router_uuid,
                 display_name=updated_fq_name)
 
-    @decorators.idempotent_id('4ff3591c-f57f-4842-b74a-c0a2b8171c3f')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_logical_router")
     @idempotent_id('70448b9c-4444-45e0-b307-7bff4dc075b1')
@@ -419,7 +398,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.delete_logical_router(logical_router_uuid)
 
-    @decorators.idempotent_id('5662ac7f-5a18-476d-a3c9-cc7c784f9dfa')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_virtual_routers")
     @idempotent_id('604dc476-732e-4890-8665-a497360f5475')
@@ -430,7 +408,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_virtual_routers()
 
-    @decorators.idempotent_id('6d2b364c-cdb8-4de1-bc15-5f7d0b1533d2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_virtual_routers")
     @idempotent_id('114beb14-45c0-4714-a407-d160bb102022')
@@ -443,7 +420,6 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_router(global_system_config)
 
-    @decorators.idempotent_id('d9319e7f-8811-43e5-93ce-734ac7fb4f79')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_virtual_router")
     @idempotent_id('258fe4e0-3e39-460f-aafa-e3b53c96e534')
@@ -458,7 +434,6 @@
         with self.rbac_utils.override_role(self):
             self.router_client.show_virtual_router(virtual_router_uuid)
 
-    @decorators.idempotent_id('4baa6195-bacd-4211-ab93-abd6ebbfe5d6')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_virtual_router")
     @idempotent_id('d1c72191-2068-4552-a78f-038cdd4c9c1d')
@@ -476,7 +451,6 @@
                 virtual_router_uuid,
                 display_name=updated_fq_name)
 
-    @decorators.idempotent_id('bb7e4a21-1c8a-4a38-997c-612de0a4ee53')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_virtual_router")
     @idempotent_id('efbe25d6-8763-42d4-baf6-9f342e710144')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routing.py b/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
index ef7f60f..8118b2b 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
@@ -22,7 +22,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -62,7 +61,6 @@
                         new_instance['uuid'])
         return new_instance
 
-    @decorators.idempotent_id('cf5756c7-8ae5-407f-bb71-7b8b764abbc9')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_routing_instances")
     @idempotent_id('054c56ba-76b2-4161-a702-40301d8de085')
@@ -73,7 +71,6 @@
         with self.rbac_utils.override_role(self):
             self.routing_client.list_routing_instances()
 
-    @decorators.idempotent_id('7a600d00-90da-4cc9-899b-74d00b190555')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_routing_instances")
     @idempotent_id('3d44a46b-5436-43a8-b2f7-8581f0f04dbc')
@@ -84,7 +81,6 @@
         with self.rbac_utils.override_role(self):
             self._create_routing_instances()
 
-    @decorators.idempotent_id('540e94a6-7207-47aa-b91b-5783a72641b7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_routing_instance")
     @idempotent_id('161abb37-6037-422b-b453-108a5d10caca')
@@ -96,7 +92,6 @@
         with self.rbac_utils.override_role(self):
             self.routing_client.show_routing_instance(new_instance['uuid'])
 
-    @decorators.idempotent_id('7fc442a3-94b9-4fe9-8d12-165abaa98c88')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_routing_instance")
     @idempotent_id('1d3af01e-01bf-4347-a9bc-633732339e0e')
@@ -108,7 +103,6 @@
         with self.rbac_utils.override_role(self):
             self.routing_client.delete_routing_instance(new_instance['uuid'])
 
-    @decorators.idempotent_id('244815c9-409e-41fa-af70-64f6889b9219')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_routing_instance")
     @idempotent_id('ebcfd442-2a26-4954-968b-e17e414ed0d1')
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 425eb90..44bdea5 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -59,7 +58,6 @@
         self.routing_policy_client.update_routing_policy(routing_policy_uuid,
                                                          **put_body)
 
-    @decorators.idempotent_id('a430e541-59a4-4c9a-8fe2-1a82701b6377')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_routing_policys")
     @idempotent_id('fe25a306-bc4f-42b3-91ca-38df01e35345')
@@ -70,7 +68,6 @@
         with self.rbac_utils.override_role(self):
             self.routing_policy_client.list_routing_policys()
 
-    @decorators.idempotent_id('47b668c8-f2d3-4713-be33-5345ca22c2e8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_routing_policys")
     @idempotent_id('f8ca5e30-8bb3-410f-8618-8fdca70bda06')
@@ -81,7 +78,6 @@
         with self.rbac_utils.override_role(self):
             self._create_routing_policy()
 
-    @decorators.idempotent_id('66b8679d-66f9-4ccf-b54b-4c1d2de32615')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_routing_policy")
     @idempotent_id('3421e84e-3e2a-452a-9a26-b2caf00b1cbc')
@@ -93,7 +89,6 @@
         with self.rbac_utils.override_role(self):
             self.routing_policy_client.show_routing_policy(policy_uuid)
 
-    @decorators.idempotent_id('99490df1-10ea-4b2c-89c2-fef6406d0156')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_routing_policy")
     @idempotent_id('9fc1f44f-c8e2-4f5a-8239-e9b783f55d94')
@@ -105,7 +100,6 @@
         with self.rbac_utils.override_role(self):
             self._update_routing_policy(policy_uuid)
 
-    @decorators.idempotent_id('092d54ea-1954-4111-b4aa-61d534e8f1f1')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_routing_policy")
     @idempotent_id('24f1cd7a-2917-4b81-a0a3-a40ed2d40c7d')
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 357d071..452a7f6 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
@@ -23,7 +23,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -55,7 +54,6 @@
                         sec_grp['uuid'])
         return sec_grp
 
-    @decorators.idempotent_id('d0dd9b3c-c303-443a-a07e-072242b2952d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_security_groups")
     @idempotent_id('a13cc1d5-f562-4b68-b732-980deb3cddf4')
@@ -67,7 +65,6 @@
         with self.rbac_utils.override_role(self):
             self.security_group_client.list_security_groups()
 
-    @decorators.idempotent_id('d7bc3044-83dd-4d8b-9010-028a95b45385')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_security_group")
     @idempotent_id('c7ca1781-08ae-4fa2-bd6d-1f369950c4c4')
@@ -80,7 +77,6 @@
         with self.rbac_utils.override_role(self):
             self.security_group_client.show_security_group(grp_id)
 
-    @decorators.idempotent_id('19da2264-a5c0-46b5-92d8-5a1c6ab88d14')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_security_group")
     @idempotent_id('e682d7b4-deb8-4b5c-9c9b-1e1ada827b40')
@@ -93,7 +89,6 @@
         with self.rbac_utils.override_role(self):
             self._delete_security_group(grp_id)
 
-    @decorators.idempotent_id('8f461d8b-298a-4f89-be5c-272aec14fb95')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_security_groups")
     @idempotent_id('63a2ff14-7869-40a2-962a-d65752de5651')
@@ -104,7 +99,6 @@
         with self.rbac_utils.override_role(self):
             self._create_security_groups()
 
-    @decorators.idempotent_id('056b5529-41e0-4d77-9c67-6ffc6e6bc2cb')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_security_group")
     @idempotent_id('cf9aafe2-fffb-4028-8fd7-4d6634e144e7')
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 5ae7210..4ec7a70 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
@@ -22,7 +22,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -76,7 +75,6 @@
                         new_appliance['uuid'])
         return new_appliance
 
-    @decorators.idempotent_id('6376afa3-7917-4396-8aff-d821592b4f2c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_service_appliances")
     @idempotent_id('6b5fc17c-34e6-4d21-a53e-a0dfe69afd31')
@@ -87,7 +85,6 @@
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.list_service_appliances()
 
-    @decorators.idempotent_id('a9f1ccc9-b1fd-4ace-96ae-43c3912f0cfc')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_service_appliances")
     @idempotent_id('0563c0c8-b986-466e-8540-aa8ad7a10367')
@@ -102,7 +99,6 @@
         with self.rbac_utils.override_role(self):
             self._create_service_appliances(new_set)
 
-    @decorators.idempotent_id('247d0ed3-3cdc-4878-b637-80b8f65eb3a1')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_service_appliance")
     @idempotent_id('ea30dcfe-8657-4a7d-9cf1-3176d334bf27')
@@ -120,7 +116,6 @@
             self.service_appliances_client.show_service_appliance(
                 new_appliance['uuid'])
 
-    @decorators.idempotent_id('142fd7b3-f79c-46a8-b60f-51a3380a9f3b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_service_appliance")
     @idempotent_id('a54ca33a-8590-4844-96d7-b96882b59e86')
@@ -139,7 +134,6 @@
                 new_appliance['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('2e9d6bb8-e616-445b-b87b-1e7e7f5387b7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_service_appliance")
     @idempotent_id('362deff5-7b72-4929-ba81-972cfcfa1309')
@@ -156,7 +150,6 @@
             self.service_appliances_client.delete_service_appliance(
                 new_appliance['uuid'])
 
-    @decorators.idempotent_id('4fec3bd7-1c7b-46ba-8b29-228a6dc35592')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_service_appliance_sets")
     @idempotent_id('c1e74da9-00b6-4c88-adda-2ce49094e570')
@@ -167,7 +160,6 @@
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.list_service_appliance_sets()
 
-    @decorators.idempotent_id('c0647738-11fd-4c73-846b-1d54aff2eef8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_service_appliance_sets")
     @idempotent_id('eb00d6cf-590f-41bf-8ee4-5be625d9cb93')
@@ -180,7 +172,6 @@
         with self.rbac_utils.override_role(self):
             self._create_service_appliance_sets(global_system_config)
 
-    @decorators.idempotent_id('f27d4f96-9db6-4a97-8dbf-75ba14c08ae3')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_service_appliance_set")
     @idempotent_id('dd35dd04-e7d9-46bb-8f36-26835f122572')
@@ -196,7 +187,6 @@
             self.service_appliances_client.show_service_appliance_set(
                 new_set['uuid'])
 
-    @decorators.idempotent_id('64ad1226-bbd5-4322-8534-e3eb98413e6c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_service_appliance_set")
     @idempotent_id('952f063b-bc71-4f62-83b1-719bce5ad4ed')
@@ -214,7 +204,6 @@
                 new_set['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('6bbd4831-76cf-492e-9908-7405f694889b')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_service_appliance_set")
     @idempotent_id('7b56ce24-da1d-4565-bd22-c58dc57d7045')
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 083db8a..e39fce1 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
@@ -22,7 +22,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -87,7 +86,6 @@
                         new_instance['uuid'])
         return new_instance
 
-    @decorators.idempotent_id('eb4240b1-f23d-4392-a1c1-9930f1f73a75')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_service_templates")
     @idempotent_id('841b1d32-4308-4fb6-852a-41bdd8c56c37')
@@ -98,7 +96,6 @@
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_templates()
 
-    @decorators.idempotent_id('82f66ebb-d7cd-43b0-ae43-6e86286257ad')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_service_templates")
     @idempotent_id('3f02d14a-31e2-4476-821f-87d0cc42d9fb')
@@ -109,7 +106,6 @@
         with self.rbac_utils.override_role(self):
             self._create_service_template()
 
-    @decorators.idempotent_id('8e71e3b9-add0-4424-95d8-4337676150f2')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_service_template")
     @idempotent_id('1f15d734-2cc6-4ded-916e-134286c6b87b')
@@ -122,7 +118,6 @@
             self.service_client.show_service_template(
                 new_template['uuid'])
 
-    @decorators.idempotent_id('25a069fd-f606-435c-90c2-8b7ad0251edb')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_service_template")
     @idempotent_id('3549debd-4c7a-4574-8d11-4190c8530a23')
@@ -137,7 +132,6 @@
                 new_template['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('1fba953d-4d45-43a5-8a49-2413da11ab01')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_service_template")
     @idempotent_id('e86cabd2-5b7e-4ee8-86ec-db52619b852b')
@@ -150,7 +144,6 @@
             self.service_client.delete_service_template(
                 new_template['uuid'])
 
-    @decorators.idempotent_id('60c7ea73-c6c3-4d3a-805e-d05a33f73900')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_service_health_checks")
     @idempotent_id('5210d6ca-9a38-4b6b-b5b7-f836c3846079')
@@ -161,7 +154,6 @@
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_health_checks()
 
-    @decorators.idempotent_id('2ddf84ab-9fff-41d6-a05b-7fb37b4bb089')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_service_health_checks")
     @idempotent_id('77716feb-0d05-4cfd-8a17-79cf0b19ed3c')
@@ -172,7 +164,6 @@
         with self.rbac_utils.override_role(self):
             self._create_service_health_check()
 
-    @decorators.idempotent_id('413495a3-862d-462a-a104-357adf79ce23')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_service_health_check")
     @idempotent_id('80db4445-8d6c-4c8f-aa25-d4ea53d32d2c')
@@ -185,7 +176,6 @@
             self.service_client.show_service_health_check(
                 new_health_check['uuid'])
 
-    @decorators.idempotent_id('2ddd130c-c82c-4151-b9b8-3cee47c57f6e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_service_health_check")
     @idempotent_id('68fb1510-4b76-40cc-8979-e56e537229d2')
@@ -200,7 +190,6 @@
                 new_health_check['uuid'],
                 display_name=update_name)
 
-    @decorators.idempotent_id('59f465da-ae3b-4e5f-af59-ca9dc344a719')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_service_health_check")
     @idempotent_id('2dce3942-402a-48a4-b682-fdc425d3d935')
@@ -213,7 +202,6 @@
             self.service_client.delete_service_health_check(
                 new_health_check['uuid'])
 
-    @decorators.idempotent_id('191bb3bd-d2ae-4119-bf43-55e791eb7290')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_service_instances")
     @idempotent_id('1469c71e-f6f5-419f-9672-c3c67f879704')
@@ -224,7 +212,6 @@
         with self.rbac_utils.override_role(self):
             self._create_service_instance()
 
-    @decorators.idempotent_id('7e51b554-4e63-450a-aee7-315a554d3834')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_service_instance")
     @idempotent_id('ea5b716d-5de8-4c71-becd-f1501c22f0df')
@@ -237,7 +224,6 @@
             self.service_client.show_service_instance(
                 new_instance['uuid'])
 
-    @decorators.idempotent_id('b0e3783a-eb2e-4769-ad3b-0b9aa4b78579')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_service_instance")
     @idempotent_id('74934833-29cd-416b-a5a6-273f733d058a')
@@ -250,7 +236,6 @@
             self.service_client.delete_service_instance(
                 new_instance['uuid'])
 
-    @decorators.idempotent_id('88d2ea08-96c6-4d76-baca-4b53ae969844')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_service_instances")
     @idempotent_id('da6016a3-a2a8-42a8-b064-c124c22fef6f')
@@ -261,7 +246,6 @@
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_instances()
 
-    @decorators.idempotent_id('7f4a6eca-81ab-4e05-aa7c-148c78b6b811')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_service_instance")
     @idempotent_id('a6237b99-336b-42db-a8eb-9604a1b08fc6')
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py b/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
index 1dc74c7..34c53f7 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -56,7 +55,6 @@
         }
         self.subnet_client.update_subnet(subnet_uuid, **put_body)
 
-    @decorators.idempotent_id('8f33c6bf-dbe5-4d05-9509-2b90b3041c88')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_subnets")
     @idempotent_id('ddd1d9ae-cf2f-4a74-98ba-b0f481f27977')
@@ -67,7 +65,6 @@
         with self.rbac_utils.override_role(self):
             self.subnet_client.list_subnets()
 
-    @decorators.idempotent_id('c6e33c0b-96c5-4140-a18b-93d53f3f5f96')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_subnets")
     @idempotent_id('ee0cb904-d162-44a4-b7b0-a7451f667ed5')
@@ -78,7 +75,6 @@
         with self.rbac_utils.override_role(self):
             self._create_subnet()
 
-    @decorators.idempotent_id('7535dc07-e9a8-4d41-afb3-da3ff0c5a99d')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_subnet")
     @idempotent_id('994618f2-5b40-460c-a6a8-6479bc15bf80')
@@ -90,7 +86,6 @@
         with self.rbac_utils.override_role(self):
             self.subnet_client.show_subnet(subnet_uuid)
 
-    @decorators.idempotent_id('08f6c060-fce1-410c-818b-7bb34a4c0ffb')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_subnet")
     @idempotent_id('565e44c9-eb9b-4ae6-9ebb-db422a9751ee')
@@ -102,7 +97,6 @@
         with self.rbac_utils.override_role(self):
             self._update_subnet(subnet_uuid)
 
-    @decorators.idempotent_id('03d994c2-dddb-4597-b931-9cb04a145622')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_subnet")
     @idempotent_id('a733b913-7a88-45d9-ac0a-d858fa3dc662')
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 6124e38..6b8f273 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -77,7 +76,6 @@
                         dns_record['virtual-DNS-record']['uuid'])
         return dns_record
 
-    @decorators.idempotent_id('0efa3a9e-42da-4cfe-ae7f-c216220cc3a8')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_virtual_DNSs")
     @idempotent_id('8401d690-afdf-4b6e-ad60-b9363a8cfb1d')
@@ -88,7 +86,6 @@
         with self.rbac_utils.override_role(self):
             self.virtual_dns_client.list_virtual_dns()
 
-    @decorators.idempotent_id('92221008-5ccf-4f04-ac9a-64082bf6d545')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_virtual_DNSs")
     @idempotent_id('a7dd2c9e-e1eb-4dc4-ac70-4d48a291a3bf')
@@ -99,7 +96,6 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_dns()
 
-    @decorators.idempotent_id('3581ee83-498c-4d57-b0b4-079a6e197b00')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_virtual_DNS")
     @idempotent_id('ffc0fc82-3bff-48ab-b65a-3d90b4a3154d')
@@ -112,7 +108,6 @@
             self.virtual_dns_client.show_virtual_dns(
                 dns['virtual-DNS']['uuid'])
 
-    @decorators.idempotent_id('e96aa8ba-4ece-4aed-b644-9dd120bfebba')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_virtual_DNS")
     @idempotent_id('4793caa1-7707-4123-b1b4-c3feae91312f')
@@ -125,7 +120,6 @@
             self.virtual_dns_client.delete_virtual_dns(
                 dns['virtual-DNS']['uuid'])
 
-    @decorators.idempotent_id('30abbf69-f415-42a7-b48e-05dd04d86054')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_virtual_DNS")
     @idempotent_id('2bc43935-57c1-4bf6-9868-78ccfce164bb')
@@ -144,7 +138,6 @@
                 virtual_DNS_data=virtual_dns_data,
                 display_name=display_name)
 
-    @decorators.idempotent_id('dc10131d-d432-4251-bc95-dae08f0fd865')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_virtual_DNS_records")
     @idempotent_id('e9103999-2f02-4f04-a8a0-906ca4fb394d')
@@ -155,7 +148,6 @@
         with self.rbac_utils.override_role(self):
             self.virtual_dns_client.list_virtual_dns_records()
 
-    @decorators.idempotent_id('60923321-d8d7-442e-8a8f-97a0669a9440')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_virtual_DNS_records")
     @idempotent_id('bd9f3992-0ce4-4477-97a0-1271bc8ad9ef')
@@ -168,7 +160,6 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_dns_record(dns)
 
-    @decorators.idempotent_id('53b57fa1-6834-42ae-8e5d-b4059bfdc533')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_virtual_DNS_record")
     @idempotent_id('fa3d1a2b-d788-4623-89a4-3a9ed1db7a7d')
@@ -183,7 +174,6 @@
             self.virtual_dns_client.show_virtual_dns_record(
                 dns_record['virtual-DNS-record']['uuid'])
 
-    @decorators.idempotent_id('51946356-0d9e-47a7-a6c2-748160ccd09a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_virtual_DNS_record")
     @idempotent_id('de31e867-c997-4b4c-a095-43c647f5c192')
@@ -198,7 +188,6 @@
             self.virtual_dns_client.delete_virtual_dns_record(
                 dns_record['virtual-DNS-record']['uuid'])
 
-    @decorators.idempotent_id('0b5e0c65-b494-4cd0-9c6b-31871afd0459')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_virtual_DNS_record")
     @idempotent_id('65acef26-646f-4b36-923c-8a1d07e90c5c')
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 f3805d9..41def77 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -57,7 +56,6 @@
         }
         self.virtual_ip_client.update_virtual_ip(virtual_ip_uuid, **put_body)
 
-    @decorators.idempotent_id('727c2b91-5a46-45ab-8c17-9c57db3c2ec0')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_virtual_ips")
     @idempotent_id('92303eee-bd96-48bc-a02c-39950bd19a21')
@@ -68,7 +66,6 @@
         with self.rbac_utils.override_role(self):
             self.virtual_ip_client.list_virtual_ips()
 
-    @decorators.idempotent_id('f49281de-9b72-4309-bb27-f39a35d0c089')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_virtual_ips")
     @idempotent_id('e0070888-995d-46ab-91fc-db1412eba2f7')
@@ -79,7 +76,6 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_ip()
 
-    @decorators.idempotent_id('55eca817-1a06-47f9-8a74-c25059ce577a')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_virtual_ip")
     @idempotent_id('2a4b3abd-c6f7-4d82-aa31-02e53d2a8fb9')
@@ -91,7 +87,6 @@
         with self.rbac_utils.override_role(self):
             self.virtual_ip_client.show_virtual_ip(virtual_ip_uuid)
 
-    @decorators.idempotent_id('d3c15795-efbf-4f7c-912b-565ca0b922aa')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_virtual_ip")
     @idempotent_id('0e975c92-62dc-4e6e-82cc-8cf37da3c5b2')
@@ -103,7 +98,6 @@
         with self.rbac_utils.override_role(self):
             self._update_virtual_ip(virtual_ip_uuid)
 
-    @decorators.idempotent_id('c6a801f0-229e-4b34-a5fe-8643896af7ad')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_virtual_ip")
     @idempotent_id('fd0b2635-36bd-4345-97b7-9c0a57372eba')
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 1a28c0b..609256a 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -104,7 +103,6 @@
                                  cls.ipam['uuid'])
         super(VMContrailTest, cls).resource_cleanup()
 
-    @decorators.idempotent_id('7ec8a994-ffd5-487f-a60c-c2c485ed2034')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_virtual_machine_interfaces")
     @idempotent_id('e27d1fae-7324-4ef3-87b1-e7f519b1e2a7')
@@ -116,7 +114,6 @@
         with self.rbac_utils.override_role(self):
             self.vm_client.list_virtual_machine_interfaces()
 
-    @decorators.idempotent_id('122de483-2186-4548-bdec-6288360b2ff1')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_virtual_machine_interfaces")
     @idempotent_id('d8a3a524-d61b-4bcb-8146-c5d4f308df8e')
@@ -127,7 +124,6 @@
         with self.rbac_utils.override_role(self):
             self._create_virual_machine_interface()
 
-    @decorators.idempotent_id('f71b4312-36ac-4cc0-8c15-2693432f3b1e')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_virtual_machine_interface")
     @idempotent_id('3f17125a-9060-4c4a-a23f-0fe2aba2ccef')
@@ -139,7 +135,6 @@
         with self.rbac_utils.override_role(self):
             self.vm_client.show_virtual_machine_interface(test['uuid'])
 
-    @decorators.idempotent_id('1fc77746-c77c-4182-bfb3-a37b9220c43c')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_virtual_machine_interface")
     @idempotent_id('ce7f9471-ba1b-40d2-94f1-bdd0c610e22f')
@@ -151,7 +146,6 @@
         with self.rbac_utils.override_role(self):
             self.vm_client.delete_vm_interface(body['uuid'])
 
-    @decorators.idempotent_id('bad1b37b-0020-406b-9eeb-77c909c4d1ea')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_virtual_machine_interface")
     @idempotent_id('7ca3046a-6245-4c15-914b-5a8ecdbeee11')
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 5f416b2..5d5d774 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
@@ -24,7 +24,6 @@
 from patrole_tempest_plugin import rbac_rule_validation
 
 from tempest import config
-from tempest.lib import decorators
 from tempest.lib.common.utils import data_utils
 from tempest.lib.decorators import idempotent_id
 
@@ -71,7 +70,6 @@
                         network['uuid'])
         return network
 
-    @decorators.idempotent_id('fac38c07-b603-4b20-af66-3288a52cb5ea')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="list_virtual_networks")
     @idempotent_id('375ebc8d-dc52-4d9c-877b-85aba35b1539')
@@ -82,7 +80,6 @@
         with self.rbac_utils.override_role(self):
             self.vn_client.list_virtual_networks()
 
-    @decorators.idempotent_id('d0f3035d-5761-4b99-accc-a56a62682fca')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="create_virtual_networks")
     @idempotent_id('375ebc8d-dc52-4d9c-877b-96aba35b2530')
@@ -93,7 +90,6 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_network()
 
-    @decorators.idempotent_id('abd79717-9b8e-4047-9412-53b1ee7673e7')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="update_virtual_network")
     @idempotent_id('375ebc8d-dc52-4d9c-566b-150a025c1237')
@@ -107,7 +103,6 @@
             self.vn_client.update_virtual_network(
                 uuid, router_external=False)
 
-    @decorators.idempotent_id('7df9df6a-2840-44e7-abca-41770d141992')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="delete_virtual_network")
     @idempotent_id('375ebc8d-dc52-4d9c-877b-17bcb53c3641')
@@ -119,7 +114,6 @@
         with self.rbac_utils.override_role(self):
             self.vn_client.delete_virtual_network(uuid)
 
-    @decorators.idempotent_id('39c1bea6-9f2f-4920-850b-be01cd0a4014')
     @rbac_rule_validation.action(service="Contrail",
                                  rules="show_virtual_network")
     @idempotent_id('375ebc8d-dc52-4d9c-877b-27c1a1242a81')
