Skip to content

Commit b73f771

Browse files
authored
add canary header and update syslog yaml for AP tests (#3116)
1 parent 28b4a63 commit b73f771

File tree

4 files changed

+26
-24
lines changed

4 files changed

+26
-24
lines changed

tests/data/ap-waf/syslog-1.yaml renamed to tests/data/ap-waf/syslog2.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
apiVersion: apps/v1
22
kind: Deployment
33
metadata:
4-
name: syslog-1
4+
name: syslog2
55
spec:
66
replicas: 1
77
selector:
88
matchLabels:
9-
app: syslog-1
9+
app: syslog2
1010
template:
1111
metadata:
1212
labels:
13-
app: syslog-1
13+
app: syslog2
1414
spec:
1515
containers:
16-
- name: syslog
16+
- name: syslog2
1717
image: balabit/syslog-ng:3.38.1
1818
ports:
1919
- containerPort: 514
@@ -30,11 +30,11 @@ spec:
3030
apiVersion: v1
3131
kind: Service
3232
metadata:
33-
name: syslog-svc-1
33+
name: syslog2-svc
3434
spec:
3535
ports:
3636
- port: 514
3737
targetPort: 514
3838
protocol: TCP
3939
selector:
40-
app: syslog-1
40+
app: syslog2

tests/suite/test_app_protect_integration.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -340,9 +340,6 @@ def test_ap_multi_sec_logs(
340340
syslog_dst = f"syslog-svc.{test_namespace}"
341341
syslog2_dst = f"syslog2-svc.{test_namespace}"
342342

343-
syslog_pod = get_pod_name_that_contains(kube_apis.v1, test_namespace, "syslog-")
344-
syslog2_pod = get_pod_name_that_contains(kube_apis.v1, test_namespace, "syslog2")
345-
346343
with open(src_ing_yaml) as f:
347344
doc = yaml.safe_load(f)
348345

@@ -369,6 +366,8 @@ def test_ap_multi_sec_logs(
369366
print("----------------------- Send request ----------------------")
370367
response = requests.get(appprotect_setup.req_url + "/<script>", headers={"host": ingress_host}, verify=False)
371368
print(response.text)
369+
syslog_pod = get_pod_name_that_contains(kube_apis.v1, test_namespace, "syslog-")
370+
syslog2_pod = get_pod_name_that_contains(kube_apis.v1, test_namespace, "syslog2")
372371
log_contents = ""
373372
log2_contents = ""
374373
retry = 0

tests/suite/test_app_protect_waf_policies.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
create_items_from_yaml,
2323
delete_items_from_yaml,
2424
get_file_contents,
25+
get_pod_name_that_contains,
2526
get_service_endpoint,
2627
wait_before_test,
2728
)
@@ -303,16 +304,14 @@ def test_ap_waf_policy_multi_logs(
303304
Test waf policy logs
304305
"""
305306
src_syslog_yaml = f"{TEST_DATA}/ap-waf/syslog.yaml"
306-
src_syslog_yaml_additional = f"{TEST_DATA}/ap-waf/syslog-1.yaml"
307+
src_syslog_yaml_additional = f"{TEST_DATA}/ap-waf/syslog2.yaml"
307308
log_loc = f"/var/log/messages"
308309
src_log_yaml_escape = f"{TEST_DATA}/ap-waf/logconf-esc.yaml"
309310
log_esc_name = create_ap_logconf_from_yaml(kube_apis.custom_objects, src_log_yaml_escape, test_namespace)
310311
create_items_from_yaml(kube_apis, src_syslog_yaml, test_namespace)
311312
create_items_from_yaml(kube_apis, src_syslog_yaml_additional, test_namespace)
312313
syslog_dst1 = f"syslog-svc.{test_namespace}"
313-
syslog_dst2 = f"syslog-svc-1.{test_namespace}"
314-
syslog_pod = kube_apis.v1.list_namespaced_pod(test_namespace, label_selector="app=syslog").items
315-
syslog_esc_pod = kube_apis.v1.list_namespaced_pod(test_namespace, label_selector="app=syslog-1").items
314+
syslog_dst2 = f"syslog2-svc.{test_namespace}"
316315
print(f"Create waf policy")
317316
create_ap_multilog_waf_policy_from_yaml(
318317
kube_apis.custom_objects,
@@ -344,22 +343,22 @@ def test_ap_waf_policy_multi_logs(
344343
headers={"host": virtual_server_setup.vs_host},
345344
)
346345
print(response.text)
346+
syslog_pod = get_pod_name_that_contains(kube_apis.v1, test_namespace, "syslog")
347+
syslog_esc_pod = get_pod_name_that_contains(kube_apis.v1, test_namespace, "syslog2")
347348
log_contents = ""
348349
retry = 0
349-
while "ASM:attack_type" not in log_contents and retry <= 30:
350-
log_contents = get_file_contents(kube_apis.v1, log_loc, syslog_pod[0].metadata.name, test_namespace)
350+
while "ASM:attack_type" not in log_contents and retry <= 60:
351+
log_contents = get_file_contents(kube_apis.v1, log_loc, syslog_pod, test_namespace)
351352
retry += 1
352353
wait_before_test(1)
353-
print(log_contents)
354354
print(f"Security log not updated, retrying... #{retry}")
355355

356356
log_esc_contents = ""
357357
retry = 0
358-
while "attack_type" not in log_esc_contents and retry <= 30:
359-
log_esc_contents = get_file_contents(kube_apis.v1, log_loc, syslog_esc_pod[0].metadata.name, test_namespace)
358+
while "attack_type" not in log_esc_contents and retry <= 60:
359+
log_esc_contents = get_file_contents(kube_apis.v1, log_loc, syslog_esc_pod, test_namespace)
360360
retry += 1
361361
wait_before_test(1)
362-
print(log_esc_contents)
363362
print(f"Security log not updated, retrying... #{retry}")
364363

365364
delete_policy(kube_apis.custom_objects, "waf-policy", test_namespace)

tests/suite/test_virtual_server_focused_canary.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,16 @@ def test_several_requests(self, kube_apis, crd_ingress_controller, virtual_serve
6060
counter_v1, counter_v2 = 0, 0
6161
for _ in range(100):
6262
ensure_response_from_backend(
63-
virtual_server_setup.backend_1_url, virtual_server_setup.vs_host, check404=True
64-
)
65-
resp = requests.get(
66-
virtual_server_setup.backend_1_url,
67-
headers={"host": virtual_server_setup.vs_host, "x-version": "canary"},
63+
virtual_server_setup.backend_1_url, virtual_server_setup.vs_host, {"x-version": "canary"}, check404=True
6864
)
65+
status_code = 502
66+
while status_code == 502:
67+
resp = requests.get(
68+
virtual_server_setup.backend_1_url,
69+
headers={"host": virtual_server_setup.vs_host, "x-version": "canary"},
70+
)
71+
status_code = resp.status_code
72+
6973
if upstreams[0] in resp.text in resp.text:
7074
counter_v1 = counter_v1 + 1
7175
elif upstreams[1] in resp.text in resp.text:

0 commit comments

Comments
 (0)