Skip to content

Implem snmp managers#19

Open
SoulKyu wants to merge 29 commits into
mainfrom
implem-snmp-managers
Open

Implem snmp managers#19
SoulKyu wants to merge 29 commits into
mainfrom
implem-snmp-managers

Conversation

@SoulKyu

@SoulKyu SoulKyu commented May 20, 2026

Copy link
Copy Markdown
Member

No description provided.

SoulKyu added 29 commits May 20, 2026 12:06
Add Current Milestone section for v2.23.1: flashblade_snmp_manager
resource + data source covering /api/2.23/snmp-managers (full CRUD).

Pre-check (Serena): no Snmp* collision in existing code.
Branch: implem-snmp-managers (from clean main).
Scope excludes GET /snmp-managers/test (deferred).
13 requirements (SNMP-01..13) covering full CRUD resource + data
source, sensitive write-once handling, ≥9 new TestUnit_ tests, mock
handler with empty-list GET=200, repo-level ROADMAP.md row move,
and quality gates (lint/test/docs clean, test count ≥ 816).

Out of scope explicitly documented: /snmp-managers/test endpoint and
Pulumi bridge regen (separate milestones).
Add active v2.23.1 entry to milestones list, document Phase 61
(flashblade_snmp_manager Resource & Data Source) with its goal,
requirements coverage (SNMP-01..13), and 5 success criteria.

Out of scope explicitly carried forward: /snmp-managers/test endpoint,
Pulumi bridge regen, GNUmakefile TEST_BASELINE bump.

Next: /gsd:plan-phase 61 (or /gsd:discuss-phase 61 first).
CONTEXT.md locks 20 implementation decisions (D-01..D-20) covering plan
granularity (1 monolithic plan), schema nesting (SingleNestedAttribute,
pattern from array_connection_resource.go:121-141), version-switch
behaviour (omit unused block, no RequiresReplace), drift detection
(6 per-leaf fields), sensitive write-once handling (skip in Read(),
null in ImportState), mock handler shape, test naming, registration,
HCL examples, and the repo-level ROADMAP.md row move.

Canonical refs accumulated for downstream agents: CONVENTIONS.md,
CLAUDE.md, api_references/2.23.md §Snmp managers, swagger-2.23.json
schemas, and 4 in-repo pattern references.

DISCUSSION-LOG.md preserves the 4 alternatives considered per gray
area (audit trail only, not consumed by downstream agents).
13 tasks (T01..T13) covering the 16-item New Resource checklist:
models -> client -> mock -> tests -> resource -> DS -> registration ->
examples -> docs -> ROADMAP.md -> quality gates.

Frontmatter pins all 13 SNMP-XX requirements. Plan is wave 1, no
dependencies, autonomous=true. Honors all 20 locked decisions from
61-CONTEXT.md (D-01..D-20).
Bundles the generated docs/resources/snmp_manager.md +
docs/data-sources/snmp_manager.md and moves the SNMP Managers row from
"Medium Priority — Not Implemented" to "Array Administration /
Implemented" with status Done and v2.23.1 note. Also resolves a
staticcheck QF1008 in the resource test (embedded field selector).

- 9 new TestUnit_ tests (5 client + 3 resource + 1 data source)
- Mock handler with empty-list GET=200 (matches real API)
- Per-leaf drift detection on 6 non-sensitive fields
- In-place v2c<->v3 switch permitted (no RequiresReplace on version)
- Sensitive write-once: community, auth_passphrase, privacy_passphrase
- Out of scope: /snmp-managers/test endpoint (deferred milestone)
SUMMARY records 13/13 tasks, 11 atomic commits, 816 tests (807+9),
lint clean, docs idempotent, ROADMAP row moved, all 13 SNMP-*
requirements marked complete. Sensitive write-once pattern + atomic
v2c/v3 nested block pattern documented for reuse.
Widen the Bash branch to warn on cat/sed/head/tail/awk/less/view targeting
.go/.tf (previously only rg/grep/ag/ack), so whole-file dumps like
find -exec cat are surfaced. Reword the Grep/Glob block message so it no
longer advertises the non-blocking 'rg via Bash' escape hatch.

The hook stays a default-path nudge, not a hard guarantee — enforcement
remains downstream in the CI gates.
66 hardcoded /api/2.23/ path literals across 44 handler files and
server_test.go replaced with a single handlers.APIPrefix const defined
as "/api/" + client.APIVersion.  An API version bump now touches
one line (client.APIVersion) instead of ~66 sites.
Replace the hand-maintained expectedResources/expectedDataSources magic
numbers (56/44) with counts derived from the TF provider's own
Resources()/DataSources() registration — the single source of truth the
bridge already tokenizes from. Adding a TF resource now requires zero edits
here, and the test additionally catches any resource the bridge drops or
duplicates during MustComputeTokens (which a fixed == count could not).
…ayload

Sweep the 208 remaining /api/2.23/ path references in doc comments and
descriptive test strings to the version-agnostic placeholder /api/<APIVersion>/,
so they no longer name a version that drifts on every API bump.

Derive the mock /api/api_version negotiation payload (and its test assertions)
from client.APIVersion instead of a hardcoded "2.23", keeping the mock in sync
with the client's targeted version through the single source of truth.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant