e56ad622c3
This extends the virsh-based test tooling to both the previous, basic example and the new "complete" example. It also removes the Vagrant tooling. Change-Id: I249f937e9b3eedc486e31a3d1c1ac31bcfdf0ca8
68 lines
2.1 KiB
Bash
68 lines
2.1 KiB
Bash
registry_down() {
|
|
REGISTRY_ID=$(docker ps -qa -f name=registry)
|
|
if [ "x${REGISTRY_ID}" != "x" ]; then
|
|
log Removing docker registry
|
|
docker rm -fv ${REGISTRY_ID} &>> ${LOG_FILE}
|
|
fi
|
|
}
|
|
|
|
registry_list_images() {
|
|
FILES=$(find $(config_configuration) -type f -name '*.yaml')
|
|
|
|
HOSTNAME_REGEX='[a-zA-Z0-9][a-zA-Z0-9_-]{0,62}'
|
|
DOMAIN_NAME_REGEX="${HOSTNAME_REGEX}(\.${HOSTNAME_REGEX})*"
|
|
PORT_REGEX='[0-9]+'
|
|
NETLOC_REGEX="${DOMAIN_NAME_REGEX}(:${PORT_REGEX})?"
|
|
|
|
REPO_COMPONENT_REGEX='[a-zA-Z0-9][a-zA-Z0-9_-]{0,62}'
|
|
REPO_REGEX="${REPO_COMPONENT_REGEX}(/${REPO_COMPONENT_REGEX})*"
|
|
|
|
TAG_REGEX='[a-zA-Z0-9][a-zA-Z0-9.-]{0,127}'
|
|
|
|
cat ${FILES} \
|
|
| tr ' \t' '\n' | tr -s '\n' \
|
|
| grep -E "^(${NETLOC_REGEX}/)?${REPO_REGEX}:${TAG_REGEX}$" \
|
|
| sort -u \
|
|
| grep -v 'registry:5000'
|
|
}
|
|
|
|
registry_populate() {
|
|
log Validating local registry is populated
|
|
for image in $(registry_list_images); do
|
|
if ! docker pull localhost:5000/${image} &> /dev/null; then
|
|
log Loading image ${image} into local registry
|
|
docker pull ${image} &>> ${LOG_FILE}
|
|
docker tag ${image} localhost:5000/${image} &>> ${LOG_FILE}
|
|
docker push localhost:5000/${image} &>> ${LOG_FILE}
|
|
fi
|
|
done
|
|
}
|
|
|
|
registry_replace_references() {
|
|
FILES=${@}
|
|
for image in $(registry_list_images ${FILES}); do
|
|
sed -i "s;${image};registry:5000/${image};g" ${FILES}
|
|
done
|
|
}
|
|
|
|
registry_up() {
|
|
log Validating local registry is up
|
|
REGISTRY_ID=$(docker ps -qa -f name=registry)
|
|
RUNNING_REGISTRY_ID=$(docker ps -q -f name=registry)
|
|
if [ "x${RUNNING_REGISTRY_ID}" = "x" -a "x${REGISTRY_ID}" != "x" ]; then
|
|
log Removing stopped docker registry
|
|
docker rm -fv ${REGISTRY_ID} &>> ${LOG_FILE}
|
|
fi
|
|
|
|
if [ "x${REGISTRY_ID}" = "x" ]; then
|
|
log Starting docker registry
|
|
docker run -d \
|
|
-p 5000:5000 \
|
|
-e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \
|
|
--restart=always \
|
|
--name registry \
|
|
-v $REGISTRY_DATA_DIR:/var/lib/registry \
|
|
registry:2 &>> ${LOG_FILE}
|
|
fi
|
|
}
|