Skip to content

Commit 09de30b

Browse files
committed
MEDIUM: Add support for the traces section
1 parent 86897d9 commit 09de30b

37 files changed

Lines changed: 5762 additions & 99 deletions

configure_data_plane.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -831,6 +831,14 @@ func configureAPI(api *operations.DataPlaneAPI) http.Handler { //nolint:cyclop,m
831831
api.CrtLoadReplaceCrtLoadHandler = &handlers.ReplaceCrtLoadHandler{Client: client, ReloadAgent: ra}
832832
api.CrtLoadDeleteCrtLoadHandler = &handlers.DeleteCrtLoadHandlerImpl{Client: client, ReloadAgent: ra}
833833

834+
// traces handlers
835+
api.TracesGetTracesHandler = &handlers.GetTracesHandlerImpl{Client: client}
836+
api.TracesCreateTracesHandler = &handlers.CreateTracesHandlerImpl{Client: client, ReloadAgent: ra}
837+
api.TracesReplaceTracesHandler = &handlers.ReplaceTracesHandler{Client: client, ReloadAgent: ra}
838+
api.TracesDeleteTracesHandler = &handlers.DeleteTracesHandlerImpl{Client: client, ReloadAgent: ra}
839+
api.TracesCreateTraceEntryHandler = &handlers.CreateTraceEntryHandlerImpl{Client: client, ReloadAgent: ra}
840+
api.TracesDeleteTraceEntryHandler = &handlers.DeleteTraceEntryHandlerImpl{Client: client, ReloadAgent: ra}
841+
834842
// setup info handler
835843
api.InformationGetInfoHandler = &handlers.GetInfoHandlerImpl{SystemInfo: haproxyOptions.ShowSystemInfo, BuildTime: BuildTime, Version: Version}
836844

e2e/tests/traces/data/entry1.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"trace": "peers sink stderr level developer verbosity quiet start now"}

e2e/tests/traces/data/entry2.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"trace": "check sink stderr level developer verbosity quiet start now"}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"entries": [
3+
{"trace": "h1 sink stderr level developer verbosity complete start now"},
4+
{"trace": "h2 sink stderr level developer verbosity complete start now"}
5+
]
6+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"entries": [
3+
{"trace": "fcgi sink stderr level developer verbosity quiet start now"}
4+
]
5+
}

e2e/tests/traces/traces.bats

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#!/usr/bin/env bats
2+
#
3+
# Copyright 2024 HAProxy Technologies
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http:#www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
18+
load '../../libs/dataplaneapi'
19+
load '../../libs/debug'
20+
load '../../libs/get_json_path'
21+
load '../../libs/haproxy_version'
22+
load '../../libs/resource_client'
23+
load '../../libs/version'
24+
25+
load 'utils/_helpers'
26+
27+
28+
@test "traces: get/create/modify/delete (>=3.1)" {
29+
haproxy_version_ge "3.1" || skip
30+
31+
debug "traces: create section"
32+
resource_post "$_TRACES_PATH" "data/new_section.json" "force_reload=true"
33+
assert_equal "$SC" "201"
34+
35+
debug "traces: get section"
36+
resource_get "$_TRACES_PATH"
37+
assert_equal "$SC" "200"
38+
assert_equal "h1 sink stderr level developer verbosity complete start now" \
39+
"$(get_json_path "$BODY" .entries[0].trace)"
40+
assert_equal "h2 sink stderr level developer verbosity complete start now" \
41+
"$(get_json_path "$BODY" .entries[1].trace)"
42+
43+
debug "traces: replace section"
44+
resource_put "$_TRACES_PATH" "data/replace_section.json" "force_reload=true"
45+
assert_equal "$SC" "200"
46+
resource_get "$_TRACES_PATH"
47+
assert_equal "fcgi sink stderr level developer verbosity quiet start now" \
48+
"$(get_json_path "$BODY" .entries[0].trace)"
49+
50+
51+
debug "traces: add trace entries"
52+
resource_post "$_TRACE_ENTRIES_PATH" "data/entry1.json"
53+
assert_equal "$SC" "202"
54+
resource_post "$_TRACE_ENTRIES_PATH" "data/entry2.json"
55+
assert_equal "$SC" "202"
56+
resource_get "$_TRACES_PATH"
57+
assert_equal "fcgi sink stderr level developer verbosity quiet start now" \
58+
"$(get_json_path "$BODY" .entries[0].trace)"
59+
assert_equal "peers sink stderr level developer verbosity quiet start now" \
60+
"$(get_json_path "$BODY" .entries[1].trace)"
61+
assert_equal "check sink stderr level developer verbosity quiet start now" \
62+
"$(get_json_path "$BODY" .entries[2].trace)"
63+
64+
debug "traces: delete entries"
65+
resource_delete_body "$_TRACE_ENTRIES_PATH" "data/entry1.json" "force_reload=true"
66+
assert_equal "$SC" "204"
67+
resource_delete_body "$_TRACE_ENTRIES_PATH" "data/entry2.json" "force_reload=true"
68+
assert_equal "$SC" "204"
69+
70+
debug "traces: delete section"
71+
resource_delete "$_TRACES_PATH" "force_reload=true"
72+
assert_equal "$SC" "204"
73+
resource_get "$_TRACES_PATH"
74+
assert_equal "$SC" "404"
75+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
_TRACES_PATH="/services/haproxy/configuration/traces"
2+
_TRACE_ENTRIES_PATH="/services/haproxy/configuration/traces/entries"
3+
4+
function resource_delete_body() {
5+
local endpoint="$1" data="$2" qs_params="$3"
6+
get_version
7+
run dpa_curl DELETE "$endpoint?$qs_params&version=${VERSION}" "$data"
8+
assert_success
9+
dpa_curl_status_body '$output'
10+
}

0 commit comments

Comments
 (0)