summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordberg.se>2009-06-25 18:22:55 +0200
committerLinus Nordberg <linus@nordberg.se>2009-06-25 18:22:55 +0200
commit572da882f6d26355d9fd284bc29be15209fed8ff (patch)
treeecf116dacf8518242081ac8a2178e06c0cb3de39
parent6d3b3259a7c7e8d26faaf606ab6715b22942a1d5 (diff)
Store timestamp and precision-time in db.
-rw-r--r--bgp-logger.org2
-rw-r--r--src/data.lisp11
-rw-r--r--src/playground.lisp14
3 files changed, 21 insertions, 6 deletions
diff --git a/bgp-logger.org b/bgp-logger.org
index e4f4071..b160400 100644
--- a/bgp-logger.org
+++ b/bgp-logger.org
@@ -25,7 +25,7 @@ should've read
so now it does.
* TODO
-- [ ] store timestamp and precision-time
+- [X] store timestamp and precision-time
- [ ] store as-path
- [ ] move to victoria
- [ ] store nexthop
diff --git a/src/data.lisp b/src/data.lisp
index ea8a7a4..e2c4b9b 100644
--- a/src/data.lisp
+++ b/src/data.lisp
@@ -67,7 +67,8 @@ TOP-ELEM is an XML document element."
(let ((templ (make-instance 'bgp-message))
(new-prefs nil)
(octet-msgs (dom:get-elements-by-tag-name top-elem "OCTET_MSG"))
- (prefixes (dom:get-elements-by-tag-name top-elem "PREFIX")))
+ (prefixes (dom:get-elements-by-tag-name top-elem "PREFIX"))
+ (time (aref (dom:get-elements-by-tag-name top-elem "TIME") 0)))
;; Populate new-prefs.
(when (> (length prefixes) 0)
@@ -82,11 +83,15 @@ TOP-ELEM is an XML document element."
prefixes))))
;; Populate the template.
- ;; TODO: just do it!
+ (let ((ts (aref (dom:get-elements-by-tag-name time "TIMESTAMP") 0))
+ (pt (aref (dom:get-elements-by-tag-name time "PRECISION_TIME") 0)))
+ (setf (timestamp templ)
+ (dom:data (aref (dom:child-nodes ts) 0)))
+ (setf (precision-time templ)
+ (dom:data (aref (dom:child-nodes pt) 0))))
;; Add octets to templ.
(when (> (length octet-msgs) 0)
- ;;(format t "found octet-msg~%")
(let* ((oct (aref (dom:get-elements-by-tag-name
(aref octet-msgs 0) "OCTETS")
0))
diff --git a/src/playground.lisp b/src/playground.lisp
index 5cc1336..bc11db6 100644
--- a/src/playground.lisp
+++ b/src/playground.lisp
@@ -89,10 +89,20 @@
;;
(next-xml-blurb (new-reader "victoria.tug.nordu.net" 50001) "BGP_MESSAGE")
-;;
+;;;; db
+;; SQL
+"select * from bgp_message where timestamp != 0 order by id desc limit 3;"
+
+;; postmodern, lower level
+;; http://common-lisp.net/project/postmodern/postmodern.html#querying
+(query "select count(*) from bgp_message" :single)
(doquery (:select 'timestamp 'prefix 'label :from 'bgp-message)
(ts pref lbl)
(format t "~A ~A ~A~%" ts pref lbl))
-(select-dao 'bgp-message)
+;; postmodern, higher level
+;; http://common-lisp.net/project/postmodern/postmodern.html#tabledef
+(dolist (m (select-dao 'bgp-message (:= 'label "NANN")))
+ (format t "~A ~A ~A~%" (timestamp m) (prefix m) (label m)))
+(length (select-dao 'bgp-message))