mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2025-12-14 19:02:45 +03:00
128 lines
3.1 KiB
Bash
Executable File
128 lines
3.1 KiB
Bash
Executable File
#!/usr/bin/env atf-sh
|
|
# vim:set ft=sh
|
|
# shellcheck shell=sh
|
|
|
|
. $(atf_get_srcdir)/test_env.sh
|
|
|
|
export PREFIX="$srcdir"
|
|
PROVIDERS="alpine aws azure gcp nocloud"
|
|
|
|
init_tests \
|
|
imds_help \
|
|
imds_space \
|
|
\
|
|
imds_hostname_alpine \
|
|
imds_hostname_aws \
|
|
imds_hostname_azure \
|
|
imds_hostname_gcp \
|
|
imds_hostname_nocloud \
|
|
imds_hostname_oci \
|
|
\
|
|
imds_local_hostname_alpine \
|
|
imds_local_hostname_aws \
|
|
imds_local_hostname_azure \
|
|
imds_local_hostname_gcp \
|
|
imds_local_hostname_nocloud \
|
|
imds_local_hostname_oci \
|
|
\
|
|
imds_ssh_keys_alpine \
|
|
imds_ssh_keys_aws \
|
|
imds_ssh_keys_azure \
|
|
imds_ssh_keys_gcp \
|
|
imds_ssh_keys_nocloud \
|
|
imds_ssh_keys_oci \
|
|
\
|
|
imds_nocloud_cmdline_local_hostname
|
|
|
|
imds_help_body() {
|
|
atf_check -o match:"Usage: imds" imds -h
|
|
}
|
|
|
|
imds_space_body() {
|
|
for provider in $PROVIDERS; do
|
|
CLOUD="$provider" atf_check -o match:'^ $' imds +s
|
|
CLOUD="$provider" atf_check -o match:'^\t$' imds +t
|
|
CLOUD="$provider" atf_check -o match:'^$' imds +n
|
|
done
|
|
}
|
|
|
|
check_hostname() {
|
|
fake_metadata "$1" <<-EOF
|
|
# nocloud, alpine, aws
|
|
hostname: myhostname
|
|
# azure
|
|
compute:
|
|
name: myhostname
|
|
# gcp, oci
|
|
instance:
|
|
hostname: myhostname
|
|
EOF
|
|
CLOUD="$1" atf_check -o match:"myhostname" imds @hostname
|
|
}
|
|
imds_hostname_alpine_body() { check_hostname alpine; }
|
|
imds_hostname_aws_body() { check_hostname aws; }
|
|
imds_hostname_azure_body() { check_hostname azure; }
|
|
imds_hostname_gcp_body() { check_hostname gcp; }
|
|
imds_hostname_nocloud_body() { check_hostname nocloud; }
|
|
imds_hostname_oci_body() { check_hostname oci; }
|
|
|
|
check_local_hostname() {
|
|
fake_metadata "$1" <<-EOF
|
|
# nocloud, alpine, aws
|
|
local-hostname: myhostname
|
|
# azure
|
|
compute:
|
|
name: myhostname
|
|
# gcp, oci
|
|
instance:
|
|
hostname: myhostname
|
|
EOF
|
|
CLOUD="$1" atf_check -o match:"myhostname" imds @local-hostname
|
|
}
|
|
imds_local_hostname_alpine_body() { check_local_hostname alpine; }
|
|
imds_local_hostname_aws_body() { check_local_hostname aws; }
|
|
imds_local_hostname_azure_body() { check_local_hostname azure; }
|
|
imds_local_hostname_gcp_body() { check_local_hostname gcp; }
|
|
imds_local_hostname_nocloud_body() { check_local_hostname nocloud; }
|
|
imds_local_hostname_oci_body() { check_local_hostname oci; }
|
|
|
|
check_ssh_keys() {
|
|
local key="ssh-ed25519 keydata"
|
|
fake_metadata "$1" <<-EOF
|
|
# aws, alpine, nocloud
|
|
public-keys:
|
|
0=testuser:
|
|
0:
|
|
openssh-key: $key
|
|
# azure
|
|
compute:
|
|
publicKeys:
|
|
- keyData: $key
|
|
# gcp
|
|
instance:
|
|
attributes:
|
|
ssh-keys: user1:$key
|
|
# oci
|
|
metadata:
|
|
ssh_authorized_keys: $key
|
|
EOF
|
|
CLOUD="$1" atf_check -o match:"$key" imds @ssh-keys
|
|
}
|
|
imds_ssh_keys_alpine_body() { check_ssh_keys alpine; }
|
|
imds_ssh_keys_aws_body() { check_ssh_keys aws; }
|
|
imds_ssh_keys_azure_body() { check_ssh_keys azure; }
|
|
imds_ssh_keys_gcp_body() { check_ssh_keys gcp; }
|
|
imds_ssh_keys_nocloud_body() { check_ssh_keys nocloud; }
|
|
imds_ssh_keys_oci_body() { check_ssh_keys oci; }
|
|
|
|
imds_nocloud_cmdline_local_hostname_body() {
|
|
atf_require_prog yx
|
|
mkdir proc
|
|
for key in h local-hostname; do
|
|
echo "BOOT_IMAGE=/boot/vmlinuz-lts ro ds=nocloud;$key=myhostname" > proc/cmdline
|
|
CLOUD=nocloud atf_check \
|
|
-o match:'^myhostname$' \
|
|
imds @local-hostname
|
|
done
|
|
}
|