provisioner_delete's description names no removed controller verb: it asks nobody, so the operator is asked on the operator channel first and named in why and by (ADR 0604 §8)
This commit is contained in:
@@ -541,7 +541,8 @@ func RetirementTools(h *Harness) []stdio.Tool {
|
||||
}},
|
||||
{Name: "provisioner_delete",
|
||||
Description: "Delete one RETIRED consumer — its login and its data — for good. Refused for anything active or " +
|
||||
"asked for. Use the controller's `cleanup delete`, which records the hand act.",
|
||||
"asked for. It asks nobody: ask the operator on the operator channel first, and name that answer in why and " +
|
||||
"by, which the hand-act log keeps (novox/hq ADR 0604 §8).",
|
||||
Input: withOne,
|
||||
Run: func(args map[string]any) (any, error) {
|
||||
consumer := argString(args, "consumer")
|
||||
|
||||
@@ -482,6 +482,10 @@ func TestTheToolsAnswer(t *testing.T) {
|
||||
tools := map[string]func(map[string]any) (any, error){}
|
||||
for _, tool := range RetirementTools(w.h) {
|
||||
tools[tool.Name] = tool.Run
|
||||
// L3: the delete names no removed controller verb, and says who must be asked first (ADR 0604 §8).
|
||||
if tool.Name == "provisioner_delete" && (strings.Contains(tool.Description, "controller") || !strings.Contains(tool.Description, "operator channel")) {
|
||||
t.Errorf("provisioner_delete says %q", tool.Description)
|
||||
}
|
||||
}
|
||||
if len(tools) != 4 {
|
||||
t.Fatalf("%d tools", len(tools))
|
||||
|
||||
Reference in New Issue
Block a user