mirror of https://github.com/containers/podman.git
				
				
				
			
		
			
				
	
	
		
			118 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/usr/bin/env bash
 | 
						|
# test_podman_pods.sh
 | 
						|
# A script to be run at the command line with Podman installed.
 | 
						|
# This should be run against a new kit to provide base level testing
 | 
						|
# on a freshly installed machine with no images or container in
 | 
						|
# play.  This currently needs to be run as root.
 | 
						|
#
 | 
						|
#
 | 
						|
# To run this command:
 | 
						|
#
 | 
						|
# /bin/bash -v test_podman_baseline.sh -e # Stop on error
 | 
						|
# /bin/bash -v test_podman_baseline.sh    # Continue on error
 | 
						|
#
 | 
						|
 | 
						|
set -x
 | 
						|
 | 
						|
# This scripts needs the jq json parser
 | 
						|
if [ -z $(command -v jq2) ]; then
 | 
						|
    echo "This script requires the jq parser"
 | 
						|
    exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# process input args
 | 
						|
stoponerror=0
 | 
						|
while getopts "den" opt; do
 | 
						|
    case "$opt" in
 | 
						|
    e) stoponerror=1
 | 
						|
       ;;
 | 
						|
    esac
 | 
						|
done
 | 
						|
 | 
						|
 | 
						|
if [ "$stoponerror" -eq 1 ]
 | 
						|
then
 | 
						|
    echo "Script will stop on unexpected errors."
 | 
						|
    set -e
 | 
						|
    trap "Failed test ..." ERR
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
########
 | 
						|
# Create a named and unnamed pod
 | 
						|
########
 | 
						|
podman pod create --name foobar
 | 
						|
podid=$(podman pod create)
 | 
						|
 | 
						|
########
 | 
						|
# Delete a named and unnamed pod
 | 
						|
########
 | 
						|
podman pod rm foobar
 | 
						|
podman pod rm $podid
 | 
						|
 | 
						|
########
 | 
						|
# Create a named pod and run a container in it
 | 
						|
########
 | 
						|
podman pod create --name foobar
 | 
						|
ctrid=$(podman run --pod foobar -dt docker.io/library/alpine:latest top)
 | 
						|
podman ps --no-trunc | grep $ctrid
 | 
						|
 | 
						|
########
 | 
						|
# Containers in a pod share network namespace
 | 
						|
########
 | 
						|
podman run -dt --pod foobar docker.io/library/nginx:latest
 | 
						|
podman run -it --rm --pod foobar registry.fedoraproject.org/fedora-minimal:29 curl http://localhost
 | 
						|
 | 
						|
########
 | 
						|
# There should be 3 containers running now
 | 
						|
########
 | 
						|
let numContainers=$(podman pod ps --format json | jq -r '.[0] .numberOfContainers')
 | 
						|
[ $numContainers -eq 3 ]
 | 
						|
 | 
						|
########
 | 
						|
# Pause a container in a pod
 | 
						|
########
 | 
						|
podman pause $ctrid
 | 
						|
[ $(podman ps -a -f status=paused --format json | jq -r '.[0] .id') == $ctrid ]
 | 
						|
 | 
						|
########
 | 
						|
# Unpause a container in a pod
 | 
						|
########
 | 
						|
podman unpause $ctrid
 | 
						|
podman ps  -q --no-trunc | grep $ctrid
 | 
						|
 | 
						|
########
 | 
						|
# Stop a pod and its containers
 | 
						|
########
 | 
						|
podman pod stop foobar
 | 
						|
[ $(podman inspect $ctrid | jq -r '.[0] .State .Running') == "false" ]
 | 
						|
 | 
						|
########
 | 
						|
# Start a pod and its containers
 | 
						|
########
 | 
						|
podman pod start foobar
 | 
						|
podman run -it --rm --pod foobar registry.fedoraproject.org/fedora-minimal:29 curl http://localhost
 | 
						|
 | 
						|
########
 | 
						|
# Pause a pod and its containers
 | 
						|
########
 | 
						|
podman pod pause foobar
 | 
						|
[ $(podman pod ps --format json | jq -r '.[0] .status') == "Paused" ]
 | 
						|
 | 
						|
########
 | 
						|
# Unpause a pod and its containers
 | 
						|
########
 | 
						|
podman pod unpause foobar
 | 
						|
podman run -it --rm --pod foobar registry.fedoraproject.org/fedora-minimal:29 curl http://localhost
 | 
						|
 | 
						|
########
 | 
						|
# Kill a pod and its containers
 | 
						|
########
 | 
						|
podman pod kill foobar
 | 
						|
[ $(podman inspect $ctrid | jq -r '.[0] .State .Running') == "false" ]
 | 
						|
 | 
						|
########
 | 
						|
# Remove all pods and their containers
 | 
						|
########
 | 
						|
podman pod rm -fa
 |