From eb23a7d5ddd0626b9b93a9525786f197a9f27d23 Mon Sep 17 00:00:00 2001 From: "R.B. Boyer" Date: Wed, 7 Oct 2020 14:20:25 -0500 Subject: [PATCH] add testrpc.WaitForServiceIntentions to help unflake tests that manipulate intentions (#8867) --- testrpc/wait.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/testrpc/wait.go b/testrpc/wait.go index 737bbe137..c593f6606 100644 --- a/testrpc/wait.go +++ b/testrpc/wait.go @@ -168,6 +168,27 @@ func WaitForActiveCARoot(t *testing.T, rpc rpcFn, dc string, expect *structs.CAR }) } +// WaitForServiceIntentions waits until the server can accept config entry +// kinds of service-intentions meaning any migration bootstrapping from pre-1.9 +// intentions has completed. +func WaitForServiceIntentions(t *testing.T, rpc rpcFn, dc string) { + const fakeConfigName = "Sa4ohw5raith4si0Ohwuqu3lowiethoh" + retry.Run(t, func(r *retry.R) { + args := &structs.ConfigEntryRequest{ + Op: structs.ConfigEntryDelete, + Datacenter: dc, + Entry: &structs.ServiceIntentionsConfigEntry{ + Kind: structs.ServiceIntentions, + Name: fakeConfigName, + }, + } + var ignored struct{} + if err := rpc("ConfigEntry.Delete", args, &ignored); err != nil { + r.Fatalf("err: %v", err) + } + }) +} + func WaitForACLReplication(t *testing.T, rpc rpcFn, dc string, expectedReplicationType structs.ACLReplicationType, minPolicyIndex, minTokenIndex, minRoleIndex uint64) { retry.Run(t, func(r *retry.R) { args := structs.DCSpecificRequest{