rows = [
# BLOCKED: real blockers preventing AWP from being enabled
('BLOCKED', 'acg',            'fixcomputerviruses.com',         'subdir in acg/public_html',   'no', 'true (irrelevant)', 'cgi',   'WP 4.3.17 too old (min 5.8)'),
('BLOCKED', 'acg',            'guruhelp.me',                    'subdir in acg/public_html',   'no', 'missing',           'cgi',   'WP 4.8.7 too old'),
('BLOCKED', 'acg',            'gurushow.com',                   'subdir in acg/public_html',   'no', 'missing',           'cgi',   'WP 4.7 too old'),
('BLOCKED', 'acg',            'tucsoncomputer.repair',          'subdir in acg/public_html',   'no', 'true (irrelevant)', 'cgi',   'WP 4.3.17 too old'),
('BLOCKED', 'azrestaurant',   'azrestaurantsupply.com',         '/',                           'no', 'missing (KEY_SALT only)', 'cgi', 'WP 5.5.3 too old; conflicting plugin: bj-lazy-load'),
('BLOCKED', 'bruceext',       'bruceexterminating.com',         '/',                           'no', 'true (irrelevant)', 'cgi',   'conflicting plugin: litespeed-cache'),
('BLOCKED', 'danaise',        'longtermdisabilitylawyer.co',    '/',                           'no', 'true (irrelevant)', 'cgi',   'WP 4.1.41 too old; conflicting plugin: litespeed-cache'),
('BLOCKED', 'danaise',        'veterandisability.danaise.com',  '/',                           'no', 'true (irrelevant)', 'cgi',   'WP 4.2.38 too old; conflicting plugin: litespeed-cache'),
('BLOCKED', 'farwest',        'farwestwell.com',                '/',                           'no', 'true (irrelevant)', 'cgi',   'WP 5.6.14 too old; conflicting plugin: litespeed-cache'),
('BLOCKED', 'farwest',        'reliantpump.services',           '(addon domain)',              'no', 'true (irrelevant)', 'cgi',   'advanced-cache.php drop-in present (endurance-page-cache conflict)'),
('BLOCKED', 'fsgtucson',      'fsgtucson.com',                  '/',                           'no', 'true (irrelevant)', 'cgi',   'conflicting plugin: litespeed-cache'),
('BLOCKED', 'nwpool',         'northwestpoolcare.com',          'sitebak/ subdir',             'no', 'commented out',     'cgi',   'WP 5.3.2 too old; main site (/) has no blockers'),
('BLOCKED', 'rarengineer',    'rarengineer.com',                '/',                           'no', 'missing',           'cgi',   'WP 5.5.18 too old'),
('BLOCKED', 'rrspc',          'rrspc.com',                      'Existing Dir Contents subdir','no', 'missing',           'cgi',   'WP 4.8.21 too old; main site (/) has no blockers'),
('BLOCKED', 'tucsonadobe',    'tucsonadobe.com',                '/',                           'no', 'true (irrelevant)', 'cgi',   'conflicting plugin: litespeed-cache'),
('BLOCKED', 'ucryo',          'beta.ucryo.com',                 '/',                           'no', 'true (irrelevant)', 'cgi',   'WP 4.9.21 too old; conflicting plugin: litespeed-cache'),
('BLOCKED', 'voicesofthewest','voicesofthewest.net',            '/',                           'no', 'true (via W3TC)',   'cgi',   'conflicting plugin: custom-fonts (W3 Total Cache active)'),
('BLOCKED', 'voicesofthewest','soaznewsx.com',                  '/',                           'no', 'true',              'cgi',   'conflicting plugin: litespeed-cache'),
# NOT ENABLED
('NOT ENABLED','acepickupparts',   'acepickupparts.com',             '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','acepickupparts',   'acepickupparts.com',             'ezfastautoglass.com subdir','no','missing','cgi','staging/clone subdir'),
('NOT ENABLED','antivaxxer',       'anti-vaxxer.org',                '/',                     'no', 'true',    'cgi', 'WP_CACHE set by prior plugin; AWP not yet enabled'),
('NOT ENABLED','arizonahatters',   'arizonahatters.com',             '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','atlantisbevco',    'atlantisbevcollc.com',           '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','azcomputerguru',   'azcomputerguru.com',             '/',                     'no', 'true',    'cgi', 'WP_CACHE set by prior plugin; AWP not yet enabled'),
('NOT ENABLED','azcomputerguru',   'azcomputerguru.com',             '2022SiteFileSystem/ (archive)','no','missing','cgi','archived site subdir - skip'),
('NOT ENABLED','azcomputerguru',   'azcomputerguru.com',             'testsite/',             'no', 'true',    'cgi', 'test subdir'),
('NOT ENABLED','berman',           'agingwithoutfamily.org',         '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','blackswanarchery', 'blackswanarchery.com',           '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','compoundfitness',  'compoundfunctionalfitness.com',  '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','computergurume',   'clients.computerguru.me',        '11 staging subdirs',   'no', 'missing', 'cgi', 'staging env - skip for AWP'),
('NOT ENABLED','computergurume',   'dev.computerguru.me',            '6 dev subdirs',        'no', 'missing', 'cgi', 'dev env - skip for AWP'),
('NOT ENABLED','cryoweave',        'cryoweave.com',                  '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','cryoweave',        'dev.cryoweave.com',              '/',                     'no', 'missing', 'cgi', 'dev subdomain'),
('NOT ENABLED','danaise',          'danaise.com',                    'oldsite/ (archive)',    'no', 'missing', 'cgi', 'archived subdir; main site is OK'),
('NOT ENABLED','desertfox',        'tucsonpaintball.net',            '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','drsticken',        'drsticken.com',                  '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','ezfastautoglass',  'ezfastautoglass.com',            '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','fsgtucson',        'fsgtucson.com',                  'wordpress/ subdir',     'no', 'missing', 'cgi', 'secondary WP install; main site blocked by litespeed'),
('NOT ENABLED','gentlemansacres',  'gentlemansacres.com',            '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','grabblaw',         'grabbanddurando.com',            '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','gurushow',         'gurushow.com',                   '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','hightechmortgage', 'hightechmortgage.com',           '/',                     'no', 'true',    'cgi', 'WP_CACHE set by prior plugin; AWP not yet enabled'),
('NOT ENABLED','jrkco',            'jrkco.com',                      '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','nwpool',           'northwestpoolcare.com',          '/ (main site)',         'no', 'missing', 'cgi', 'no blockers on main install; sitebak/ subdir is BLOCKED'),
('NOT ENABLED','outaboundssports', 'outaboundssports.com',           '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','packetdial',       'packetdial.com',                 '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','peacefulspirit',   'bestmassageintucson.com',        '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','peacefulspirit',   'forms.bestmassageintucson.com',  '/',                     'no', 'missing', 'cgi', 'forms subdomain'),
('NOT ENABLED','perkins',          'classicsingleaction.com',        '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','perkins',          'classicsingleaction.com',        'site_contents/ subdir', 'no', 'missing', 'cgi', 'old content backup subdir - skip'),
('NOT ENABLED','photonicapps',     'photonicapps.com',               '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','phxpropane',       'phxpropane.com',                 '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','rednourlaw',       'rednourlaw.com',                 '/',                     'no', 'missing', 'suphp', 'suphp handler - unusual; page cache works but object cache will not'),
('NOT ENABLED','royalweedcontrol', 'royalweedcontrol.net',           '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','rrspc',            'rrspc.com',                      '/ (main site)',         'no', 'missing', 'cgi', 'no blockers on main install; old subdir is BLOCKED'),
('NOT ENABLED','sandtekomachine',  'sandtekomachinery.com',          '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','tarafulcreations', 'tarafulcreations.com',           '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','tarafulcreations', 'dev.tarafulcreations.com',       '/',                     'no', 'missing', 'cgi', 'dev subdomain'),
('NOT ENABLED','themarcgroup',     'themarcgroup.com',               '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','thrive',           'thriveappraisalservices.com',    '/',                     'no', 'missing', 'cgi', ''),
('NOT ENABLED','ucryo',            'ucryo.com',                      '/ (main site)',         'no', 'missing', 'cgi', 'no blockers on main; beta.ucryo.com is BLOCKED'),
('NOT ENABLED','zammit',           'valleydevelopmentcorp.com',      '/',                     'no', 'missing', 'cgi', ''),
# OK
('OK', 'azcomputerguru', 'phoenixmanagedservices.azcomputerguru.com', '/', 'yes', 'true', 'cgi', 'AWP active, WP_CACHE set by AccelerateWP'),
('OK', 'danaise',        'danaise.com',                               '/', 'yes', 'true', 'cgi', 'AWP active, WP_CACHE set by AccelerateWP'),
]

