def get_entry_info(self, entry): data = {} attrib = entry.attrib data[CveKey.CveId] = attrib.get(CVE_ID) data[CveKey.CveName] = attrib.get(CVE_NAME) data[CveKey.CveSev] = attrib.get(CVE_SEVERITY) data[CveKey.CvePublishedDate] = (r.epoch_time( timestamp_verifier(date_parser(attrib.get(CVE_PUBLISHED_DATE))))) data[CveKey.CveModifiedDate] = (r.epoch_time( timestamp_verifier(date_parser(attrib.get(CVE_MODIFIED_DATE))))) data[CveKey.CvssScore] = attrib.get(CVSS_SCORE) data[CveKey.CvssBaseScore] = attrib.get(CVSS_BASE_SCORE) data[CveKey.CvssImpactSubScore] = attrib.get(CVSS_IMPACT_SUBSCORE) data[CveKey.CvssExploitSubScore] = attrib.get(CVSS_EXPLOIT_SUBSCORE) data[CveKey.CvssVector] = self._parse_vectors(attrib.get(CVSS_VECTOR)) data[CveKey.CvssVersion] = attrib.get(CVSS_VERSION) #if data[CveKey.CveId]: # print '\nFOOBAR\n' # print entry.tag # print type(entry.tag) # print data return (data)
def get_entry_info(self, entry): data = {} attrib = entry.attrib data[CveKey.CveId] = attrib.get(CVE_ID) data[CveKey.CveName] = attrib.get(CVE_NAME) data[CveKey.CveSev] = attrib.get(CVE_SEVERITY) data[CveKey.CvePublishedDate] = ( r.epoch_time( timestamp_verifier( date_parser( attrib.get(CVE_PUBLISHED_DATE) ) ) ) ) data[CveKey.CveModifiedDate] = ( r.epoch_time( timestamp_verifier( date_parser( attrib.get(CVE_MODIFIED_DATE) ) ) ) ) data[CveKey.CvssScore] = attrib.get(CVSS_SCORE) data[CveKey.CvssBaseScore] = attrib.get(CVSS_BASE_SCORE) data[CveKey.CvssImpactSubScore] = attrib.get(CVSS_IMPACT_SUBSCORE) data[CveKey.CvssExploitSubScore] = attrib.get(CVSS_EXPLOIT_SUBSCORE) data[CveKey.CvssVector] = self._parse_vectors(attrib.get(CVSS_VECTOR)) data[CveKey.CvssVersion] = attrib.get(CVSS_VERSION) #if data[CveKey.CveId]: # print '\nFOOBAR\n' # print entry.tag # print type(entry.tag) # print data return(data)
def store_package_info_in_db( username, customer_name, uri, method, size, md5, operating_system, uuid, name, severity, arch, major_version, minor_version, release_date=0.0, vendor_name=None, description=None, cli_options=None, support_url=None, kb=None, conn=None): PKG_FILE = TMP_DIR + uuid + '/' + name URL_PATH = 'https://localhost/packages/tmp/' + uuid + '/' url = URL_PATH + name if os.path.exists(PKG_FILE): if (isinstance(release_date, str) or isinstance(release_date, unicode)): orig_release_date = release_date if (len(release_date.split('-')) == 3 or len(release_date.split('/')) == 3): release_date = ( r .epoch_time(date_parser(release_date)) ) else: release_date = ( r .epoch_time( timestamp_verifier(release_date) ) ) data_to_store = { CustomAppsKey.Name: name, CustomAppsPerAgentKey.Dependencies: [], CustomAppsKey.RvSeverity: severity, CustomAppsKey.VendorSeverity: severity, CustomAppsKey.ReleaseDate: release_date, CustomAppsKey.VendorName: vendor_name, CustomAppsKey.Description: description, CustomAppsKey.MajorVersion: major_version, CustomAppsKey.MinorVersion: minor_version, CustomAppsKey.Version: major_version + '.' + minor_version, CustomAppsKey.OsCode: operating_system, CustomAppsKey.Kb: kb, CustomAppsKey.Hidden: 'no', CustomAppsKey.CliOptions: cli_options, CustomAppsKey.Arch: arch, CustomAppsKey.RebootRequired: 'possible', CustomAppsKey.SupportUrl: support_url, CustomAppsKey.Customers: [customer_name], CustomAppsPerAgentKey.Update: PackageCodes.ThisIsNotAnUpdate, CustomAppsKey.FilesDownloadStatus: PackageCodes.FileCompletedDownload, CustomAppsKey.AppId: uuid } file_data = ( [ { FilesKey.FileUri: url, FilesKey.FileSize: int(size), FilesKey.FileHash: md5, FilesKey.FileName: name } ] ) try: updated = ( r .table(CustomAppsCollection) .insert(data_to_store, upsert=True) .run(conn) ) add_custom_app_to_agents( username, customer_name, uri, method, file_data, app_id=uuid ) data_to_store['release_date'] = orig_release_date results = ( GenericResults( username, uri, method ).object_created(uuid, 'custom_app', data_to_store) ) logger.info(results) except Exception as e: results = ( GenericResults( username, uri, method ).something_broke(uuid, 'custom_app', e) ) logger.exception(e) else: results = ( GenericResults( username, uri, method ).file_doesnt_exist(name, e) ) logger.info(results) return(results)