mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-31 05:47:40 +03:00
8a7a359709
This fixes up the last of the embarassing bits I saw from the stack trace in: https://github.com/ostreedev/ostree/issues/1184 We had a hardlink fast path, but that doesn't apply across devices, which occurs in two notable cases: - Installer ISO with local repo - Tools like pungi that copy the repo to a local snapshot Obviously there are a lot of subtleties here around things like the bare-user-only conversions as well as exactly what data we copy. I think to get better test coverage we may want to add `pull-local --no-hardlink` or so. Closes: #1197 Approved by: jlebon
42 lines
1.1 KiB
Bash
Executable File
42 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Using the host ostree, test HTTP pulls
|
|
|
|
set -xeuo pipefail
|
|
|
|
dn=$(dirname $0)
|
|
. ${dn}/libinsttest.sh
|
|
|
|
test_tmpdir=$(prepare_tmpdir)
|
|
trap _tmpdir_cleanup EXIT
|
|
|
|
# Take the host's ostree, and make it archive
|
|
cd /var/srv
|
|
rm repo bare-repo -rf
|
|
mkdir repo
|
|
ostree --repo=repo init --mode=archive
|
|
echo -e '[archive]\nzlib-level=1\n' >> repo/config
|
|
host_nonremoteref=$(echo ${host_refspec} | sed 's,[^:]*:,,')
|
|
ostree --repo=repo pull-local /ostree/repo ${host_commit}
|
|
ostree --repo=repo refs ${host_commit} --create=${host_nonremoteref}
|
|
|
|
run_tmp_webserver $(pwd)/repo
|
|
# Now test pulling via HTTP (no deltas) to a new bare-user repo
|
|
ostree --repo=bare-repo init --mode=bare-user
|
|
ostree --repo=bare-repo remote add origin --set=gpg-verify=false $(cat ${test_tmpdir}/httpd-address)
|
|
ostree --repo=bare-repo pull --disable-static-deltas origin ${host_nonremoteref}
|
|
|
|
rm bare-repo repo -rf
|
|
|
|
# Try copying the host's repo across a mountpoint for direct
|
|
# imports.
|
|
cd ${test_tmpdir}
|
|
mkdir tmpfs mnt
|
|
mount --bind tmpfs mnt
|
|
cd mnt
|
|
ostree --repo=repo init --mode=bare
|
|
ostree --repo=repo pull-local /ostree/repo ${host_commit}
|
|
ostree --repo=repo fsck
|
|
cd ..
|
|
umount mnt
|