Add normalisation, mapping and transform stubs

This commit is contained in:
pemontto
2019-04-11 20:11:08 +10:00
parent 76d54abdc6
commit d6980d8229
3 changed files with 35 additions and 7 deletions

View File

@ -190,3 +190,17 @@ class OpenVAS_API(object):
self.processed_reports += 1
merged_df = pd.merge(report_df, self.openvas_reports, on='report_ids').reset_index().drop('index', axis=1)
return merged_df
def normalise(self, dataframe):
self.logger.debug('Normalising data')
self.map_fields(dataframe)
self.transform_values(dataframe)
return dataframe
def map_fields(self, dataframe):
self.logger.debug('Mapping fields')
return dataframe
def transform_values(self, dataframe):
self.logger.debug('Transforming values')
return dataframe

View File

@ -463,3 +463,17 @@ class qualysScanReport:
merged_data.sort_index(axis=1, inplace=True)
return merged_data
def normalise(self, dataframe):
self.logger.debug('Normalising data')
self.map_fields(dataframe)
self.transform_values(dataframe)
return dataframe
def map_fields(self, dataframe):
self.logger.debug('Mapping fields')
return dataframe
def transform_values(self, dataframe):
self.logger.debug('Transforming values')
return dataframe

View File

@ -610,6 +610,9 @@ class vulnWhispererQualys(vulnWhispererBase):
vuln_ready['scan_name'] = scan_name
vuln_ready['scan_reference'] = scan_reference
# Map and transform fields
vuln_ready = self.qualys_scan.normalise(vuln_ready)
# TODO remove the line below once normalising complete
vuln_ready.rename(columns=self.COLUMN_MAPPING, inplace=True)
record_meta = (
@ -627,9 +630,7 @@ class vulnWhispererQualys(vulnWhispererBase):
self.record_insert(record_meta)
if output_format == 'json':
with open(relative_path_name, 'w') as f:
f.write(vuln_ready.to_json(orient='records', lines=True))
f.write('\n')
vuln_ready.to_json(relative_path_name, orient='records', lines=True)
elif output_format == 'csv':
vuln_ready.to_csv(relative_path_name, index=False, header=True) # add when timestamp occured
@ -779,10 +780,9 @@ class vulnWhispererOpenVAS(vulnWhispererBase):
vuln_ready.rename(columns=self.COLUMN_MAPPING, inplace=True)
vuln_ready.port = vuln_ready.port.fillna(0).astype(int)
vuln_ready.fillna('', inplace=True)
if output_format == 'json':
with open(relative_path_name, 'w') as f:
f.write(vuln_ready.to_json(orient='records', lines=True))
f.write('\n')
# Map and transform fields
vuln_ready = self.openvas_api.normalise(vuln_ready)
vuln_ready.to_json(relative_path_name, orient='records', lines=True)
self.logger.info('Report written to {}'.format(report_name))
return report