Skip to content

[RFE] Provide Better Logging for validation network failures #687

Description

@sadsfae

Currently when quads --validate-env is run we get the following return data when network validation fails on one or more internal interfaces/networks:

Verifying badfish credentials for: f09-h23-000-r760.example.com
Verifying badfish credentials for: f09-h25-000-r760.example.com
Verifying badfish credentials for: f09-h27-000-r760.example.com
Starting network test
There was something wrong with your request
The following IPs are not responsive:
172.21.37.26
172.21.39.88
172.21.38.23
172.16.36.235
172.16.37.26
172.16.39.88
172.21.36.235
172.16.38.23
Quads assignments validation executed.

This isn't immediately useful, we need to determine host(s) this maps too, luckily there is a formula with QUADS.

for example: 172.21.37.26 if substituted for the first two octets of the network address used for the routed, public interface for the host 10.1 replaces 172.xx then we get the IP address of the system.

From there we know what host(s) have issues:

# host 10.1.37.26
26.37.1.10.in-addr.arpa domain name pointer f09-h25-000-r760.example.com

However, what is not easily determined is what the host's physical interface this IP address belongs to that is failing the check. We could put this together using an conditional check that "for every host that has a network validation failure, log the hostname and then use an async paramiko SSH call to determine the physical interface name"

Ideally our logger output should look this as an example.

The following hosts are not responsive:
172.21.37.26 on  f09-h25-000-r760.example.com (interface: enp1s0)

Because network design and ranges may vary with QUADS deployments we probably want a prefix in /opt/quads/conf/quads.yml so we can substitute our DNS lookup command without querying each host's FQDN to extract it.

public_network_prefix:  10.1

Metadata

Metadata

Assignees

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions