Merge "Cleanup leftover stacks."
This commit is contained in:
@@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
||||
@@ -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),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user