From e05515f79da36c7c24d17c796cf5805ad4de2615 Mon Sep 17 00:00:00 2001 From: mmetc <92726601+mmetc@users.noreply.github.com> Date: Mon, 4 Jul 2022 11:26:39 +0200 Subject: [PATCH] disable capi for tests by default (#1633) --- tests/bats/01_base.bats | 2 ++ tests/bats/02_nolapi.bats | 12 ++++++------ tests/bats/03_noagent.bats | 5 +---- tests/bats/04_nocapi.bats | 6 +----- tests/bats/05_config_yaml_local.bats | 4 ++-- tests/bats/11_bouncers_tls.bats | 4 ---- tests/bats/30_machines_tls.bats | 4 ---- tests/lib/config/config-global | 4 ++++ tests/lib/config/config-local | 4 ++++ tests/lib/setup_file.sh | 21 +++++++++++++++++++++ 10 files changed, 41 insertions(+), 25 deletions(-) diff --git a/tests/bats/01_base.bats b/tests/bats/01_base.bats index 4680e050c..e258fdb6f 100644 --- a/tests/bats/01_base.bats +++ b/tests/bats/01_base.bats @@ -89,6 +89,8 @@ declare stderr } @test "cscli capi status" { + config_enable_capi + run -0 cscli capi status assert_output --partial "Loaded credentials from" assert_output --partial "Trying to authenticate with username" diff --git a/tests/bats/02_nolapi.bats b/tests/bats/02_nolapi.bats index 9dd05ec72..0a302b7c3 100644 --- a/tests/bats/02_nolapi.bats +++ b/tests/bats/02_nolapi.bats @@ -35,7 +35,7 @@ declare stderr } @test "crowdsec should not run without LAPI (no api.server in configuration file)" { - config_set 'del(.api.server)' + config_disable_lapi run -1 --separate-stderr timeout 2s "${CROWDSEC}" run -0 echo "${stderr}" @@ -43,7 +43,7 @@ declare stderr } @test "capi status shouldn't be ok without api.server" { - config_set 'del(.api.server)' + config_disable_lapi run -1 --separate-stderr cscli capi status run -0 echo "${stderr}" @@ -52,7 +52,7 @@ declare stderr } @test "cscli config show -o human" { - config_set 'del(.api.server)' + config_disable_lapi run -0 cscli config show -o human assert_output --partial "Global:" assert_output --partial "Crowdsec:" @@ -61,7 +61,7 @@ declare stderr } @test "cscli config backup" { - config_set 'del(.api.server)' + config_disable_lapi backupdir=$(TMPDIR="${BATS_TEST_TMPDIR}" mktemp -u) run -0 cscli config backup "${backupdir}" assert_output --partial "Starting configuration backup" @@ -74,7 +74,7 @@ declare stderr } @test "lapi status shouldn't be ok without api.server" { - config_set 'del(.api.server)' + config_disable_lapi ./instance-crowdsec start || true run -1 --separate-stderr cscli machines list run -0 echo "${stderr}" @@ -83,7 +83,7 @@ declare stderr @test "cscli metrics" { skip 'need to trigger metrics with a live parse' - config_set 'del(.api.server)' + config_disable_lapi ./instance-crowdsec start run -0 --separate-stderr cscli metrics assert_output --partial "ROUTE" diff --git a/tests/bats/03_noagent.bats b/tests/bats/03_noagent.bats index b821c6529..5d9b13077 100644 --- a/tests/bats/03_noagent.bats +++ b/tests/bats/03_noagent.bats @@ -24,10 +24,6 @@ declare stderr #---------- -config_disable_agent() { - config_set 'del(.crowdsec_service)' -} - @test "with agent: test without -no-cs flag" { run -124 timeout 2s "${CROWDSEC}" # from `man timeout`: If the command times out, and --preserve-status is not set, then exit with status 124. @@ -47,6 +43,7 @@ config_disable_agent() { @test "no agent: capi status should be ok" { config_disable_agent + config_enable_capi ./instance-crowdsec start run -0 --separate-stderr cscli capi status diff --git a/tests/bats/04_nocapi.bats b/tests/bats/04_nocapi.bats index 4f9438fb6..0ca8ed475 100644 --- a/tests/bats/04_nocapi.bats +++ b/tests/bats/04_nocapi.bats @@ -24,12 +24,8 @@ declare stderr #---------- -config_disable_capi() { - config_set 'del(.api.server.online_client)' -} - @test "without capi: crowdsec LAPI should run without capi (-no-capi flag)" { - yq e '.common.log_media="stdout"' -i "${CONFIG_YAML}" + config_set '.common.log_media="stdout"' run -124 --separate-stderr timeout 1s "${CROWDSEC}" -no-capi diff --git a/tests/bats/05_config_yaml_local.bats b/tests/bats/05_config_yaml_local.bats index eb3096fee..563df66d2 100644 --- a/tests/bats/05_config_yaml_local.bats +++ b/tests/bats/05_config_yaml_local.bats @@ -54,7 +54,7 @@ teardown() { @test "config.yaml.local - crowdsec (listen_url)" { # disable the agent or we'll need to patch api client credentials too - run -0 config_set 'del(.crowdsec_service)' + run -0 config_disable_agent ./instance-crowdsec start run -0 ./lib/util/wait-for-port -q 8080 ./instance-crowdsec stop @@ -74,7 +74,7 @@ teardown() { } @test "local_api_credentials.yaml.local" { - run -0 config_set 'del(.crowdsec_service)' + run -0 config_disable_agent echo "{'api':{'server':{'listen_uri':127.0.0.1:8083}}}" >"${CONFIG_YAML}.local" ./instance-crowdsec start run -0 ./lib/util/wait-for-port -q 8083 diff --git a/tests/bats/11_bouncers_tls.bats b/tests/bats/11_bouncers_tls.bats index 759ce78de..0961255d5 100644 --- a/tests/bats/11_bouncers_tls.bats +++ b/tests/bats/11_bouncers_tls.bats @@ -3,10 +3,6 @@ set -u -config_disable_agent() { - config_set 'del(.crowdsec_service)' -} - setup_file() { load "../lib/setup_file.sh" [[ "${PACKAGE_TESTING}" == "true" ]] && return diff --git a/tests/bats/30_machines_tls.bats b/tests/bats/30_machines_tls.bats index 1710bfc84..a125599e6 100644 --- a/tests/bats/30_machines_tls.bats +++ b/tests/bats/30_machines_tls.bats @@ -3,10 +3,6 @@ set -u -config_disable_agent() { - config_set 'del(.crowdsec_service)' -} - setup_file() { load "../lib/setup_file.sh" [[ "${PACKAGE_TESTING}" == "true" ]] && return diff --git a/tests/lib/config/config-global b/tests/lib/config/config-global index dd868b524..0825c8a73 100755 --- a/tests/lib/config/config-global +++ b/tests/lib/config/config-global @@ -66,6 +66,10 @@ make_init_data() { ./instance-db dump "${LOCAL_INIT_DIR}/database" echo "${DB_BACKEND}" > "${LOCAL_INIT_DIR}/.backend" + + # disable CAPI by default + yq e 'del(.api.server.online_client)' -i "${CONFIG_DIR}/config.yaml" + tar -C "${LOCAL_DIR}" --create \ --exclude "${REL_DATA_DIR}"/crowdsec.db \ --file "${LOCAL_INIT_DIR}/init-config-data.tar" "${REL_CONFIG_DIR}" "${REL_DATA_DIR}" diff --git a/tests/lib/config/config-local b/tests/lib/config/config-local index d67a4fb66..e573c02d7 100755 --- a/tests/lib/config/config-local +++ b/tests/lib/config/config-local @@ -81,6 +81,7 @@ config_generate() { ' ../config/config.yaml >"${CONFIG_DIR}/config.yaml" } + make_init_data() { remove_init_data @@ -122,6 +123,9 @@ make_init_data() { ./instance-db dump "${LOCAL_INIT_DIR}/database" echo "${DB_BACKEND}" > "${LOCAL_INIT_DIR}/.backend" + # disable CAPI by default + yq e 'del(.api.server.online_client)' -i "${CONFIG_DIR}/config.yaml" + tar -C "${LOCAL_DIR}" --create \ --exclude "${REL_DATA_DIR}"/crowdsec.db \ --file "${LOCAL_INIT_DIR}/init-config-data.tar" "${REL_CONFIG_DIR}" "${REL_DATA_DIR}" diff --git a/tests/lib/setup_file.sh b/tests/lib/setup_file.sh index d05c19b09..2334bc174 100755 --- a/tests/lib/setup_file.sh +++ b/tests/lib/setup_file.sh @@ -70,6 +70,27 @@ config_set() { } export -f config_set +config_disable_agent() { + config_set 'del(.crowdsec_service)' +} +export -f config_disable_agent + +config_disable_lapi() { + config_set 'del(.api.server)' +} +export -f config_disable_lapi + +config_disable_capi() { + config_set 'del(.api.server.online_client)' +} +export -f config_disable_capi + +config_enable_capi() { + online_api_credentials="$(dirname "${CONFIG_YAML}")/online_api_credentials.yaml" \ + config_set '.api.server.online_client.credentials_path=strenv(online_api_credentials)' +} +export -f config_enable_capi + # We use these functions like this: # somecommand <(stderr) # to provide a standard input to "somecommand".