| 12345678910111213141516171819202122232425262728293031 |
- // Real read-only probe (GET only, no writes, no deploy). Verifies token paging and eight-bucket status contract.
- const base = 'http://192.168.110.96:8301/api/cockpit/v1'
- const get = async (path) => {
- const response = await fetch(`${base}${path}`)
- let body = null
- try { body = await response.json() } catch { body = null }
- return { status: response.status, body }
- }
- const bucket = (r) => (r.body && r.body.data) || {}
- const first = await get('/map-snapshot?page=1&pageSize=2')
- const token = bucket(first).snapshotAt
- console.log('page1', { status: first.status, snapshotAt: token, total: bucket(first).total, hasDistribution: 'pointStatusDistribution' in bucket(first), mapFilterKeys: Object.keys(bucket(first).mapFilter || {}) })
- const withToken = await get(`/map-snapshot?page=2&pageSize=2${token ? `&snapshotAt=${encodeURIComponent(token)}` : ''}`)
- console.log('page2-with-token', { status: withToken.status, code: withToken.body && withToken.body.code })
- const withoutToken = await get('/map-snapshot?page=2&pageSize=2')
- console.log('page2-no-token', { status: withoutToken.status, code: withoutToken.body && withoutToken.body.code, category: withoutToken.body && withoutToken.body.data && withoutToken.body.data.category })
- const noFilter = await get('/map-snapshot?page=1&pageSize=500')
- const alarm = await get('/map-snapshot?page=1&pageSize=500&pointStatus=ALARM')
- console.log('status-filter', { noFilterTotal: bucket(noFilter).total, alarmTotal: bucket(alarm).total, echo: bucket(alarm).mapFilter && bucket(alarm).mapFilter.pointStatus })
- for (const value of ['UNKNOWN', 'UNASSOCIATED', 'BOGUS']) {
- const response = await get(`/map-snapshot?page=1&pageSize=5&pointStatus=${value}`)
- console.log(`status-${value}`, { status: response.status, code: response.body && response.body.code })
- }
- const distribution = await get('/monitoring/distribution?mode=WARNING&pointStatus=UNKNOWN')
- console.log('distribution-UNKNOWN', { status: distribution.status, code: distribution.body && distribution.body.code })
- console.log('distribution-buckets', Object.keys(bucket(distribution).pointStatusDistribution || {}))
|