summaryrefslogtreecommitdiff
path: root/src/bgpview/bgpview.lisp
blob: d6adce462d47a12c0a04d03718319c90c0900df5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
(in-package :bgp-logger)

(defwebapp bgpview-app
    :prefix "/bgpview"
    :description "FIXME: description of bgpview app"
    :autostart nil
    :debug t)

(defstore *bgpview-store* :prevalence
  (merge-pathnames (make-pathname :directory '(:relative "data"))
                   (asdf-system-directory :bgpview)))

(defun db-test (&rest args)
  (declare (ignore args))
  (with-connection *db-spec*
    (let ((msgs (query-dao 'bgp-message
			   (:limit
			    (:select 'timestamp 'prefix 'label 'path 'nexthop
				     :from 'bgp-message)
			    20))))
      ;(dolist (m msgs) (make-instance 'dataform :data m)))))
      (render-object-view msgs '(table bgp-message)))))

(defun init-user-session (comp)
  (setf (composite-widgets comp)
	(list "Welcome to BGP View"
	      (make-instance 'composite 
			     :widgets (list "First widget."
					    (lambda (&rest args)
					      (declare (ignore args))
					      (with-html
						(:p "Second widget.")))
					    #'db-test)))))

(defun start-bgpview (&rest args)
  (apply #'start-weblocks args)
  (start-webapp 'bgpview-app))
  
(defun stop-bgpview ()
  (stop-webapp 'bgpview-app)
  (stop-weblocks))