feat(gcp)!: withdraw DiskAsyncReplication until the agent can resolve a reference at plan time - #172
Merged
Merged
Conversation
… a reference at plan time
The type cannot pass conformance in any shape the plugin can take. Its two
properties are the disks the pair joins - both immutable, and both declared as
references to the disk resources, because that is how a forma names another
resource. An extracted forma writes such a reference unresolved, so the
re-apply compares a reference against the URL in state, on an immutable path,
and plans a replacement of the pair already in place. Four runs against formae
main:
33145336853 writeOnly, Read reports the pair crud: extract FAILED
33154860464 createOnly only, Read reports it crud: extract FAILED
33153366449 writeOnly, Read reports {} crud 8/8, discovery FAILED
33155568420 writeOnly, Read reports nothing crud 8/8, discovery FAILED
Suppressing the comparison fixes the lifecycle and makes the pair
undiscoverable, because the agent validates required fields on a resource it
persists and a write-only field is never returned by a Read. Reporting the pair
keeps discovery and brings the replacement back. CI runs both phases, so
neither half is a green build.
It never shipped stable - 0.1.13-dev.1 and -dev.2 only - so withdrawing it costs
no released surface, and keeping it costs a red nightly on a defect that is not
the plugin's to fix. The provisioner, its schema, the test case and the analysis
stay on naxty/fixAsyncDisk as a draft PR, which re-adds the type when the agent
side lands.
Also carries the debug-conformance formae_branch input from that branch, which
is independent of the type: without it a debug run installs the released formae
and cannot reproduce a nightly-only failure at all.
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.
Why
GCP::Compute::DiskAsyncReplicationcannot pass conformance in any shape the plugin can take, and the reason is agent-side. It never shipped in a stable release (0.1.13-dev.1/-dev.2only), so withdrawing it costs no released surface, while keeping it costs a permanently red nightly on a defect that is not the plugin's to fix.Its two properties are the disks the pair joins. Both are immutable, and both are declared as references to the disk resources, because that is how a forma names another resource:
An extracted forma writes such a reference unresolved, so the re-apply compares a
$refwith no$valueagainst the URL sitting in state, on acreateOnlypath, and plans a replacement of the pair already in place:The bind
writeOnly,Readreports the paircreateOnlyonly,Readreports the pairwriteOnly,Readreports{}writeOnly,Readreports nothingAll four against formae
main. Suppressing the comparison fixes the lifecycle and makes the pair undiscoverable — the agent validates required fields on a resource it persists, and awriteOnlyfield is never returned by a Read:Reporting the pair keeps discovery and brings the replacement back. CI runs both phases, so neither half is a green build.
What this PR does
formae_branchinput fordebug-conformanceover from the work branch — independent of the type, and without it a debug run installs the released formae and cannot reproduce a nightly-only failure at all.go build ./...,go test ./...(203 tests, 43 packages) andpkl eval formae-plugin.pklall green.Where the work went
Draft PR #166 on
naxty/fixAsyncDiskkeeps the provisioner, the schema, the test case and the full analysis, including the two agent-side asks. It re-adds the type when the agent side lands.