ubuntu-cloud-prep revision cb0c6c020314ee0fea0ce30d209711f7e9c29aaa
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## If the container being cloned has one or more lxc.hook.clone
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## specified, then the specified hooks will be called for the new
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## container. The arguments passed to the clone hook are:
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## 1. the container name
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## 2. a section ('lxc')
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## 3. hook type ('clone')
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## 4. .. additional arguments to lxc-clone
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## Environment variables:
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## LXC_ROOTFS_MOUNT: path to the root filesystem
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## LXC_CONFIG_FILE: path to config file
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## LXC_SRC_NAME: old container name
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig## LXC_ROOTFS_PATH: path or device on which the root fs is located
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettigdebug() { [ "$VERBOSITY" -ge "$1" ] || return; shift; error "$@"; }
269f47de02761bab3b7b28e2007a2bac34f629ccThuy FettigUsage: ${0##*/} [options] root-dir
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig root-dir is the root directory to operate on
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig [ -C | --cloud ]: do not configure a datasource. incompatible with
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig options marked '[ds]'
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig [ -i | --instance-id]: instance-id for cloud-init, defaults to random [ds]
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig [ -L | --nolocales ]: Do not copy host's locales into container
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig [ -S | --auth-key ]: ssh public key file for datasource [ds]
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig [ -u | --userdata ]: user-data file for cloud-init [ds]
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig local long_opts="auth-key:,cloud,help,hostid:,name:,nolocales:,create-etc-init,userdata:,verbose"
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig --options "${short_opts}" --long "${long_opts}" -- "$@" 2>/dev/null) ||
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig if [ $getopt_ret -eq 0 ]; then
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig { error "Unexpected error reading usage"; return 1; }
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig local userdata="" hostid="" authkey="" locales=1 cloud=0
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig while [ $# -ne 0 ]; do
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig -h|--help) prep_usage; return 0;;
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig { error "--auth-key: '$next' not a file"; return 1; }
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig { error "--userdata: '$next' not a file"; return 1; }
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig --) shift; break;;
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig error "expected 1 arguments, got ($_LXC_HOOK) $#: $*";
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig if [ $getopt_ret -ne 0 -a "$_LXC_HOOK" = "clone" ]; then
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig # getopt above failed, but we were called from lxc clone. there might
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig # be multiple clone hooks and the args provided here not for us. This
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig # seems like not the greatest interface, so all we'll do is mention it.
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig error "${0##*}: usage failed, continuing with defaults"
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig echo "#upstart needs help for overlayfs (LP: #1213925)." > \
269f47de02761bab3b7b28e2007a2bac34f629ccThuy Fettig { error "failed to create /etc/init in overlay"; return 1; }
[ $? -eq 0 ] ||
local _LXC_HOOK