Skip to content

Commit ea38eee

Browse files
authored
Simplify log-manager e2e suite (#2859)
1 parent ebfeddf commit ea38eee

10 files changed

+39
-118
lines changed

tests/common/bats/object-storage.bash

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,19 +148,24 @@ object_storage.delete() {
148148
object_storage.is_compacted() {
149149
local bucket="${1}"
150150
local prefix="${2}"
151+
local cutoff="${3}"
151152

152153
local object_storage_type
153154
object_storage_type="$(yq.get sc '.objectStorage.type')"
154155
case "${object_storage_type}" in
155156
"s3")
157+
# "yyyy-mm-ddThh:mm:ssZ" -> "yyyy-mm-dd hh:mm"
158+
local -r s3_cutoff="$(echo "${cutoff}" | cut -c1-16 | tr 'T' ' ')"
156159
# For some reason it doesn't like the single quotes for the awk input, likely because of the escaped pipes.
157160
# shellcheck disable=SC2016
158-
run bats_pipe ck8s s3cmd ls --recursive "s3://${bucket}/${prefix}" \| awk '{print $4}' \| sed "s|s3://${bucket}/||" \| sed 's|\(.*\)/.*|\1|' \| sort \| uniq -d
161+
run bats_pipe ck8s s3cmd ls --recursive "s3://${bucket}/${prefix}" \| awk -v cutoff="${s3_cutoff}" '$1" "$2 < cutoff' \| awk '{print $4}' \| sed "s|s3://${bucket}/||" \| sed 's|\(.*\)/.*|\1|' \| sort \| uniq -d
159162
assert_success
160163
refute_output
161164
;;
162165
"azure")
163-
run bats_pipe az storage blob list --container-name "${bucket}" --prefix "${prefix}" --query '[].name' \| jq -r '.[]' \| sed 's|\(.*\)/.*|\1|' \| sort \| uniq -d
166+
# It thinks we intend to expand $cutoff in the jq expression, but we're passing it as an arg.
167+
# shellcheck disable=SC2016
168+
run bats_pipe az storage blob list --container-name "${bucket}" --prefix "${prefix}" \| jq -r --arg cutoff "${cutoff}" '.[] | select(.properties.createdOn < $cutoff) | .name' \| sed 's|\(.*\)/.*|\1|' \| sort \| uniq -d
164169
assert_success
165170
refute_output
166171
;;

tests/end-to-end/log-manager/compaction-audit-sc.gen.bats

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,9 @@ setup() {
8585
# is still no guarantee.
8686
test_run_cronjob "${CRONJOB_NAME}" 1200
8787

88-
object_storage.is_compacted "${BUCKET}" "${PREFIX}"
89-
}
90-
91-
@test "audit-sc - log-manager compaction job runs fine when no logs needs compaction" {
92-
object_storage.is_compacted "${BUCKET}" "${PREFIX}"
88+
local -r cutoff="$(_get_latest_job_start_time)"
9389

94-
test_run_cronjob "${CRONJOB_NAME}" 120
90+
object_storage.is_compacted "${BUCKET}" "${PREFIX}" "${cutoff}"
9591
}
9692

9793
_create_uncompacted_objects() {
@@ -111,3 +107,8 @@ _create_uncompacted_objects() {
111107
_get_cronjob_env() {
112108
kubectl -n "${NAMESPACE}" get cronjob "${CRONJOB_NAME}" -o jsonpath='{.spec.jobTemplate.spec.template.spec.containers[0].env[?(@.name=="'"${1}"'")].value}'
113109
}
110+
111+
_get_latest_job_start_time() {
112+
kubectl -n "${NAMESPACE}" get jobs -o json |
113+
jq -r "[.items[] | select(.metadata.ownerReferences[]?.name==\"${CRONJOB_NAME}\")] | sort_by(.status.startTime) | .[-1].status.startTime"
114+
}

tests/end-to-end/log-manager/compaction-audit-wc.gen.bats

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,9 @@ setup() {
8585
# is still no guarantee.
8686
test_run_cronjob "${CRONJOB_NAME}" 1200
8787

88-
object_storage.is_compacted "${BUCKET}" "${PREFIX}"
89-
}
90-
91-
@test "audit-wc - log-manager compaction job runs fine when no logs needs compaction" {
92-
object_storage.is_compacted "${BUCKET}" "${PREFIX}"
88+
local -r cutoff="$(_get_latest_job_start_time)"
9389

94-
test_run_cronjob "${CRONJOB_NAME}" 120
90+
object_storage.is_compacted "${BUCKET}" "${PREFIX}" "${cutoff}"
9591
}
9692

9793
_create_uncompacted_objects() {
@@ -111,3 +107,8 @@ _create_uncompacted_objects() {
111107
_get_cronjob_env() {
112108
kubectl -n "${NAMESPACE}" get cronjob "${CRONJOB_NAME}" -o jsonpath='{.spec.jobTemplate.spec.template.spec.containers[0].env[?(@.name=="'"${1}"'")].value}'
113109
}
110+
111+
_get_latest_job_start_time() {
112+
kubectl -n "${NAMESPACE}" get jobs -o json |
113+
jq -r "[.items[] | select(.metadata.ownerReferences[]?.name==\"${CRONJOB_NAME}\")] | sort_by(.status.startTime) | .[-1].status.startTime"
114+
}

tests/end-to-end/log-manager/compaction-sc-logs.gen.bats

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,9 @@ setup() {
8585
# is still no guarantee.
8686
test_run_cronjob "${CRONJOB_NAME}" 1200
8787

88-
object_storage.is_compacted "${BUCKET}" "${PREFIX}"
89-
}
90-
91-
@test "sc-logs - log-manager compaction job runs fine when no logs needs compaction" {
92-
object_storage.is_compacted "${BUCKET}" "${PREFIX}"
88+
local -r cutoff="$(_get_latest_job_start_time)"
9389

94-
test_run_cronjob "${CRONJOB_NAME}" 120
90+
object_storage.is_compacted "${BUCKET}" "${PREFIX}" "${cutoff}"
9591
}
9692

9793
_create_uncompacted_objects() {
@@ -111,3 +107,8 @@ _create_uncompacted_objects() {
111107
_get_cronjob_env() {
112108
kubectl -n "${NAMESPACE}" get cronjob "${CRONJOB_NAME}" -o jsonpath='{.spec.jobTemplate.spec.template.spec.containers[0].env[?(@.name=="'"${1}"'")].value}'
113109
}
110+
111+
_get_latest_job_start_time() {
112+
kubectl -n "${NAMESPACE}" get jobs -o json |
113+
jq -r "[.items[] | select(.metadata.ownerReferences[]?.name==\"${CRONJOB_NAME}\")] | sort_by(.status.startTime) | .[-1].status.startTime"
114+
}

tests/end-to-end/log-manager/compaction.bats.gotmpl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,9 @@ setup() {
8888
# is still no guarantee.
8989
test_run_cronjob "${CRONJOB_NAME}" 1200
9090

91-
object_storage.is_compacted "${BUCKET}" "${PREFIX}"
92-
}
93-
94-
@test "{{ .name }} - log-manager compaction job runs fine when no logs needs compaction" {
95-
object_storage.is_compacted "${BUCKET}" "${PREFIX}"
91+
local -r cutoff="$(_get_latest_job_start_time)"
9692

97-
test_run_cronjob "${CRONJOB_NAME}" 120
93+
object_storage.is_compacted "${BUCKET}" "${PREFIX}" "${cutoff}"
9894
}
9995

10096
_create_uncompacted_objects() {
@@ -114,6 +110,11 @@ _create_uncompacted_objects() {
114110
_get_cronjob_env() {
115111
kubectl -n "${NAMESPACE}" get cronjob "${CRONJOB_NAME}" -o jsonpath='{.spec.jobTemplate.spec.template.spec.containers[0].env[?(@.name=="'"${1}"'")].value}'
116112
}
113+
114+
_get_latest_job_start_time() {
115+
kubectl -n "${NAMESPACE}" get jobs -o json |
116+
jq -r "[.items[] | select(.metadata.ownerReferences[]?.name==\"${CRONJOB_NAME}\")] | sort_by(.status.startTime) | .[-1].status.startTime"
117+
}
117118
{{ end }}
118119

119120
# These tests are generated into these files:

tests/end-to-end/log-manager/retention-audit-sc.gen.bats

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ setup() {
9090
object_storage.has_none "${BUCKET}" "${TEST_DATA_PREFIX}"
9191
}
9292

93-
@test "audit-sc - log-manager retention job runs fine when no logs needs to be deleted" {
93+
@test "audit-sc - log-manager retention job runs fine when no logs need to be deleted" {
9494
test_run_cronjob "${CRONJOB_NAME}" 120
9595
}
9696

tests/end-to-end/log-manager/retention-audit-wc.gen.bats

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ setup() {
9090
object_storage.has_none "${BUCKET}" "${TEST_DATA_PREFIX}"
9191
}
9292

93-
@test "audit-wc - log-manager retention job runs fine when no logs needs to be deleted" {
93+
@test "audit-wc - log-manager retention job runs fine when no logs need to be deleted" {
9494
test_run_cronjob "${CRONJOB_NAME}" 120
9595
}
9696

tests/end-to-end/log-manager/retention-sc-logs.gen.bats

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ setup() {
9090
object_storage.has_none "${BUCKET}" "${TEST_DATA_PREFIX}"
9191
}
9292

93-
@test "sc-logs - log-manager retention job runs fine when no logs needs to be deleted" {
93+
@test "sc-logs - log-manager retention job runs fine when no logs need to be deleted" {
9494
test_run_cronjob "${CRONJOB_NAME}" 120
9595
}
9696

tests/end-to-end/log-manager/retention.bats.gotmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ setup() {
9393
object_storage.has_none "${BUCKET}" "${TEST_DATA_PREFIX}"
9494
}
9595

96-
@test "{{ .name }} - log-manager retention job runs fine when no logs needs to be deleted" {
96+
@test "{{ .name }} - log-manager retention job runs fine when no logs need to be deleted" {
9797
test_run_cronjob "${CRONJOB_NAME}" 120
9898
}
9999

tests/end-to-end/log-manager/setup_suite.bash

Lines changed: 0 additions & 88 deletions
This file was deleted.

0 commit comments

Comments
 (0)