diff --git a/tungsten_tempest_plugin/config.py b/tungsten_tempest_plugin/config.py
index b82299e..d1982ad 100644
--- a/tungsten_tempest_plugin/config.py
+++ b/tungsten_tempest_plugin/config.py
@@ -27,6 +27,9 @@
                          title='SDN service options')
 
 SDNGroup = [
+    cfg.StrOpt('service_name',
+               default='Contrail',
+               help="Name of contrail service in keystone catalog"),
     cfg.StrOpt('endpoint_type',
                default='publicURL',
                choices=['public', 'admin', 'internal',
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 4425cea..36d8713 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_access_control.py
@@ -77,7 +77,7 @@
                         new_ctrl_list['uuid'])
         return new_ctrl_list
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_api_access_lists")
     @idempotent_id('2bfde8fd-36fe-4e69-ba59-6f2db8941e7d')
     def test_list_api_access_lists(self):
@@ -87,7 +87,7 @@
         with self.rbac_utils.override_role(self):
             self.access_control_client.list_api_access_lists()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_api_access_lists")
     @idempotent_id('b2b5f50c-07d8-4d79-b9a4-78187ad97353')
     def test_create_api_access_lists(self):
@@ -97,7 +97,7 @@
         with self.rbac_utils.override_role(self):
             self._create_api_access_lists()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_api_access_list")
     @idempotent_id('b82e8e6b-83b5-424d-9652-ef6a34067f4f')
     def test_show_api_access_list(self):
@@ -109,7 +109,7 @@
             self.access_control_client.show_api_access_list(
                 new_api_list['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_api_access_list")
     @idempotent_id('edc88825-1e2e-47ff-b7b4-f68d6310fbad')
     def test_update_api_access_list(self):
@@ -123,7 +123,7 @@
                 new_api_list['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_api_access_list")
     @idempotent_id('f27d9044-95f2-4733-81ed-df9340dbd421')
     def test_delete_api_access_list(self):
@@ -135,7 +135,7 @@
             self.access_control_client.delete_api_access_list(
                 new_api_list['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_access_control_lists")
     @idempotent_id('c56a1338-a9d1-4286-8aeb-3a0d60d93037')
     def test_list_access_control_lists(self):
@@ -145,7 +145,7 @@
         with self.rbac_utils.override_role(self):
             self.access_control_client.list_access_control_lists()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_access_control_lists")
     @idempotent_id('9f225d2b-5376-42f5-97aa-cf63be47fa19')
     def test_create_access_control(self):
@@ -157,7 +157,7 @@
         with self.rbac_utils.override_role(self):
             self._create_access_control_lists(sec_group['name'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_access_control_list")
     @idempotent_id('f0ed882b-f3de-48b7-884a-637ee0b7d6b6')
     def test_show_access_control_list(self):
@@ -172,7 +172,7 @@
             self.access_control_client.show_access_control_list(
                 new_ctrl_list['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_access_control_list")
     @idempotent_id('9a4b3133-dd07-4a1a-b282-f7770c372fb8')
     def test_update_access_control_list(self):
@@ -188,7 +188,7 @@
                 new_ctrl_list['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_access_control_list")
     @idempotent_id('36a8ace1-71ca-4c7c-8667-d8387d6f964a')
     def test_delete_access_control_list(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py b/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
index 3996b9f..a191f45 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_alarm.py
@@ -88,7 +88,7 @@
         }
         self.alarm_client.update_alarm(alarm_uuid, **put_body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_alarms")
     @idempotent_id('dc7d19dd-dd5e-4ec8-bf0c-c6d9d83a60a8')
     def test_list_alarms(self):
@@ -98,7 +98,7 @@
         with self.rbac_utils.override_role(self):
             self.alarm_client.list_alarms()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_alarms")
     @idempotent_id('7fe55d0c-e54a-4bb7-95a6-9c53f9e9c4bf')
     def test_create_alarms(self):
@@ -110,7 +110,7 @@
         with self.rbac_utils.override_role(self):
             self._create_alarm(global_system_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_alarm")
     @idempotent_id('ab0ccbe4-7bfe-4176-890a-d438ee04290d')
     def test_show_alarm(self):
@@ -123,7 +123,7 @@
         with self.rbac_utils.override_role(self):
             self.alarm_client.show_alarm(alarm_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_alarm")
     @idempotent_id('ab331cca-ee53-4106-9b30-7319bfb1bea7')
     def test_update_alarm(self):
@@ -136,7 +136,7 @@
         with self.rbac_utils.override_role(self):
             self._update_alarm(alarm_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_alarm")
     @idempotent_id('84fadb14-77c0-4f21-b5b2-1da7a2fd27e6')
     def test_delete_alarm(self):
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 6db7ad9..69da2d3 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_alias_ip.py
@@ -114,7 +114,7 @@
                         new_alias_ip['uuid'])
         return new_alias_ip
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_alias_ips")
     @idempotent_id('899d6824-0755-41ef-adef-03eb1858bcb0')
     def test_list_alias_ips(self):
@@ -124,7 +124,7 @@
         with self.rbac_utils.override_role(self):
             self.alias_ip_client.list_alias_ips()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_alias_ips")
     @idempotent_id('bc9aae29-22a8-4eed-a31f-c0ded300e3a3')
     def test_create_alias_ips(self):
@@ -135,7 +135,7 @@
         with self.rbac_utils.override_role(self):
             self._create_alias_ips(new_alias_ip_pool, '2.2.3.1')
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_alias_ip")
     @idempotent_id('d20318b1-c204-44e7-a44c-66f6a1fbe7a0')
     def test_show_alias_ip(self):
@@ -148,7 +148,7 @@
             self.alias_ip_client.show_alias_ip(
                 new_alias_ip['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_alias_ip")
     @idempotent_id('c237b18f-d899-4b80-8e9b-068244a24612')
     def test_update_alias_ip(self):
@@ -163,7 +163,7 @@
                 new_alias_ip['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_alias_ip")
     @idempotent_id('456c641c-9066-4125-8dec-d1529ad8f1ba')
     def test_delete_alias_ip(self):
@@ -176,7 +176,7 @@
             self.alias_ip_client.delete_alias_ip(
                 new_alias_ip['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_alias_ip_pools")
     @idempotent_id('ffe85f35-589a-4b90-a1d3-6aed92a85954')
     def test_list_alias_ip_pools(self):
@@ -186,7 +186,7 @@
         with self.rbac_utils.override_role(self):
             self.alias_ip_client.list_alias_ip_pools()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_alias_ip_pools")
     @idempotent_id('83abd2c0-d46a-4337-87d0-31cdb86e4226')
     def test_create_alias_ip_pools(self):
@@ -196,7 +196,7 @@
         with self.rbac_utils.override_role(self):
             self._create_alias_ip_pools()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_alias_ip_pool")
     @idempotent_id('a1cbe111-ccba-4fa4-ba59-7d1ee08a15db')
     def test_show_alias_ip_pool(self):
@@ -208,7 +208,7 @@
             self.alias_ip_client.show_alias_ip_pool(
                 new_alias_ip_pool['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_alias_ip_pool")
     @idempotent_id('7f3448d7-22f1-4808-b3eb-15eeb3f079aa')
     def test_update_alias_ip_pool(self):
@@ -222,7 +222,7 @@
                 new_alias_ip_pool['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_alias_ip_pool")
     @idempotent_id('f59ea4fb-d10f-40c8-a8fa-dcd948ca89c8')
     def test_delete_alias_ip_pool(self):
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 96090ff..9d94dba 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_analytics_node.py
@@ -65,7 +65,7 @@
                         new_node['uuid'])
         return new_node
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_analytics_nodes")
     @idempotent_id('d3002e37-4b42-446d-b144-1b53f0dadfd3')
     def test_list_analytics_nodes(self):
@@ -75,7 +75,7 @@
         with self.rbac_utils.override_role(self):
             self.analytics_node_client.list_analytics_nodes()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_analytics_node")
     @idempotent_id('b51043fd-77ba-4312-b96f-569ed5153338')
     def test_show_analytics_node(self):
@@ -88,7 +88,7 @@
         with self.rbac_utils.override_role(self):
             self.analytics_node_client.show_analytics_node(new_node['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_analytics_nodes")
     @idempotent_id('c57482c9-fcb4-4f41-95b0-7f0ffeee3dc3')
     def test_create_analytics_nodes(self):
@@ -100,7 +100,7 @@
         with self.rbac_utils.override_role(self):
             self._create_analytics_node(global_system_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_analytics_node")
     @idempotent_id('ff50a2df-6283-409e-ab03-c13b63acc8a0')
     def test_update_analytics_node(self):
@@ -115,7 +115,7 @@
             self.analytics_node_client.update_analytics_node(
                 new_node['uuid'], display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_analytics_node")
     @idempotent_id('972f997a-c89f-4227-8ae9-5a2335ec0b0a')
     def test_delete_analytics_node(self):
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 ef10c00..950af4c 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_attachments_client.py
@@ -61,7 +61,7 @@
                         new_customer['uuid'])
         return new_customer
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_provider_attachments")
     @idempotent_id('961dbf54-ae4f-42e8-9d27-69fa7df39013')
     def test_list_provider_attachments(self):
@@ -71,7 +71,7 @@
         with self.rbac_utils.override_role(self):
             self.attachments_client.list_provider_attachments()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_provider_attachments")
     @idempotent_id('73ad032e-3e81-4dcc-be55-1987484207cd')
     def test_create_providerattach(self):
@@ -81,7 +81,7 @@
         with self.rbac_utils.override_role(self):
             self._create_provider_attachments()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_provider_attachment")
     @idempotent_id('7b5278bc-dd79-495a-9f74-448c04f52bd2')
     def test_show_provider_attachment(self):
@@ -93,7 +93,7 @@
             self.attachments_client.show_provider_attachment(
                 new_provider['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_provider_attachment")
     @idempotent_id('3516ff99-eddf-4932-afa4-433a43a0e5ac')
     def test_update_provider_attachment(self):
@@ -107,7 +107,7 @@
                 new_provider['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_provider_attachment")
     @idempotent_id('234d5505-2abf-418b-b43b-ea6f5a724fd3')
     def test_delete_provider_attachment(self):
@@ -119,7 +119,7 @@
             self.attachments_client.delete_provider_attachment(
                 new_provider['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_customer_attachments")
     @idempotent_id('3eca8fd8-ec3c-4a0e-8f62-b15d28796b7f')
     def test_list_customer_attachments(self):
@@ -129,7 +129,7 @@
         with self.rbac_utils.override_role(self):
             self.attachments_client.list_customer_attachments()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_customer_attachments")
     @idempotent_id('53f93053-554c-4202-b763-0230d9a0553a')
     def test_create_customerattachments(self):
@@ -139,7 +139,7 @@
         with self.rbac_utils.override_role(self):
             self._create_customer_attachments()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_customer_attachment")
     @idempotent_id('c6671540-695c-4cba-bcee-4a5d1cddd412')
     def test_show_customer_attachment(self):
@@ -151,7 +151,7 @@
             self.attachments_client.show_customer_attachment(
                 new_customer['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_customer_attachment")
     @idempotent_id('50419cca-dd03-4d02-9c06-88446647fcba')
     def test_update_customer_attachment(self):
@@ -165,7 +165,7 @@
                 new_customer['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_customer_attachment")
     @idempotent_id('5385c275-8e86-4739-9cb6-d1e0ed522807')
     def test_delete_customer_attachment(self):
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 723dce8..900d563 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
@@ -45,7 +45,7 @@
                         new_bgp['uuid'])
         return new_bgp
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_bgp_as_a_services")
     @idempotent_id('d3153cd0-379e-4e62-9780-ef237e567fc5')
     def test_list_bgp_as_a_services(self):
@@ -55,7 +55,7 @@
         with self.rbac_utils.override_role(self):
             self.bgp_as_a_service_client.list_bgp_as_a_services()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_bgp_as_a_services")
     @idempotent_id('a039f0c4-b53a-492b-a5c5-fbdf046afcf4')
     def test_create_bgp_as_a_services(self):
@@ -65,7 +65,7 @@
         with self.rbac_utils.override_role(self):
             self._create_bgp_as_a_services()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_bgp_as_a_service")
     @idempotent_id('c2fae8b4-929c-4d2f-914d-76a7414a56dc')
     def test_show_bgp_as_a_service(self):
@@ -77,7 +77,7 @@
             self.bgp_as_a_service_client.show_bgp_as_a_service(
                 new_bgp['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_bgp_as_a_service")
     @idempotent_id('78c8389a-7bb5-4027-bae1-923af3d6e77c')
     def test_delete_bgp_as_a_service(self):
@@ -89,7 +89,7 @@
             self.bgp_as_a_service_client.delete_bgp_as_a_service(
                 new_bgp['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_bgp_as_a_service")
     @idempotent_id('38ba2ecb-71e2-4a2f-be43-e82491dffa05')
     def test_update_bgp_as_a_service(self):
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 ea39ef2..d8b7b24 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_config_client.py
@@ -59,7 +59,7 @@
                             config_node_id)
         return config_node
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_config_nodes")
     @idempotent_id('b560e060-e4f0-45b0-93e2-55f0cb201e06')
     def test_list_config_nodes(self):
@@ -69,7 +69,7 @@
         with self.rbac_utils.override_role(self):
             self.config_client.list_config_nodes()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_config_nodes")
     @idempotent_id('a8d20d0d-dc5a-4cae-87c5-7f6914c3701e')
     def test_create_config_nodes(self):
@@ -79,7 +79,7 @@
         with self.rbac_utils.override_role(self):
             self._create_config_node()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_config_node")
     @idempotent_id('16573a85-57ab-418c-bb23-5dd936e7be90')
     def test_delete_config_node(self):
@@ -92,7 +92,7 @@
             self.config_client.delete_config_node(
                 config_node_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_config_node")
     @idempotent_id('a5b17108-4fa3-4d09-b861-e2857aab8f80')
     def test_show_config_node(self):
@@ -104,7 +104,7 @@
         with self.rbac_utils.override_role(self):
             self.config_client.show_config_node(config_node_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_config_node")
     @idempotent_id('8f70d2c0-594b-4a94-ab15-88bd8a2e62e5')
     def test_update_config_node(self):
@@ -137,7 +137,7 @@
                             config_root_uuid)
         return config_root
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_config_roots")
     @idempotent_id('291b28ea-d0d8-47cd-ac76-1f980047cb76')
     def test_create_config_roots(self):
@@ -147,7 +147,7 @@
         with self.rbac_utils.override_role(self):
             self._create_config_root()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_config_root")
     @idempotent_id('bd04c0fb-3deb-4904-ad2c-1a10933c30dd')
     def test_delete_config_root(self):
@@ -160,7 +160,7 @@
             self.config_client.delete_config_root(
                 config_root_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_config_root")
     @idempotent_id('fba2c419-9a83-4d88-9a26-84770544bb3f')
     def test_show_config_root(self):
@@ -172,7 +172,7 @@
         with self.rbac_utils.override_role(self):
             self.config_client.show_config_root(config_root_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_config_root")
     @idempotent_id('bfcc074f-5e1c-4b45-8a2a-857239f8acb0')
     def test_update_config_root(self):
@@ -186,7 +186,7 @@
             self.config_client.update_config_root(
                 config_root_uuid, display_name=updated_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_config_roots")
     @idempotent_id('316e7425-8fb0-41b4-9080-a76697abbafa')
     def test_list_config_roots(self):
@@ -218,7 +218,7 @@
                         new_config['uuid'])
         return new_config
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_global_system_configs")
     @idempotent_id('d1d189a7-14c1-49c5-b180-cd42ed2ca123')
     def test_list_global_system_configs(self):
@@ -228,7 +228,7 @@
         with self.rbac_utils.override_role(self):
             self.config_client.list_global_system_configs()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_global_system_configs")
     @idempotent_id('e0ba6a20-3e28-47ac-bf95-9a848fcee49a')
     def test_create_global_sys_configs(self):
@@ -238,7 +238,7 @@
         with self.rbac_utils.override_role(self):
             self._create_global_system_config()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_global_system_config")
     @idempotent_id('4b9f9131-cb34-4b7d-9d06-c6aca85cce3a')
     def test_show_global_system_config(self):
@@ -250,7 +250,7 @@
             self.config_client.show_global_system_config(
                 new_config['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_global_system_config")
     @idempotent_id('4f90dc83-da59-45a4-8ab6-b387bd6c2df4')
     def test_update_global_sys_config(self):
@@ -264,7 +264,7 @@
                 new_config['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_global_system_config")
     @idempotent_id('fce1653c-e657-4a1e-8ced-7e02d297d6c9')
     def test_delete_global_sys_config(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_database.py b/tungsten_tempest_plugin/tests/api/contrail/test_database.py
index e9c6b93..97cadc7 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_database.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_database.py
@@ -71,7 +71,7 @@
                         db_node['uuid'])
         return db_node
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_database_nodes")
     @idempotent_id('5ae6f965-6161-443f-b19e-dfa7b364c533')
     def test_list_database_nodes(self):
@@ -84,7 +84,7 @@
         with self.rbac_utils.override_role(self):
             self.db_client.list_database_nodes()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_database_node")
     @idempotent_id('4a07d9a8-7b99-43bd-b628-06c023993aab')
     def test_show_database_node(self):
@@ -98,7 +98,7 @@
         with self.rbac_utils.override_role(self):
             self.db_client.show_database_node(db_node_id)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_database_nodes")
     @idempotent_id('b9aa9c6b-9381-44f0-94fb-e4523bf2a87e')
     def test_create_database_nodes(self):
@@ -110,7 +110,7 @@
         with self.rbac_utils.override_role(self):
             self._create_database_node(global_system_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_database_node")
     @idempotent_id('6e59f393-0e55-4327-871e-7f0ad53f2e17')
     def test_update_database_node(self):
@@ -127,7 +127,7 @@
                 db_node_id=db_node_id,
                 display_name=display_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_database_node")
     @idempotent_id('0cbc5a52-d7e7-4a1c-a85d-6bf44012d99b')
     def test_delete_database_node(self):
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 cd1fc85..f8209e0 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
@@ -44,7 +44,7 @@
                         new_dsa['uuid'])
         return new_dsa
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_discovery_service_assignments")
     @idempotent_id('9ac1e4ca-8983-403f-b644-7758935f2f36')
     def test_list_discovery_service(self):
@@ -54,7 +54,7 @@
         with self.rbac_utils.override_role(self):
             self.dsa_client.list_ds_assignments()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_discovery_service_assignments")
     @idempotent_id('40ad1208-a039-4809-8516-41b4dfcbd00c')
     def test_create_discovery_service(self):
@@ -64,7 +64,7 @@
         with self.rbac_utils.override_role(self):
             self._create_discovery_service_assignments()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_discovery_service_assignment")
     @idempotent_id('63660fe9-22b8-456c-a757-a7da1abfbce8')
     def test_show_discovery_service(self):
@@ -75,7 +75,7 @@
         with self.rbac_utils.override_role(self):
             self.dsa_client.show_ds_assignment(new_dsa['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_discovery_service_assignment")
     @idempotent_id('71ce1404-965b-4670-abb7-5b6fea3b24b7')
     def test_update_discovery_service(self):
@@ -90,7 +90,7 @@
                 fq_name=new_dsa['fq_name'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_discovery_service_assignment")
     @idempotent_id('e7ff845d-2140-4eb0-9720-26370459723b')
     def test_delete_discovery_service(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_domain.py b/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
index d77ba98..8e74adf 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_domain.py
@@ -56,7 +56,7 @@
         }
         self.domain_client.update_domain(domain_uuid, **put_body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_domains")
     @idempotent_id('fa02e27b-f661-4186-a522-69e8fcb6abf9')
     def test_list_domains(self):
@@ -66,7 +66,7 @@
         with self.rbac_utils.override_role(self):
             self.domain_client.list_domains()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_domains")
     @idempotent_id('3f18be91-c37b-4e17-bf5e-b704d993f738')
     def test_create_domains(self):
@@ -76,7 +76,7 @@
         with self.rbac_utils.override_role(self):
             self._create_domains()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_domain")
     @idempotent_id('e79f8581-ba9f-420a-aa26-f1cb51cf4bbf')
     def test_show_domain(self):
@@ -87,7 +87,7 @@
         with self.rbac_utils.override_role(self):
             self.domain_client.show_domain(domain_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_domain")
     @idempotent_id('fdf72539-20b5-4bdb-b22b-70c86fbb52a4')
     def test_update_domain(self):
@@ -98,7 +98,7 @@
         with self.rbac_utils.override_role(self):
             self._update_domain(domain_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_domain")
     @idempotent_id('abaad2b0-6bde-40b8-b257-20ca805c1dca')
     def test_delete_domain(self):
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 c234e94..95ed9a9 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_dsa_rule.py
@@ -60,7 +60,7 @@
                         new_rule['uuid'])
         return new_rule
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_dsa_rules")
     @idempotent_id('3227673b-96fc-4d26-ab0b-109347e9e9c2')
     def test_list_dsa_rules(self):
@@ -70,7 +70,7 @@
         with self.rbac_utils.override_role(self):
             self.dsa_rule_client.list_dsa_rules()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_dsa_rule")
     @idempotent_id('0f90ea4f-c050-4c31-93a7-1e0c58df914e')
     def test_show_dsa_rule(self):
@@ -84,7 +84,7 @@
         with self.rbac_utils.override_role(self):
             self.dsa_rule_client.show_dsa_rule(new_rule['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_dsa_rules")
     @idempotent_id('c3774ca3-45d0-4ca8-a6b3-f895441b1d0e')
     def test_create_dsa_rules(self):
@@ -97,7 +97,7 @@
         with self.rbac_utils.override_role(self):
             self._create_dsa_rules(discovery_service_assignment)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_dsa_rule")
     @idempotent_id('5cfe7e8e-d91c-4183-8e6c-733e826707be')
     def test_update_dsa_rule(self):
@@ -113,7 +113,7 @@
             self.dsa_rule_client.update_dsa_rule(
                 new_rule['uuid'], display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_dsa_rule")
     @idempotent_id('d3b869db-fa49-48f0-861a-08efd9879b15')
     def test_delete_dsa_rule(self):
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 16813a0..ee325bc 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_floating_ip.py
@@ -113,7 +113,7 @@
 
         return fip_pool
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_floating_ip_pools")
     @idempotent_id('a83ca5e8-be4b-4161-869c-f981a724cf82')
     def test_create_floating_ip_pools(self):
@@ -123,7 +123,7 @@
         with self.rbac_utils.override_role(self):
             self._create_floating_ip_pool()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_floating_ip_pools")
     @idempotent_id('9d20e78d-0463-4a0e-b30c-40770bee35bc')
     def test_list_floating_ip_pools(self):
@@ -134,7 +134,7 @@
         with self.rbac_utils.override_role(self):
             self.fip_client.list_floating_ip_pools()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_floating_ip_pool")
     @idempotent_id('1ec3124c-c15c-4ee6-b2de-2feed9599e38')
     def test_show_floating_ip_pool(self):
@@ -145,7 +145,7 @@
         with self.rbac_utils.override_role(self):
             self.fip_client.show_floating_ip_pool(uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_floating_ip_pool")
     @idempotent_id('6563f2e7-ae6b-483b-8c07-0111efc86817')
     def test_update_floating_ip_pool(self):
@@ -158,7 +158,7 @@
                 uuid,
                 display_name='rbac-fip-pool-new-name')
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_floating_ip_pool")
     @idempotent_id('c4b449ae-2f12-49cf-9dec-2b21c143aff6')
     def test_delete_floating_ip_pool(self):
@@ -209,7 +209,7 @@
                         fip['uuid'])
         return fip
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_floating_ips")
     @idempotent_id('ff05f70f-9db9-43cb-a5ce-38cbbef2c430')
     def test_create_floating_ips(self):
@@ -219,7 +219,7 @@
         with self.rbac_utils.override_role(self):
             self._create_floating_ip()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_floating_ips")
     @idempotent_id('e56046f9-32f9-41ce-9c1b-b982997ac347')
     def test_list_floating_ips(self):
@@ -230,7 +230,7 @@
         with self.rbac_utils.override_role(self):
             self.fip_client.list_floating_ips()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_floating_ip")
     @idempotent_id('293f2c26-4101-4a2f-86d4-feb2878bd511')
     def test_show_floating_ip(self):
@@ -241,7 +241,7 @@
         with self.rbac_utils.override_role(self):
             self.fip_client.show_floating_ip(uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_floating_ip")
     @idempotent_id('a09283c9-73d3-42f7-876d-f33040686d6d')
     def test_update_floating_ip(self):
@@ -254,7 +254,7 @@
                 uuid,
                 display_name='rbac-fip-new-name')
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_floating_ip")
     @idempotent_id('a26f162f-da56-4153-aed6-bffccba92bc7')
     def test_delete_floating_ip(self):
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 ba805d0..6f642f9 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_forwarding_class.py
@@ -85,7 +85,7 @@
                         new_fclass['uuid'])
         return new_fclass
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_forwarding_classs")
     @idempotent_id('807a66fd-d4a4-472c-a13d-7ba590509e6e')
     def test_list_forwarding_classs(self):
@@ -95,7 +95,7 @@
         with self.rbac_utils.override_role(self):
             self.forwarding_class_client.list_forwarding_classs()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_forwarding_class")
     @idempotent_id('8ef21f71-72a4-4de9-af93-6e759aa463c0')
     def test_show_forwarding_class(self):
@@ -113,7 +113,7 @@
             self.forwarding_class_client.show_forwarding_class(
                 new_fclass['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_forwarding_classs")
     @idempotent_id('d098859c-ad36-4385-8fb0-c00934a99b6f')
     def test_create_forwarding_classs(self):
@@ -129,7 +129,7 @@
             self._create_forwarding_class(global_system_config,
                                           global_qos_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_forwarding_class")
     @idempotent_id('589dc03d-a25d-48be-9d9c-d3f92ff2cfc6')
     def test_update_forwarding_class(self):
@@ -148,7 +148,7 @@
             self.forwarding_class_client.update_forwarding_class(
                 new_fclass['uuid'], display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_forwarding_class")
     @idempotent_id('a0348ffc-68c5-4d94-ba03-d08483503ced')
     def test_delete_forwarding_class(self):
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 f2d91c0..e8c8a3c 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_fqname_id.py
@@ -54,7 +54,7 @@
                                  cls.network['uuid'])
         super(FqnameIdTest, cls).resource_cleanup()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="fqname_to_id")
     @idempotent_id('1fc1350b-3146-49bc-9af5-a61a98b55541')
     def test_fqname_to_id(self):
@@ -65,7 +65,7 @@
             self.fq_client.fqname_to_id(fq_name=self.network['fq_name'],
                                         type=self.type)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="id_to_fqname")
     @idempotent_id('ecdd77d7-8508-4639-86cd-b97907b363ff')
     def test_id_to_fqname(self):
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 c5d6b48..d242ffd 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_instance_ip.py
@@ -105,7 +105,7 @@
                         iip['uuid'])
         return iip
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_instance_ips")
     @idempotent_id('31db3b3f-c40b-4f7f-bb8b-0a110f099553')
     def test_list_instance_ips(self):
@@ -116,7 +116,7 @@
         with self.rbac_utils.override_role(self):
             self.iip_client.list_instance_ips()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_instance_ips")
     @idempotent_id('78f5cd4d-345d-4d87-8b8b-4d5d3fec4a12')
     def test_create_instance_ips(self):
@@ -126,7 +126,7 @@
         with self.rbac_utils.override_role(self):
             self._create_instance_ip()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_instance_ip")
     @idempotent_id('276f3838-d9cb-4432-bbb4-db31c4c1db5c')
     def test_show_instance_ip(self):
@@ -137,7 +137,7 @@
         with self.rbac_utils.override_role(self):
             self.iip_client.show_instance_ip(uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_instance_ip")
     @idempotent_id('b85975a5-176f-44b1-a615-b6f0a39a7708')
     def test_update_instance_ip(self):
@@ -150,7 +150,7 @@
                 uuid,
                 display_name='rbac-iip-new-name')
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_instance_ip")
     @idempotent_id('d9c1d400-1dfb-4adb-8d97-0e8b498226b7')
     def test_delete_instance_ip(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py b/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
index 32a9703..9115fc2 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_interfaces.py
@@ -93,7 +93,7 @@
                         logical_if['uuid'])
         return logical_if
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_physical_interfaces")
     @idempotent_id('c496a2b4-51b2-4674-a60e-483a315baccb')
     def test_list_physical_interfaces(self):
@@ -103,7 +103,7 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.list_physical_interfaces()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_physical_interfaces")
     @idempotent_id('066f53d8-3d2a-4ad6-983f-243de7c12962')
     def test_create_physical_interfaces(self):
@@ -115,7 +115,7 @@
         with self.rbac_utils.override_role(self):
             self._create_physical_interface()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_physical_interface")
     @idempotent_id('91c4fc90-ed0f-42ec-87c6-ff6c2a9ab8de')
     def test_update_physical_interface(self):
@@ -135,7 +135,7 @@
             self.interface_client.update_physical_interface(
                 uuid, **body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_physical_interface")
     @idempotent_id('5d77ea76-be8c-49cc-8f08-72fbdaf9028f')
     def test_delete_physical_interface(self):
@@ -148,7 +148,7 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.delete_physical_interface(uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_physical_interface")
     @idempotent_id('2c75c7e7-ef34-4e24-9c2f-5a2182db33a6')
     def test_show_physical_interface(self):
@@ -160,7 +160,7 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.show_physical_interface(uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_logical_interfaces")
     @idempotent_id('43ac3727-4a43-42d7-b52f-df75018915b9')
     def test_list_logical_interfaces(self):
@@ -170,7 +170,7 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.list_logical_interfaces()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_logical_interfaces")
     @idempotent_id('503facf2-0752-47e4-a0a4-7a3103133a61')
     def test_create_logical_interfaces(self):
@@ -182,7 +182,7 @@
         with self.rbac_utils.override_role(self):
             self._create_logical_interface()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_logical_interface")
     @idempotent_id('63c991f4-6aba-454c-9c49-522dc77b3f5c')
     def test_update_logical_interface(self):
@@ -203,7 +203,7 @@
             self.interface_client.update_logical_interface(
                 uuid, **body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_logical_interface")
     @idempotent_id('a36743d1-3ea1-4cf5-89d8-9c0b885fa625')
     def test_delete_logical_interface(self):
@@ -216,7 +216,7 @@
         with self.rbac_utils.override_role(self):
             self.interface_client.delete_logical_interface(uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_logical_interface")
     @idempotent_id('f0f7fab7-eeb9-4d29-8415-31a50180fb44')
     def test_show_logical_interface(self):
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 f19c4ce..647f053 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_load_balancer.py
@@ -172,7 +172,7 @@
     Test class to test load balancer objects using RBAC roles
     """
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_load_balancers")
     @idempotent_id('5d840b6b-3974-4945-916f-dd53ba27e42f')
     def test_list_load_balancers(self):
@@ -182,7 +182,7 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancers()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_load_balancers")
     @idempotent_id('6a18d506-0794-4eb9-a945-165bf146005d')
     def test_create_load_balancers(self):
@@ -192,7 +192,7 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_load_balancer")
     @idempotent_id('428012aa-cd0e-4702-89d2-459046d4bd5f')
     def test_show_load_balancer(self):
@@ -203,7 +203,7 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer(lb_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_load_balancer")
     @idempotent_id('7cd3d7b2-b149-40c1-a801-a6a8a660bd24')
     def test_update_load_balancer(self):
@@ -214,7 +214,7 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer(lb_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_load_balancer")
     @idempotent_id('b28c6b11-d1b0-45d0-8942-638b6b590702')
     def test_delete_load_balancer(self):
@@ -232,7 +232,7 @@
     Test class to test load balancer Health Monitor objects using RBAC roles
     """
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_load_balancer_health_monitors")
     @idempotent_id('3e3d8bdc-3621-4c5e-8130-1187f445a4e6')
     def test_list_lb_health_monitors(self):
@@ -242,7 +242,7 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_lb_healthmonitors()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_load_balancer_health_monitors")
     @idempotent_id('bddb93ad-d331-4bbc-bac6-2763cae4eb2c')
     def test_create_lb_health_monitors(self):
@@ -252,7 +252,7 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_health_monitor()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_load_balancer_health_monitor")
     @idempotent_id('30d23994-1e3a-4a76-8f18-e00d0854412a')
     def test_show_lb_health_monitor(self):
@@ -264,7 +264,7 @@
             self.load_balancer_client.show_lb_healthmonitor(
                 lb_hm_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_load_balancer_health_monitor")
     @idempotent_id('c32ba92c-3a69-4255-867a-1423c93faa6f')
     def test_update_lb_health_monitor(self):
@@ -275,7 +275,7 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_health_monitor(lb_hm_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_load_balancer_health_monitor")
     @idempotent_id('b4d7ea9d-fd8c-433b-96fc-c24866b3f6a7')
     def test_delete_lb_health_monitor(self):
@@ -294,7 +294,7 @@
     Base class to test load balancer Listener objects using RBAC roles
     """
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_load_balancer_listeners")
     @idempotent_id('7e02882f-0eab-41c2-b48a-bf71e083b912')
     def test_list_lb_listeners(self):
@@ -304,7 +304,7 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_listeners()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_load_balancer_listeners")
     @idempotent_id('0551de87-fa4c-463f-8968-ec6f2a6098d0')
     def test_create_lb_listeners(self):
@@ -314,7 +314,7 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_listener()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_load_balancer_listener")
     @idempotent_id('ade38959-9506-4262-8d3c-5ba5eb63d85f')
     def test_show_lb_listener(self):
@@ -326,7 +326,7 @@
             self.load_balancer_client.show_load_balancer_listener(
                 lb_listener_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_load_balancer_listener")
     @idempotent_id('e529e538-da31-4159-91c2-6c0a828282a4')
     def test_update_lb_listener(self):
@@ -337,7 +337,7 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_listener(lb_listener_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_load_balancer_listener")
     @idempotent_id('feaf3e9a-ffd1-4327-ad7a-35f9e9e4989b')
     def test_delete_lb_listener(self):
@@ -356,7 +356,7 @@
     Base class to test load balancer Pool objects using RBAC roles
     """
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_load_balancer_pools")
     @idempotent_id('3d177a9e-7067-4e9e-b4e8-0acc5887dff0')
     def test_list_load_balancer_pools(self):
@@ -366,7 +366,7 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_pools()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_load_balancer_pools")
     @idempotent_id('a52c6ec7-a996-4191-9a70-7879a211a711')
     def test_create_load_balancer_pools(self):
@@ -376,7 +376,7 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_pool()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_load_balancer_pool")
     @idempotent_id('7923da4e-53b1-4024-9a40-5bc91cee8e2d')
     def test_show_load_balancer_pool(self):
@@ -387,7 +387,7 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer_pool(lb_pool_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_load_balancer_pool")
     @idempotent_id('391c0c5e-c218-4c98-9b58-6d2724ec4c20')
     def test_update_load_balancer_pool(self):
@@ -398,7 +398,7 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_pool(lb_pool_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_load_balancer_pool")
     @idempotent_id('8b3617c0-4064-48f8-96b8-e2f996fce5c3')
     def test_delete_load_balancer_pool(self):
@@ -416,7 +416,7 @@
     Base class to test load balancer Member using RBAC roles
     """
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_load_balancer_members")
     @idempotent_id('b3c51463-8166-486a-a26e-0f7aeaa41e0f')
     def test_list_load_balancer_members(self):
@@ -426,7 +426,7 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.list_load_balancer_members()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_load_balancer_members")
     @idempotent_id('ad60688f-7a20-4dd5-8229-4076d85b9d55')
     def test_create_lb_members(self):
@@ -436,7 +436,7 @@
         with self.rbac_utils.override_role(self):
             self._create_load_balancer_member()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_load_balancer_member")
     @idempotent_id('917602ff-24d5-4a07-a6a6-5e5b9539bbf1')
     def test_show_load_balancer_member(self):
@@ -447,7 +447,7 @@
         with self.rbac_utils.override_role(self):
             self.load_balancer_client.show_load_balancer_member(lb_member_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_load_balancer_member")
     @idempotent_id('b1611005-5c77-4ac0-8fcc-4a035dfbaa84')
     def test_update_lb_member(self):
@@ -458,7 +458,7 @@
         with self.rbac_utils.override_role(self):
             self._update_load_balancer_member(lb_member_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_load_balancer_member")
     @idempotent_id('dc21883a-a822-4d39-b815-4dfd6b505b0b')
     def test_delete_lb_member(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py b/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
index fcab56e..a3b18ec 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_namespace.py
@@ -57,7 +57,7 @@
         }
         self.namespace_client.update_namespace(namespace_uuid, **put_body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_namespaces")
     @idempotent_id('e436390d-d669-4047-9838-421ea93e94be')
     def test_list_namespaces(self):
@@ -67,7 +67,7 @@
         with self.rbac_utils.override_role(self):
             self.namespace_client.list_namespaces()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_namespaces")
     @idempotent_id('503ae445-7e67-4db6-989a-af0b7f9a7e95')
     def test_create_namespaces(self):
@@ -77,7 +77,7 @@
         with self.rbac_utils.override_role(self):
             self._create_namespace()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_namespace")
     @idempotent_id('f916971a-7c07-4386-b887-8b78d8a1e528')
     def test_show_namespace(self):
@@ -88,7 +88,7 @@
         with self.rbac_utils.override_role(self):
             self.namespace_client.show_namespace(namespace_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_namespace")
     @idempotent_id('3649f65a-922a-4b8a-9b8b-520c333e192e')
     def test_update_namespace(self):
@@ -99,7 +99,7 @@
         with self.rbac_utils.override_role(self):
             self._update_namespace(namespace_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_namespace")
     @idempotent_id('80e736bf-fc7d-4274-8173-a50c883776a9')
     def test_delete_namespace(self):
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 9abddc6..d8e72a4 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_network_ipams.py
@@ -45,7 +45,7 @@
                         new_ipam['uuid'])
         return new_ipam
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_network_ipams")
     @idempotent_id('9ee2c4d8-3209-4ef8-86e1-0ecea2d4c5f2')
     def test_list_network_ipams(self):
@@ -55,7 +55,7 @@
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.list_network_ipams()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_network_ipams")
     @idempotent_id('ef2415ea-0810-413a-85a0-4508c9d7af91')
     def test_create_network_ipams(self):
@@ -65,7 +65,7 @@
         with self.rbac_utils.override_role(self):
             self._create_network_ipams()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_network_ipam")
     @idempotent_id('527b19e5-068a-44e3-b175-b504eafeec6e')
     def test_show_network_ipam(self):
@@ -76,7 +76,7 @@
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.show_network_ipam(new_ipam['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_network_ipam")
     @idempotent_id('118c1620-efb6-4cc6-8eb5-71bf8631d365')
     def test_delete_network_ipam(self):
@@ -87,7 +87,7 @@
         with self.rbac_utils.override_role(self):
             self.network_ipams_client.delete_network_ipam(new_ipam['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_network_ipam")
     @idempotent_id('44cbe2d9-583d-4215-964a-1c321f5e8d92')
     def test_update_network_ipam(self):
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 10abc2a..572c145 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_network_policy.py
@@ -58,7 +58,7 @@
         self.network_policy_client.update_network_policy(network_policy_uuid,
                                                          **put_body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_network_policys")
     @idempotent_id('fa2a28f3-a8bb-4908-95b9-1e11cf58b16f')
     def test_list_policys(self):
@@ -68,7 +68,7 @@
         with self.rbac_utils.override_role(self):
             self.network_policy_client.list_network_policys()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_network_policys")
     @idempotent_id('a30be228-afba-40c9-8678-ae020db68d79')
     def test_create_network_policys(self):
@@ -78,7 +78,7 @@
         with self.rbac_utils.override_role(self):
             self._create_policy()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_network_policy")
     @idempotent_id('6cefe92e-8936-49a6-bce0-12da3396e7ab')
     def test_show_network_policy(self):
@@ -89,7 +89,7 @@
         with self.rbac_utils.override_role(self):
             self.network_policy_client.show_network_policy(policy_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_network_policy")
     @idempotent_id('1d470505-3ad4-4870-87d7-3f0b0f9fc635')
     def test_update_network_policy(self):
@@ -100,7 +100,7 @@
         with self.rbac_utils.override_role(self):
             self._update_policy(policy_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_network_policy")
     @idempotent_id('aae9018f-e7a2-4a75-a68e-afd6c380640e')
     def test_delete_network_policy(self):
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 34ee131..82285a1 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_port_tuple.py
@@ -74,7 +74,7 @@
                         new_tuple['uuid'])
         return new_tuple
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_port_tuples")
     @idempotent_id('3789eef8-0e80-4057-b7b0-926655144beb')
     def test_list_port_tuples(self):
@@ -84,7 +84,7 @@
         with self.rbac_utils.override_role(self):
             self.port_tuple_client.list_port_tuples()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_port_tuple")
     @idempotent_id('ae5a90ed-5771-4680-be6b-c7626caa3a52')
     def test_show_port_tuple(self):
@@ -95,7 +95,7 @@
         with self.rbac_utils.override_role(self):
             self.port_tuple_client.show_port_tuple(new_tuple['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_port_tuples")
     @idempotent_id('0e2283da-fe25-4204-b5b3-fef3c200d0c8')
     def test_create_port_tuples(self):
@@ -105,7 +105,7 @@
         with self.rbac_utils.override_role(self):
             self._create_port_tuple()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_port_tuple")
     @idempotent_id('b16f19e2-ec8e-4107-961d-561890183dd0')
     def test_update_port_tuple(self):
@@ -118,7 +118,7 @@
             self.port_tuple_client.update_port_tuple(
                 new_tuple['uuid'], display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_port_tuple")
     @idempotent_id('3f28e8b8-f9de-437f-a398-0a11c7fcd652')
     def test_delete_port_tuple(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_project.py b/tungsten_tempest_plugin/tests/api/contrail/test_project.py
index 30312c5..ea6d045 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_project.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_project.py
@@ -57,7 +57,7 @@
         }
         self.project_client.update_project(project_uuid, **put_body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_projects")
     @idempotent_id('7db819fd-ceee-4a6b-9ad7-2e837c055bdd')
     def test_list_projects(self):
@@ -67,7 +67,7 @@
         with self.rbac_utils.override_role(self):
             self.project_client.list_projects()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_projects")
     @idempotent_id('38b9b7a8-1568-417d-b0a3-e7adee88e4b9')
     def test_create_projects(self):
@@ -77,7 +77,7 @@
         with self.rbac_utils.override_role(self):
             self._create_project()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_project")
     @idempotent_id('c47e57c4-34b0-46c2-a678-83b1fe9afd25')
     def test_show_project(self):
@@ -88,7 +88,7 @@
         with self.rbac_utils.override_role(self):
             self.project_client.show_project(project_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_project")
     @idempotent_id('3d4bd416-16cc-437c-9e95-f9ceda424f8b')
     def test_update_project(self):
@@ -99,7 +99,7 @@
         with self.rbac_utils.override_role(self):
             self._update_project(project_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_project")
     @idempotent_id('787ebe8b-b88d-4488-b157-f70554bdd783')
     def test_delete_project(self):
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 ab6d783..fb1abde 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_config.py
@@ -52,7 +52,7 @@
                         qos_config['uuid'])
         return qos_config
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_qos_configs")
     @idempotent_id('6bc44b34-14d4-4e0e-b45d-fe3df047879f')
     def test_list_qos_configs(self):
@@ -63,7 +63,7 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.list_qos_configs()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_qos_configs")
     @idempotent_id('031b4a27-22cd-4d93-938d-ba6d0f3163ba')
     def test_create_qos_configs(self):
@@ -73,7 +73,7 @@
         with self.rbac_utils.override_role(self):
             self._create_qos_configs()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_qos_config")
     @idempotent_id('a9d82b49-3492-4667-b252-ef30b0ee6eb3')
     def test_show_qos_config(self):
@@ -84,7 +84,7 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.show_qos_config(qos_config['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_qos_config")
     @idempotent_id('d324a5e6-cc86-4444-91a2-74592283a7ec')
     def test_delete_qos_config(self):
@@ -95,7 +95,7 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.delete_qos_config(qos_config['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_qos_config")
     @idempotent_id('7f1901a5-0cf0-40bd-98a5-f8a930b11cfe')
     def test_update_qos_config(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py b/tungsten_tempest_plugin/tests/api/contrail/test_qos_global_config.py
index a6e8f82..1325ab9 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
@@ -72,7 +72,7 @@
                         qos_global_config['uuid'])
         return qos_global_config
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_global_qos_configs")
     @idempotent_id('74e5a7b7-f538-4be3-90a5-6862b07fb118')
     def test_list_global_qos_configs(self):
@@ -85,7 +85,7 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.list_global_qos_configs()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_global_qos_configs")
     @idempotent_id('d7da1ca0-7bf7-4d1b-982c-820cd37fe9fa')
     def test_create_global_qos_configs(self):
@@ -97,7 +97,7 @@
         with self.rbac_utils.override_role(self):
             self._create_qos_global_configs(global_system_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_global_qos_config")
     @idempotent_id('e3bd44e0-19a9-46e7-83d3-268dcc537ad9')
     def test_show_global_qos_config(self):
@@ -110,7 +110,7 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.show_global_qos_config(instance_id=test['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_global_qos_config")
     @idempotent_id('f834c4d7-bc81-4c59-bada-c4d752219a6e')
     def test_update_global_qos_config(self):
@@ -126,7 +126,7 @@
                 instance_id=qos['uuid'],
                 display_name=display_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_global_qos_config")
     @idempotent_id('78b9a3da-4eb1-4f4b-8a23-a8a2e733b515')
     def test_delete_global_qos_config(self):
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 753a9ba..d0115ca 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_qos_queue.py
@@ -50,7 +50,7 @@
                         qos_queue['uuid'])
         return qos_queue
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_qos_queues")
     @idempotent_id('3d3a4397-2afe-4bbd-be59-56a1bcc2e49d')
     def test_list_qos_queues(self):
@@ -61,7 +61,7 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.list_qos_queues()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_qos_queues")
     @idempotent_id('d89c45f4-c83c-47b3-8720-7feffab4519c')
     def test_create_qos_queues(self):
@@ -71,7 +71,7 @@
         with self.rbac_utils.override_role(self):
             self._create_qos_queues()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_qos_queue")
     @idempotent_id('d2773d5c-9858-4938-8a77-62cafd5034da')
     def test_show_qos_queue(self):
@@ -82,7 +82,7 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.show_qos_queue(qos_queue['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_qos_queue")
     @idempotent_id('64c828d0-6594-472b-a504-40915067c7bd')
     def test_delete_qos_queue(self):
@@ -93,7 +93,7 @@
         with self.rbac_utils.override_role(self):
             self.qos_client.delete_qos_queue(qos_queue['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_qos_queue")
     @idempotent_id('0733ab1a-f5aa-4e70-a011-174aa203dc33')
     def test_update_qos_queue(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_route.py b/tungsten_tempest_plugin/tests/api/contrail/test_route.py
index db1b53f..06257c8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_route.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_route.py
@@ -54,7 +54,7 @@
                         route_table['uuid'])
         return route_table
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_route_tables")
     @idempotent_id('ca5a5d42-6e49-40e4-a5ac-de07b397b775')
     def test_list_route_tables(self):
@@ -65,7 +65,7 @@
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_tables()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_route_table")
     @idempotent_id('084a2759-991a-4ae2-bde4-8f9915966f6e')
     def test_show_route_table(self):
@@ -76,7 +76,7 @@
         with self.rbac_utils.override_role(self):
             self.route_client.show_route_table(route_table['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_route_tables")
     @idempotent_id('3fab8105-c0be-4c9e-be5f-d2dce4deb921')
     def test_create_route_tables(self):
@@ -86,7 +86,7 @@
         with self.rbac_utils.override_role(self):
             self._create_route_tables()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_route_table")
     @idempotent_id('2acee7ad-843e-40b0-b8f8-a6d90a51c6c8')
     def test_update_route_table(self):
@@ -100,7 +100,7 @@
                 route_id=route_table['uuid'],
                 display_name=display_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_route_table")
     @idempotent_id('20a5086c-ec9a-43e0-ae2c-4161c0f4b280')
     def test_delete_route_table(self):
@@ -135,7 +135,7 @@
                         interface_route_table['uuid'])
         return interface_route_table
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_interface_route_tables")
     @idempotent_id('b1f8f0a6-6074-4615-a439-19869a48bc49')
     def test_list_interface_route(self):
@@ -146,7 +146,7 @@
         with self.rbac_utils.override_role(self):
             self.route_client.list_interface_route_tables()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_interface_route_table")
     @idempotent_id('94703a28-5e33-4003-b95b-6a3cc5752fd4')
     def test_show_interface_route(self):
@@ -158,7 +158,7 @@
             self.route_client.show_interface_route_table(
                 interface_rte_table['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_interface_route_tables")
     @idempotent_id('b89ef437-4759-4c04-948b-d2ff9675ab07')
     def test_create_interface_route(self):
@@ -168,7 +168,7 @@
         with self.rbac_utils.override_role(self):
             self._create_interface_route_tables()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_interface_route_table")
     @idempotent_id('e9346d4f-7a07-41bc-8e88-e8ae9fa309ea')
     def test_update_interface_route(self):
@@ -182,7 +182,7 @@
                 interface_route_id=interface_rte_table['uuid'],
                 display_name=display_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_interface_route_table")
     @idempotent_id('b00444a5-cb4c-45bc-b393-503e9e333e98')
     def test_delete_interface_route(self):
@@ -218,7 +218,7 @@
                         route_target['uuid'])
         return route_target
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_route_targets")
     @idempotent_id('757efd07-8027-4a16-887a-1e42f16b4140')
     def test_list_route_targets(self):
@@ -229,7 +229,7 @@
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_targets()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_route_target")
     @idempotent_id('76c60d98-dd5e-453a-bf0e-7854f78a1a5e')
     def test_show_route_target(self):
@@ -240,7 +240,7 @@
         with self.rbac_utils.override_role(self):
             self.route_client.show_route_target(target['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_route_targets")
     @idempotent_id('fcdb4ebc-b92d-49f2-88e9-68c93aec94be')
     def test_create_route_targets(self):
@@ -250,7 +250,7 @@
         with self.rbac_utils.override_role(self):
             self._create_route_targets()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_route_target")
     @idempotent_id('dd830a77-4bfe-4a8c-b4e9-08b6ef2af3be')
     def test_update_route_target(self):
@@ -264,7 +264,7 @@
                 route_target_id=target['uuid'],
                 display_name=display_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_route_target")
     @idempotent_id('dfaa58f9-ec29-4d51-a475-870fac08908d')
     def test_delete_route_target(self):
@@ -298,7 +298,7 @@
                         route_aggr['uuid'])
         return route_aggr
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_route_aggregates")
     @idempotent_id('15f2c30c-4404-4228-94a0-86c5ec5cf62e')
     def test_list_route_aggregates(self):
@@ -309,7 +309,7 @@
         with self.rbac_utils.override_role(self):
             self.route_client.list_route_aggregates()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_route_aggregate")
     @idempotent_id('c8edee30-81c4-44e2-8485-055bed853384')
     def test_show_route_aggregate(self):
@@ -321,7 +321,7 @@
             self.route_client.show_route_aggregate(
                 route_aggr['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_route_aggregates")
     @idempotent_id('7553a54f-e41c-4555-b745-a858c5a70690')
     def test_create_route_aggregates(self):
@@ -331,7 +331,7 @@
         with self.rbac_utils.override_role(self):
             self._create_route_aggregates()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_route_aggregate")
     @idempotent_id('de1e6102-0bc6-4f9b-a354-48eb051ab5e4')
     def test_update_route_aggregate(self):
@@ -345,7 +345,7 @@
                 route_aggr_id=route_aggr['uuid'],
                 display_name=display_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_route_aggregate")
     @idempotent_id('e16dbdc6-d7cf-43c7-af9d-bd76cc220200')
     def test_delete_route_aggregate(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routers.py b/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
index fb1daf3..65133b2 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routers.py
@@ -141,7 +141,7 @@
                         router['uuid'])
         return router
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_physical_routers")
     @idempotent_id('349ac042-b922-4727-9e1b-8f363ee343f3')
     def test_list_physical_routers(self):
@@ -151,7 +151,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_physical_routers()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_physical_routers")
     @idempotent_id('d0b7449e-9037-4f9f-8c7e-9f364c95f18a')
     def test_create_physical_routers(self):
@@ -163,7 +163,7 @@
         with self.rbac_utils.override_role(self):
             self._create_physical_router(global_system_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_physical_router")
     @idempotent_id('6dfc53f4-a884-46d5-b303-22ba59c116f4')
     def test_show_physical_router(self):
@@ -177,7 +177,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.show_physical_router(physical_router_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_physical_router")
     @idempotent_id('c270f369-8cd7-4ee3-8ab1-4580c3138a5c')
     def test_update_physical_router(self):
@@ -194,7 +194,7 @@
                 physical_router_uuid,
                 display_name=updated_fq_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_physical_router")
     @idempotent_id('eeded742-6a8d-4e88-bfa8-fe32db463c53')
     def test_delete_physical_router(self):
@@ -208,7 +208,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.delete_physical_router(physical_router_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_bgp_routers")
     @idempotent_id('49bfb461-f99e-4585-b051-e20a3c937589')
     def test_list_bgp_routers(self):
@@ -218,7 +218,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_bgp_routers()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_bgp_routers")
     @idempotent_id('7567974c-040e-4edd-b3a1-c633aa9651cb')
     def test_create_bgp_routers(self):
@@ -230,7 +230,7 @@
         with self.rbac_utils.override_role(self):
             self._create_bgp_router(routing_instance)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_bgp_router")
     @idempotent_id('0d3ad424-18c9-4d96-8708-fa1ebd45594b')
     def test_show_bgp_router(self):
@@ -243,7 +243,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.show_bgp_router(bgp_router_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_bgp_router")
     @idempotent_id('dc50e7c5-7614-4281-8a66-282c52f3c769')
     def test_update_bgp_router(self):
@@ -259,7 +259,7 @@
                 bgp_router_uuid,
                 display_name=updated_fq_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_bgp_router")
     @idempotent_id('f14aee72-cad4-4c3e-8eea-7886a81abb24')
     def test_delete_bgp_router(self):
@@ -272,7 +272,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.delete_bgp_router(bgp_router_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_global_vrouter_configs")
     @idempotent_id('4af768d1-3cbe-4aff-bcbc-0e045cac3277')
     def test_list_global_vrouter(self):
@@ -282,7 +282,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_global_vrouter_configs()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_global_vrouter_configs")
     @idempotent_id('e13d800f-9304-4a06-9bf1-ad08345a13a8')
     def test_create_global_vrouter(self):
@@ -294,7 +294,7 @@
         with self.rbac_utils.override_role(self):
             self._create_global_vrouter_config(global_system_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_global_vrouter_config")
     @idempotent_id('3bb6f4e1-fd3f-4338-8392-f7f80974a80e')
     def test_show_global_vrouter_config(self):
@@ -309,7 +309,7 @@
             self.router_client.show_global_vrouter_config(
                 global_vrouter_config_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_global_vrouter_config")
     @idempotent_id('36fcdd51-c42b-4e67-8c26-73d4cde47507')
     def test_update_global_vrouter(self):
@@ -327,7 +327,7 @@
                 global_vrouter_config_uuid,
                 display_name=updated_fq_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_global_vrouter_config")
     @idempotent_id('4f3d59e8-3dac-4346-9d13-5ebe5ad8f6cf')
     def test_delete_global_vrouter(self):
@@ -342,7 +342,7 @@
             self.router_client.delete_global_vrouter_config(
                 global_vrouter_config_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_logical_routers")
     @idempotent_id('674bf3de-a9e5-45c2-921b-b89db73a2abe')
     def test_list_logical_routers(self):
@@ -352,7 +352,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_logical_routers()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_logical_routers")
     @idempotent_id('610f051b-8eba-4d3a-ba43-91386bfc0e52')
     def test_create_logical_routers(self):
@@ -362,7 +362,7 @@
         with self.rbac_utils.override_role(self):
             self._create_logical_router()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_logical_router")
     @idempotent_id('992841d4-0d5d-4d85-b513-049b33e2a2e2')
     def test_show_logical_router(self):
@@ -373,7 +373,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.show_logical_router(logical_router_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_logical_router")
     @idempotent_id('518197bf-5233-4059-9021-5d7ecc74718e')
     def test_update_logical_router(self):
@@ -387,7 +387,7 @@
                 logical_router_uuid,
                 display_name=updated_fq_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_logical_router")
     @idempotent_id('70448b9c-4444-45e0-b307-7bff4dc075b1')
     def test_delete_logical_router(self):
@@ -398,7 +398,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.delete_logical_router(logical_router_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_virtual_routers")
     @idempotent_id('604dc476-732e-4890-8665-a497360f5475')
     def test_list_virtual_routers(self):
@@ -408,7 +408,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.list_virtual_routers()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_virtual_routers")
     @idempotent_id('114beb14-45c0-4714-a407-d160bb102022')
     def test_create_virtual_routers(self):
@@ -420,7 +420,7 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_router(global_system_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_virtual_router")
     @idempotent_id('258fe4e0-3e39-460f-aafa-e3b53c96e534')
     def test_show_virtual_router(self):
@@ -434,7 +434,7 @@
         with self.rbac_utils.override_role(self):
             self.router_client.show_virtual_router(virtual_router_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_virtual_router")
     @idempotent_id('d1c72191-2068-4552-a78f-038cdd4c9c1d')
     def test_update_virtual_router(self):
@@ -451,7 +451,7 @@
                 virtual_router_uuid,
                 display_name=updated_fq_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_virtual_router")
     @idempotent_id('efbe25d6-8763-42d4-baf6-9f342e710144')
     def test_delete_virtual_router(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_routing.py b/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
index 37d61e0..b3f80dd 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routing.py
@@ -61,7 +61,7 @@
                         new_instance['uuid'])
         return new_instance
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_routing_instances")
     @idempotent_id('054c56ba-76b2-4161-a702-40301d8de085')
     def test_list_routing_instances(self):
@@ -71,7 +71,7 @@
         with self.rbac_utils.override_role(self):
             self.routing_client.list_routing_instances()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_routing_instances")
     @idempotent_id('3d44a46b-5436-43a8-b2f7-8581f0f04dbc')
     def test_create_routing_instances(self):
@@ -81,7 +81,7 @@
         with self.rbac_utils.override_role(self):
             self._create_routing_instances()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_routing_instance")
     @idempotent_id('161abb37-6037-422b-b453-108a5d10caca')
     def test_show_routing_instance(self):
@@ -92,7 +92,7 @@
         with self.rbac_utils.override_role(self):
             self.routing_client.show_routing_instance(new_instance['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_routing_instance")
     @idempotent_id('1d3af01e-01bf-4347-a9bc-633732339e0e')
     def test_delete_routing_instance(self):
@@ -103,7 +103,7 @@
         with self.rbac_utils.override_role(self):
             self.routing_client.delete_routing_instance(new_instance['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_routing_instance")
     @idempotent_id('ebcfd442-2a26-4954-968b-e17e414ed0d1')
     def test_update_routing_instance(self):
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 d1dd443..9b1dde9 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_routing_policy.py
@@ -58,7 +58,7 @@
         self.routing_policy_client.update_routing_policy(routing_policy_uuid,
                                                          **put_body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_routing_policys")
     @idempotent_id('fe25a306-bc4f-42b3-91ca-38df01e35345')
     def test_list_routing_policys(self):
@@ -68,7 +68,7 @@
         with self.rbac_utils.override_role(self):
             self.routing_policy_client.list_routing_policys()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_routing_policys")
     @idempotent_id('f8ca5e30-8bb3-410f-8618-8fdca70bda06')
     def test_create_routing_policys(self):
@@ -78,7 +78,7 @@
         with self.rbac_utils.override_role(self):
             self._create_routing_policy()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_routing_policy")
     @idempotent_id('3421e84e-3e2a-452a-9a26-b2caf00b1cbc')
     def test_show_routing_policy(self):
@@ -89,7 +89,7 @@
         with self.rbac_utils.override_role(self):
             self.routing_policy_client.show_routing_policy(policy_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_routing_policy")
     @idempotent_id('9fc1f44f-c8e2-4f5a-8239-e9b783f55d94')
     def test_update_routing_policy(self):
@@ -100,7 +100,7 @@
         with self.rbac_utils.override_role(self):
             self._update_routing_policy(policy_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_routing_policy")
     @idempotent_id('24f1cd7a-2917-4b81-a0a3-a40ed2d40c7d')
     def test_delete_routing_policy(self):
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 f0973d2..8a14b03 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_security_group.py
@@ -54,7 +54,7 @@
                         sec_grp['uuid'])
         return sec_grp
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_security_groups")
     @idempotent_id('a13cc1d5-f562-4b68-b732-980deb3cddf4')
     def test_list_security_groups(self):
@@ -65,7 +65,7 @@
         with self.rbac_utils.override_role(self):
             self.security_group_client.list_security_groups()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_security_group")
     @idempotent_id('c7ca1781-08ae-4fa2-bd6d-1f369950c4c4')
     def test_show_security_group(self):
@@ -77,7 +77,7 @@
         with self.rbac_utils.override_role(self):
             self.security_group_client.show_security_group(grp_id)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_security_group")
     @idempotent_id('e682d7b4-deb8-4b5c-9c9b-1e1ada827b40')
     def test_delete_security_group(self):
@@ -89,7 +89,7 @@
         with self.rbac_utils.override_role(self):
             self._delete_security_group(grp_id)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_security_groups")
     @idempotent_id('63a2ff14-7869-40a2-962a-d65752de5651')
     def test_create_security_groups(self):
@@ -99,7 +99,7 @@
         with self.rbac_utils.override_role(self):
             self._create_security_groups()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_security_group")
     @idempotent_id('cf9aafe2-fffb-4028-8fd7-4d6634e144e7')
     def test_update_security_group(self):
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 46dc15c..7abe131 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_service_appliances.py
@@ -75,7 +75,7 @@
                         new_appliance['uuid'])
         return new_appliance
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_service_appliances")
     @idempotent_id('6b5fc17c-34e6-4d21-a53e-a0dfe69afd31')
     def test_list_service_appliances(self):
@@ -85,7 +85,7 @@
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.list_service_appliances()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_service_appliances")
     @idempotent_id('0563c0c8-b986-466e-8540-aa8ad7a10367')
     def test_create_service_appliances(self):
@@ -99,7 +99,7 @@
         with self.rbac_utils.override_role(self):
             self._create_service_appliances(new_set)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_service_appliance")
     @idempotent_id('ea30dcfe-8657-4a7d-9cf1-3176d334bf27')
     def test_show_service_appliance(self):
@@ -116,7 +116,7 @@
             self.service_appliances_client.show_service_appliance(
                 new_appliance['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_service_appliance")
     @idempotent_id('a54ca33a-8590-4844-96d7-b96882b59e86')
     def test_update_service_appliance(self):
@@ -134,7 +134,7 @@
                 new_appliance['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_service_appliance")
     @idempotent_id('362deff5-7b72-4929-ba81-972cfcfa1309')
     def test_delete_service_appliance(self):
@@ -150,7 +150,7 @@
             self.service_appliances_client.delete_service_appliance(
                 new_appliance['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_service_appliance_sets")
     @idempotent_id('c1e74da9-00b6-4c88-adda-2ce49094e570')
     def test_list_service_appl_sets(self):
@@ -160,7 +160,7 @@
         with self.rbac_utils.override_role(self):
             self.service_appliances_client.list_service_appliance_sets()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_service_appliance_sets")
     @idempotent_id('eb00d6cf-590f-41bf-8ee4-5be625d9cb93')
     def test_create_service_appl_sets(self):
@@ -172,7 +172,7 @@
         with self.rbac_utils.override_role(self):
             self._create_service_appliance_sets(global_system_config)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_service_appliance_set")
     @idempotent_id('dd35dd04-e7d9-46bb-8f36-26835f122572')
     def test_show_service_appl_set(self):
@@ -187,7 +187,7 @@
             self.service_appliances_client.show_service_appliance_set(
                 new_set['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_service_appliance_set")
     @idempotent_id('952f063b-bc71-4f62-83b1-719bce5ad4ed')
     def test_update_service_appl_set(self):
@@ -204,7 +204,7 @@
                 new_set['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_service_appliance_set")
     @idempotent_id('7b56ce24-da1d-4565-bd22-c58dc57d7045')
     def test_delete_service_appl_set(self):
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 8d65159..e629526 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_service_clients.py
@@ -86,7 +86,7 @@
                         new_instance['uuid'])
         return new_instance
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_service_templates")
     @idempotent_id('841b1d32-4308-4fb6-852a-41bdd8c56c37')
     def test_list_service_templates(self):
@@ -96,7 +96,7 @@
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_templates()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_service_templates")
     @idempotent_id('3f02d14a-31e2-4476-821f-87d0cc42d9fb')
     def test_create_service_templates(self):
@@ -106,7 +106,7 @@
         with self.rbac_utils.override_role(self):
             self._create_service_template()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_service_template")
     @idempotent_id('1f15d734-2cc6-4ded-916e-134286c6b87b')
     def test_show_service_template(self):
@@ -118,7 +118,7 @@
             self.service_client.show_service_template(
                 new_template['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_service_template")
     @idempotent_id('3549debd-4c7a-4574-8d11-4190c8530a23')
     def test_update_service_template(self):
@@ -132,7 +132,7 @@
                 new_template['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_service_template")
     @idempotent_id('e86cabd2-5b7e-4ee8-86ec-db52619b852b')
     def test_delete_service_template(self):
@@ -144,7 +144,7 @@
             self.service_client.delete_service_template(
                 new_template['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_service_health_checks")
     @idempotent_id('5210d6ca-9a38-4b6b-b5b7-f836c3846079')
     def test_list_service_health_checks(self):
@@ -154,7 +154,7 @@
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_health_checks()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_service_health_checks")
     @idempotent_id('77716feb-0d05-4cfd-8a17-79cf0b19ed3c')
     def test_create_service_health(self):
@@ -164,7 +164,7 @@
         with self.rbac_utils.override_role(self):
             self._create_service_health_check()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_service_health_check")
     @idempotent_id('80db4445-8d6c-4c8f-aa25-d4ea53d32d2c')
     def test_show_service_health(self):
@@ -176,7 +176,7 @@
             self.service_client.show_service_health_check(
                 new_health_check['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_service_health_check")
     @idempotent_id('68fb1510-4b76-40cc-8979-e56e537229d2')
     def test_update_service_health(self):
@@ -190,7 +190,7 @@
                 new_health_check['uuid'],
                 display_name=update_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_service_health_check")
     @idempotent_id('2dce3942-402a-48a4-b682-fdc425d3d935')
     def test_delete_service_health(self):
@@ -202,7 +202,7 @@
             self.service_client.delete_service_health_check(
                 new_health_check['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_service_instances")
     @idempotent_id('1469c71e-f6f5-419f-9672-c3c67f879704')
     def test_create_service_instances(self):
@@ -212,7 +212,7 @@
         with self.rbac_utils.override_role(self):
             self._create_service_instance()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_service_instance")
     @idempotent_id('ea5b716d-5de8-4c71-becd-f1501c22f0df')
     def test_show_service_instance(self):
@@ -224,7 +224,7 @@
             self.service_client.show_service_instance(
                 new_instance['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_service_instance")
     @idempotent_id('74934833-29cd-416b-a5a6-273f733d058a')
     def test_delete_service_instance(self):
@@ -236,7 +236,7 @@
             self.service_client.delete_service_instance(
                 new_instance['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_service_instances")
     @idempotent_id('da6016a3-a2a8-42a8-b064-c124c22fef6f')
     def test_list_service_instances(self):
@@ -246,7 +246,7 @@
         with self.rbac_utils.override_role(self):
             self.service_client.list_service_instances()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_service_instance")
     @idempotent_id('a6237b99-336b-42db-a8eb-9604a1b08fc6')
     def test_update_service_instance(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py b/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
index 211aaf6..233084e 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_subnet.py
@@ -55,7 +55,7 @@
         }
         self.subnet_client.update_subnet(subnet_uuid, **put_body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_subnets")
     @idempotent_id('ddd1d9ae-cf2f-4a74-98ba-b0f481f27977')
     def test_list_subnets(self):
@@ -65,7 +65,7 @@
         with self.rbac_utils.override_role(self):
             self.subnet_client.list_subnets()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_subnets")
     @idempotent_id('ee0cb904-d162-44a4-b7b0-a7451f667ed5')
     def test_create_subnets(self):
@@ -75,7 +75,7 @@
         with self.rbac_utils.override_role(self):
             self._create_subnet()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_subnet")
     @idempotent_id('994618f2-5b40-460c-a6a8-6479bc15bf80')
     def test_show_subnet(self):
@@ -86,7 +86,7 @@
         with self.rbac_utils.override_role(self):
             self.subnet_client.show_subnet(subnet_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_subnet")
     @idempotent_id('565e44c9-eb9b-4ae6-9ebb-db422a9751ee')
     def test_update_subnet(self):
@@ -97,7 +97,7 @@
         with self.rbac_utils.override_role(self):
             self._update_subnet(subnet_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_subnet")
     @idempotent_id('a733b913-7a88-45d9-ac0a-d858fa3dc662')
     def test_delete_subnet(self):
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 5974c8c..6e75327 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_dns.py
@@ -76,7 +76,7 @@
                         dns_record['virtual-DNS-record']['uuid'])
         return dns_record
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_virtual_DNSs")
     @idempotent_id('8401d690-afdf-4b6e-ad60-b9363a8cfb1d')
     def test_list_virtual_dns(self):
@@ -86,7 +86,7 @@
         with self.rbac_utils.override_role(self):
             self.virtual_dns_client.list_virtual_dns()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_virtual_DNSs")
     @idempotent_id('a7dd2c9e-e1eb-4dc4-ac70-4d48a291a3bf')
     def test_create_virtual_dns(self):
@@ -96,7 +96,7 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_dns()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_virtual_DNS")
     @idempotent_id('ffc0fc82-3bff-48ab-b65a-3d90b4a3154d')
     def test_show_virtual_dns(self):
@@ -108,7 +108,7 @@
             self.virtual_dns_client.show_virtual_dns(
                 dns['virtual-DNS']['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_virtual_DNS")
     @idempotent_id('4793caa1-7707-4123-b1b4-c3feae91312f')
     def test_delete_virtual_dns(self):
@@ -120,7 +120,7 @@
             self.virtual_dns_client.delete_virtual_dns(
                 dns['virtual-DNS']['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_virtual_DNS")
     @idempotent_id('2bc43935-57c1-4bf6-9868-78ccfce164bb')
     def test_update_virtual_dns(self):
@@ -138,7 +138,7 @@
                 virtual_DNS_data=virtual_dns_data,
                 display_name=display_name)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_virtual_DNS_records")
     @idempotent_id('e9103999-2f02-4f04-a8a0-906ca4fb394d')
     def test_list_virtual_dns_records(self):
@@ -148,7 +148,7 @@
         with self.rbac_utils.override_role(self):
             self.virtual_dns_client.list_virtual_dns_records()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_virtual_DNS_records")
     @idempotent_id('bd9f3992-0ce4-4477-97a0-1271bc8ad9ef')
     def test_create_virtual_dns_records(self):
@@ -160,7 +160,7 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_dns_record(dns)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_virtual_DNS_record")
     @idempotent_id('fa3d1a2b-d788-4623-89a4-3a9ed1db7a7d')
     def test_show_virtual_dns_record(self):
@@ -174,7 +174,7 @@
             self.virtual_dns_client.show_virtual_dns_record(
                 dns_record['virtual-DNS-record']['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_virtual_DNS_record")
     @idempotent_id('de31e867-c997-4b4c-a095-43c647f5c192')
     def test_delete_virtual_dns_record(self):
@@ -188,7 +188,7 @@
             self.virtual_dns_client.delete_virtual_dns_record(
                 dns_record['virtual-DNS-record']['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_virtual_DNS_record")
     @idempotent_id('65acef26-646f-4b36-923c-8a1d07e90c5c')
     def test_update_virtual_dns_record(self):
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 0f229a6..d8268f8 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_ip.py
@@ -56,7 +56,7 @@
         }
         self.virtual_ip_client.update_virtual_ip(virtual_ip_uuid, **put_body)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_virtual_ips")
     @idempotent_id('92303eee-bd96-48bc-a02c-39950bd19a21')
     def test_list_virtual_ips(self):
@@ -66,7 +66,7 @@
         with self.rbac_utils.override_role(self):
             self.virtual_ip_client.list_virtual_ips()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_virtual_ips")
     @idempotent_id('e0070888-995d-46ab-91fc-db1412eba2f7')
     def test_create_virtual_ips(self):
@@ -76,7 +76,7 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_ip()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_virtual_ip")
     @idempotent_id('2a4b3abd-c6f7-4d82-aa31-02e53d2a8fb9')
     def test_show_virtual_ip(self):
@@ -87,7 +87,7 @@
         with self.rbac_utils.override_role(self):
             self.virtual_ip_client.show_virtual_ip(virtual_ip_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_virtual_ip")
     @idempotent_id('0e975c92-62dc-4e6e-82cc-8cf37da3c5b2')
     def test_update_virtual_ip(self):
@@ -98,7 +98,7 @@
         with self.rbac_utils.override_role(self):
             self._update_virtual_ip(virtual_ip_uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_virtual_ip")
     @idempotent_id('fd0b2635-36bd-4345-97b7-9c0a57372eba')
     def test_delete_virtual_ip(self):
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 ae54c78..d69a32e 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_machines.py
@@ -103,7 +103,7 @@
                                  cls.ipam['uuid'])
         super(VMContrailTest, cls).resource_cleanup()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_virtual_machine_interfaces")
     @idempotent_id('e27d1fae-7324-4ef3-87b1-e7f519b1e2a7')
     def test_list_vm_interfaces(self):
@@ -114,7 +114,7 @@
         with self.rbac_utils.override_role(self):
             self.vm_client.list_virtual_machine_interfaces()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_virtual_machine_interfaces")
     @idempotent_id('d8a3a524-d61b-4bcb-8146-c5d4f308df8e')
     def test_add_vm_interfaces(self):
@@ -124,7 +124,7 @@
         with self.rbac_utils.override_role(self):
             self._create_virual_machine_interface()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_virtual_machine_interface")
     @idempotent_id('3f17125a-9060-4c4a-a23f-0fe2aba2ccef')
     def test_show_vm_interface(self):
@@ -135,7 +135,7 @@
         with self.rbac_utils.override_role(self):
             self.vm_client.show_virtual_machine_interface(test['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_virtual_machine_interface")
     @idempotent_id('ce7f9471-ba1b-40d2-94f1-bdd0c610e22f')
     def test_delete_vm_interface(self):
@@ -146,7 +146,7 @@
         with self.rbac_utils.override_role(self):
             self.vm_client.delete_vm_interface(body['uuid'])
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_virtual_machine_interface")
     @idempotent_id('7ca3046a-6245-4c15-914b-5a8ecdbeee11')
     def test_update_vm_interface(self):
diff --git a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
index 9e91164..4475e7b 100644
--- a/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
+++ b/tungsten_tempest_plugin/tests/api/contrail/test_virtual_networks.py
@@ -70,7 +70,7 @@
                         network['uuid'])
         return network
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="list_virtual_networks")
     @idempotent_id('375ebc8d-dc52-4d9c-877b-85aba35b1539')
     def test_list_virtual_networks(self):
@@ -80,7 +80,7 @@
         with self.rbac_utils.override_role(self):
             self.vn_client.list_virtual_networks()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="create_virtual_networks")
     @idempotent_id('375ebc8d-dc52-4d9c-877b-96aba35b2530')
     def test_create_virtual_networks(self):
@@ -90,7 +90,7 @@
         with self.rbac_utils.override_role(self):
             self._create_virtual_network()
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="update_virtual_network")
     @idempotent_id('375ebc8d-dc52-4d9c-566b-150a025c1237')
     def test_update_virtual_network(self):
@@ -103,7 +103,7 @@
             self.vn_client.update_virtual_network(
                 uuid, router_external=False)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="delete_virtual_network")
     @idempotent_id('375ebc8d-dc52-4d9c-877b-17bcb53c3641')
     def test_delete_virtual_network(self):
@@ -114,7 +114,7 @@
         with self.rbac_utils.override_role(self):
             self.vn_client.delete_virtual_network(uuid)
 
-    @rbac_rule_validation.action(service="Contrail",
+    @rbac_rule_validation.action(service=CONF.sdn.service_name,
                                  rule="show_virtual_network")
     @idempotent_id('375ebc8d-dc52-4d9c-877b-27c1a1242a81')
     def test_show_virtual_network(self):
