Skip to content

Commit

Permalink
Simplify error handling in tests (#2578)
Browse files Browse the repository at this point in the history
gomega v1.29.0 improved the MatchError matcher so it can also get a
function to check the error (e.g. `errors.IsNotFound`). This change
allow simpify the error assertions in tests.

This PR uses changes all the place where tests check the nature of
errors, and simplify them.

for example, instead of:
```go
Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).To(BeTrue())
```

We can use simpler version, e.g.:
```go
Expect(err).To(MatchError(errors.IsNotFound, "not found error"))
```

Signed-off-by: Nahshon Unna-Tsameret <nunnatsa@redhat.com>
  • Loading branch information
nunnatsa authored Oct 27, 2023
1 parent 8bf83e3 commit 31ea3c4
Show file tree
Hide file tree
Showing 56 changed files with 664 additions and 529 deletions.
11 changes: 3 additions & 8 deletions controllers/alerts/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,7 @@ var _ = Describe("alert tests", func() {
r := NewMonitoringReconciler(ci, cl, ee, commontestutils.GetScheme())

err := r.Reconcile(req, false)
Expect(err).To(HaveOccurred())
Expect(err).To(Equal(fakeError))
Expect(err).To(MatchError(fakeError))
})
})

Expand Down Expand Up @@ -1296,9 +1295,7 @@ var _ = Describe("alert tests", func() {
})
r := NewMonitoringReconciler(ci, cl, ee, commontestutils.GetScheme())

retErr := r.Reconcile(req, false)
Expect(retErr).Should(HaveOccurred())
Expect(retErr).Should(MatchError(err))
Expect(r.Reconcile(req, false)).Should(MatchError(err))
})

It("should return error if can't update the namespace", func() {
Expand All @@ -1309,9 +1306,7 @@ var _ = Describe("alert tests", func() {
})
r := NewMonitoringReconciler(ci, cl, ee, commontestutils.GetScheme())

retErr := r.Reconcile(req, false)
Expect(retErr).Should(HaveOccurred())
Expect(retErr).Should(MatchError(err))
Expect(r.Reconcile(req, false)).Should(MatchError(err))
})
})
})
41 changes: 13 additions & 28 deletions controllers/hyperconverged/hyperconverged_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -936,8 +936,7 @@ var _ = Describe("HyperconvergedController", func() {
err = cl.Get(context.TODO(),
types.NamespacedName{Name: expected.hco.Name, Namespace: expected.hco.Namespace},
foundResource)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))

verifyHyperConvergedCRExistsMetricFalse()
})
Expand Down Expand Up @@ -1568,8 +1567,7 @@ var _ = Describe("HyperconvergedController", func() {
Expect(ver).Should(Equal(testHcoVersion))
// and a third
res, err = r.Reconcile(context.TODO(), request)
Expect(err).To(HaveOccurred())
Expect(err.Error()).Should(ContainSubstring(errorMessage))
Expect(err).Should(MatchError(ContainSubstring(errorMessage)))
Expect(res.Requeue).To(BeTrue())
Expect(
cl.Get(context.TODO(),
Expand Down Expand Up @@ -2271,12 +2269,10 @@ var _ = Describe("HyperconvergedController", func() {
By("Verify services do not exist anymore")
foundResource := &corev1.Service{}
err = cl.Get(context.TODO(), types.NamespacedName{Name: operatorMetrics, Namespace: expected.hco.Namespace}, foundResource)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))

err = cl.Get(context.TODO(), types.NamespacedName{Name: webhookMetrics, Namespace: expected.hco.Namespace}, foundResource)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))
})

It("Should remove endpoints", func() {
Expand Down Expand Up @@ -2305,8 +2301,7 @@ var _ = Describe("HyperconvergedController", func() {
By("Verify endpoint do not exist anymore")
foundResource := &corev1.Endpoints{}
err = cl.Get(context.TODO(), types.NamespacedName{Name: operatorMetrics, Namespace: expected.hco.Namespace}, foundResource)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))
})
})

Expand Down Expand Up @@ -2397,12 +2392,10 @@ var _ = Describe("HyperconvergedController", func() {
foundCM := &corev1.ConfigMap{}

err := cl.Get(context.TODO(), client.ObjectKeyFromObject(cmToBeRemoved1), foundCM)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))

err = cl.Get(context.TODO(), client.ObjectKeyFromObject(cmToBeRemoved2), foundCM)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))

