mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-10 16:27:47 +02:00
docs(p15): add G9G close snapshot and QA instruction
This commit is contained in:
1 parent
36ddbe78d7
commit
32a9993264
2 files changed
+111
-1
No files matched your search
@@ -1,7 +1,7 @@
|
||||
# V3 Phase 15 G9G - Blockmaster Product Loop To Publisher Mini-Plan
|
||||
|
||||
Date: 2026-05-03
|
||||
Status: component slice implemented at `seaweed_block@afac861`; subprocess L2 implemented at `seaweed_block@bdd56c7`; seed-file entry implemented at `seaweed_block@7ed9ab2`; QA verification pending
|
||||
Status: close-ready on `p15-g9g/blockmaster-product-loop@7ed9ab2`; QA verification pending
|
||||
Branch target: `p15-g9g/blockmaster-product-loop`
|
||||
Scope: first live blockmaster loop that turns verified placement into publisher input
|
||||
|
||||
@@ -119,3 +119,41 @@ pre-writing lifecycle store internals:
|
||||
- r2 reaches assignment-backed `Healthy=true`.
|
||||
|
||||
Only after that should we wire external API/CLI verbs or CSI create/publish.
|
||||
|
||||
## 7. Close Snapshot
|
||||
|
||||
Close target: `seaweed_block@7ed9ab2`.
|
||||
|
||||
G9G closes the first product-loop assignment path:
|
||||
|
||||
```text
|
||||
seeded placement intent
|
||||
-> blockmaster lifecycle store
|
||||
-> product-loop tick
|
||||
-> VerifiedPlacement
|
||||
-> G9F-2 AssignmentAsk bridge
|
||||
-> authority.Publisher
|
||||
-> blockvolume assignment stream
|
||||
```
|
||||
|
||||
Evidence expected from QA:
|
||||
|
||||
```powershell
|
||||
go test ./core/lifecycle ./core/host/master ./core/authority ./cmd/blockmaster ./cmd/blockvolume -count=1
|
||||
```
|
||||
|
||||
Key L2 evidence:
|
||||
|
||||
- `cmd/blockvolume::TestG9G_L2ProductLoopPublishesAssignmentToBlockvolume`
|
||||
- real `cmd/blockmaster`;
|
||||
- real `cmd/blockvolume`;
|
||||
- `--lifecycle-placement-seed` entry instead of pre-written internal lifecycle store;
|
||||
- product-loop assignment reaches blockvolume and makes r2 `Healthy=true`.
|
||||
|
||||
Close non-claims:
|
||||
|
||||
- `--lifecycle-placement-seed` is a temporary QA/M01 bridge, not the final product API.
|
||||
- YAML cluster spec is follow-up, not blocking G9G.
|
||||
- Create/delete/attach/detach user verbs are follow-up.
|
||||
- Blank-pool replica-id allocation is follow-up.
|
||||
- CSI and M01 hardware smoke are follow-up.
|
||||
@@ -0,0 +1,72 @@
|
||||
# V3 Phase 15 G9G QA Test Instruction
|
||||
|
||||
Date: 2026-05-03
|
||||
Status: close-candidate on `p15-g9g/blockmaster-product-loop@7ed9ab2`
|
||||
Scope: blockmaster product loop publishes verified placement into the authority publisher path
|
||||
|
||||
## Headline
|
||||
|
||||
At `p15-g9g/blockmaster-product-loop@7ed9ab2`, G9G proves a real blockmaster
|
||||
can import placement intent through a daemon entry point, run the lifecycle
|
||||
product loop, publish through `authority.Publisher`, and deliver assignment to
|
||||
a real blockvolume subscriber.
|
||||
|
||||
## Environment
|
||||
|
||||
- Repo: `seaweed_block`
|
||||
- Branch: `p15-g9g/blockmaster-product-loop`
|
||||
- Minimum commit: `7ed9ab2`
|
||||
- Fidelity: subprocess L2 with real `cmd/blockmaster` and real `cmd/blockvolume`
|
||||
- Non-claim: not m01/M02 hardware and not final product API
|
||||
|
||||
## Full Regression Command
|
||||
|
||||
```powershell
|
||||
go test ./core/lifecycle ./core/host/master ./core/authority ./cmd/blockmaster ./cmd/blockvolume -count=1
|
||||
```
|
||||
|
||||
Expected result: all five packages pass. `cmd/blockvolume` is expected to take
|
||||
about two minutes because it includes G8 and G9 subprocess tests.
|
||||
|
||||
## Focused G9G Command
|
||||
|
||||
```powershell
|
||||
go test ./cmd/blockvolume -run TestG9G_L2ProductLoopPublishesAssignmentToBlockvolume -count=1
|
||||
```
|
||||
|
||||
Expected result: pass in roughly 10-15 seconds on the local Windows harness.
|
||||
|
||||
## Scenario Checklist
|
||||
|
||||
1. Blockmaster accepts a product-loop seed entry.
|
||||
Backing test: `cmd/blockmaster/main_test.go::TestParseFlags_LifecyclePlacementSeedOptional`
|
||||
|
||||
2. Product-loop component tick publishes verified existing replica placement.
|
||||
Backing test: `core/host/master/product_loop_test.go::TestG9G_ProductLoopPublishesVerifiedExistingReplica`
|
||||
|
||||
3. Unverified placement does not publish authority.
|
||||
Backing test: `core/host/master/product_loop_test.go::TestG9G_ProductLoopDoesNotPublishUnverifiedPlacement`
|
||||
|
||||
4. Repeated product-loop tick does not churn authority.
|
||||
Backing test: `core/host/master/product_loop_test.go::TestG9G_ProductLoopIsIdempotentForSameAuthorityLine`
|
||||
|
||||
5. Publisher subscription receives product-loop assignment.
|
||||
Backing test: `core/host/master/product_loop_test.go::TestG9G_BlockvolumeSubscriptionReceivesProductLoopAssignment`
|
||||
|
||||
6. Real subprocess path delivers assignment to blockvolume.
|
||||
Backing test: `cmd/blockvolume/g9g_l2_product_loop_test.go::TestG9G_L2ProductLoopPublishesAssignmentToBlockvolume`
|
||||
|
||||
## Non-Claims
|
||||
|
||||
- `--lifecycle-placement-seed` is a temporary QA/M01 bridge, not the final product API.
|
||||
- No YAML cluster spec yet.
|
||||
- No external create/delete/attach/detach API yet.
|
||||
- No blank-pool replica-id allocator.
|
||||
- No CSI integration.
|
||||
- No m01/M02 hardware evidence.
|
||||
- Assignment publication still does not imply frontend readiness in the abstract; this L2 checks the existing blockvolume status projection after assignment delivery.
|
||||
|
||||
## Closure Sentence
|
||||
|
||||
G9G closes the first live product-loop assignment path:
|
||||
`seeded placement intent -> blockmaster product loop -> publisher -> blockvolume assignment stream`.
|
||||
Reference in new issue
Block a user