Megatest

Check-in [b2a12dd18c]
Login
Overview
Comment:merged fork
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.60
Files: files | file ages | folders
SHA1: b2a12dd18c76945352c5cb00127a21b802d13f0b
User & Date: pjhatwal on 2016-01-26 16:07:45
Other Links: branch diff | manifest | tags
Context
2016-01-27
10:35
Merged fork check-in: ae9052fa69 user: mrwellan tags: v1.60
2016-01-26
16:07
merged fork check-in: b2a12dd18c user: pjhatwal tags: v1.60
15:51
Cleaned up sretrieve.scm, removed concept of iter and package check-in: 6ec9cabddc user: mrwellan tags: v1.60
2016-01-15
15:55
added tar cmd check-in: 3bf186fbfc user: pjhatwal tags: v1.60
Changes

Modified dashboard.scm from [3d081ca889] to [5dcffd3a63].

1
2

3
4
5
6
7
8
9
1

2
3
4
5
6
7
8
9

-
+







;;======================================================================
;; Copyright 2006-2012, Matthew Welland.
;; Copyright 2006-2016, Matthew Welland.
;; 
;;  This program is made available under the GNU GPL version 2.0 or
;;  greater. See the accompanying file COPYING for details.
;; 
;;  This program is distributed WITHOUT ANY WARRANTY; without even the
;;  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
;;  PURPOSE.
41
42
43
44
45
46
47
48

49
50
51
52
53
54
55
41
42
43
44
45
46
47

48
49
50
51
52
53
54
55







-
+







(include "db_records.scm")
(include "run_records.scm")
(include "megatest-fossil-hash.scm")

(define help (conc 
"Megatest Dashboard, documentation at http://www.kiatoa.com/fossils/megatest
  version " megatest-version "
  license GPL, Copyright (C) Matt Welland 2012-2014
  license GPL, Copyright (C) Matt Welland 2012-2016

Usage: dashboard [options]
  -h                   : this help
  -server host:port    : connect to host:port instead of db access
  -test run-id,test-id : control test identified by testid
  -guimonitor          : control panel for runs

Modified datashare-testing/.sretrieve.config from [37da93a1c2] to [9987501f48].

1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1

2
3
4









5
6
7
8

-
+


-
-
-
-
-
-
-
-
-




[settings]
base-dir      /tmp/pjhatwal/datashare/disk1
base-dir      /tmp/delme_data
allowed-users matt mrwellan pjhatwal
allowed-chars [0-9a-zA-Z\-\.]+
default-area  megatest

# NOTE: packages-metadir defaults to exe dir if not specified here
# packages-metadir  /tmp/#{getenv USER}/packages

# conversion-script has semantics as cp, takes file1 and outputs file2
#   cp file1 file2
conversion-script cp
upstream-file     packages.config

[database]
location #{scheme (create-directory "/tmp/#{getenv USER}" #t)}

Modified sretrieve.scm from [3f1c95a0fd] to [7a2e55c6ff].

47
48
49
50
51
52
53
54

55
56
57
58
59
60
61
62
47
48
49
50
51
52
53

54

55
56
57
58
59
60
61







-
+
-







;; GLOBALS
;;
(define *sretrieve:current-tab-number* 0)
(define *args-hash* (make-hash-table))
(define sretrieve:help (conc "Usage: sretrieve [action [params ...]]

  ls                     : list contents of target area
  get <version>          : retrieve data for <version>
  get <relversion>       : retrieve data for release <version>
    -i iteration_num       get specific iteration
    -m \"message\"       : why retrieved?

  log                    : get listing of recent downloads

Part of the Megatest tool suite.
Learn more at http://www.kiatoa.com/fossils/megatest

131
132
133
134
135
136
137
138

139
140
141
142


143
144
145
146
147
148
149
150
151

152
153
154
155
156
157
158
130
131
132
133
134
135
136

137




138
139
140
141
142
143
144
145
146
147

148
149
150
151
152
153
154
155







-
+
-
-
-
-
+
+








-
+







	      (set-busy-handler! db (busy-timeout 10000)) ;; 10 sec timeout
	      (if (not dbexists)(sretrieve:initialize-db db))
	      (proc db)))))
	(debug:print 0 "ERROR: invalid path for storing database: " path))))

