Skip to content

The whole ELB collect failed when an ELB does not have a DNSName #5

Open
@CorinneVerheyde

Description

@CorinneVerheyde

On around 600 ELBs, on more than 150 aws accounts, we have 6 ELB without DNSName.
This make the script crash when collecting ELB.

$ aws_network_query -elb

--> Fail after several minutes
It generate no output file at all, as the program exit on an unexpecting error, whereas it as already collected a lot of ELB configurations.

Here is the error trace :

Traceback (most recent call last):
  File "/home/adm-coverheyde/.local/bin/aws_network_query", line 11, in <module>
    load_entry_point('aws-sts-network-query-tool==1.0.0', 'console_scripts', 'aws_network_query')()
  File "/usr/local/python3/lib/python3.7/site-packages/aws_sts_network_query_tool-1.0.0-py3.7.egg/aws_network_query/app.py", line 504, in main
  File "/usr/local/python3/lib/python3.7/concurrent/futures/_base.py", line 428, in result
    return self.__get_result()
  File "/usr/local/python3/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
  File "/usr/local/python3/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/python3/lib/python3.7/site-packages/aws_sts_network_query_tool-1.0.0-py3.7.egg/aws_network_query/app.py", line 422, in worker
  File "/usr/local/python3/lib/python3.7/site-packages/aws_sts_network_query_tool-1.0.0-py3.7.egg/aws_network_query/app.py", line 390, in worker
  File "/usr/local/python3/lib/python3.7/site-packages/aws_sts_network_query_tool-1.0.0-py3.7.egg/aws_network_query/app.py", line 217, in process_load_balancer
KeyError: 'DNSName'

To confirm the issue was coming from the missing DNSName attribute on ELB, I removed the collection of the DNSName (in file aws_network_query/app.py, line 217). The script then finish well and collect all ELB.

216     for item in list:
217         #dict = {'AccountId': account, 'LoadBalancerArn': item['LoadBalancerArn'], 'DNSName': item['DNSName'], 'VpcId': item['VpcId'],'Region': region}
218         dict = {'AccountId': account, 'LoadBalancerArn': item['LoadBalancerArn'], 'VpcId': item['VpcId'],'Region': region}
219         print(f'Account {account}: New Load Balancer found {dict}')

--> Need to add a control if DNSName is not present on ELB ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions