a86ad96669
Split out of supporting "pure rojig" work. We also want to support this for doing "oscontainers" as is planned for Red Hat CoreOS. The user experience in both cases is oriented around versioning of the external wrapper, not the inner ref/commit. Note for users/builders who want to make use of this feature: You probably want to mirror the changes in our test suite here to use the compose JSON and parse the resulting `ostree-commit` out of that. Closes: #1603 Approved by: jlebon
44 lines
1.4 KiB
Bash
Executable File
44 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -xeuo pipefail
|
|
|
|
dn=$(cd $(dirname $0) && pwd)
|
|
. ${dn}/libcomposetest.sh
|
|
|
|
# Test that `units` and `machineid-compat: False` conflict
|
|
prepare_compose_test "machineid-compat-conflict"
|
|
pysetjsonmember "machineid-compat" 'False'
|
|
pysetjsonmember "units" '["tuned.service"]'
|
|
|
|
# Do the compose -- we call compose directly because `set -e` has no effect when
|
|
# calling functions within an if condition context
|
|
if rpm-ostree compose tree ${compose_base_argv} ${treefile} |& tee err.txt; then
|
|
assert_not_reached err.txt "Successfully composed with units and machineid-compat=False?"
|
|
fi
|
|
assert_file_has_content_literal err.txt \
|
|
"'units' directive is incompatible with machineid-compat = false"
|
|
echo "ok conflict with units"
|
|
|
|
# In this test we also want to test that include:
|
|
# correctly handles machineid-compat.
|
|
prepare_compose_test "machineid-compat"
|
|
# Also test having no ref
|
|
pyeditjson 'del jd["ref"]' < ${treefile} > ${treefile}.new
|
|
mv ${treefile}{.new,}
|
|
treeref=""
|
|
pysetjsonmember "machineid-compat" 'False'
|
|
cat > composedata/fedora-machineid-compat-includer.yaml <<EOF
|
|
include: fedora-machineid-compat.json
|
|
EOF
|
|
export treefile=composedata/fedora-machineid-compat-includer.yaml
|
|
runcompose
|
|
echo "ok compose"
|
|
|
|
ostree --repo="${repobuild}" refs >refs.txt
|
|
diff -u /dev/null refs.txt
|
|
echo "ok no refs written"
|
|
|
|
ostree --repo=${repobuild} ls ${commit} /usr/etc > ls.txt
|
|
assert_not_file_has_content ls.txt 'machine-id'
|
|
echo "ok machineid-compat"
|