test/named-root.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Thu Feb 09 20:45:27 2012 +0000 (2012-02-09)
changeset 418 33b825d3128d
child 456 bae5adee8c8c
permissions -rwxr-xr-x
Add transaction barriers
These allow packages to be installed and removed which have scripts
that depend on each other when atomic transactions are involved.
Note that yum supports pre, but not other requires flags. post will
need similar support to the post scripts themselves pulling in the
requires flags from the rpms. Likewise preun and postun will need
similar handling to those scrips since the requires flags will need
to be stored in the razor database.
     1 #!/bin/sh
     2 check_file()
     3 {
     4     ../src/razor list-files | grep -x "$1" > /dev/null
     5     if [ $? -ne 0 ]; then
     6 	echo $1: Not in database >&2
     7 	../src/razor list-files >&2
     8 	exit 1
     9     fi
    10     ../src/razor list-files c: | grep -x "$1" > /dev/null
    11     if [ $? -ne 0 ]; then
    12 	echo $1: Not seen by named root list >&2
    13 	../src/razor list-files c: >&2
    14 	exit 1
    15     fi
    16     ../src/razor list-files "$1" | grep -x "$1" > /dev/null
    17     if [ $? -ne 0 ]; then
    18 	echo $1: Not seen by patterned list >&2
    19 	../src/razor list-files "$1" >&2
    20 	exit 1
    21     fi
    22     pkgs=`../src/razor list-file-packages "$1"`
    23     if [ -z "$pkgs" ]; then
    24 	echo $1: Not owned by any package >&2
    25 	../src/razor list-file-packages "$1"
    26 	exit 1
    27     fi
    28     for nevra in "$pkgs"; do
    29 	name=`echo $nevra | sed 's/\-.*$//'`
    30 	../src/razor list-package-files "$name" | grep -x "$1" > /dev/null
    31 	if [ $? -ne 0 ]; then
    32 	    echo $1: Not in database for package $name >&2
    33 	    ../src/razor list-package-files "$name"
    34 	    exit 1
    35 	fi
    36     done
    37     if [ ! -e "$RAZOR_ROOT$1" ]; then 
    38 	echo $1: Not in filesystem >&2
    39 	exit 1
    40     fi
    41 }
    42 tmpdir=`mktemp -dt` || exit 1
    43 export RAZOR_ROOT="$tmpdir/x-"
    44 mkdir -p "$tmpdir/x-/var/lib" "$tmpdir/x-c:"
    45 export RAZOR_NO_ROOT_NAME_CHECKS=1
    46 ../src/razor init || exit 1
    47 export YUM_URL="file://localhost/`pwd`"
    48 ../src/razor import-yum || exit 1
    49 ../src/razor install --relocate /usr=c:/test zap || exit 1
    50 ../src/razor install --relocate /usr=c:/test zip || exit 1
    51 check_file c:/test/bin/zap
    52 check_file c:/test/bin/zip
    53 rm -rf "$tmpdir"