col_w = [12, 18, 44, 30, 4, 24, 7]
headers = ['STATUS', 'USER', 'DOMAIN', 'WP_PATH', 'AWP', 'WP_CACHE', 'HANDLER']
hdr = '  '.join(h.ljust(col_w[i]) for i, h in enumerate(headers)) + '  NOTES'
print(hdr)
print('-' * 185)

for row in rows:
    status, user, domain, path, awp, cache, handler, notes = row
    line = '  '.join([
        status.ljust(col_w[0]),
        user.ljust(col_w[1]),
        domain.ljust(col_w[2]),
        path.ljust(col_w[3]),
        awp.ljust(col_w[4]),
        cache.ljust(col_w[5]),
        handler.ljust(col_w[6]),
    ]) + '  ' + notes
    print(line)

print()
print('SUMMARY')
print('-------')
from collections import Counter
counts = Counter(r[0] for r in rows)
print(f'  OK:          {counts["OK"]:>3}  (AWP fully active and working)')
print(f'  BLOCKED:     {counts["BLOCKED"]:>3}  (AWP cannot be enabled - blocker must be resolved first)')
print(f'  NOT ENABLED: {counts["NOT ENABLED"]:>3}  (no blockers - AWP simply has not been turned on)')
print()
print('PHP HANDLER NOTE: Every site runs cgi (or suphp for rednourlaw).')
print('  - Page caching works fine with cgi handler.')
print('  - Object cache (Redis) WILL NOT work on any site until PHP handler is changed to lsapi or php-fpm.')
print()
print('TOP BLOCKERS ACROSS ALL SITES:')
print('  - litespeed-cache plugin conflict: bruceext, danaise (2), farwest, fsgtucson, tucsonadobe, ucryo/beta, voicesofthewest/soaznewsx')
print('  - WordPress version too old: acg (4 sites), azrestaurant, danaise (2), farwest, nwpool/sitebak, rarengineer, rrspc/subdir, ucryo/beta')
print('  - advanced-cache.php drop-in: farwest/reliantpump.services (endurance-page-cache leftover)')
print('  - W3 Total Cache active: voicesofthewest.net (custom-fonts plugin listed as conflict)')
