forked from DGNum/liminix
implement "remove" events
This commit is contained in:
parent
762ce7b6b8
commit
e9370358ae
2 changed files with 46 additions and 1 deletions
|
@ -26,7 +26,12 @@
|
||||||
:find (fn [_ terms] (find-in-database db terms))
|
:find (fn [_ terms] (find-in-database db terms))
|
||||||
:add (fn [_ event-string]
|
:add (fn [_ event-string]
|
||||||
(let [e (parse-uevent event-string)]
|
(let [e (parse-uevent event-string)]
|
||||||
(tset db e.path e)))
|
(match e.action
|
||||||
|
:add (tset db e.path e)
|
||||||
|
:change (tset db e.path e)
|
||||||
|
; ;bind ?
|
||||||
|
:remove (tset db e.path nil)
|
||||||
|
)))
|
||||||
:at-path (fn [_ path] (. db path))
|
:at-path (fn [_ path] (. db path))
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,31 @@ DEVTYPE=disk
|
||||||
DISKSEQ=2
|
DISKSEQ=2
|
||||||
SEQNUM=1527")
|
SEQNUM=1527")
|
||||||
|
|
||||||
|
(local sdb1-insert
|
||||||
|
"add@/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/host1/target1:0:0/1:0:0:0/block/sdb/sdb1\0ACTION=add
|
||||||
|
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/host1/target1:0:0/1:0:0:0/block/sdb/sdb1
|
||||||
|
SUBSYSTEM=block
|
||||||
|
DEVNAME=/dev/sdb1
|
||||||
|
DEVTYPE=partition
|
||||||
|
DISKSEQ=33
|
||||||
|
PARTN=1
|
||||||
|
SEQNUM=82381
|
||||||
|
MAJOR=8
|
||||||
|
MINOR=17")
|
||||||
|
|
||||||
|
(local sdb1-remove
|
||||||
|
"remove@/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/host1/target1:0:0/1:0:0:0/block/sdb/sdb1\0ACTION=remove
|
||||||
|
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/host1/target1:0:0/1:0:0:0/block/sdb/sdb1
|
||||||
|
SUBSYSTEM=block
|
||||||
|
DEVNAME=/dev/sdb1
|
||||||
|
DEVTYPE=partition
|
||||||
|
DISKSEQ=33
|
||||||
|
PARTN=1
|
||||||
|
SEQNUM=82386
|
||||||
|
MAJOR=8
|
||||||
|
MINOR=17")
|
||||||
|
|
||||||
|
|
||||||
(example
|
(example
|
||||||
"when I add a device, I can find it"
|
"when I add a device, I can find it"
|
||||||
(let [db (database)]
|
(let [db (database)]
|
||||||
|
@ -50,6 +75,21 @@ SEQNUM=1527")
|
||||||
(expect= m.devname "sda")
|
(expect= m.devname "sda")
|
||||||
(expect= m.major "8"))))
|
(expect= m.major "8"))))
|
||||||
|
|
||||||
|
(example
|
||||||
|
"when I add and then remove a device, I cannot retrieve it by path"
|
||||||
|
(let [db (database)]
|
||||||
|
(db:add sdb1-insert)
|
||||||
|
(db:add sdb1-remove)
|
||||||
|
(expect= (db:at-path "/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/host1/target1:0:0/1:0:0:0/block/sdb/sdb1") nil)))
|
||||||
|
|
||||||
|
(example
|
||||||
|
"when I add and then remove a device, I cannot find it"
|
||||||
|
(let [db (database)]
|
||||||
|
(db:add sdb1-insert)
|
||||||
|
(db:add sda-uevent)
|
||||||
|
(db:add sdb1-remove)
|
||||||
|
(expect= (db:find {:devname "/dev/sdb1"}) [])))
|
||||||
|
|
||||||
(example
|
(example
|
||||||
"when I search on multiple terms it uses all of them"
|
"when I search on multiple terms it uses all of them"
|
||||||
(let [db (database)]
|
(let [db (database)]
|
||||||
|
|
Loading…
Reference in a new issue