scratch pad - dishplate/blog GitHub Wiki
import requests
from requests.auth import HTTPBasicAuth
from collections import Counter
# Credentials
username = '<YOUR_USERNAME>'
password = '<YOUR_PASSWORD>'
console_url = '<YOUR_CONSOLE_URL>'
# List of site IDs to exclude
excluded_sites = {101: 'Test Site A', 202: 'Maintenance Site B'} # Replace with your site IDs and names
# API endpoint for scan engines
url = f'{console_url}/api/3/scan_engines'
# Make the request
response = requests.get(url, auth=HTTPBasicAuth(username, password))
excluded_log = []
version_counter = Counter() # To track engine versions
inactive_engines = [] # To track engines with non-active status
if response.status_code == 200:
engines = response.json()['resources']
for engine in engines:
engine_id = engine['id']
engine_name = engine['name']
engine_version = engine.get('version', 'N/A')
site_id = engine.get('siteId') # Assuming 'siteId' is part of the engine response
engine_status = engine.get('status', 'N/A').lower() # Ensure comparison is case-insensitive
# Skip engines belonging to excluded sites
if site_id in excluded_sites:
excluded_log.append(f'Skipped: Engine ID {engine_id} (Site ID {site_id}: {excluded_sites[site_id]})')
continue
# Check for non-active engines
if engine_status != 'active':
inactive_engines.append(f'Engine ID {engine_id}, Name: {engine_name}, Status: {engine_status.capitalize()}')
# Print engine details and update version counter
print(f'ID: {engine_id}, Name: {engine_name}, Version: {engine_version}')
version_counter[engine_version] += 1
# Log excluded sites at the end
print("\nExcluded Engines:")
for log_entry in excluded_log:
print(log_entry)
# Summary of engine versions
print("\nEngine Version Summary:")
for version, count in version_counter.items():
print(f'Version {version}: {count} engine(s)')
# Print details of non-active engines
if inactive_engines:
print("\nNon-Active Engines:")
for engine_info in inactive_engines:
print(engine_info)
else:
print(f'Failed to retrieve engines: {response.status_code}')
print(response.text)