Megatest

Check-in [ab18b06155]
Login
Overview
Comment:Added some instrumention, added missing use of synchash
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | newdashboard
Files: files | file ages | folders
SHA1: ab18b06155d23c78a1ce89285fe89d965420845b
User & Date: mrwellan on 2013-03-14 14:46:43
Other Links: branch diff | manifest | tags
Context
2013-03-15
02:18
Basic functionality for displaying runs and tests in place in newdashboard check-in: 3705ca9968 user: matt tags: newdashboard
2013-03-14
14:46
Added some instrumention, added missing use of synchash check-in: ab18b06155 user: mrwellan tags: newdashboard
00:32
Data syncs from server to dashboard but CPU load is too high check-in: 95f5714070 user: matt tags: newdashboard
Changes

Modified newdashboard.scm from [80e9599109] to [10f6b9c015].

372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389











390
391
392
393
394
395
396
397
398
399
400
401
402
403


404
405
406
372
373
374
375
376
377
378











379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402

403
404
405
406
407







-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+













-
+
+




;; TO-DO
;;  1. Make "data" hash-table hierarchial store of all displayed data
;;  2. Update synchash to understand "get-runs", "get-tests" etc.
;;  3. Add extraction of filters to synchash calls
;;
(define (run-update data runname keypatts testpatt states statuses)
  (let ((run-ids '()))
    ;; count and offset => #f so not used
    ;; the synchash calls modify the "data" hash
    (synchash:client-get 'db:get-runs  "get-runs" (length keypatts) data runname #f #f keypatts)
    ;; Now can calculate the run-ids
    (let* ((run-hash (hash-table-ref/default data "get-runs" #f))
	   (run-ids (if run-hash (filter number? (hash-table-keys run-hash)) '())))
      ;; (debug:print-info 2 "run-hash-keys: " (hash-table-keys run-hash))
      ;; (debug:print-info 2 "run-hash: ")(pp (hash-table->alist run-hash))
      ;; (debug:print-info 2 "run-ids: " run-ids)
      (synchash:client-get 'db:get-tests-for-runs "get-tests-for-runs" 0 data run-ids testpatt states statuses))))
  (let* (;; count and offset => #f so not used
	 ;; the synchash calls modify the "data" hash
	 (run-changes (synchash:client-get 'db:get-runs  "get-runs" (length keypatts) data runname #f #f keypatts))
	 ;; Now can calculate the run-ids
	 (run-hash    (hash-table-ref/default data "get-runs" #f))
	 (run-ids     (if run-hash (filter number? (hash-table-keys run-hash)) '()))
	 ;; (debug:print-info 2 "run-hash-keys: " (hash-table-keys run-hash))
	 ;; (debug:print-info 2 "run-hash: ")(pp (hash-table->alist run-hash))
	 ;; (debug:print-info 2 "run-ids: " run-ids)
	 (test-changes (synchash:client-get 'db:get-tests-for-runs "get-tests-for-runs" 0 data run-ids testpatt states statuses)))
    (list run-changes test-changes)))

(define (newdashboard)
  (let* ((data     (make-hash-table))
	 (keys     (cdb:remote-run db:get-keys #f))
	 (runname  "%")
	 (testpatt "%")
	 (keypatts (map (lambda (k)(list (vector-ref k 0) "%")) keys))
	 (states   '())
	 (statuses '()))
    (iup:show (main-panel))
    (iup:callback-set! *tim*
		       "ACTION_CB"
		       (lambda (x)
			 (run-update data runname keypatts testpatt states statuses)))))
			 (let ((changes (run-update data runname keypatts testpatt states statuses)))
			   (debug:print 0 "CHANGES: " changes))))))

(newdashboard)    
(iup:main-loop)

Modified server.scm from [30f7393268] to [15b97600a8].

15
16
17
18
19
20
21

22
23
24
25
26
27
28
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29







+







(use spiffy uri-common intarweb http-client spiffy-request-vars)

(declare (unit server))

(declare (uses common))
(declare (uses db))
(declare (uses tasks)) ;; tasks are where stuff is maintained about what is running.
(declare (uses synchash))
(declare (uses http-transport))
(declare (uses zmq-transport))

(include "common_records.scm")
(include "db_records.scm")

(define (server:make-server-url hostport)