mirror of https://github.com/containers/podman.git
				
				
				
			
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
# -*- bash -*-
 | 
						|
 | 
						|
bats_require_minimum_version 1.8.0
 | 
						|
 | 
						|
load helpers
 | 
						|
load ../system/helpers
 | 
						|
load ../system/helpers.registry
 | 
						|
load ../system/helpers.network
 | 
						|
 | 
						|
function setup_suite(){
 | 
						|
    if [[ -z "$ROOTLESS_USER" ]]; then
 | 
						|
        if ! is_rootless; then
 | 
						|
            die "Cannot run as root with no \$ROOTLESS_USER defined"
 | 
						|
        fi
 | 
						|
        export ROOTLESS_USER=$(id -un)
 | 
						|
    fi
 | 
						|
 | 
						|
    sshdir=/home/$ROOTLESS_USER/.ssh
 | 
						|
    sshkey=$sshdir/id_rsa
 | 
						|
    if [[ ! -e $sshkey ]]; then
 | 
						|
        ssh-keygen -t rsa -N "" -f $sshkey
 | 
						|
        cat ${sshkey}.pub >> $sshdir/authorized_keys
 | 
						|
 | 
						|
        # Confirm that ssh localhost works. Since this is probably
 | 
						|
        # the first time that we ssh, bypass the host key verification.
 | 
						|
        ssh -T -o 'BatchMode yes' -o 'StrictHostKeyChecking no' localhost true
 | 
						|
    fi
 | 
						|
 | 
						|
    # Sigh..... "system connection add" fails if podman is not in $PATH.
 | 
						|
    # There does not seem to be any way to tell it to use an explicit path.
 | 
						|
    type -P podman || die "No 'podman' in \$PATH"
 | 
						|
 | 
						|
    export FARMNAME="test-farm-$(random_string 5)"
 | 
						|
 | 
						|
    # only set up the podman farm before the first test
 | 
						|
    run_podman system connection add --identity $sshkey test-node $ROOTLESS_USER@localhost
 | 
						|
    run_podman farm create $FARMNAME test-node
 | 
						|
 | 
						|
    export PODMAN_LOGIN_WORKDIR=$(mktemp -d --tmpdir=${BATS_TMPDIR:-${TMPDIR:-/tmp}} podman-bats-registry.XXXXXX)
 | 
						|
 | 
						|
    export PODMAN_LOGIN_USER="user$(random_string 4)"
 | 
						|
    export PODMAN_LOGIN_PASS="pw$(random_string 15)"
 | 
						|
 | 
						|
    # FIXME: racy! It could be many minutes between now and when we start it.
 | 
						|
    # To mitigate, we use a range not used anywhere else in system tests.
 | 
						|
    export PODMAN_LOGIN_REGISTRY_PORT=$(random_free_port 42000-42999)
 | 
						|
 | 
						|
    # create a local registry to push images to
 | 
						|
    export REGISTRY=localhost:${PODMAN_LOGIN_REGISTRY_PORT}
 | 
						|
    export AUTHFILE=$FARM_TMPDIR/authfile.json
 | 
						|
    start_registry
 | 
						|
    run_podman login --authfile=$AUTHFILE \
 | 
						|
        --tls-verify=false \
 | 
						|
        --username ${PODMAN_LOGIN_USER} \
 | 
						|
        --password ${PODMAN_LOGIN_PASS} \
 | 
						|
        $REGISTRY
 | 
						|
}
 | 
						|
 | 
						|
function teardown_suite(){
 | 
						|
    # clear out the farms after the last farm test
 | 
						|
    run_podman farm rm --all
 | 
						|
    stop_registry
 | 
						|
}
 |