Skip to content

Commit

Permalink
Updating prescribe to look at group for hw data
Browse files Browse the repository at this point in the history
In certain cases, where the hosts file have groups outside of the
interested ones, namely undercloud, computes and controller. Running
prescribe, will cause errors while building hardware-metadata, as
certain keys maybe missing. Thus, applying same logic that's used for
software-metadata to look at interested groups only.

Co-Authored-By: Joe Talerico <jtaleric@redhat.com>
Change-Id: I62c4dbfbc5d679ce4267d930934bcef9a78da13a
  • Loading branch information
aakarshg and jtaleric committed Dec 12, 2018
1 parent f42ee0f commit d82dc58
Showing 1 changed file with 23 additions and 19 deletions.
42 changes: 23 additions & 19 deletions browbeat/prescribe.py
Expand Up @@ -19,6 +19,9 @@
class Metadata(object):

def __init__(self):
# These are the only groups from the ansible inventory, that we are
# Interested in
self._supported_node_types = ['overcloud', 'undercloud']
pass

def load_file(self, filename):
Expand All @@ -33,23 +36,25 @@ def load_file(self, filename):
def get_hardware_metadata(self, sys_data):
hard_dict = {}
for item, dictionary in sys_data.iteritems():
if 'hardware_details' not in hard_dict:
hard_dict['hardware_details'] = []
hardware_dict = {}
hardware_dict['label'] = sys_data[item]['inventory_hostname']
hardware_dict['virtualization_role'] = sys_data[item]['ansible_virtualization_role']
hardware_dict['virtualization_type'] = sys_data[item]['ansible_virtualization_type']
hardware_dict['total_mem'] = sys_data[item][
'ansible_memory_mb']['real']['total']
hardware_dict['total_logical_cores'] = sys_data[item][
'facter_processorcount']
hardware_dict['os_name'] = sys_data[item]['ansible_distribution'] + \
sys_data[item]['ansible_distribution_version']
hardware_dict['ip'] = sys_data[item]['ansible_default_ipv4']['address']
hardware_dict['num_interface'] = len(sys_data[item]['ansible_interfaces'])
hardware_dict['machine_make'] = sys_data[item]['ansible_product_name']
hardware_dict['processor_type'] = ' '.join(sys_data[item]['facter_processor0'].split())
hard_dict['hardware_details'].append(hardware_dict)
if any(node in sys_data[item]['group_names'] for node in self._supported_node_types):
if 'hardware_details' not in hard_dict:
hard_dict['hardware_details'] = []
hardware_dict = {}
hardware_dict['label'] = sys_data[item]['inventory_hostname']
hardware_dict['virtualization_role'] = sys_data[item]['ansible_virtualization_role']
hardware_dict['virtualization_type'] = sys_data[item]['ansible_virtualization_type']
hardware_dict['total_mem'] = sys_data[item][
'ansible_memory_mb']['real']['total']
hardware_dict['total_logical_cores'] = sys_data[item][
'facter_processorcount']
hardware_dict['os_name'] = sys_data[item]['ansible_distribution'] + \
sys_data[item]['ansible_distribution_version']
hardware_dict['ip'] = sys_data[item]['ansible_default_ipv4']['address']
hardware_dict['num_interface'] = len(sys_data[item]['ansible_interfaces'])
hardware_dict['machine_make'] = sys_data[item]['ansible_product_name']
hardware_dict['processor_type'] = ' '.join(sys_data[item][
'facter_processor0'].split())
hard_dict['hardware_details'].append(hardware_dict)
return hard_dict

def get_environment_metadata(self, sys_data):
Expand All @@ -67,8 +72,7 @@ def get_software_metadata(self, sys_data):
soft_all_dict = []
bad_output_list = [{},[],""]
for item, dictionary in sys_data.iteritems():
nodes = ['controller', 'undercloud', 'compute']
if any(node in sys_data[item]['group_names'] for node in nodes):
if any(node in sys_data[item]['group_names'] for node in self._supported_node_types):
software_dict = {}
sample_vuln_dict = {}
node = sys_data[item]['inventory_hostname']
Expand Down

0 comments on commit d82dc58

Please sign in to comment.