TODO.md in arborist-0.0.1.pre20160128152542 vs TODO.md in arborist-0.0.1.pre20160606141735

- old
+ new

@@ -1,33 +1,65 @@ # To-Do -## Manager +## First Release (0.1) -* Serialize nodes on shutdown -* Include a node's subscriptions in its serialized data -* Implement loading/reloading nodes. -* Implement the system events (sys.acked, sys.reloaded, etc.) +* README, Tutorial, Setup docs -## Tree API +* Performance/profiling examination -* Add "grafting": node add/removal -## Observers +### Manager -* Scheduling time periods for action/summarizing -* Summarizing and Actions should be 1st order objects -* Unsubscribe from Arborist and ZMQ subscriptions on shutdown -* Figure out how to match on delta events: the criteria - for matching nodes has to be separated from that which matches - the delta pairs. +* Only restore timestamps from serialized node dependencies, not the deps themselves. -## Node +* Broadcast system events: + - `sys.node.added` + - `sys.node.removed` + - `sys.startup` + - `sys.shutdown` -* Allow (require?) node types to specify what kinds of nodes can be - their parent, and also adds the constructor DSL method to it +### Observers -## Setup/Installation +* Re-subscribe on `sys.startup`, `sys.reloaded`, `sys.node.added` +* Add `except` to observers DSL -* Add a CLI for generating a basic setup and then adding - nodes/monitors/observers to it. +### Nodes + +* Allow a service node to not inherit all of its host's addresses (i.e., be bound to one address only or whatever) +* Resource nodes: disk, load, process checks, etc. Anything that might + be considered a problem, that you'd want to ack independantly of the + Host node they are attached to. + +### Monitor + +* Add some default monitor types and utilities + - UDP socket check + - Basic monitors for stdlib Net::* protocols/services + - + +* Gems for monitor types that have external dependency + - SNMP + +### Watch Command + +* Re-subscribe on `sys.startup`, `sys.reloaded`, `sys.node.added` + + +## Second Release (0.2) + +### Setup/Installation + +* Add a CLI for generating a basic setup and then adding nodes/monitors/observers to it. +* Potential federation / referral for sibling managers + +### Nodes + +* Ask a node (via tree-api or otherwise) what nodes it affects (immediate children, secondary dependents) + +### Observers + + * Action dependencies -- as an example, if an action sends an email, + don't trigger if the email service is offline. Potential action + "chains", ie: If the email service is down, use a separate + out-of-band action that sends SMS.