diff --git a/neutron_tempest_plugin/api/admin/test_routers_ha.py b/neutron_tempest_plugin/api/admin/test_routers_ha.py
index b8227bd..d9aafe9 100644
--- a/neutron_tempest_plugin/api/admin/test_routers_ha.py
+++ b/neutron_tempest_plugin/api/admin/test_routers_ha.py
@@ -63,7 +63,7 @@
         as opposed to a "High Availability Router"
         """
         name = data_utils.rand_name('router')
-        router = self.create_admin_router(name, ha=False)
+        router = self._create_admin_router(name, ha=False)
         self.assertFalse(router['ha'])
 
     @decorators.idempotent_id('5a6bfe82-5b23-45a4-b027-5160997d4753')
diff --git a/neutron_tempest_plugin/api/base.py b/neutron_tempest_plugin/api/base.py
index 6246eb7..bb92090 100644
--- a/neutron_tempest_plugin/api/base.py
+++ b/neutron_tempest_plugin/api/base.py
@@ -121,6 +121,7 @@
         cls.subnetpools = []
         cls.admin_subnetpools = []
         cls.security_groups = []
+        cls.admin_security_groups = []
         cls.projects = []
         cls.log_objects = []
         cls.reserved_subnet_cidrs = set()
@@ -183,6 +184,12 @@
                 cls._try_delete_resource(cls.client.delete_security_group,
                                          secgroup['id'])
 
+            # Clean up admin security groups
+            for secgroup in cls.admin_security_groups:
+                cls._try_delete_resource(
+                    cls.admin_client.delete_security_group,
+                    secgroup['id'])
+
             for subnetpool in cls.subnetpools:
                 cls._try_delete_resource(cls.client.delete_subnetpool,
                                          subnetpool['id'])
@@ -585,6 +592,12 @@
             name=test_project,
             description=test_description)['project']
         cls.projects.append(project)
+        # Create a project will create a default security group.
+        # We make these security groups into admin_security_groups.
+        sgs_list = cls.admin_client.list_security_groups(
+            tenant_id=project['id'])['security_groups']
+        for sg in sgs_list:
+            cls.admin_security_groups.append(sg)
         return project
 
     @classmethod
