| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
The REST Query Job response schema documents a structured status-notes
block:
<statusNotes>
<statusNote type="CountOfUsersAddedToSite" value="5" text="..." />
<statusNote type="CountOfUsersSkipped" value="1" text="..." />
</statusNotes>
JobItem was parsing only the sibling legacy `<notes>` element (emitted
by some job types like extractRefreshJob), missing the modern
statusNotes entirely. For UserImport jobs and any other multi-row job
where individual rows have distinct outcomes, `job.notes` came back as
an empty list even when the server had sent detailed structured status.
Add `JobItem.status_notes: list[dict]`, each dict with keys `type`,
`value`, `text` (any of which may be None if the server omitted them).
The legacy `notes: list[str]` attribute is unchanged for backwards
compatibility -- it still parses the `<notes>` element still emitted by
extract-refresh and similar older job types.
Verified against the public REST doc:
https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_jobs_tasks_and_schedules.htm#query_job
The existing job_get_by_id.xml test asset already contained a
statusNotes block; the get_by_id test now asserts the structured value
in addition to the legacy notes list. Two new tests cover the absent
case (yields []) and the multi-note case with attribute omissions.
Discovered while planning tabcmd createsiteusers nowait / silent-progress
work (tableau/tabcmd#35); a live probe against Tableau Server 2025.1
confirmed the server emits this schema for UserImport jobs.
Fixes #1850.
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Summary
The REST Query Job response schema documents a structured status-notes block:
JobItem was parsing only the sibling legacy <notes> element (emitted by some job types like extractRefreshJob), missing the modern statusNotes entirely. For UserImport jobs and any other multi-row job where individual rows have distinct outcomes, job.notes came back as an empty list even when the server had sent detailed structured status.
Fix
Add JobItem.status_notes: list[dict], each dict with keys type, value, text (any of which may be None if the server omitted them). The legacy notes: list[str] attribute is unchanged for backwards compatibility — it still parses the <notes> element still emitted by extract-refresh and similar older job types.
Verification
Closes #1850.
Test plan
Discovered while
Planning tabcmd createsiteusers --nowait / --silent-progress work (tableau/tabcmd#35). Switching from the per-user users.add loop to bulk_add + wait_for_job for Classic parity needs per-row status back — which needed this data.
🤖 Generated with Claude Code