nixos/ec2-metadata-fetcher: add xz user-data decompression
Support decompressing XZ-compressed EC2 user data via xzcat. Includes a corresponding NixOS test.
This commit is contained in:
@@ -102,6 +102,7 @@ in
|
||||
file
|
||||
gzip
|
||||
mktemp
|
||||
xz
|
||||
];
|
||||
script = builtins.readFile ./ec2-metadata-fetcher.sh;
|
||||
serviceConfig.Type = "oneshot";
|
||||
|
||||
@@ -70,6 +70,7 @@ try_decompress() {
|
||||
case $ftype in
|
||||
gzip*) decompress_cmd=zcat ;;
|
||||
bzip2*) decompress_cmd=bzcat ;;
|
||||
XZ*) decompress_cmd=xzcat ;;
|
||||
*) return ;;
|
||||
esac
|
||||
echo "decompressing: $1"
|
||||
|
||||
@@ -278,6 +278,11 @@ in
|
||||
test_data = b"#!/bin/bash\necho bzip2-decompression-test\n"
|
||||
test_userdata_decompression(machine, user_data_path, bz2.compress(test_data), "bzip2")
|
||||
|
||||
with subtest("Decompression of xz-compressed user-data"):
|
||||
import lzma
|
||||
test_data = b"#!/bin/bash\necho xz-decompression-test\n"
|
||||
test_userdata_decompression(machine, user_data_path, lzma.compress(test_data), "xz")
|
||||
|
||||
finally:
|
||||
machine.shutdown()
|
||||
temp_dir.cleanup()
|
||||
|
||||
Reference in New Issue
Block a user