diff --git a/tools/azure-sdk-tools/devtools_testutils/resource_testcase.py b/tools/azure-sdk-tools/devtools_testutils/resource_testcase.py index 43d8df894857..daee710d6b73 100644 --- a/tools/azure-sdk-tools/devtools_testutils/resource_testcase.py +++ b/tools/azure-sdk-tools/devtools_testutils/resource_testcase.py @@ -6,6 +6,7 @@ from collections import namedtuple import functools import os +import datetime from functools import partial from azure_devtools.scenario_tests import AzureTestError, ReservedResourceNameError @@ -33,7 +34,8 @@ def __init__(self, name_prefix='', parameter_name_for_location='location', location='westus', disable_recording=True, playback_fake_resource=None, client_kwargs=None, - random_name_enabled=False): + random_name_enabled=False, + delete_after_tag_timedelta=datetime.timedelta(days=1)): super(ResourceGroupPreparer, self).__init__(name_prefix, random_name_length, disable_recording=disable_recording, playback_fake_resource=playback_fake_resource, @@ -50,13 +52,18 @@ def __init__(self, name_prefix='', if self.random_name_enabled: self.resource_moniker = self.name_prefix + "rgname" self.set_cache(use_cache, parameter_name) + self.delete_after_tag_timedelta = delete_after_tag_timedelta def create_resource(self, name, **kwargs): if self.is_live and self._need_creation: self.client = self.create_mgmt_client(ResourceManagementClient) + parameters = {'location': self.location} + if self.delete_after_tag_timedelta: + expiry = datetime.datetime.utcnow() + self.delete_after_tag_timedelta + parameters['tags'] = {'DeleteAfter': expiry.isoformat()} try: self.resource = self.client.resource_groups.create_or_update( - name, {'location': self.location} + name, parameters ) except Exception as ex: if "ReservedResourceName" in str(ex): @@ -92,4 +99,4 @@ def remove_resource(self, name, **kwargs): pass RandomNameResourceGroupPreparer = partial(ResourceGroupPreparer, random_name_enabled=True) -CachedResourceGroupPreparer = functools.partial(ResourceGroupPreparer, use_cache=True, random_name_enabled=True) +CachedResourceGroupPreparer = partial(ResourceGroupPreparer, use_cache=True, random_name_enabled=True)