[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH OSSTEST v] Add some sanity checks for presence of Repos configuration



By providing an explicit fetch method in cri-getconfig which checks
things.

Without this then anything which uses cr-daily-branch produces the
rather cryptic:

    + test -f daily.xsettings
    ++ ./ap-print-url xen-unstable
    with-lock-ex ./ap-print-url: /lock: Permission denied
    + treeurl=
    FAILED rc=255

Which has caught out one or two people using standalone mode.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Cc: Dario.Faggioli@xxxxxxxxxx
---
v2: README wrapping
    Move into a cri-getconfig helper (invalidating Dario's T-a-a-b)
---
 README         |  5 +++++
 cri-getconfig  | 15 +++++++++++++++
 cri-lock-repos |  2 +-
 standalone     |  7 +++++++
 4 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/README b/README
index 44e2989..c3508a3 100644
--- a/README
+++ b/README
@@ -422,6 +422,11 @@ Stash
 Images
 Logs
 
+Repos              Full path to a temporary directory where repositories
+                   can be cloned. This is needed for anything which uses
+                   cr-daily-branch, including "./standalone make-flight"
+                   and "standalone-generate-dump-flight-runvars".
+
 DebianSuite
 GuestDebianSuite   defaults to DebianSuite
 
diff --git a/cri-getconfig b/cri-getconfig
index a19b900..0589bf0 100644
--- a/cri-getconfig
+++ b/cri-getconfig
@@ -24,3 +24,18 @@ getconfig () {
                 print $c{"'$1'"} or die $!;
         '
 }
+
+getrepos() {
+       local repos=`getconfig Repos`
+       if [ -z "$repos" ] ; then
+               echo "Repos must be configured in $config" >&2
+               exit 1
+       fi
+       if [ ! -d "$repos" ] ; then
+               # Is likely an absolute path, so don't create automatically,
+               # just in case...
+               echo "Repos $repos does not exist" >&2
+               exit 1
+       fi
+       echo $repos
+}
diff --git a/cri-lock-repos b/cri-lock-repos
index 7d10c87..c8269f3 100644
--- a/cri-lock-repos
+++ b/cri-lock-repos
@@ -19,7 +19,7 @@
 
 . cri-common
 
-repos=`getconfig Repos`
+repos=`getrepos`
 repos_lock="$repos/lock"
 
 if [ "x$OSSTEST_REPOS_LOCK_LOCKED" != "x$repos_lock" ]; then
diff --git a/standalone b/standalone
index 91d18b5..c89347f 100755
--- a/standalone
+++ b/standalone
@@ -142,6 +142,12 @@ need_host() {
     fi
 }
 
+check_repos() {
+    # We don't care about the answer, just the error checking and
+    # logging to stderr.
+    OSSTEST_CONFIG=$config getrepos >/dev/null
+}
+
 ensure_logs() {
     if [ ! -d "logs" ] ; then
        mkdir "logs"
@@ -171,6 +177,7 @@ case $op in
        ;;
 
     make-flight)
+        check_repos
         need_flight
 
         if [ $# -lt 1 ] ; then
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.