Merge "Cleanup leftover stacks."

This commit is contained in:
Zuul
2024-07-04 06:21:18 +00:00
committed by Gerrit Code Review
2 changed files with 61 additions and 4 deletions

View File

@@ -11,6 +11,8 @@
# under the License.
import os
import requests
import time
from tempest import config
from tempest.lib.common.utils import data_utils
@@ -27,6 +29,10 @@ class TestTelemetryIntegration(manager.ScenarioTest):
TIMEOUT_SCALING_FACTOR = 5
@classmethod
def resource_setup(cls):
cls.stack_name = data_utils.rand_name("telemetry")
@classmethod
def skip_checks(cls):
super(TestTelemetryIntegration, cls).skip_checks()
@@ -74,6 +80,29 @@ class TestTelemetryIntegration(manager.ScenarioTest):
opt_section.catalog_type)
return endpoints[0]['endpoints'][0][endpoint_type].rstrip('/')
@classmethod
def resource_cleanup(cls):
headers = {'X-Auth-Token': cls.os_primary.auth_provider.get_auth()[0]}
url = os.environ['HEAT_SERVICE_URL'] + "/stacks/" + cls.stack_name
r = requests.get(url, headers=headers)
if r.status_code == 200 and \
"stack" in r.json():
stack = r.json()["stack"]
stack_url = (f'{os.environ["HEAT_SERVICE_URL"]}/stacks/'
f'{stack["stack_name"]}/{stack["id"]}')
requests.delete(stack_url, headers=headers)
repeats = 0
r = requests.get(stack_url, headers=headers)
while r.json()["stack"]["stack_status"] == \
"DELETE_IN_PROGRESS" and repeats < 30:
time.sleep(2)
r = requests.get(stack_url, headers=headers)
repeats += 1
super(TestTelemetryIntegration, cls).resource_cleanup()
def _prep_test(self, filename):
admin_auth = self.os_admin.auth_provider.get_auth()
auth = self.os_primary.auth_provider.get_auth()
@@ -99,7 +128,7 @@ class TestTelemetryIntegration(manager.ScenarioTest):
"GLANCE_IMAGE_NAME": self.image_create(),
"NOVA_FLAVOR_REF": config.CONF.compute.flavor_ref,
"NEUTRON_NETWORK": networks[0].get('id'),
"STACK_NAME": data_utils.rand_name('telemetry'),
"STACK_NAME": self.stack_name,
})

View File

@@ -11,6 +11,8 @@
# under the License.
import os
import requests
import time
from tempest import config
from tempest.lib.common.utils import data_utils
@@ -28,6 +30,10 @@ class PrometheusGabbiTest(manager.ScenarioTest):
TIMEOUT_SCALING_FACTOR = 5
@classmethod
def resource_setup(cls):
cls.stack_name = data_utils.rand_name("telemetry")
@classmethod
def skip_checks(cls):
super(PrometheusGabbiTest, cls).skip_checks()
@@ -75,15 +81,37 @@ class PrometheusGabbiTest(manager.ScenarioTest):
opt_section.catalog_type)
return endpoints[0]['endpoints'][0][endpoint_type].rstrip('/')
@classmethod
def resource_cleanup(cls):
headers = {'X-Auth-Token': cls.os_primary.auth_provider.get_auth()[0]}
url = os.environ['HEAT_SERVICE_URL'] + "/stacks/" + cls.stack_name
r = requests.get(url, headers=headers)
if r.status_code == 200 and \
"stack" in r.json():
stack = r.json()["stack"]
stack_url = (f'{os.environ["HEAT_SERVICE_URL"]}/stacks/'
f'{stack["stack_name"]}/{stack["id"]}')
requests.delete(stack_url, headers=headers)
repeats = 0
r = requests.get(stack_url, headers=headers)
while r.json()["stack"]["stack_status"] == \
"DELETE_IN_PROGRESS" and repeats < 30:
time.sleep(2)
r = requests.get(stack_url, headers=headers)
repeats += 1
super(PrometheusGabbiTest, cls).resource_cleanup()
def _prep_test(self, filename):
auth = self.os_primary.auth_provider.get_auth()
networks = self.os_primary.networks_client.list_networks(
**{'router:external': False, 'fields': 'id'})['networks']
stack_name = data_utils.rand_name('telemetry')
# NOTE(marihan): This is being used in prometheus query as heat is
# using the last 7 digits from stack_name to create the autoscaling
# resources.
resource_prefix = stack_name[-7:]
resource_prefix = self.stack_name[-7:]
prometheus_rate_duration = (
config.CONF.telemetry.ceilometer_polling_interval
+ config.CONF.telemetry.prometheus_scrape_interval)
@@ -104,7 +132,7 @@ class PrometheusGabbiTest(manager.ScenarioTest):
"GLANCE_IMAGE_NAME": self.image_create(),
"NOVA_FLAVOR_REF": config.CONF.compute.flavor_ref,
"NEUTRON_NETWORK": networks[0].get('id'),
"STACK_NAME": stack_name,
"STACK_NAME": self.stack_name,
"RESOURCE_PREFIX": resource_prefix,
"PROMETHEUS_RATE_DURATION": str(prometheus_rate_duration),
})