1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-18 12:52:42 +03:00

nocloud: support set data source via smbios in qemu

This commit is contained in:
Natanael Copa 2023-12-14 00:00:48 +00:00 committed by Jake Buchholz Göktürk
parent 6fb5fa088b
commit e6fb222af3
2 changed files with 15 additions and 3 deletions

View File

@ -8,8 +8,8 @@ is_nocloud_loaded() { [ -f "$TINY_CLOUD_VAR/.nocloud_loaded" ]; }
_load_nocloud_cmdline() { _load_nocloud_cmdline() {
local kopt kv k v data local kopt kv k v data
for kopt in $(cat "$ROOT/proc/cmdline" 2>/dev/null) \
for kopt in $(cat "$ROOT/proc/cmdline" 2>/dev/null); do $(grep '^ds=nocloud' "$ROOT"/sys/class/dmi/id/product_serial 2>/dev/null) ; do
echo "$kopt" | grep -qE '(^|=)ds=nocloud(-net)?;' || continue echo "$kopt" | grep -qE '(^|=)ds=nocloud(-net)?;' || continue
for kv in $(echo "${kopt#*;}" | tr \; ' '); do for kv in $(echo "${kopt#*;}" | tr \; ' '); do
k=$(echo "$kv" | cut -d= -f1) k=$(echo "$kv" | cut -d= -f1)

View File

@ -32,7 +32,8 @@ init_tests \
imds_ssh_keys_nocloud \ imds_ssh_keys_nocloud \
imds_ssh_keys_oci \ imds_ssh_keys_oci \
\ \
imds_nocloud_cmdline_local_hostname imds_nocloud_cmdline_local_hostname \
imds_nocloud_smbios_local_hostname
imds_help_body() { imds_help_body() {
atf_check -o match:"Usage: imds" imds -h atf_check -o match:"Usage: imds" imds -h
@ -125,3 +126,14 @@ imds_nocloud_cmdline_local_hostname_body() {
imds @local-hostname imds @local-hostname
done done
} }
imds_nocloud_smbios_local_hostname_body() {
atf_require_prog yx
mkdir -p sys/class/dmi/id
for key in h local-hostname; do
echo "ds=nocloud;$key=myhostname" > sys/class/dmi/id/product_serial
CLOUD=nocloud atf_check \
-o match:'^myhostname$' \
imds @local-hostname
done
}