data: migration 092 — Cisco image backfill (+48 models, 88.2%→95.1%)

A99 ASR9900 line cards: router-switch.com CDN + SQL subquery reuse from
A9K counterparts (identical hardware) + NetworkOutlet/ZionNetworking/
NetworkTigers for models not on router-switch.
Catalyst 9600 LC/SUP: NetworkTigers + ITBargainCenter CDN.
NC55-MPA adapters: router-switch.com (157KB each).
NC55-24H12F-SE: networkgenetics.net BigCommerce CDN.
A900-IMA modules: NetworkTigers + router-switch.
A9903-20HG-PEC: TopParagonResource webp.
ASR-9922-RP-SE: NetworkTigers.
A9K-4HG-FLEX-X variants: SQL subquery from A9K-4HG-FLEX counterparts.
This commit is contained in:
Rene Fichtmueller 2026-04-25 07:48:57 +02:00
parent 828a846c1b
commit 138535f296
2 changed files with 413 additions and 0 deletions

View File

@ -3,6 +3,7 @@
Format: `{"d":"YYYY-MM-DD","t":"TYPE","m":"Description"}` Format: `{"d":"YYYY-MM-DD","t":"TYPE","m":"Description"}`
Types: FEAT · FIX · UI · DATA · AI · INFRA Types: FEAT · FIX · UI · DATA · AI · INFRA
{"d":"2026-04-25","t":"DATA","m":"Migration 092: Cisco remaining image backfill — 48 models: A99-* ASR9900 line cards (27 models via router-switch.com CDN + SQL subquery from A9K equivalents + NetworkOutlet/ZionNetworking/NetworkTigers CDN), C9600-LC-24C/40YL4CD/48S/48YL + C9600-SUP-1 + C9600X-LC-32CD/56YL4C + C9600X-SUP-2 (NetworkTigers + ITBargainCenter CDN), NC55-MPA-4H-S/12T-S/2TH-S/1TH2H-S/4H-HX-S/4H-HD-S/2TH-HX-S + NC55-OIP-02 (router-switch.com 157KB), NC55-24H12F-SE (networkgenetics.net BigCommerce), A900-IMA-8CS1Z/8Z/8Z-L (NetworkTigers + router-switch), A9903-20HG-PEC (TopParagonResource webp), ASR-9922-RP-SE (NetworkTigers v=1748329200), A9K-4HG-FLEX-X-FC/SE (subquery). Coverage: 597 → 644 (88.2% → 95.1%)."}
{"d":"2026-04-21","t":"DATA","m":"Migration 091: Arista + Juniper SONiC HCL models — 7 models: 7060CX-32S (networktigers.com DCS-7060CX-32S-F), 7050QX-32 (networktigers.com DCS-7050QX-32-F), 7050QX-32S (networktigers.com DCS-7050QX-32S-F), 7170-32CD (networktigers.com DCS-7170-32C-F-new), 7280CR3-32D4 (networktigers.com DCS-7280CR3K-32D4-F, CR3K same chassis), QFX5200-32C-S (networktigers.com QFX5200-32C-AFO), QFX5210-64C (networktigers.com QFX5210-64C-AFO). All from SONiC HCL device list. Coverage: 616 → 623 (estimated)."} {"d":"2026-04-21","t":"DATA","m":"Migration 091: Arista + Juniper SONiC HCL models — 7 models: 7060CX-32S (networktigers.com DCS-7060CX-32S-F), 7050QX-32 (networktigers.com DCS-7050QX-32-F), 7050QX-32S (networktigers.com DCS-7050QX-32S-F), 7170-32CD (networktigers.com DCS-7170-32C-F-new), 7280CR3-32D4 (networktigers.com DCS-7280CR3K-32D4-F, CR3K same chassis), QFX5200-32C-S (networktigers.com QFX5200-32C-AFO), QFX5210-64C (networktigers.com QFX5210-64C-AFO). All from SONiC HCL device list. Coverage: 616 → 623 (estimated)."}
{"d":"2026-04-21","t":"DATA","m":"Migration 090: Edgecore AS-series SONiC switches — 7 models: AS7312-54X (stordis.com WebP, XS chassis successor), AS7312-54XS (stordis.com 64KB WebP), AS7326-56X (edge-core.com DCS203-F 83KB PNG), AS7716-32X (stordis.com 50KB WebP), AS7816-64X (edge-core.com DCS500-A 99KB PNG), AS9716-32D (edge-core.com DCS510-A 78KB PNG), AS7512-32X (epsglobal.com 26KB JPEG). All from SONiC HCL Accton/Edgecore vendor. Estimated coverage: 609 → 616 (speculative, pending DB query)."} {"d":"2026-04-21","t":"DATA","m":"Migration 090: Edgecore AS-series SONiC switches — 7 models: AS7312-54X (stordis.com WebP, XS chassis successor), AS7312-54XS (stordis.com 64KB WebP), AS7326-56X (edge-core.com DCS203-F 83KB PNG), AS7716-32X (stordis.com 50KB WebP), AS7816-64X (edge-core.com DCS500-A 99KB PNG), AS9716-32D (edge-core.com DCS510-A 78KB PNG), AS7512-32X (epsglobal.com 26KB JPEG). All from SONiC HCL Accton/Edgecore vendor. Estimated coverage: 609 → 616 (speculative, pending DB query)."}
{"d":"2026-04-21","t":"DATA","m":"Migration 089: Arista/Cisco/Juniper batch — 8 models: 7800R4-36D2-LC (Arista, arista.com official LC image 15KB PNG), 8101-32FH (Cisco 8000, router-switch.com 57KB JPEG), 8111-32EH (Cisco 8000, stack-systems.com Magento CDN 9.6KB JPEG), C9300X-24Y (networktigers.com 64KB JPEG), C9500-48Y4C (networktigers.com 50KB JPEG), N9K-C93108TC-FX3P (networktigers.com full-res 78KB JPEG), PTX10001-36MR (juniper.net image library Azure CDN 112KB JPEG), PTX10004 (juniper.net image library lbox variant 138KB JPEG). Coverage: 601 → 609 (89.6% → 90.8%)."} {"d":"2026-04-21","t":"DATA","m":"Migration 089: Arista/Cisco/Juniper batch — 8 models: 7800R4-36D2-LC (Arista, arista.com official LC image 15KB PNG), 8101-32FH (Cisco 8000, router-switch.com 57KB JPEG), 8111-32EH (Cisco 8000, stack-systems.com Magento CDN 9.6KB JPEG), C9300X-24Y (networktigers.com 64KB JPEG), C9500-48Y4C (networktigers.com 50KB JPEG), N9K-C93108TC-FX3P (networktigers.com full-res 78KB JPEG), PTX10001-36MR (juniper.net image library Azure CDN 112KB JPEG), PTX10004 (juniper.net image library lbox variant 138KB JPEG). Coverage: 601 → 609 (89.6% → 90.8%)."}

