diff --git a/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_basic_ops.py b/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_basic_ops.py
index 453d749..4551ae0 100644
--- a/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_basic_ops.py
+++ b/ironic_tempest_plugin/tests/scenario/ironic_standalone/test_basic_ops.py
@@ -14,6 +14,7 @@
 # under the License.
 
 from tempest import config
+from tempest.lib import decorators
 from tempest import test
 
 from ironic_tempest_plugin.tests.scenario import \
@@ -28,7 +29,7 @@
     image_ref = CONF.baremetal.whole_disk_image_ref
     wholedisk_image = True
 
-    @test.idempotent_id('defff515-a6ff-44f6-9d8d-2ded51196d98')
+    @decorators.idempotent_id('defff515-a6ff-44f6-9d8d-2ded51196d98')
     @test.services('image', 'network', 'object_storage')
     def test_ip_access_to_server(self):
         self.ping_ip_address(self.node_ip, should_succeed=True)
@@ -49,7 +50,7 @@
             skip_msg = ("HTTP server is not available when ipxe is disabled.")
             raise cls.skipException(skip_msg)
 
-    @test.idempotent_id('d926c683-1a32-44df-afd0-e60134346fd0')
+    @decorators.idempotent_id('d926c683-1a32-44df-afd0-e60134346fd0')
     @test.services('network')
     def test_ip_access_to_server(self):
         self.ping_ip_address(self.node_ip, should_succeed=True)
@@ -61,7 +62,7 @@
     image_ref = CONF.baremetal.partition_image_ref
     wholedisk_image = False
 
-    @test.idempotent_id('27b86130-d8dc-419d-880a-fbbbe4ce3f8c')
+    @decorators.idempotent_id('27b86130-d8dc-419d-880a-fbbbe4ce3f8c')
     @test.services('image', 'network', 'object_storage')
     def test_ip_access_to_server(self):
         self.ping_ip_address(self.node_ip, should_succeed=True)
@@ -73,7 +74,7 @@
     image_ref = CONF.baremetal.whole_disk_image_ref
     wholedisk_image = True
 
-    @test.idempotent_id('d8c5badd-45db-4d05-bbe8-35babbed6e86')
+    @decorators.idempotent_id('d8c5badd-45db-4d05-bbe8-35babbed6e86')
     @test.services('image', 'network')
     def test_ip_access_to_server(self):
         self.ping_ip_address(self.node_ip, should_succeed=True)
@@ -94,7 +95,7 @@
             skip_msg = ("HTTP server is not available when ipxe is disabled.")
             raise cls.skipException(skip_msg)
 
-    @test.idempotent_id('71ccf06f-6765-40fd-8252-1b1bfa423b9b')
+    @decorators.idempotent_id('71ccf06f-6765-40fd-8252-1b1bfa423b9b')
     @test.services('network')
     def test_ip_access_to_server(self):
         self.ping_ip_address(self.node_ip, should_succeed=True)
@@ -106,7 +107,7 @@
     image_ref = CONF.baremetal.partition_image_ref
     wholedisk_image = False
 
-    @test.idempotent_id('ea85e19c-6869-4577-b9bb-2eb150f77c90')
+    @decorators.idempotent_id('ea85e19c-6869-4577-b9bb-2eb150f77c90')
     @test.services('image', 'network')
     def test_ip_access_to_server(self):
         self.ping_ip_address(self.node_ip, should_succeed=True)
@@ -118,7 +119,7 @@
     image_ref = CONF.baremetal.whole_disk_image_ref
     wholedisk_image = True
 
-    @test.idempotent_id('c2db24e7-07dc-4a20-8f93-d4efae2bfd4e')
+    @decorators.idempotent_id('c2db24e7-07dc-4a20-8f93-d4efae2bfd4e')
     @test.services('image', 'network')
     def test_ip_access_to_server(self):
         self.ping_ip_address(self.node_ip, should_succeed=True)
@@ -130,7 +131,7 @@
     image_ref = CONF.baremetal.partition_image_ref
     wholedisk_image = False
 
-    @test.idempotent_id('7d0b205e-edbc-4e2d-9f6d-95cd74eefecb')
+    @decorators.idempotent_id('7d0b205e-edbc-4e2d-9f6d-95cd74eefecb')
     @test.services('image', 'network')
     def test_ip_access_to_server(self):
         self.ping_ip_address(self.node_ip, should_succeed=True)
