github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/tests/suites/cli/model_defaults.sh (about) 1 run_model_defaults_isomorphic() { 2 echo 3 4 FILE=$(mktemp) 5 6 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --format=yaml | juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --ignore-read-only-fields --file - 7 } 8 9 run_model_defaults_cloudinit_userdata() { 10 echo 11 12 FILE=$(mktemp) 13 14 cat <<EOF >"${FILE}" 15 cloudinit-userdata: | 16 packages: 17 - shellcheck 18 EOF 19 20 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --file "${FILE}" 21 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" cloudinit-userdata --format=yaml | grep -q 'default: ""' 22 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" cloudinit-userdata --format=yaml | grep -q "shellcheck" 23 } 24 25 run_model_defaults_boolean() { 26 echo 27 28 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" automatically-retry-hooks --format=json | jq '."automatically-retry-hooks"."default"' | grep '^true$' 29 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" automatically-retry-hooks=false 30 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" automatically-retry-hooks --format=json | jq '."automatically-retry-hooks"."controller"' | grep '^false$' 31 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" | grep -E 'automatically-retry-hooks +true +false' 32 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" automatically-retry-hooks --format=yaml | grep 'default: true' 33 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" automatically-retry-hooks --format=yaml | grep 'controller: false' 34 } 35 36 run_model_defaults_region_aws() { 37 echo 38 39 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --format=json test-mode | jq '."test-mode"."default"' 40 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --format=yaml aws/ca-central-1 test-mode=true 41 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --format=json aws/ca-central-1 test-mode | jq '."test-mode".regions[0].value' | grep '^true$' 42 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --format=json test-mode | jq '."test-mode".regions[]|select(.name=="ca-central-1").value' | grep '^true$' 43 } 44 45 test_model_defaults() { 46 if [ "$(skip 'test_model_defaults')" ]; then 47 echo "==> TEST SKIPPED: model defaults" 48 return 49 fi 50 51 ( 52 set_verbosity 53 54 cd .. || exit 55 56 # save model-defaults 57 SAVED_DEFAULTS_FILE=$(mktemp) 58 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --format=yaml >"${SAVED_DEFAULTS_FILE}" 59 60 run "run_model_defaults_isomorphic" 61 run "run_model_defaults_cloudinit_userdata" 62 run "run_model_defaults_boolean" 63 64 case "${BOOTSTRAP_PROVIDER-}" in 65 "aws") 66 run "run_model_defaults_region_aws" 67 ;; 68 *) 69 echo "==> TEST SKIPPED: run_model_defaults_region_aws runs on AWS only" 70 ;; 71 esac 72 73 # restore model-defaults 74 juju model-defaults --cloud "${BOOTSTRAPPED_CLOUD}" --ignore-read-only-fields --file "${SAVED_DEFAULTS_FILE}" 75 ) 76 }