From ffd7e939615975b68bb7ec011cdaea077d9201c9 Mon Sep 17 00:00:00 2001
From: Stephen Finucane <sfinucan@redhat.com>
Date: Fri, 6 Nov 2020 17:31:14 +0000
Subject: [PATCH] functional: Remove test for 'quota set --force'

Change I1d1ac1ac46f49f64794ffc8631e166935537966c introduced the 'quota
set --force' parameter to force set nova quotas. As part of that fix, we
introduced a functional test, 'QuotaTests.test_quota_set_force' that
works by attempting to set the 'limit' of the quota for instances to the
current usage ('is_use') minus one.

This test is flawed. It doesn't create any instances so when it fires by
itself, it will always set the 'limit' to 0. When it fires at the same
time as other tests (remember, we run tests in parallel), notably tests
that rely on booting instances, it can cause other tests to fail with
the following error:

  Quota exceeded for instances: Requested 1, but already used 0 of 0
  instances (HTTP 403)

We could attempt to work around this by creating a new project and using
that project to fiddle with quotas. That's a lot of work though, and the
returns are questionable: the 'quota set' command is an admin-only
command by default and the '--force' parameter should almost never be
used. Simply remove this test.

Change-Id: Ic07ff6f4a7c1c27852c892eb906bb144aae91788
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: #2008327
Task: #41225
---
 .../tests/functional/common/test_quota.py     | 44 -------------------
 1 file changed, 44 deletions(-)

diff --git a/openstackclient/tests/functional/common/test_quota.py b/openstackclient/tests/functional/common/test_quota.py
index 4c2fc0e34d..9c05746077 100644
--- a/openstackclient/tests/functional/common/test_quota.py
+++ b/openstackclient/tests/functional/common/test_quota.py
@@ -165,47 +165,3 @@ class QuotaTests(base.TestCase):
         # returned attributes
         self.assertTrue(cmd_output["key-pairs"] >= 0)
         self.assertTrue(cmd_output["snapshots"] >= 0)
-
-    def test_quota_set_force(self):
-        """Test to set instance value by force """
-        json_output = json.loads(self.openstack(
-            'quota list -f json --detail --compute'
-        ))
-        in_use = limit = None
-        for j in json_output:
-            if j["Resource"] == "instances":
-                in_use = j["In Use"]
-                limit = j["Limit"]
-
-        # Reduce count of in_use
-        in_use = in_use - 1
-        # cannot have negative instances limit
-        if in_use < 0:
-            in_use = 0
-
-        # set the limit by force now
-        self.openstack(
-            'quota set ' + self.PROJECT_NAME +
-            '--instances ' + str(in_use) + ' --force'
-        )
-        cmd_output = json.loads(self.openstack(
-            'quota show -f json ' + self.PROJECT_NAME
-        ))
-        self.assertIsNotNone(cmd_output)
-        self.assertEqual(
-            in_use,
-            cmd_output["instances"]
-        )
-
-        # Set instances limit to original limit now
-        self.openstack(
-            'quota set ' + self.PROJECT_NAME + '--instances ' + str(limit)
-        )
-        cmd_output = json.loads(self.openstack(
-            'quota show -f json ' + self.PROJECT_NAME
-        ))
-        self.assertIsNotNone(cmd_output)
-        self.assertEqual(
-            limit,
-            cmd_output["instances"]
-        )