Unverified Commit e3789300 authored by Philip Taron's avatar Philip Taron
Browse files

nixos/ec2-metadata-fetcher: add xz user-data decompression

Support decompressing XZ-compressed EC2 user data via xzcat.
Includes a corresponding NixOS test.
parent 45d8ed8f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -102,6 +102,7 @@ in
        file
        gzip
        mktemp
        xz
      ];
      script = builtins.readFile ./ec2-metadata-fetcher.sh;
      serviceConfig.Type = "oneshot";
+1 −0
Original line number Diff line number Diff line
@@ -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"
+5 −0
Original line number Diff line number Diff line
@@ -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()