;; copy in file to dest, validation is done BEFORE calling this
;;
(define (sretrieve:get configdat reldat retriever area version iter comment)
(define (sretrieve:get configdat retriever version comment)
  (let* ((iteration (or iter
			(configf:lookup reldat version "iteration")))
	 (base-dir  (configf:lookup configdat "settings" "base-dir"))
	 (datadir   (conc base-dir "/" area "/" version "/" iteration)))
  (let* ((base-dir  (configf:lookup configdat "settings" "base-dir"))
	 (datadir   (conc base-dir "/" version)))
    (if (or (not base-dir)
	    (not (file-exists? base-dir)))
	(begin
	  (debug:print 0 "ERROR: Bad configuration! base-dir " base-dir " not found")
	  (exit 1)))
    (print datadir)
    (if (not (file-exists? datadir))
	(begin
	  (debug:print 0 "ERROR: Bad version (" version ") or iteration (" iteration "), no data found at " datadir "." )
	  (debug:print 0 "ERROR: Bad version (" version "), no data found at " datadir "." )
	  (exit 1)))
    
    (sretrieve:db-do
     configdat
     (lambda (db)
       (sretrieve:register-action db "get" retriever datadir comment)))
    (change-directory datadir)
335
336
337
338
339
340
341
342

343
344
345
346
347
348
349
350
332
333
334
335
336
337
338

339

340
341
342
343
344
345
346







-
+
-







	(read-config fname #f #t)
	(make-hash-table))))

;; package-type is "megatest", "builds", "kits" etc.
;;
(define (sretrieve:load-packages configdat exe-dir package-type)
  (push-directory exe-dir)
  (let* ((packages-metadir  (or (configf:lookup configdat "settings" "packages-metadir")
  (let* ((packages-metadir  (configf:lookup configdat "settings" "packages-metadir"))
				".")) ;; exe-dir))
	 (conversion-script (configf:lookup configdat "settings" "conversion-script"))
	 (upstream-file     (configf:lookup configdat "settings" "upstream-file"))
	 (package-config    (conc packages-metadir "/" package-type ".config")))
    ;; this section here does a timestamp based rebuild of the
    ;;   <packages-metadir>/<package-type>.config file using
    ;;   <upstream-file> as an input
    (if (file-exists? upstream-file)
392
393
394
395
396
397
398
399
400
401
402
403


404
405
406

407
408
409
410
411
412
413
388
389
390
391
392
393
394

395
396


397
398
399
400

401
402
403
404
405
406
407
408







-


-
-
+
+


-
+







       (if (< (length args) 1)
	   (begin 
	     (debug:print 0 "ERROR: Missing arguments; " (string-intersperse args ", "))
	     (exit 1)))
       (let* ((remargs     (args:get-args args '("-m" "-i" "-package") '() args:arg-hash 0))
              (version     (car args))
	      (msg         (or (args:get-arg "-m") ""))
	      (iteration   (args:get-arg "-i"))
	      (package-type (or (args:get-arg "-package")
				default-area))
	      (exe-dir     (configf:lookup configdat "exe-info" "exe-dir"))
	      (relconfig   (sretrieve:load-packages configdat exe-dir package-type)))
	      (exe-dir     (configf:lookup configdat "exe-info" "exe-dir")))
;;	      (relconfig   (sretrieve:load-packages configdat exe-dir package-type)))

	 (debug:print 0 "retrieving " version " of " package-type " as tar data on stdout")
	 (sretrieve:get configdat relconfig user package-type version iteration msg)))
	 (sretrieve:get configdat user version msg)))
      (else (debug:print 0 "Unrecognised command " action)))))
  
;; ease debugging by loading ~/.dashboardrc - REMOVE FROM PRODUCTION!
;; (let ((debugcontrolf (conc (get-environment-variable "HOME") "/.sretrieverc")))
;;   (if (file-exists? debugcontrolf)
;;       (load debugcontrolf)))

427
428
429
430
431
432
433
434
435
436






437
438
439
440
441
442
443
422
423
424
425
426
427
428



429
430
431
432
433
434
435
436
437
438
439
440
441







-
-
-
+
+
+
+
+
+







     ((eq? (length rema) 1)
      (case (string->symbol (car rema))
	((help -h -help --h --help)
	 (print sretrieve:help))
	((list-vars) ;; print out the ini file
	 (map print (sretrieve:get-areas configdat)))
	((ls)
	 (let ((target-dir (configf:lookup configdat "settings" "target-dir")))
	   (print "Files in " target-dir)
	   (system (conc "ls " target-dir))))
	 (let* ((base-dir (configf:lookup configdat "settings" "base-dir")))
	   (if base-dir
	       (begin
		 (print "Files in " base-dir)
		 (system (conc "ls " base-dir)))
	       (print "ERROR: No base dir specified!"))))
	((log)
	 (sretrieve:db-do configdat (lambda (db)
				     (print "Listing actions")
				     (query (for-each-row
					     (lambda (row)
					       (apply print (intersperse row " | "))))
					    (sql db "SELECT * FROM actions")))))