Expect(cl.Get(context.TODO(), client.ObjectKeyFromObject(cmNotToBeRemoved1), foundCM)).To(Succeed())
Expect(cl.Get(context.TODO(), client.ObjectKeyFromObject(cmNotToBeRemoved2), foundCM)).To(Succeed())
Expand Down Expand Up @@ -2586,16 +2579,13 @@ var _ = Describe("HyperconvergedController", func() {
foundRoleBinding := &rbacv1.RoleBinding{}

err := cl.Get(context.TODO(), client.ObjectKeyFromObject(cmToBeRemoved1), foundCM)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))

err = cl.Get(context.TODO(), client.ObjectKeyFromObject(roleToBeRemoved), foundRole)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))

err = cl.Get(context.TODO(), client.ObjectKeyFromObject(roleBindingToBeRemoved), foundRoleBinding)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))

Expect(cl.Get(context.TODO(), client.ObjectKeyFromObject(cmNotToBeRemoved1), foundCM)).To(Succeed())
Expect(cl.Get(context.TODO(), client.ObjectKeyFromObject(cmNotToBeRemoved2), foundCM)).To(Succeed())
Expand Down Expand Up @@ -2749,8 +2739,7 @@ var _ = Describe("HyperconvergedController", func() {
foundCRD := &apiextensionsv1.CustomResourceDefinition{}

err := cl.Get(context.TODO(), client.ObjectKeyFromObject(crdToBeRemoved), foundCRD)
Expect(err).To(HaveOccurred())
Expect(apierrors.IsNotFound(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsNotFound, "not found error"))

foundCM := &corev1.ConfigMap{}
Expect(cl.Get(context.TODO(), client.ObjectKeyFromObject(cmNotToBeRemoved), foundCM)).To(Succeed())
Expand Down Expand Up @@ -3239,9 +3228,7 @@ var _ = Describe("HyperconvergedController", func() {
}

res, err := r.Reconcile(context.TODO(), request)

Expect(err).To(HaveOccurred())
Expect(apierrors.IsConflict(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsConflict, "conflict error"))
Expect(res.Requeue).To(BeTrue())
})

Expand All @@ -3259,9 +3246,7 @@ var _ = Describe("HyperconvergedController", func() {
}

res, err := r.Reconcile(context.TODO(), request)

Expect(err).To(HaveOccurred())
Expect(apierrors.IsConflict(err)).To(BeTrue())
Expect(err).To(MatchError(apierrors.IsConflict, "conflict error"))
Expect(res.Requeue).To(BeTrue())

})
Expand Down
24 changes: 6 additions & 18 deletions controllers/hyperconverged/upgradePatches_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ var _ = Describe("upgradePatches", func() {
Expect(copyTestFile("badJson.json")).To(Succeed())

err := validateUpgradePatches(req)
Expect(err).To(HaveOccurred())
Expect(err.Error()).Should(HavePrefix("invalid character"))
Expect(err).Should(MatchError(HavePrefix("invalid character")))
})