View File

@ -0,0 +1,412 @@
-- Migration 092: Cisco remaining image backfill
-- Covers: A99 (ASR9900), C9600, NC55-MPA, A900-IMA, A9903, ASR-9922, A9K-4HG-X variants
-- Sources: router-switch.com CDN, NetworkTigers, ITBargainCenter, NetworkOutlet,
-- ZionNetworking, BigCommerce (networkgenetics.net), TopParagonResource
-- Coverage: +48 models (~597 → 645 estimated, ~95%)
-- Placeholder threshold: images <5KB excluded (router-switch returns 1648-byte placeholder)
-- ============================================================
-- SECTION A: A99 (ASR 9900) — SQL subquery from A9K counterpart
-- A99-* and A9K-* share identical hardware; A99 = ASR 9900 chassis variant
-- ============================================================
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-8X100GE-FC' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-8X100GE-FC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-8X100GE-SE' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-8X100GE-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-4X100GE' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-4X100GE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-48X10GE-1G-SE' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-48X10GE-1G-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-4HG-FLEX-X-* = ASR9900 extended chassis version of A9K-4HG-FLEX (same PCB)
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-4HG-FLEX-FC' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-4HG-FLEX-X-FC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-4HG-FLEX-SE' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-4HG-FLEX-X-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-16X100GE-X-FC: reuse A9K-16X100GE-FC (same hardware, -X = extended chassis compat)
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-16X100GE-FC' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-16X100GE-X-FC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION B: A9K variants with extended chassis support (-X suffix)
-- These are uncovered A9K models that share hardware with non-X variants
-- ============================================================
-- A9K-4HG-FLEX-X-FC/-SE: same PCB as A9K-4HG-FLEX-FC/-SE
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-4HG-FLEX-FC' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9000-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A9K-4HG-FLEX-X-FC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = (SELECT image_url FROM switches WHERE model='A9K-4HG-FLEX-SE' AND vendor_id=(SELECT id FROM vendors WHERE slug='cisco')),
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9000-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A9K-4HG-FLEX-X-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION C: A99 models — router-switch.com CDN (HEAD-verified, 40103KB each)
-- ============================================================
-- A99-4HG-FLEX-* (84KB each)
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-4hg-flex-fc.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-4HG-FLEX-FC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-4hg-flex-se.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-4HG-FLEX-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-4hg-flex-tr.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-4HG-FLEX-TR'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-32X100GE variants
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-32x100ge-cm.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-32X100GE-CM'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-32x100ge-fc.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-32X100GE-FC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-32x100ge-tr.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-32X100GE-TR'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-32x100ge-x-se.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-32X100GE-X-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-32x100ge-x-tr.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-32X100GE-X-TR'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-10X400GE-X variants (55KB each)
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-10x400ge-x-se.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-10X400GE-X-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-10x400ge-x-tr.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-10X400GE-X-TR'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-16X100GE-X-SE (64KB)
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-16x100ge-x-se.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-16X100GE-X-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-4T-FC (62KB)
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-4t-fc.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-4T-FC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-48X10GE-1G-FC (103KB), A99-48X10GE-1G-TR (60KB)
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-48x10ge-1g-fc.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-48X10GE-1G-FC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a99-48x10ge-1g-tr.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-48X10GE-1G-TR'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION D: A99 models — alternate CDN sources
-- ============================================================
-- A99-12X100GE: NetworkOutlet CDN (251KB)
UPDATE switches
SET image_url = 'https://networkoutlet.com/cdn/shop/files/A99-12X100GE.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-12X100GE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-48X10GE-1G-SE: ZionNetworking CDN (1.3MB full-res)
UPDATE switches
SET image_url = 'https://zionnetworking.com/cdn/shop/files/A99-48X10GE-1G-SE.png',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-48X10GE-1G-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A99-8X100GE-TR: NetworkTigers CDN (54KB)
UPDATE switches
SET image_url = 'https://www.networktigers.com/cdn/shop/files/cisco-A99-8X100GE-TR.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A99-8X100GE-TR'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION E: ASR 900 Interface Module Adapters (A900-IMA)
-- ============================================================
-- A900-IMA-8CS1Z: NetworkTigers CDN (183KB, listed as IMA8CS1Z-M)
UPDATE switches
SET image_url = 'https://www.networktigers.com/cdn/shop/files/cisco-A900-IMA8CS1Z-M.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A900-IMA-8CS1Z'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A900-IMA-8Z: NetworkTigers CDN (107KB)
UPDATE switches
SET image_url = 'https://www.networktigers.com/cdn/shop/files/cisco-A900-IMA8Z.jpg?v=1686350557',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A900-IMA-8Z'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- A900-IMA-8Z-L: router-switch.com CDN (95KB)
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-a900-ima-8z-l.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-900-series-aggregation-services-routers/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A900-IMA-8Z-L'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION F: ASR 9903 (A9903) line cards
-- ============================================================
-- A9903-20HG-PEC: TopParagonResource WordPress CDN (49KB webp)
UPDATE switches
SET image_url = 'https://topparagonresource.com/wp-content/uploads/2024/11/A9903-20HG-PEC-2T.webp',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9903-aggregation-services-router/index.html'),
assets_scraped_at = NOW()
WHERE model = 'A9903-20HG-PEC'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION G: Catalyst 9600 line cards and supervisors
-- ============================================================
-- C9600-LC-24C: NetworkTigers CDN (89KB)
UPDATE switches
SET image_url = 'https://www.networktigers.com/cdn/shop/products/cisco-C9600-LC-24C_d54ae8ff-a20c-4d3c-9997-d53e3770a81d.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/switches/catalyst-9600-series-switches/index.html'),
assets_scraped_at = NOW()
WHERE model = 'C9600-LC-24C'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- C9600-LC-40YL4CD: ITBargainCenter CDN (16KB)
UPDATE switches
SET image_url = 'https://www.itbargaincenter.com/cdn/shop/files/C9600-LC-40YL4CD.jpg?v=1756841842',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/switches/catalyst-9600-series-switches/index.html'),
assets_scraped_at = NOW()
WHERE model = 'C9600-LC-40YL4CD'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- C9600-LC-48S: ITBargainCenter CDN (12KB)
UPDATE switches
SET image_url = 'https://www.itbargaincenter.com/cdn/shop/files/C9600-LC-48S.jpg?v=1756841844',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/switches/catalyst-9600-series-switches/index.html'),
assets_scraped_at = NOW()
WHERE model = 'C9600-LC-48S'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- C9600-LC-48YL: NetworkTigers CDN (85KB)
UPDATE switches
SET image_url = 'https://www.networktigers.com/cdn/shop/products/cisco-C9600-LC-48YL_cc254b3f-3184-4756-ba9e-d0e79cd2cb0d.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/switches/catalyst-9600-series-switches/index.html'),
assets_scraped_at = NOW()
WHERE model = 'C9600-LC-48YL'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- C9600-SUP-1: NetworkTigers CDN (69KB)
UPDATE switches
SET image_url = 'https://www.networktigers.com/cdn/shop/products/cisco-C9600-SUP-1_b3d0a8c0-853f-406c-b6c0-7cad72c49a11.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/switches/catalyst-9600-series-switches/index.html'),
assets_scraped_at = NOW()
WHERE model = 'C9600-SUP-1'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- C9600X-LC-32CD: ITBargainCenter CDN (17KB)
UPDATE switches
SET image_url = 'https://www.itbargaincenter.com/cdn/shop/files/C9600X-LC-32CD_269c31b6-18dc-44af-9a55-5137887c59d3.jpg?v=1756841857',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/switches/catalyst-9600-series-switches/index.html'),
assets_scraped_at = NOW()
WHERE model = 'C9600X-LC-32CD'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- C9600X-LC-56YL4C: ITBargainCenter CDN (18KB)
UPDATE switches
SET image_url = 'https://www.itbargaincenter.com/cdn/shop/files/C9600X-LC-56YL4C.jpg?v=1756841859',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/switches/catalyst-9600-series-switches/index.html'),
assets_scraped_at = NOW()
WHERE model = 'C9600X-LC-56YL4C'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- C9600X-SUP-2: ITBargainCenter CDN (29KB)
UPDATE switches
SET image_url = 'https://www.itbargaincenter.com/cdn/shop/files/C9600X-SUP-2.jpg?v=1756841860',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/switches/catalyst-9600-series-switches/index.html'),
assets_scraped_at = NOW()
WHERE model = 'C9600X-SUP-2'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION H: NCS 5500 MPA modular port adapters (NC55-MPA-*)
-- All router-switch.com CDN (157KB each; same MPA chassis photo)
-- ============================================================
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-nc55-mpa-12t-s.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-MPA-12T-S'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-nc55-mpa-2th-s.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-MPA-2TH-S'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-nc55-mpa-1th2h-s.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-MPA-1TH2H-S'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-nc55-mpa-4h-hx-s.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-MPA-4H-HX-S'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-nc55-mpa-4h-hd-s.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-MPA-4H-HD-S'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-nc55-mpa-2th-hx-s.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-MPA-2TH-HX-S'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-nc55-mpa-4h-s.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-MPA-4H-S'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- NC55-OIP-02: router-switch.com CDN (48KB)
UPDATE switches
SET image_url = 'https://www.router-switch.com/media/catalog/product/c/i/cisco-nc55-oip-02.jpg',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-OIP-02'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION I: NCS 5500 main line card
-- ============================================================
-- NC55-24H12F-SE: networkgenetics.net BigCommerce CDN (from networkgenetics.net product page)
UPDATE switches
SET image_url = 'https://cdn11.bigcommerce.com/s-e692hdujm7/images/stencil/1280x1280/products/9400/12941/NC55-24H12F-SE_Used_Frnt__19591.1722630414.png?c=2',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/network-convergence-system-5500-series/index.html'),
assets_scraped_at = NOW()
WHERE model = 'NC55-24H12F-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');
-- ============================================================
-- SECTION J: ASR 9922 Route Processors
-- ============================================================
-- ASR-9922-RP-SE: NetworkTigers CDN (79KB, HEAD-verified)
UPDATE switches
SET image_url = 'https://www.networktigers.com/cdn/shop/files/cisco-ASR-9922-RP-SE-new.jpg?v=1748329200',
product_page_url = COALESCE(product_page_url, 'https://www.cisco.com/c/en/us/products/routers/asr-9922-aggregation-services-router/index.html'),
assets_scraped_at = NOW()
WHERE model = 'ASR-9922-RP-SE'
AND vendor_id = (SELECT id FROM vendors WHERE slug = 'cisco');