Increase flexibility of dockerctl shell
new internal function get_container_id can look up container ID from many identifiers. dockerctl shell can now accept the following identifiers for a container: short name (cobbler) long name (fuel-core-5.1-cobbler) short id (e506c54d80d1) long id (64 chars) Change-Id: Ia54a2a905a060848d773a9c81bbe4df1f8991d82 Partial-Bug: #1324227
This commit is contained in:
parent
f46ccc1511
commit
1cfc5e883f
@ -179,14 +179,10 @@ function attach_container {
|
||||
}
|
||||
|
||||
function shell_container {
|
||||
container_name=${CONTAINER_NAMES[$1]}
|
||||
if ! is_running $container_name; then
|
||||
echo "Container $1 is not running. Cannot attach." 1>&2
|
||||
fi
|
||||
id=$(${DOCKER} inspect -f='{{.ID}}' ${CONTAINER_NAMES[$1]})
|
||||
if [ -z "$id" ]; then
|
||||
echo "Could not get docker ID for $container. Is it running?" 1>&2
|
||||
return 1
|
||||
id=$(get_container_id "$1")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Could not get docker ID for $container. Is it running?" 1>&2
|
||||
return 1
|
||||
fi
|
||||
if [ -z "$2" ]; then
|
||||
command="/bin/bash"
|
||||
@ -196,6 +192,7 @@ function shell_container {
|
||||
fi
|
||||
lxc-attach --name "$id" -- "${command[@]}"
|
||||
}
|
||||
|
||||
function stop_container {
|
||||
if [[ "$1" == 'all' ]]; then
|
||||
${DOCKER} stop ${CONTAINER_NAMES[$1]}
|
||||
@ -249,6 +246,19 @@ function container_lookup {
|
||||
echo ${CONTAINER_NAMES[$1]}
|
||||
}
|
||||
|
||||
function get_container_id {
|
||||
#Try to get ID from container short name first
|
||||
id=$(${DOCKER} inspect -f='{{.ID}}' ${CONTAINER_NAMES[$1]} 2>/dev/null)
|
||||
if [ -z "$id" ]; then
|
||||
#Try to get ID short ID, long ID, or container name
|
||||
id=$(${DOCKER} inspect -f='{{.ID}}' "$1")
|
||||
if [ -z "$id" ]; then
|
||||
echo "Could not get docker ID for container $1. Is it running?" 1>&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
echo "$id"
|
||||
}
|
||||
function container_created {
|
||||
${DOCKER} ps -a | grep -q $1
|
||||
return $?
|
||||
|
Loading…
Reference in New Issue
Block a user