Context("hcoCRPatchList", func() {
Expand All @@ -65,18 +64,14 @@ var _ = Describe("upgradePatches", func() {
Expect(copyTestFile("badSemverRange.json")).To(Succeed())

err := validateUpgradePatches(req)
Expect(err).To(HaveOccurred())
Expect(err.Error()).Should(HavePrefix("Could not get version from string:"))
Expect(err).Should(MatchError(HavePrefix("Could not get version from string:")))
})

DescribeTable(
"should fail validating upgradePatches with bad patches",
func(filename, message string) {
Expect(copyTestFile(filename)).To(Succeed())

err := validateUpgradePatches(req)
Expect(err).To(HaveOccurred())
Expect(err.Error()).Should(HavePrefix(message))
Expect(validateUpgradePatches(req)).Should(MatchError(HavePrefix(message)))
},
Entry(
"bad operation kind",
Expand All @@ -102,8 +97,7 @@ var _ = Describe("upgradePatches", func() {

err := validateUpgradePatches(req)
if expectedErr {
Expect(err).To(HaveOccurred())
Expect(err.Error()).Should(HavePrefix(message))
Expect(err).Should(MatchError(HavePrefix(message)))
} else {
Expect(err).ToNot(HaveOccurred())
}
Expand Down Expand Up @@ -140,20 +134,14 @@ var _ = Describe("upgradePatches", func() {

It("should fail validating upgradePatches with bad semver ranges", func() {
Expect(copyTestFile("badSemverRangeOR.json")).To(Succeed())

err := validateUpgradePatches(req)
Expect(err).To(HaveOccurred())
Expect(err.Error()).Should(HavePrefix("Could not get version from string:"))
Expect(validateUpgradePatches(req)).Should(MatchError(HavePrefix("Could not get version from string:")))
})

DescribeTable(
"should fail validating upgradePatches with bad patches",
func(filename, message string) {
Expect(copyTestFile(filename)).To(Succeed())

err := validateUpgradePatches(req)
Expect(err).To(HaveOccurred())
Expect(err.Error()).Should(HavePrefix(message))
Expect(validateUpgradePatches(req)).Should(MatchError(HavePrefix(message)))
},
Entry(
"empty object kind",
Expand Down
8 changes: 3 additions & 5 deletions controllers/operands/cdi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1093,12 +1093,10 @@ var _ = Describe("CDI Operand", func() {

cdi := &cdiv1beta1.CDI{}

err := cl.Get(context.TODO(),
Expect(cl.Get(context.TODO(),
types.NamespacedName{Name: expectedResource.Name, Namespace: expectedResource.Namespace},
cdi)

Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).To(BeTrue())
cdi,
)).To(MatchError(errors.IsNotFound, "not found error"))
})

It("Ensure func should update CDI object with changes from the annotation", func() {
Expand Down
12 changes: 3 additions & 9 deletions controllers/operands/kubevirt_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3112,8 +3112,6 @@ Version: 1.2.3`)
hco.Spec.TuningPolicy = hcov1beta1.HyperConvergedAnnotationTuningPolicy

kv, err := NewKubeVirt(hco)

Expect(err).To(HaveOccurred())
Expect(err).Should(MatchError("tuning policy set but annotation not present or wrong"))

Expect(kv).To(BeNil())
Expand All @@ -3127,8 +3125,6 @@ Version: 1.2.3`)
hco.Annotations["hco.kubevirt.io/tuningPolicy"] = `{"qps": 100}`

kv, err := NewKubeVirt(hco)

Expect(err).To(HaveOccurred())
Expect(err).Should(MatchError("burst parameter not found in annotation"))
Expect(kv).To(BeNil())

Expand Down Expand Up @@ -3329,12 +3325,10 @@ Version: 1.2.3`)

kv := &kubevirtcorev1.KubeVirt{}

err := cl.Get(context.TODO(),
Expect(cl.Get(context.TODO(),
types.NamespacedName{Name: expectedResource.Name, Namespace: expectedResource.Namespace},
kv)

Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).To(BeTrue())
kv,
)).To(MatchError(errors.IsNotFound, "not found error"))
})

It("Ensure func should update KV object with changes from the annotation", func() {
Expand Down
3 changes: 1 addition & 2 deletions controllers/operands/mtq_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,7 @@ var _ = Describe("MTQ tests", func() {

foundMTQ := &mtqv1alpha1.MTQ{}
err := cl.Get(context.Background(), client.ObjectKey{Name: res.Name}, foundMTQ)
Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).Should(BeTrue())
Expect(err).To(MatchError(errors.IsNotFound, "not found error"))
})
})

Expand Down
8 changes: 3 additions & 5 deletions controllers/operands/networkAddons_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -865,12 +865,10 @@ var _ = Describe("CNA Operand", func() {

cna := &networkaddonsv1.NetworkAddonsConfig{}

err := cl.Get(context.TODO(),
Expect(cl.Get(context.TODO(),
types.NamespacedName{Name: expectedResource.Name, Namespace: expectedResource.Namespace},
cna)

Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).To(BeTrue())
cna,
)).To(MatchError(errors.IsNotFound, "not found error"))
})

It("Ensure func should update CNA object with changes from the annotation", func() {
Expand Down
7 changes: 2 additions & 5 deletions controllers/operands/operandHandler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,7 @@ var _ = Describe("Test operandHandler", func() {
return nil
})

err := handler.Ensure(req)
Expect(err).To(HaveOccurred())
Expect(err).Should(Equal(fakeError))
Expect(handler.Ensure(req)).Should(Equal(fakeError))

Expect(req.ComponentUpgradeInProgress).To(BeFalse())
cond := req.Conditions[hcov1beta1.ConditionReconcileComplete]
Expand Down Expand Up @@ -440,8 +438,7 @@ var _ = Describe("Test operandHandler", func() {
defer cancelFunc()
req.Ctx = ctx
err := handler.EnsureDeleted(req)
Expect(err).Should(HaveOccurred())
Expect(err.Error()).Should(Equal("context deadline exceeded"))
Expect(err).Should(MatchError("context deadline exceeded"))

expectedEvents := []commontestutils.MockEvent{
{
Expand Down
9 changes: 4 additions & 5 deletions controllers/operands/operand_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ var _ = Describe("Test operator.go", func() {
found := &cdiv1beta1.CDI{}

operand := genericOperand{Scheme: scheme.Scheme}
err := operand.addCrToTheRelatedObjectList(req, found)
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("object reference must have, at a minimum: apiVersion, kind, and name"))
Expect(
operand.addCrToTheRelatedObjectList(req, found),
).To(MatchError(ContainSubstring("object reference must have, at a minimum: apiVersion, kind, and name")))
})

It("Should add into the list when it is missing", func() {
Expand Down Expand Up @@ -233,8 +233,7 @@ var _ = Describe("Test operator.go", func() {

operand := genericOperand{Scheme: scheme.Scheme, Client: cl}
outRes := operand.createNewCr(req, expectedResource, res)
Expect(outRes.Err).To(HaveOccurred())
Expect(apierrors.IsAlreadyExists(outRes.Err)).To(BeTrue())
Expect(outRes.Err).To(MatchError(apierrors.IsAlreadyExists, "already exists error"))
Expect(outRes.Created).To(BeFalse())
Expect(outRes.Deleted).To(BeFalse())
Expect(outRes.Updated).To(BeFalse())
Expand Down
8 changes: 3 additions & 5 deletions controllers/operands/ssp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -359,12 +359,10 @@ var _ = Describe("SSP Operands", func() {

ssp := &sspv1beta2.SSP{}

err := cl.Get(context.TODO(),
Expect(cl.Get(context.TODO(),
types.NamespacedName{Name: expectedResource.Name, Namespace: expectedResource.Namespace},
ssp)

Expect(err).To(HaveOccurred())
Expect(errors.IsNotFound(err)).To(BeTrue())
ssp,
)).To(MatchError(errors.IsNotFound, "not found error"))
})

It("Ensure func should update SSP object with changes from the annotation", func() {
Expand Down
6 changes: 3 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ require (
github.com/google/uuid v1.3.1
github.com/kubevirt/cluster-network-addons-operator v0.89.1
github.com/kubevirt/monitoring/pkg/metrics/parser v0.0.0-20230905120831-02f9b4441a9f
github.com/onsi/ginkgo/v2 v2.12.1
github.com/onsi/gomega v1.28.0
github.com/onsi/ginkgo/v2 v2.13.0
github.com/onsi/gomega v1.29.0
github.com/openshift/api v3.9.1-0.20190517100836-d5b34b957e91+incompatible
github.com/openshift/custom-resource-status v1.1.2
github.com/openshift/library-go v0.0.0-20231003133513-3a0c1fc00519
Expand Down Expand Up @@ -62,7 +62,7 @@ require (
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20230926050212-f7f687d19a98 // indirect
github.com/imdario/mergo v0.3.16 // indirect
Expand Down
11 changes: 6 additions & 5 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,9 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
Expand Down Expand Up @@ -173,8 +174,8 @@ github.com/onsi/ginkgo/v2 v2.9.0/go.mod h1:4xkjoL/tZv4SMWeww56BU5kAt19mVB47gTWxm
github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo=
github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts=
github.com/onsi/ginkgo/v2 v2.9.4/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLywzIhbKM=
github.com/onsi/ginkgo/v2 v2.12.1 h1:uHNEO1RP2SpuZApSkel9nEh1/Mu+hmQe7Q+Pepg5OYA=
github.com/onsi/ginkgo/v2 v2.12.1/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o=
github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4=
github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o=
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
Expand All @@ -191,8 +192,8 @@ github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfad
github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557cZ6Gw=
github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ=
github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg=
github.com/onsi/gomega v1.28.0 h1:i2rg/p9n/UqIDAMFUJ6qIUUMcsqOuUHgbpbu235Vr1c=
github.com/onsi/gomega v1.28.0/go.mod h1:A1H2JE76sI14WIP57LMKj7FVfCHx3g3BcZVjJG8bjX8=
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
github.com/openshift/api v0.0.0-20230503133300-8bbcb7ca7183 h1:t/CahSnpqY46sQR01SoS+Jt0jtjgmhgE6lFmRnO4q70=
github.com/openshift/api v0.0.0-20230503133300-8bbcb7ca7183/go.mod h1:4VWG+W22wrB4HfBL88P40DxLEpSOaiBVxUnfalfJo9k=
github.com/openshift/custom-resource-status v1.1.2 h1:C3DL44LEbvlbItfd8mT5jWrqPfHnSOQoQf/sypqA6A4=
Expand Down
Loading

0 comments on commit 31ea3c4

Please sign in to comment.