#!/usr/bin/env python
import sys
import requests
from datetime import datetime, timedelta
API_HOST = 'https://access.redhat.com/hydra/rest/securitydata'
PROXIES = {}
uncomment lines below to specify proxy server
# HTTPS_PROXY = "http://yourproxy.example.com:8000"
# PROXIES = { "https" : HTTPS_PROXY }
def get_data(query):
full_query = API_HOST + query
r = requests.get(full_query, proxies=PROXIES)
if r.status_code != 200:
print('ERROR: Invalid request; returned {} for the following '
'query:\n{}'.format(r.status_code, full_query))
sys.exit(1)
if not r.json():
print('No data returned with the following query:')
print(full_query)
sys.exit(0)
return r.json()
# Get a list of issues and their impacts for RHSA-2022:1988
endpoint = '/cve.json'
params = 'advisory=RHSA-2022:1988'
data = get_data(endpoint + '?' + params)
for cve in data:
print(cve['CVE'], cve['severity'])
print('-----')
# Get a list of kernel advisories for the last 30 days and display the
# packages that they provided.
endpoint = '/csaf.json'
date = datetime.now() - timedelta(days=30)
params = 'package=kernel&after=' + str(date.date())
data = get_data(endpoint + '?' + params)
kernel_advisories = []
for advisory in data:
print(advisory['RHSA'], advisory['severity'], advisory['released_on'])
print('-', '\n- '.join(advisory['released_packages']))
kernel_advisories.append(advisory['RHSA'])
print('-----')
# From the list of advisories saved in the previous example (as
# `kernel_advisories`), get a list of affected products for each advisory.
endpoint = '/csaf/'
for advisory in kernel_advisories:
data = get_data(endpoint + advisory + '.json')
print(advisory)
for product_branch in data['product_tree']['branches']:
for inner_branch in product_branch['branches'][0]['branches']:
print('-', inner_branch['name'])
#!/usr/bin/env python
import sys
import requests
from datetime import datetime, timedelta
API_HOST = 'https://access.redhat.com/hydra/rest/securitydata'
PROXIES = {}
# uncomment lines below to specify proxy server
# HTTPS_PROXY = "http://yourproxy.example.com:8000"
# PROXIES = { "https" : HTTPS_PROXY }
def get_data(query):
full_query = API_HOST + query
r = requests.get(full_query, proxies=PROXIES)
if r.status_code != 200:
print('ERROR: Invalid request; returned {} for the following '
'query:\n{}'.format(r.status_code, full_query))
sys.exit(1)
if not r.json():
print('No data returned with the following query:')
print(full_query)
sys.exit(0)
return r.json()
# Get a list of issues and their impacts for RHSA-2022:1988
endpoint = '/cve.json'
params = 'advisory=RHSA-2022:1988'
data = get_data(endpoint + '?' + params)
for cve in data:
print(cve['CVE'], cve['severity'])
print('-----')
# Get a list of kernel advisories for the last 30 days and display the
# packages that they provided.
endpoint = '/csaf.json'
date = datetime.now() - timedelta(days=30)
params = 'package=kernel&after=' + str(date.date())
data = get_data(endpoint + '?' + params)
kernel_advisories = []
for advisory in data:
print(advisory['RHSA'], advisory['severity'], advisory['released_on'])
print('-', '\n- '.join(advisory['released_packages']))
kernel_advisories.append(advisory['RHSA'])
print('-----')
# From the list of advisories saved in the previous example (as
# `kernel_advisories`), get a list of affected products for each advisory.
endpoint = '/csaf/'
for advisory in kernel_advisories:
data = get_data(endpoint + advisory + '.json')
print(advisory)
for product_branch in data['product_tree']['branches']:
for inner_branch in product_branch['branches'][0]['branches']:
print('-', inner_branch['name'])
Copy to ClipboardCopied!Toggle word wrapToggle overflow