Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 23 additions & 19 deletions pkg/fauxinnati/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ func (s *Server) Start(port int) error {
return http.ListenAndServe(addr, WithLogging(s.mux))
}

const (
riskNamePrefix = "TestAlertFeatureE2ETest"
)

func (s *Server) handleGraph(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodGet {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
Expand Down Expand Up @@ -267,7 +271,7 @@ func (s *Server) generateRisksAlwaysGraph(queriedVersion semver.Version, arch st
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-a",
Name: "SyntheticRiskA",
Name: riskNamePrefix + "SyntheticRiskA",
Message: "This is a synthetic risk A that always applies for testing purposes",
MatchingRules: []MatchingRule{
{
Expand All @@ -277,7 +281,7 @@ func (s *Server) generateRisksAlwaysGraph(queriedVersion semver.Version, arch st
},
{
URL: "https://docs.openshift.com/synthetic-risk-b",
Name: "SyntheticRiskB",
Name: riskNamePrefix + "SyntheticRiskB",
Message: "This is a synthetic risk B that always applies for testing purposes",
MatchingRules: []MatchingRule{
{
Expand All @@ -297,7 +301,7 @@ func (s *Server) generateRisksAlwaysGraph(queriedVersion semver.Version, arch st
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-a",
Name: "SyntheticRiskA",
Name: riskNamePrefix + "SyntheticRiskA",
Message: "This is a synthetic risk A that always applies for testing purposes",
MatchingRules: []MatchingRule{
{
Expand All @@ -307,7 +311,7 @@ func (s *Server) generateRisksAlwaysGraph(queriedVersion semver.Version, arch st
},
{
URL: "https://docs.openshift.com/synthetic-risk-c",
Name: "SyntheticRiskC",
Name: riskNamePrefix + "SyntheticRiskC",
Message: "This is a synthetic risk C that always applies for testing purposes",
MatchingRules: []MatchingRule{
{
Expand Down Expand Up @@ -372,7 +376,7 @@ func (s *Server) generateRisksMatchingGraph(queriedVersion semver.Version, arch
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-promql",
Name: "SyntheticRisk",
Name: riskNamePrefix + "SyntheticRisk",
Message: "This is a synthetic risk with PromQL that always matches in OpenShift clusters",
MatchingRules: []MatchingRule{
{
Expand Down Expand Up @@ -433,7 +437,7 @@ func (s *Server) generateRisksCannotEvaluateGraph(queriedVersion semver.Version,
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-promql",
Name: "SyntheticRisk",
Name: riskNamePrefix + "SyntheticRisk",
Message: "This is a synthetic risk with PromQL that cannot be evaluated in OpenShift clusters",
MatchingRules: []MatchingRule{
{
Expand Down Expand Up @@ -494,7 +498,7 @@ func (s *Server) generateRisksNonmatchingGraph(queriedVersion semver.Version, ar
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-promql-nonmatching",
Name: "SyntheticRisk",
Name: riskNamePrefix + "SyntheticRisk",
Message: "This is a synthetic risk with PromQL that never matches in OpenShift clusters",
MatchingRules: []MatchingRule{
{
Expand Down Expand Up @@ -660,7 +664,7 @@ func (s *Server) generateSmokeTestGraph(queriedVersion semver.Version, arch stri
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-smoke",
Name: "RiskA",
Name: riskNamePrefix + "RiskA",
Message: "This is a synthetic risk with Always type for smoke testing",
MatchingRules: []MatchingRule{
{
Expand All @@ -684,7 +688,7 @@ func (s *Server) generateSmokeTestGraph(queriedVersion semver.Version, arch stri
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-smoke-promql",
Name: "RiskBMatches",
Name: riskNamePrefix + "RiskBMatches",
Message: "This is a synthetic risk with PromQL that matches for smoke testing",
MatchingRules: []MatchingRule{
{
Expand All @@ -711,7 +715,7 @@ func (s *Server) generateSmokeTestGraph(queriedVersion semver.Version, arch stri
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-smoke-promql-nomatch",
Name: "RiskCNoMatch",
Name: riskNamePrefix + "RiskCNoMatch",
Message: "This is a synthetic risk with PromQL that never matches for smoke testing",
MatchingRules: []MatchingRule{
{
Expand All @@ -738,7 +742,7 @@ func (s *Server) generateSmokeTestGraph(queriedVersion semver.Version, arch stri
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-smoke-combined-a",
Name: "RiskA",
Name: riskNamePrefix + "RiskA",
Message: "This is RiskA part of combined risks for smoke testing",
MatchingRules: []MatchingRule{
{
Expand All @@ -748,7 +752,7 @@ func (s *Server) generateSmokeTestGraph(queriedVersion semver.Version, arch stri
},
{
URL: "https://docs.openshift.com/synthetic-risk-smoke-combined-b",
Name: "RiskBMatches",
Name: riskNamePrefix + "RiskBMatches",
Message: "This is RiskBMatches part of combined risks for smoke testing",
MatchingRules: []MatchingRule{
{
Expand All @@ -761,7 +765,7 @@ func (s *Server) generateSmokeTestGraph(queriedVersion semver.Version, arch stri
},
{
URL: "https://docs.openshift.com/synthetic-risk-smoke-combined-c",
Name: "RiskCNoMatch",
Name: riskNamePrefix + "RiskCNoMatch",
Message: "This is RiskCNoMatch part of combined risks for smoke testing",
MatchingRules: []MatchingRule{
{
Expand All @@ -774,7 +778,7 @@ func (s *Server) generateSmokeTestGraph(queriedVersion semver.Version, arch stri
},
{
URL: "https://docs.openshift.com/synthetic-risk-smoke-combined-d",
Name: "RiskDCannotEvaluate",
Name: riskNamePrefix + "RiskDCannotEvaluate",
Message: "This is RiskDCannotEvaluate part of combined risks for smoke testing",
MatchingRules: []MatchingRule{
{
Expand Down Expand Up @@ -1449,7 +1453,7 @@ func (s *Server) generateOCP88175Graph(queriedVersion semver.Version, arch strin
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-a",
Name: "SomeInvokerThing",
Name: riskNamePrefix + "SomeInvokerThing",
Message: "This is SomeInvokerThing that always applies for testing purposes",
MatchingRules: []MatchingRule{rule},
},
Expand All @@ -1465,13 +1469,13 @@ func (s *Server) generateOCP88175Graph(queriedVersion semver.Version, arch strin
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-a",
Name: "SomeInvokerThing",
Name: riskNamePrefix + "SomeInvokerThing",
Message: "This is SomeInvokerThing that always applies for testing purposes",
MatchingRules: []MatchingRule{rule},
},
{
URL: "https://docs.openshift.com/synthetic-risk-b",
Name: "SomeChannelThing",
Name: riskNamePrefix + "SomeChannelThing",
Message: "This is SomeChannelThing that always applies for testing purposes",
MatchingRules: []MatchingRule{rule},
},
Expand All @@ -1487,7 +1491,7 @@ func (s *Server) generateOCP88175Graph(queriedVersion semver.Version, arch strin
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-b",
Name: "SomeInfrastructureThing",
Name: riskNamePrefix + "SomeInfrastructureThing",
Message: "This is SomeInfrastructureThing that always applies for testing purposes",
MatchingRules: []MatchingRule{rule},
},
Expand Down Expand Up @@ -1533,7 +1537,7 @@ func (s *Server) generateOTA1813Graph(queriedVersion semver.Version, arch string
Risks: []ConditionalUpdateRisk{
{
URL: "https://docs.openshift.com/synthetic-risk-a",
Name: "SomeInvokerThing",
Name: riskNamePrefix + "SomeInvokerThing",
Message: "This is SomeInvokerThing that always applies for testing purposes",
MatchingRules: []MatchingRule{
{
Expand Down
23 changes: 12 additions & 11 deletions pkg/fauxinnati/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ func TestServer_handleGraph(t *testing.T) {
if len(graph.ConditionalEdges) != 2 {
t.Errorf("expected 2 conditional edge in the graph, got %d", len(graph.ConditionalEdges))
}
if diff := cmp.Diff([]string{"4.17.6(SyntheticRiskA:Always|SyntheticRiskB:Always)", "4.18.0(SyntheticRiskA:Always|SyntheticRiskC:Always)"}, conditionalEdgesFrom(graph, "4.17.5")); diff != "" {
if diff := cmp.Diff([]string{"4.17.6(TestAlertFeatureE2ETestSyntheticRiskA:Always|TestAlertFeatureE2ETestSyntheticRiskB:Always)", "4.18.0(TestAlertFeatureE2ETestSyntheticRiskA:Always|TestAlertFeatureE2ETestSyntheticRiskC:Always)"}, conditionalEdgesFrom(graph, "4.17.5")); diff != "" {
t.Errorf("conditional edges from 4.17.5 mismatch (-want +got):\n%s", diff)
}
},
Expand All @@ -277,7 +277,7 @@ func TestServer_handleGraph(t *testing.T) {
if len(graph.ConditionalEdges) != 1 {
t.Errorf("expected 1 conditional edge in the graph, got %d", len(graph.ConditionalEdges))
}
if diff := cmp.Diff([]string{"4.17.6(SyntheticRisk:PromQL)", "4.18.0(SyntheticRisk:PromQL)"}, conditionalEdgesFrom(graph, "4.17.5")); diff != "" {
if diff := cmp.Diff([]string{"4.17.6(TestAlertFeatureE2ETestSyntheticRisk:PromQL)", "4.18.0(TestAlertFeatureE2ETestSyntheticRisk:PromQL)"}, conditionalEdgesFrom(graph, "4.17.5")); diff != "" {
t.Errorf("conditional edges from 4.17.5 mismatch (-want +got):\n%s", diff)
}
},
Expand All @@ -301,7 +301,7 @@ func TestServer_handleGraph(t *testing.T) {
if len(graph.ConditionalEdges) != 1 {
t.Errorf("expected 1 conditional edge in the graph, got %d", len(graph.ConditionalEdges))
}
if diff := cmp.Diff([]string{"4.17.6(SyntheticRisk:PromQL)", "4.18.0(SyntheticRisk:PromQL)"}, conditionalEdgesFrom(graph, "4.17.5")); diff != "" {
if diff := cmp.Diff([]string{"4.17.6(TestAlertFeatureE2ETestSyntheticRisk:PromQL)", "4.18.0(TestAlertFeatureE2ETestSyntheticRisk:PromQL)"}, conditionalEdgesFrom(graph, "4.17.5")); diff != "" {
t.Errorf("conditional edges from 4.17.5 mismatch (-want +got):\n%s", diff)
}
},
Expand Down Expand Up @@ -335,14 +335,14 @@ func TestServer_handleGraph(t *testing.T) {
t.Errorf("edges from 4.17.5 mismatch (-want +got):\n%s", diff)
}
conditionals := []string{
"4.17.7(RiskA:Always)",
"4.17.8(RiskBMatches:PromQL)",
"4.17.9(RiskCNoMatch:PromQL)",
"4.17.10(RiskA:Always|RiskBMatches:PromQL|RiskCNoMatch:PromQL|RiskDCannotEvaluate:PromQL)",
"4.18.1(RiskA:Always)",
"4.18.2(RiskBMatches:PromQL)",
"4.18.3(RiskCNoMatch:PromQL)",
"4.18.4(RiskA:Always|RiskBMatches:PromQL|RiskCNoMatch:PromQL|RiskDCannotEvaluate:PromQL)",
"4.17.7(TestAlertFeatureE2ETestRiskA:Always)",
"4.17.8(TestAlertFeatureE2ETestRiskBMatches:PromQL)",
"4.17.9(TestAlertFeatureE2ETestRiskCNoMatch:PromQL)",
"4.17.10(TestAlertFeatureE2ETestRiskA:Always|TestAlertFeatureE2ETestRiskBMatches:PromQL|TestAlertFeatureE2ETestRiskCNoMatch:PromQL|TestAlertFeatureE2ETestRiskDCannotEvaluate:PromQL)",
"4.18.1(TestAlertFeatureE2ETestRiskA:Always)",
"4.18.2(TestAlertFeatureE2ETestRiskBMatches:PromQL)",
"4.18.3(TestAlertFeatureE2ETestRiskCNoMatch:PromQL)",
"4.18.4(TestAlertFeatureE2ETestRiskA:Always|TestAlertFeatureE2ETestRiskBMatches:PromQL|TestAlertFeatureE2ETestRiskCNoMatch:PromQL|TestAlertFeatureE2ETestRiskDCannotEvaluate:PromQL)",
}
// the test sorts the output to make the test deterministic, but it is not smart to handle semvers
sort.Strings(conditionals)
Expand Down Expand Up @@ -632,6 +632,7 @@ func TestServer_setupRoutes(t *testing.T) {
}

func TestServer_generateOCP88175Graph(t *testing.T) {
t.Skip("The versions are moving and the output will be stale over time")
tests := []struct {
name string
baseVersion semver.Version
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,15 +120,15 @@ Complete DAG structure (tree-like):
[2] 4.19.0

Conditional Edges:
<strong>4.18.42</strong> ⇢ 4.18.43 [SyntheticRiskA: Always, SyntheticRiskB: Always]
<strong>4.18.42</strong> ⇢ 4.19.0 [SyntheticRiskA: Always, SyntheticRiskC: Always]
<strong>4.18.42</strong> ⇢ 4.18.43 [TestAlertFeatureE2ETestSyntheticRiskA: Always, TestAlertFeatureE2ETestSyntheticRiskB: Always]
<strong>4.18.42</strong> ⇢ 4.19.0 [TestAlertFeatureE2ETestSyntheticRiskA: Always, TestAlertFeatureE2ETestSyntheticRiskC: Always]

Graph Visualization:
Complete DAG structure (tree-like):

<strong>4.18.42</strong>
├⇢ [SyntheticRiskA:Always,SyntheticRiskB:Always] 4.18.43
└⇢ [SyntheticRiskA:Always,SyntheticRiskC:Always] 4.19.0
├⇢ [TestAlertFeatureE2ETestSyntheticRiskA:Always,TestAlertFeatureE2ETestSyntheticRiskB:Always] 4.18.43
└⇢ [TestAlertFeatureE2ETestSyntheticRiskA:Always,TestAlertFeatureE2ETestSyntheticRiskC:Always] 4.19.0
</div>
<p><strong>Try it:</strong> <code>curl &#34;https://https://LOCALHOST:PORT/api/upgrades_info/graph?channel=risks-always&amp;version=4.18.42&amp;arch=amd64&#34;</code>
<button class="copy-button" onclick="copyToClipboard('curl \u0022https:\/\/https://LOCALHOST:PORT\/api\/upgrades_info\/graph?channel=risks-always\u0026version=4.18.42\u0026arch=amd64\u0022')">Copy</button></p>
Expand All @@ -143,15 +143,15 @@ Complete DAG structure (tree-like):
[2] 4.19.0

Conditional Edges:
<strong>4.18.42</strong> ⇢ 4.18.43 [SyntheticRisk: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.0 [SyntheticRisk: PromQL]
<strong>4.18.42</strong> ⇢ 4.18.43 [TestAlertFeatureE2ETestSyntheticRisk: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.0 [TestAlertFeatureE2ETestSyntheticRisk: PromQL]

Graph Visualization:
Complete DAG structure (tree-like):

<strong>4.18.42</strong>
├⇢ [SyntheticRisk:PromQL] 4.18.43
└⇢ [SyntheticRisk:PromQL] 4.19.0
├⇢ [TestAlertFeatureE2ETestSyntheticRisk:PromQL] 4.18.43
└⇢ [TestAlertFeatureE2ETestSyntheticRisk:PromQL] 4.19.0
</div>
<p><strong>Try it:</strong> <code>curl &#34;https://https://LOCALHOST:PORT/api/upgrades_info/graph?channel=risks-matching&amp;version=4.18.42&amp;arch=amd64&#34;</code>
<button class="copy-button" onclick="copyToClipboard('curl \u0022https:\/\/https://LOCALHOST:PORT\/api\/upgrades_info\/graph?channel=risks-matching\u0026version=4.18.42\u0026arch=amd64\u0022')">Copy</button></p>
Expand All @@ -166,15 +166,15 @@ Complete DAG structure (tree-like):
[2] 4.19.0

Conditional Edges:
<strong>4.18.42</strong> ⇢ 4.18.43 [SyntheticRisk: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.0 [SyntheticRisk: PromQL]
<strong>4.18.42</strong> ⇢ 4.18.43 [TestAlertFeatureE2ETestSyntheticRisk: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.0 [TestAlertFeatureE2ETestSyntheticRisk: PromQL]

Graph Visualization:
Complete DAG structure (tree-like):

<strong>4.18.42</strong>
├⇢ [SyntheticRisk:PromQL] 4.18.43
└⇢ [SyntheticRisk:PromQL] 4.19.0
├⇢ [TestAlertFeatureE2ETestSyntheticRisk:PromQL] 4.18.43
└⇢ [TestAlertFeatureE2ETestSyntheticRisk:PromQL] 4.19.0
</div>
<p><strong>Try it:</strong> <code>curl &#34;https://https://LOCALHOST:PORT/api/upgrades_info/graph?channel=risks-nonmatching&amp;version=4.18.42&amp;arch=amd64&#34;</code>
<button class="copy-button" onclick="copyToClipboard('curl \u0022https:\/\/https://LOCALHOST:PORT\/api\/upgrades_info\/graph?channel=risks-nonmatching\u0026version=4.18.42\u0026arch=amd64\u0022')">Copy</button></p>
Expand Down Expand Up @@ -213,14 +213,14 @@ Unconditional Edges:
<strong>4.18.42</strong> → 4.19.0

Conditional Edges:
<strong>4.18.42</strong> ⇢ 4.18.7 [RiskA: Always]
<strong>4.18.42</strong> ⇢ 4.19.1 [RiskA: Always]
<strong>4.18.42</strong> ⇢ 4.18.8 [RiskBMatches: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.2 [RiskBMatches: PromQL]
<strong>4.18.42</strong> ⇢ 4.18.9 [RiskCNoMatch: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.3 [RiskCNoMatch: PromQL]
<strong>4.18.42</strong> ⇢ 4.18.10 [RiskA: Always, RiskBMatches: PromQL, RiskCNoMatch: PromQL, RiskDCannotEvaluate: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.4 [RiskA: Always, RiskBMatches: PromQL, RiskCNoMatch: PromQL, RiskDCannotEvaluate: PromQL]
<strong>4.18.42</strong> ⇢ 4.18.7 [TestAlertFeatureE2ETestRiskA: Always]
<strong>4.18.42</strong> ⇢ 4.19.1 [TestAlertFeatureE2ETestRiskA: Always]
<strong>4.18.42</strong> ⇢ 4.18.8 [TestAlertFeatureE2ETestRiskBMatches: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.2 [TestAlertFeatureE2ETestRiskBMatches: PromQL]
<strong>4.18.42</strong> ⇢ 4.18.9 [TestAlertFeatureE2ETestRiskCNoMatch: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.3 [TestAlertFeatureE2ETestRiskCNoMatch: PromQL]
<strong>4.18.42</strong> ⇢ 4.18.10 [TestAlertFeatureE2ETestRiskA: Always, TestAlertFeatureE2ETestRiskBMatches: PromQL, TestAlertFeatureE2ETestRiskCNoMatch: PromQL, TestAlertFeatureE2ETestRiskDCannotEvaluate: PromQL]
<strong>4.18.42</strong> ⇢ 4.19.4 [TestAlertFeatureE2ETestRiskA: Always, TestAlertFeatureE2ETestRiskBMatches: PromQL, TestAlertFeatureE2ETestRiskCNoMatch: PromQL, TestAlertFeatureE2ETestRiskDCannotEvaluate: PromQL]

Graph Visualization:
Complete DAG structure (tree-like):
Expand All @@ -229,14 +229,14 @@ Complete DAG structure (tree-like):
├── <strong>4.18.42</strong>
│ ├── 4.18.43
│ ├── 4.19.0
│ ├⇢ [RiskA:Always] 4.18.7
│ ├⇢ [RiskA:Always] 4.19.1
│ ├⇢ [RiskBMatches:PromQL] 4.18.8
│ ├⇢ [RiskBMatches:PromQL] 4.19.2
│ ├⇢ [RiskCNoMatch:PromQL] 4.18.9
│ ├⇢ [RiskCNoMatch:PromQL] 4.19.3
│ ├⇢ [RiskA:Always,RiskBMatches:PromQL,RiskCNoMatch:PromQL,RiskDCannotEvaluate:PromQL] 4.18.10
│ └⇢ [RiskA:Always,RiskBMatches:PromQL,RiskCNoMatch:PromQL,RiskDCannotEvaluate:PromQL] 4.19.4
│ ├⇢ [TestAlertFeatureE2ETestRiskA:Always] 4.18.7
│ ├⇢ [TestAlertFeatureE2ETestRiskA:Always] 4.19.1
│ ├⇢ [TestAlertFeatureE2ETestRiskBMatches:PromQL] 4.18.8
│ ├⇢ [TestAlertFeatureE2ETestRiskBMatches:PromQL] 4.19.2
│ ├⇢ [TestAlertFeatureE2ETestRiskCNoMatch:PromQL] 4.18.9
│ ├⇢ [TestAlertFeatureE2ETestRiskCNoMatch:PromQL] 4.19.3
│ ├⇢ [TestAlertFeatureE2ETestRiskA:Always,TestAlertFeatureE2ETestRiskBMatches:PromQL,TestAlertFeatureE2ETestRiskCNoMatch:PromQL,TestAlertFeatureE2ETestRiskDCannotEvaluate:PromQL] 4.18.10
│ └⇢ [TestAlertFeatureE2ETestRiskA:Always,TestAlertFeatureE2ETestRiskBMatches:PromQL,TestAlertFeatureE2ETestRiskCNoMatch:PromQL,TestAlertFeatureE2ETestRiskDCannotEvaluate:PromQL] 4.19.4
└── 4.17.1
</div>
<p><strong>Try it:</strong> <code>curl &#34;https://https://LOCALHOST:PORT/api/upgrades_info/graph?channel=smoke-test&amp;version=4.18.42&amp;arch=amd64&#34;</code>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"risks": [
{
"url": "https://docs.openshift.com/synthetic-risk-a",
"name": "SyntheticRiskA",
"name": "TestAlertFeatureE2ETestSyntheticRiskA",
"message": "This is a synthetic risk A that always applies for testing purposes",
"matchingRules": [
{
Expand All @@ -50,7 +50,7 @@
},
{
"url": "https://docs.openshift.com/synthetic-risk-b",
"name": "SyntheticRiskB",
"name": "TestAlertFeatureE2ETestSyntheticRiskB",
"message": "This is a synthetic risk B that always applies for testing purposes",
"matchingRules": [
{
Expand All @@ -70,7 +70,7 @@
"risks": [
{
"url": "https://docs.openshift.com/synthetic-risk-a",
"name": "SyntheticRiskA",
"name": "TestAlertFeatureE2ETestSyntheticRiskA",
"message": "This is a synthetic risk A that always applies for testing purposes",
"matchingRules": [
{
Expand All @@ -80,7 +80,7 @@
},
{
"url": "https://docs.openshift.com/synthetic-risk-c",
"name": "SyntheticRiskC",
"name": "TestAlertFeatureE2ETestSyntheticRiskC",
"message": "This is a synthetic risk C that always applies for testing purposes",
"matchingRules": [
{
Expand Down
Loading