Implem snmp managers#19
Open
SoulKyu wants to merge 29 commits into
Open
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.