# This file is meant to be SOURCED # # Copyright 2016 RIFT.IO Inc # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # container_funcs # 24 June 2016 -- Jeremy Mordkoff -- Genesis container_exists() { if [ $# -ne 1 ]; then FATAL "arg is container name" fi lxc config show $1 2>&1 >/dev/null if [ $? -eq 0 ]; then DEBUG "container $1 exists" return 0 else DEBUG "container $1 not found" return 1 fi } create_container() { if [ $# -ne 2 ]; then FATAL "args are image container" fi INFO "creating container $2 using image $1" DEBUG "lxc launch $1 $2" sudo lxc launch "$1" "$2" } container_exec() { container="$1" shift DEBUG "exec in $1 \"$*\"" lxc exec "$container" -- $* } wait_container_up() { [ $# -eq 1 ] || FATAL "arg is container name got $# args - $*" ct=0 RE="1 received" while [ $ct -lt 60 ]; do let ct=ct+1 output=$(container_exec "$1" ping -c 1 google.com) if [[ $output =~ $RE ]]; then DEBUG "$1 is up" return fi INFO "waiting for container $1 to start" DEBUG "expected '$RE' in $output" sleep 1 done FATAL "container $1 did not start" }