summaryrefslogtreecommitdiff
path: root/src/bgpview
diff options
context:
space:
mode:
Diffstat (limited to 'src/bgpview')
-rw-r--r--src/bgpview/bgpview.lisp41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/bgpview/bgpview.lisp b/src/bgpview/bgpview.lisp
new file mode 100644
index 0000000..d6adce4
--- /dev/null
+++ b/src/bgpview/bgpview.lisp
@@ -0,0 +1,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))