Skip to content

Commit

Permalink
fix: change list_container_groups method in Container_instance's mana…
Browse files Browse the repository at this point in the history
  • Loading branch information
ImMin5 committed Oct 24, 2022
1 parent d0e73c5 commit e81ed6a
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 58 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from spaceone.inventory.libs.connector import AzureConnector
from spaceone.inventory.error.custom import *

__all__ = ['ContainerInstancesConnector']
_LOGGER = logging.getLogger(__name__)

Expand All @@ -18,3 +19,10 @@ def list_container_groups(self):
def get_container_groups(self, resource_group_name, container_group_name):
return self.container_instance_client.container_groups.get(resource_group_name=resource_group_name,
container_group_name=container_group_name)

def list_resource_groups(self):
return self.resource_client.resource_groups.list()

def list_container_groups_by_resource_group(self, resource_group_name):
return self.container_instance_client.container_groups.list_by_resource_group(
resource_group_name=resource_group_name)
Original file line number Diff line number Diff line change
Expand Up @@ -38,64 +38,61 @@ def collect_cloud_service(self, params):
container_instances_responses = []
error_responses = []

container_instances = container_instances_conn.list_container_groups()
for container_instance in container_instances:
container_instance_id = ''
try:
container_instance_dict = self.convert_nested_dictionary(container_instance)
container_instance_id = container_instance_dict['id']

# if bug fix these code will be deleted
resource_group_name = self.get_resource_group_from_id(container_instance_id)
container_group_name = container_instance_dict['name']
container_instance = container_instances_conn.get_container_groups(
resource_group_name=resource_group_name,
container_group_name=container_group_name)
container_instance_dict = self.convert_nested_dictionary(container_instance)
time.sleep(0.2) # end code

# Update data info in Container Instance's Raw Data
for container in container_instance_dict['containers']:
_start_time = container['instance_view']['current_state']['start_time']
if _start_time is not None:
container_instance_dict['start_time'] = datetime_to_iso8601(_start_time)

# Set detail volume info for container
if container_instance_dict['volumes'] is not None:
for volume in container_instance_dict['volumes']:
self.set_volumes_detail_info(volume, container_instance_dict['containers'])

# Set Container Instance volume type and volume count
self.set_container_instance_volume_type(container_instance_dict['volumes'])
container_instance_dict['volume_count_display'] = len(container_instance_dict['volumes'])

container_instance_dict.update({
'resource_group': self.get_resource_group_from_id(container_instance_id),
'subscription_id': subscription_info['subscription_id'],
'subscription_name': subscription_info['subscription_name'],
'azure_monitor': {'resource_id': container_instance_id},
'container_count_display': len(container_instance_dict['containers'])
})

container_instance_data = ContainerInstance(container_instance_dict, strict=False)
container_instance_resource = ContainerInstanceResource({
'name': container_instance_data.name,
'account': container_instance_dict['subscription_id'],
'data': container_instance_data,
'tags': container_instance_dict.get('tags', {}),
'region_code': container_instance_data.location,
'reference': ReferenceModel(container_instance_data.reference())
})

self.set_region_code(container_instance_data['location'])
container_instances_responses.append(
ContainerInstanceResponse({'resource': container_instance_resource}))

except Exception as e:
_LOGGER.error(f'[list_instances] {container_instance_id} {e}', exc_info=True)
error_response = self.generate_resource_error_response(e, 'Container', 'ContainerInstances',
container_instance_id)
error_responses.append(error_response)
# container_instances = container_instances_conn.list_container_groups()
resource_groups = container_instances_conn.list_resource_groups()
for resource_group in resource_groups:
resource_group_name = self.get_resource_group_from_id(resource_group.id)
container_instances = container_instances_conn.list_container_groups_by_resource_group(resource_group_name=
resource_group_name)
for container_instance in container_instances:
container_instance_id = ''

try:
container_instance_dict = self.convert_nested_dictionary(container_instance)
container_instance_id = container_instance_dict['id']

# Update data info in Container Instance's Raw Data
for container in container_instance_dict['containers']:
_start_time = container['instance_view']['current_state']['start_time']
if _start_time is not None:
container_instance_dict['start_time'] = datetime_to_iso8601(_start_time)

# Set detail volume info for container
if container_instance_dict['volumes'] is not None:
for volume in container_instance_dict['volumes']:
self.set_volumes_detail_info(volume, container_instance_dict['containers'])

# Set Container Instance volume type and volume count
self.set_container_instance_volume_type(container_instance_dict['volumes'])
container_instance_dict['volume_count_display'] = len(container_instance_dict['volumes'])

container_instance_dict.update({
'resource_group': self.get_resource_group_from_id(container_instance_id),
'subscription_id': subscription_info['subscription_id'],
'subscription_name': subscription_info['subscription_name'],
'azure_monitor': {'resource_id': container_instance_id},
'container_count_display': len(container_instance_dict['containers'])
})

container_instance_data = ContainerInstance(container_instance_dict, strict=False)
container_instance_resource = ContainerInstanceResource({
'name': container_instance_data.name,
'account': container_instance_dict['subscription_id'],
'data': container_instance_data,
'tags': container_instance_dict.get('tags', {}),
'region_code': container_instance_data.location,
'reference': ReferenceModel(container_instance_data.reference())
})

self.set_region_code(container_instance_data['location'])
container_instances_responses.append(
ContainerInstanceResponse({'resource': container_instance_resource}))

except Exception as e:
_LOGGER.error(f'[list_instances] {container_instance_id} {e}', exc_info=True)
error_response = self.generate_resource_error_response(e, 'Container', 'ContainerInstances',
container_instance_id)
error_responses.append(error_response)

_LOGGER.debug(f'** Container Instances Finished {time.time() - start_time} Seconds **')
return container_instances_responses, error_responses
Expand Down

0 comments on commit e81ed6a

Please sign in to comment.