Diff comments:
> diff --git a/tools/run-centos b/tools/run-centos > index de21d75..f812e93 100755 > --- a/tools/run-centos > +++ b/tools/run-centos > @@ -63,26 +78,53 @@ inside() { > } > > inject_cloud_init(){ > - local name="$1" > - tarball_name='cloud-init.tar.gz' > - top_d=$(git rev-parse --show-toplevel) || > - fail "failed to get top level" > - cd "$top_d" || > - fail "failed to cd to git top dir" > - tar_folder=${PWD##*/} > - cd .. > - tar -czf "$TEMP_D/$tarball_name" "$tar_folder" || > - fail "failed: creating tarball_name" > - cd "$tar_folder" || > - fail "failed: changing directory" > - > - user='centos' > - tarball="/home/$user/$tarball_name" > - inside "$name" useradd "$user" > - lxc file push "$TEMP_D/$tarball_name" "$name/home/$user"/ > - inside "$name" chown "$user:$user" "$tarball" > - inside_as "$name" "$user" tar -C "/home/$user" -xzf "$tarball" || > - fail "failed: extracting tarball" > + # take current cloud-init git dir and put it inside $name at > + # ~$user/cloud-init. > + local name="$1" user="$2" top_d="" dname="" pstat="" > + top_d=$(git rev-parse --show-toplevel) || { > + errorrc "Failed to get git top level in $PWD"; > + return > + } > + dname=$(basename "${top_d}") || return > + debug 1 "collecting ${top_d} ($dname) into user $user in $name." > + tar -C "${top_d}/.." -cpf - "$dname" | > + inside_as "$name" "$user" sh -ec ' > + dname=$1 > + rm -Rf "$dname" > + tar -xpf - > + [ "$dname" = "cloud-init" ] || mv "$dname" cloud-init' \ > + extract "$dname" > + [ "${PIPESTATUS[*]}" = "0 0" ] || { > + error "Failed to push tarball of '$top_d' into $name" \ > + " for user $user (dname=$dname)" > + return 1 > + } > + return 0 > +} > + > +prep() { > + # we need some very basic things not present in the container. > + # - git > + # - tar (CentOS 6 lxc container does not have it) > + # - python-argparse (or python3) > + local needed="" > + needed="" > + for pair in tar:tar git:git; do I guess you are future-proofing here with the pairs declaration? Since tar and git's pkg and cmd are the same do we need to define <pkg>:<cmd> in the loop? > + pkg=${pair#*:} > + cmd=${pair%%:*} > + command -v $cmd >/dev/null 2>&1 || needed="${needed} $pkg" > + done > + if ! command -v python3; then > + python -c "import argparse" >/dev/null 2>&1 || > + needed="${needed} python-argparse" > + fi > + needed=${needed# } > + if [ -z "$needed" ]; then > + error "No prep packages needed" > + return 0 > + fi > + error "Installing prep packages: ${needed}" > + yum install --assumeyes ${needed} > } > > start_container() { -- https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/325679 Your team cloud-init commiters is requested to review the proposed merge of ~smoser/cloud-init:bug/fix-ci-redhat into cloud-init:master. _______________________________________________ Mailing list: https://launchpad.net/~cloud-init-dev Post to : cloud-init-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~cloud-init-dev More help : https://help.launchpad.net/ListHelp