Skip to content

Commit

Permalink
delete whole azure group
Browse files Browse the repository at this point in the history
  • Loading branch information
laDok8 committed May 4, 2022
1 parent f2191e8 commit 38ff061
Showing 1 changed file with 45 additions and 1 deletion.
46 changes: 45 additions & 1 deletion wrapanapi/systems/msazure.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"""

import os
from dateutil import parser
from datetime import datetime, timedelta

import pytz
Expand All @@ -15,7 +16,8 @@
from azure.mgmt.iothub import IotHubClient
from azure.mgmt.network import NetworkManagementClient
from azure.mgmt.network.models import NetworkSecurityGroup, SecurityRule
from azure.mgmt.resource import ResourceManagementClient, SubscriptionClient
from azure.mgmt.resource import SubscriptionClient
from azure.mgmt.resource.resources import ResourceManagementClient
from azure.mgmt.resource.subscriptions.models import SubscriptionState
from azure.mgmt.storage import StorageManagementClient
from azure.storage.blob import BlockBlobService
Expand Down Expand Up @@ -675,6 +677,13 @@ def list_free_nics(self, nic_template=None, resource_group=None):
return [nic_name for nic_name in all_free_nics if nic_template in nic_name]
return all_free_nics

def _list_all_resources(self, resource_group=None):
"""
List all resources in selected resource_group
"""
resource_group = resource_group or self.resource_group
return list(self.resource_client.resources.list_by_resource_group(resource_group, expand="changedTime,createdTime"))

def list_free_discs(self, disc_template=None, resource_group=None):
"""
List all or specific VMs attached Disc(s) in selected resource_group
Expand Down Expand Up @@ -766,6 +775,41 @@ def list_router(self):
def disconnect(self):
pass

def _list_resources(self, resource_group=None, hours_old=0):

resources = self._list_all_resources(resource_group)
now_time = datetime.utcnow().replace(tzinfo=pytz.utc)
age = []

for res in resources:
start_time = parser.parse(res.additional_properties['createdTime'])
timediff = now_time - start_time
totalhours = timediff.total_seconds() / 3600
age.append(totalhours)

newest_time = min(age)
if newest_time < hours_old:
return resources
else:
return []



def list_resources(self, resource_group=None, hours_old=0):
return [r.name for r in self._list_resources(resource_group, hours_old)]

def remove_resource_group(self, resource_group=None, hours_old=0):
"""
Used for clean_up jobs to remove group containing old resources
"""

self.logger.info('Attempting to remove all old resources')
resource_group = resource_group or self.resource_group

resources = self._list_resources(resource_group, hours_old)
if resources:
self.resource_client.resource_groups.delete(resource_group)

def remove_nics_by_search(self, nic_template=None, resource_group=None):
"""
Used for clean_up jobs to remove NIC(s) that are not attached to any test VM
Expand Down

0 comments on commit 38ff061

Please sign in to comment.