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  }