ChangeLog

2018-08-29

2018-08-29 Michael Granger <ged@FaerieMUD.org>

lib/arborist/command/run_once.rb

Add a `run` command for testing monitors [1bc6155c5e9c] [tip]

lib/arborist/node/host.rb

Shut up warnings about uninitialized instance vars [4329c98ea325]

2018-08-29 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb, spec/arborist/node_spec.rb

Acking an already acked node transitions the node to disabled. [141000d6bec3]

2018-08-28

2018-08-28 Michael Granger <ged@FaerieMUD.org>

spec/spec_helper.rb

Enabled RSpec warnings, example profiles [404f8d609524]

2018-08-24

2018-08-24 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/client.rb

Use the proper exception when raising errors from the client, instead of RuntimeError. [ff0b0fea9a9f]

2018-08-15

2018-08-15 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/command/tree.rb

Add raw formatting for YAML and JSON to the tree command. [f0b978d49569] [github/master]

Rakefile, lib/arborist/command/ack.rb

Optionally continue attempting to ack/clear nodes if some are invalid. [d379568d92cc]

lib/arborist/monitor/socket.rb

Expose socket batch size to configurability. [17866a8a66d6]

2018-08-08

2018-08-08 Michael Granger <ged@FaerieMUD.org>

.hgtags

Added tag v0.2.0 for changeset b5d07bcc4762 [0a39e734c94d]

.hgsigs

Added signature for changeset b7725c5136bc [b5d07bcc4762] [v0.2.0]

History.md, README.md, TODO.md, arborist.gemspec, lib/arborist.rb

Bump the minor version, update history and the to-do file. [b7725c5136bc]

2018-08-01

2018-08-01 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/manager.rb

Add debug log for checkpoint timing. [734e01730be6]

2018-07-27

2018-07-27 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb, spec/arborist/node_spec.rb

Fix behavior for child nodes whose parent transitions from 'down' to 'warn'. [b882060af0b3]

2018-07-17

2018-07-17 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/cli.rb, lib/arborist/command/summary.rb

Explicitly require tty* packages.

(Avoid this garbage

github.com/piotrmurach/tty/issues/44) [a2d9e1f2152b]

2018-06-27

2018-06-27 Michael Granger <ged@FaerieMUD.org>

lib/arborist/node.rb, spec/arborist/node_spec.rb

Add acknowledgement changes to delta events. [f6b57c73929e]

Manifest.txt, lib/arborist/monitor/connection_batching.rb, lib/arborist/monitor/socket.rb

Add batching to the socket monitor [1f4e91e437b5]

2018-06-13

2018-06-13 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/command/tree.rb

Implicitly return the path array. [fbcb8bf9ddfe]

2018-06-13 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb, spec/arborist/node_spec.rb

Allow the user config hash to be altered from the modify API call. [035793721d25]

2018-06-12

2018-06-12 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/command/tree.rb

Add a –path argument to the 'tree' command, that displays parents to the root when specified. [f671d5b77b8f]

2018-06-04

2018-06-04 Mahlon E. Smith <mahlon@martini.nu>

.gems, lib/arborist/node/root.rb

Match the update prototype with the parent class. [4113973f3fac]

2018-05-23

2018-05-23 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/client.rb, lib/arborist/observer.rb, spec/arborist/client_spec.rb

Add a DSL method for returning a Client singleton. [e3e41bef9b6b]

TODO.md, lib/arborist/manager.rb, spec/arborist/manager_spec.rb

Don't let add_node automatically replace nodes with the same identifier, instead leaving the remove step to the caller. Clean up the TODO a little. [91ca8e3d3b42]

2018-05-16

2018-05-16 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/cli.rb

Provide a way to disable colors for misbehaving terms. [a7c0524d382f]

lib/arborist/node/resource.rb, lib/arborist/node/service.rb

Add 'category' to operation properties, so it can be returned in a 'properties' search. [a1358c86cfc4]

2018-05-02

2018-05-02 Mahlon E. Smith <mahlon@martini.nu>

Manifest.txt

Fix manifest. My bad. [e863ec889801]

TODO.md, lib/arborist/node.rb, lib/arborist/node/resource.rb, lib/arborist/node/service.rb, spec/arborist/node/resource_spec.rb, spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb

Add 'OR' matching to additional host/service/resource attributes. [402decc461f2]

2018-04-30

2018-04-30 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/client.rb

Remove what seems like copy pasta, these instance vars are unused. [63c59b1c9f79]

lib/arborist/manager.rb, spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/observer_runner_spec.rb, spec/data/nodes/sidonie.rb, spec/data/nodes/vhosts.rb

Recurse into secondary dependencies for `deps` [77e9deb4ec42]

lib/arborist/node.rb, spec/arborist/node_spec.rb

Emit delta events when setting or clearing acknowledgements. [d05610bec8dd]

lib/arborist/cli.rb

Don't make loading config conditional, so loading config path from ENV works as intended. [b0531987a8b2]

Events.md

The Events.md file should have been removed along with others in changeset 2413f751677b. [36d0911fc157]

lib/arborist/node.rb

Remove extra 'is' in logging output. [ade846808c0b]

2018-04-27

2018-04-27 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb

Call out the 'unknown' state explcitly. [41a443946194]

2018-04-25

2018-04-25 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/client.rb, spec/arborist/client_spec.rb

Provide some helper methods on the client for performing some common Tree API tasks. [607e37bab20d]

2018-04-25 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/manager.rb, spec/arborist/manager_spec.rb

Include explicit children nodes in the list returned by the 'deps' API call. [506ff511c368]

2018-04-25 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb

Add a specific log formatter for the 'warn' state, change nomenclature from 'unknown' to avoid confusion. [c4769cf739cb]

2018-04-18

2018-04-18 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb, spec/arborist/node_spec.rb

Add a transition from down -> warn. [a76b7e2c35b0]

2018-04-18 Michael Granger <ged@FaerieMUD.org>

lib/arborist/client.rb, lib/arborist/manager.rb, lib/arborist/monitor_runner.rb, lib/arborist/node.rb, spec/arborist/client_spec.rb, spec/arborist/monitor_runner_spec.rb, spec/arborist/node_spec.rb

Set the monitor key via a header on update [5224888b1079]

2018-04-18 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node/root.rb, spec/arborist/node/root_spec.rb

Allow ack/unack on the root node to quiet and re-enable the tree. [81cc274e239b]

lib/arborist/manager.rb, spec/arborist/manager_spec.rb

Propagate ack and unack events to parent nodes. [e0e8af8deb94]

lib/arborist/monitor_runner.rb, spec/arborist/monitor_runner_spec.rb

The _monitor_key attribute is only necessary for error/warn tracking, not as part of the node properties. [2b28f8aaf7f0]

lib/arborist/node.rb, spec/arborist/node_spec.rb

Retain the previous time a node's status changed, for easy time deltas between state transitions. [7427b0e720da]

2018-04-17

2018-04-17 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/observer/action.rb, spec/arborist/observer/action_spec.rb

Keep the observer daemon running if observer action blocks raise exceptions. [602afebedef0]

2018-04-12

2018-04-12 Mahlon E. Smith <mahlon@martini.nu>

Rakefile

Add pry as a dependency for the arborist client. [01b83470cd9c]

2018-04-11

2018-04-11 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/event/node.rb, spec/arborist/event/node_spec.rb

Add the node type as additional metadata to node events. [60a05edcfa1f]

lib/arborist/monitor/socket.rb, spec/arborist/monitor/socket_spec.rb

Remove redundant time attribute for socket monitoring. [9f8556ccf9aa]

lib/arborist/event.rb, lib/arborist/event/node.rb, spec/arborist/event/node_spec.rb, spec/arborist/event_spec.rb

Add node parent to the default node event class, stick to symbols for hash keys. [983042e447ab]

lib/arborist/node.rb, spec/arborist/node_spec.rb

Allow “OR-ing” of statuses/identifiers/types when matching. [fc9d607c2a07]

2018-04-09

2018-04-09 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb

Bugfix: Logic inversion for the monitor matching with exclude_down. [69b6f08a561e]

2018-04-07

2018-04-07 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/monitor_runner.rb

Include the backtrace in logging if a monitor run fails. [bff4c7373561]

Manifest.txt

Fix manifest. [bc513d98d005]

2018-04-04

2018-04-04 Mahlon E. Smith <mahlon@martini.nu>

experiments/arborist.schema

Add an identifier override attribute to the Arborist LDAP schema. [f3644c8d9b0d]

Monitors.md, Nodes.md, Observers.md, Protocol.md, Tutorial.md, experiments/manager-sockets.rb

Remove some docs that have moved to arbori.st. [2413f751677b]

lib/arborist/dependency.rb, spec/arborist/dependency_spec.rb

Fix the description for subdependencies which are down [6ba7c94e9c1b]

lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb

Make a best-effort attempt to serialize Arrays for the default monitor exec behavior. [d81c6f31ec25]

lib/arborist/cli.rb, lib/arborist/command/summary.rb, lib/arborist/command/tree.rb

Add the 'warn' state to the command line tools. [edecbb537d4f]

lib/arborist/monitor.rb

Explicitly cast exec() arguments to strings if the first argument doesn't respond to run. This falls through to attempt to spawn the argument, instead of bailing with the more cryptic “no implcit conversion of X into string” exception. [7f30507eb90b]

2018-03-21

2018-03-21 Michael Granger <ged@FaerieMUD.org>

lib/arborist/manager.rb

Add Manager#inspect [3bd59ed3254e]

lib/arborist/cli.rb, lib/arborist/command/ack.rb, lib/arborist/command/reset.rb, lib/arborist/command/start.rb

Restore dry-run mode for the CLI [0c2126a1f09e]

experiments/run_monitors.rb, lib/arborist/client.rb, lib/arborist/manager.rb, lib/arborist/monitor.rb, lib/arborist/monitor_runner.rb, spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_spec.rb, spec/data/monitors/pings.rb, spec/data/monitors/port_checks.rb

Make the default node search return all nodes All nodes in the tree are returned by default now. You can omit unreachable nodes with the `exclude_down` option/method. [7ba6fa72b1a3]

2018-03-12

2018-03-12 Michael Granger <ged@FaerieMUD.org>

README.md

Remove the broken CI build link. [07918fd4129a]

2018-03-07

2018-03-07 Michael Granger <ged@FaerieMUD.org>

Manifest.txt

Update the manifest. [d71a4cbde9a0]

spec/arborist/node_spec.rb

Add a spec for updates with both error and warning [4b68d786e868]

2018-03-03

2018-03-03 Michael Granger <ged@FaerieMUD.org>

experiments/yajl-vs-oj.rb

Add experimental json library benchmarks [df81401947b6]

.gems, Rakefile, arborist.gemspec, lib/arborist/client.rb, lib/arborist/event/node_warn.rb, lib/arborist/manager.rb, lib/arborist/node.rb, lib/arborist/tree_api.rb, spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb

Add a warning state to nodes [0ec9b57f875d]

2018-02-21

2018-02-21 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node/host.rb, lib/arborist/node/resource.rb, lib/arborist/node/service.rb, spec/arborist/node/host_spec.rb

Add an optional 'hostname' label to the host node DSL. This is a convenience matcher for selecting by host, since identifiers are designed to be opaque, and description fields are more human readable. [ba379d048ec4]

lib/arborist/monitor.rb

Add a configurable default splay for all instantiated Monitors. [2e1e76442694]

.ruby-version, lib/arborist/monitor.rb, lib/arborist/monitor_runner.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb, spec/arborist/monitor_spec.rb

Allow separate monitors to run in parallel. [8a15f6ff2cc6]

2018-02-06

2018-02-06 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/node.rb

Allow the 'config' directive to be called multiple times. [e19b588e2bed]

2018-02-01

2018-02-01 Mahlon E. Smith <mahlon@laika.com>

TODO.md

Add a few recent discoveries that should be attended to. [87797bb780d0]

2018-01-10

2018-01-10 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/command/start.rb

Add a hint for the 'start' command if the daemon app is unknown. [1d535c655f9c]

lib/arborist/cli.rb

Remove the Highline require. [e1babdcf222a]

2017-12-28

2017-12-28 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/command/summary.rb

Fix newline display in summary mode. [705ea112140d]

lib/arborist/monitor_runner.rb, spec/arborist/monitor_runner_spec.rb

Treat monitor runtime exceptions as errors. [d940a51a54a5]

2017-12-23

2017-12-23 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/cli.rb

Simplify the command loading, remove unused code. [edb03b628896]

2017-12-11

2017-12-11 Michael Granger <ged@FaerieMUD.org>

lib/arborist/cli.rb

Fix the success_string CLI DSL method [731cdb4916f7]

2017-11-23

2017-11-23 Mahlon E. Smith <mahlon@laika.com>

Manifest.txt

Update manifest. [bbfee3ed7fa3]

2017-11-22

2017-11-22 Michael Granger <ged@FaerieMUD.org>

lib/arborist/command/watch.rb

Make Enterprise [2ea4f0cb5d7f]

2017-11-22 Mahlon E. Smith <mahlon@laika.com>

Rakefile, arborist.gemspec, lib/arborist/manager.rb, lib/arborist/node.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb

Modifying a node's parent should reparent for a running manager. [80f24df26c58]

lib/arborist/cli.rb, lib/arborist/command/ack.rb

Make ack friendlier for batch updates, prompt for missing values. [abee1c3cd29a]

.gems, Rakefile, arborist.gemspec, lib/arborist/cli.rb, lib/arborist/command/summary.rb, lib/arborist/command/tree.rb, lib/arborist/command/watch.rb

Convert from highline to tty for the command line tools. [97be02393284]

lib/arborist/command/summary.rb

Add a 'summary' command, for quick display of existing problems. [835dbd57e243]

2017-11-20

2017-11-20 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/command/ack.rb

Use the uid instead of gecos for default ack sender. [6cdfa1e00068]

2017-11-18

2017-11-18 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/command/ack.rb, lib/arborist/command/tree.rb

Fixes for recent changes in the client API. [1f3a100a456a]

2017-11-16

2017-11-16 Michael Granger <ged@FaerieMUD.org>

lib/arborist/client.rb

Fix some Client API docs [a94db37dc8ef]

2017-11-16 Mahlon E. Smith <mahlon@martini.nu>

Events.md, lib/arborist/manager.rb, lib/arborist/node.rb, lib/arborist/tree_api.rb

Refactor event flow to fix publishing. [aeae43332bd0]

lib/arborist/command/reset.rb

Add a “reset” command to the client. [eed312fb6526]

2017-11-01

2017-11-01 Michael Granger <ged@FaerieMUD.org>

lib/arborist/event.rb

Add a simplified inspect for node objects [3a5fdc6ee738]

2017-11-01 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/event.rb, spec/arborist/event_spec.rb

Backed out changeset ac8e70b46bf4. Upon further reflection: subscription calls ONLY match node events, not sys.* events. So if you want all node events, it has always been that you can simply omit your event type. Since sys events are unaffected, this is unnecessarily redundant. Revert. [78f913c7bd4e]

2017-11-01 Michael Granger <ged@FaerieMUD.org>

lib/arborist/manager.rb, spec/arborist/manager_spec.rb

Collapse startup event into the heartbeat The startup event wasn't reliable because there was a race between sending it and clients who might be interested in it (re)connecting to the manager. We moved all the data from the startup event into the heartbeat event. [f1e034ac03bf]

2017-10-27

2017-10-27 Michael Granger <ged@FaerieMUD.org>

certs/ged.pem

Add my updated gem-signing cert [2025d127b06d]

2017-10-11

2017-10-11 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/event.rb, spec/arborist/event_spec.rb

Add wildcard matching to node events. [ac8e70b46bf4]

Manifest.txt, lib/arborist/client.rb, lib/arborist/manager.rb, spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb

Normalize and emit better error messages from client commands, at the expense of succinct method calls. Throw a client error if attempting to graft over a pre-existing node. [b683f02b91c1]

2017-09-15

2017-09-15 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/manager.rb, spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb

With even more thinking: Specifying a non existent node constitutes an error. [74148a9c3770]

2017-09-15 Michael Granger <ged@FaerieMUD.org>

lib/arborist/client.rb, lib/arborist/manager.rb, spec/arborist/client_spec.rb

merged with 7fea2fdfbb90 [e4e2e2608c96]

2017-09-15 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/manager.rb, spec/arborist/client_spec.rb

On second thought, fetch() should always return an array. Add a test. [7fea2fdfbb90]

lib/arborist/client.rb, lib/arborist/manager.rb, spec/arborist/client_spec.rb

Make high-level ack set/clear usage match other methods. Bail early on an invalid fetch() starting node. [12658e133803]

2017-09-13

2017-09-13 Michael Granger <ged@FaerieMUD.org>

TODO.md, lib/arborist.rb, lib/arborist/client.rb, lib/arborist/manager.rb, lib/arborist/node.rb, lib/arborist/node_subscription.rb, lib/arborist/subscription.rb, spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb, spec/arborist/node_subscription_spec.rb, spec/arborist/observer_runner_spec.rb, spec/data/nodes/yevaud.rb

Add introspection on secondary dependencies [dbe5ebcb13a4]

2017-08-30

2017-08-30 Michael Granger <ged@FaerieMUD.org>

Rakefile, arborist.gemspec

Specify RDoc 5.1 for development. [b5ce09164313]

lib/arborist/monitor/socket.rb

Socket monitors need the port, too. [badf0ec88ff3]

Manifest.txt, TODO.md, lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb

Allow callbacks modules to set the fetched node properties, too. [c13f46c6c80e]

lib/arborist.rb, lib/arborist/client.rb, lib/arborist/command/tree.rb, lib/arborist/manager.rb, lib/arborist/monitor.rb, lib/arborist/monitor/socket.rb, lib/arborist/monitor_runner.rb, lib/arborist/node.rb, lib/arborist/node/ack.rb, lib/arborist/node/host.rb, lib/arborist/node/resource.rb, lib/arborist/node/service.rb, spec/arborist/monitor_spec.rb, spec/arborist/node_spec.rb, spec/spec_helper.rb

Add tree mode to the fetch treeapi action [62702b377627]

lib/arborist/command/ack.rb

Add an `ack` command [10f1c48593ca]

lib/arborist/node.rb

Stop nodes from flapping between acked and down [c950bb562104]

2017-08-30 Mahlon E. Smith <mahlon@martini.nu>

.ruby-version, README.md

Bump ruby rvm version and copyright year. [569e2d8626fc]

2017-08-29

2017-08-29 Michael Granger <ged@FaerieMUD.org>

lib/arborist/mixins.rb, spec/arborist/mixins_spec.rb

Add a DSLish accessor constructor to the MethodUtilities mixin [55586256bf71]

2017-08-23

2017-08-23 Michael Granger <ged@FaerieMUD.org>

Protocol.md, lib/arborist/client.rb, lib/arborist/manager.rb, lib/arborist/monitor_runner.rb, spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb

Rename some actions in the Tree API for clarity - Rename `list` to `fetch` - Rename `fetch` to `search` [58b49a735dce]

lib/arborist/manager.rb, spec/arborist/manager_spec.rb

Make the list of Tree API actions more explicit. [be1d7adde321]

TODO.md

Add a 0.3 feature to the TODO doc [5d64adac0770]

lib/arborist/node.rb, lib/arborist/node/resource.rb, spec/arborist/node_spec.rb

Add a block to Node.parent_type to allow for more-expressive declarations [3aa0f2e0bb04]

.gems, Manifest.txt, Rakefile, TODO.md, arborist.gemspec, experiments/monitor-client.rb, experiments/monitor-service.rb, experiments/run_monitors.rb, experiments/yay-client.rb, lib/arborist.rb, lib/arborist/client.rb, lib/arborist/command/watch.rb, lib/arborist/event_api.rb, lib/arborist/exceptions.rb, lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb, lib/arborist/manager/tree_api.rb, lib/arborist/monitor_runner.rb, lib/arborist/node.rb, lib/arborist/observer/summarize.rb, lib/arborist/observer_runner.rb, lib/arborist/tree_api.rb, spec/arborist/client_spec.rb, spec/arborist/event_api_spec.rb, spec/arborist/manager/event_publisher_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb, spec/arborist/observer_runner_spec.rb, spec/arborist/tree_api_spec.rb, spec/arborist_spec.rb, spec/spec_helper.rb

Convert to CZTop for ZeroMQ [ba88a77e486e]

2017-05-10

2017-05-10 Michael Granger <ged@FaerieMUD.org>

2017-05-10 Michael Granger <ged@FaerieMUD.org>

TODO.md

Add an idea to the README (thanks to Will at LAIKA) [ae1fceba4e10]

2017-03-09

2017-03-09 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/mixins.rb, lib/arborist/node.rb

Re-arrange constants to avoid Ruby 2.4 refinement warnings. Lower debug output when loading nodes. [dc93f075ae71]

2017-03-01

2017-03-01 Michael Granger <ged@FaerieMUD.org>

.hoerc, arborist.gemspec, lib/arborist/client.rb, lib/arborist/command/client.rb

Fix the signature of Arborist::Client#fetch It was defaulting trailing-hash arguments to options, which made the typical case of fetching with only criteria awkward. This makes the atypical case (fetching with options but empty criteria) the awkward case instead. [c7e85586243e]

2017-02-19

2017-02-19 Mahlon E. Smith <mahlon@martini.nu>

.ruby-gemset, .ruby-version, .rvmrc, Rakefile

Convert to .ruby-* files. Bump msgpack dependency. [b0cead421802]

2017-01-02

2017-01-02 Michael Granger <ged@FaerieMUD.org>

.hgignore, Rakefile

Remove guard against public release, ignore pkg dir [4e6a4471c246]

.hgtags

Added tag v0.1.0 for changeset 859b70361b14 [83809e3f33bc]

.hgsigs

Added signature for changeset 02a11882f53b [859b70361b14] [v0.1.0]

History.md, lib/arborist.rb

Set the minor version, update history file. [02a11882f53b]

TODO.md, lib/arborist/monitor.rb, lib/arborist/monitor_runner.rb, spec/arborist/monitor_runner_spec.rb, spec/arborist/monitor_spec.rb

Fix the DSL constructor, set the monitor key in the correct place in the node data. [e12d602bcf1a]

2016-12-28

2016-12-28 Michael Granger <ged@FaerieMUD.org>

Monitors.md, lib/arborist/monitor_runner.rb, lib/arborist/node.rb, spec/arborist/node_spec.rb

Add `key` to the monitor docs, use a prefixed key for monitor updates. [7119b40e002a]

arborist.gemspec, lib/arborist/command/watch.rb, lib/arborist/monitor.rb, lib/arborist/monitor_runner.rb, lib/arborist/node.rb, spec/arborist/event/node_down_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb, spec/arborist/monitor_spec.rb, spec/arborist/node_spec.rb

Add a key attribute to monitors for error grouping. [aebc20335e43]

.gems, Rakefile

Update to latest *ability [09438b7a8aff]

2016-10-19

2016-10-19 Michael Granger <ged@FaerieMUD.org>

lib/arborist/client.rb

Use ** instead of * for client methods that take keyword args [73b6f150a8c1]

lib/arborist/mixins.rb, lib/arborist/node.rb, spec/arborist/client_spec.rb

Add specs for Client#ack and unack [819556c743c6]

2016-10-17

2016-10-17 Michael Granger <ged@FaerieMUD.org>

TODO.md

Add a note to the TODO list [3de683ee0405]

2016-10-12

2016-10-12 Michael Granger <ged@FaerieMUD.org>

spec/arborist/node_spec.rb

Remove accidentally-commited focus [d2cac6a84aaa]

2016-10-12 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb, spec/arborist/node_spec.rb

Add matching for 'parent' attribute data. [c50907900b60]

2016-10-06

2016-10-06 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/manager.rb, lib/arborist/monitor.rb, lib/arborist/node.rb, spec/arborist/monitor_spec.rb, spec/arborist/node_spec.rb

Make monitors automatically set include_down if matching on an unreachable status type. - Add reachable? and unreachable? predacates to node - Whitespace fixes [3dcff4c89426]

2016-10-05

2016-10-05 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb

Reenable event publishing from handle_event(). [1918cc1afa1a]

2016-10-05 Michael Granger <ged@FaerieMUD.org>

lib/arborist/node.rb, spec/arborist/node_spec.rb

Fix event broadcasting for deep hierarchies. - Refactored event broadcasting so update and handle_event share broadcasting code. [9ab8636bb2c5]

Rakefile, arborist.gemspec

Update gemspec with Ruby requirements [8ea4314d4dc9]

2016-10-04

2016-10-04 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node.rb

State transition cleanup: Only nodes in a 'down' state can transition to 'acked'. [eed40468bb5e]

2016-10-03

2016-10-03 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/command/config.rb

Require the manager when generating a default configuration file. [d0c5ef20e6fd]

2016-09-28

2016-09-28 Michael Granger <ged@FaerieMUD.org>

TODO.md, lib/arborist/node.rb, spec/arborist/node_spec.rb

Fix the unknown => disabled transition when updating with an ACK [30d2548e1308]

lib/arborist/manager.rb, spec/arborist/manager_spec.rb

Flatten the config into one namespace This fixes the manager's defaults, which were never actually used. [ae18e761d06f]

2016-09-21

2016-09-21 Michael Granger <ged@FaerieMUD.org>

TODO.md, lib/arborist/manager.rb, lib/arborist/node.rb, spec/arborist/node_spec.rb

Fix consequential event propagation/publication [cdf3fb9d63c8]

lib/arborist/dependency.rb, spec/arborist/dependency_spec.rb

Clarify dependency “down reason” to not seem like a node state [1f8f703940cb]

lib/arborist/manager/tree_api.rb

Stripped spammier debugging [dc594799b7dc]

Events.md

Add description of event movement to Events.md [bfee2016aa79]

2016-09-21 Mahlon E. Smith <mahlon@martini.nu>

.rvmrc, lib/arborist/node.rb

Add an event handler for disabled events, so nodes are properly quieted when their secondary dependencies are disabled. [d032e1820965]

2016-09-06

2016-09-06 Michael Granger <ged@FaerieMUD.org>

arborist.gemspec, lib/arborist/monitor/socket.rb, spec/arborist/monitor/socket_spec.rb

Fix up the specs for getpeername socket monitor change [f8c5bbc611b2]

lib/arborist/monitor/socket.rb

Make socket check use getpeername for testing non-blocking connect [9715a6d9903f]

2016-08-31

2016-08-31 Michael Granger <ged@FaerieMUD.org>

Protocol.md, TODO.md, lib/arborist/client.rb, lib/arborist/event.rb, lib/arborist/event/node.rb, lib/arborist/event/node_delta.rb, lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb, lib/arborist/monitor.rb, lib/arborist/monitor/socket.rb, lib/arborist/node.rb, lib/arborist/observer.rb, lib/arborist/subscription.rb, spec/arborist/event/node_delta_spec.rb, spec/arborist/event/node_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/observer_spec.rb, spec/arborist/subscription_spec.rb

Add exclusion to subscriptions [23b84af1ebb4]

arborist.gemspec, lib/arborist/manager/tree_api.rb, lib/arborist/monitor/socket.rb, lib/arborist/node.rb, spec/arborist/manager/tree_api_spec.rb

Include all operational values in fetched nodes. Also error more gracefully about non-eachable updates. [a72fc8d43adc]

lib/arborist/client.rb

Rearrange some methods in the client [106b17e27a3a]

2016-08-29

2016-08-29 Michael Granger <ged@FaerieMUD.org>

Rakefile, arborist.gemspec, certs/ged.pem

Add public cert [a7c6232586ad]

Manifest.txt, arborist.gemspec

Update the manifest with spec changes, rebuild gemspec. [aec9f5ec88de]

spec/data/nodes/duir.rb

Merge with a5a6e5092024 [c961355d10c8]

2016-08-29 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/loader/file.rb, spec/data/nodes/duir.rb, spec/data/nodes/sub/duir.rb

Fix the file loader so it correctly crawls subdirectories. [a5a6e5092024]

2016-08-03

2016-08-03 Michael Granger <ged@FaerieMUD.org>

lib/arborist/event/sys_node_added.rb, lib/arborist/event/sys_node_removed.rb, lib/arborist/event/sys_reloaded.rb, lib/arborist/event/sys_shutdown.rb

Remove system event node classes [a34a23ef095e]

2016-08-02

2016-08-02 Michael Granger <ged@FaerieMUD.org>

Manifest.txt, TODO.md, lib/arborist/mixins.rb, lib/arborist/monitor.rb, lib/arborist/monitor_runner.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb, spec/arborist/subscription_spec.rb

- Update the TO-DO list - Factor out some network functions into a common mixin - Add Arborist::Monitor#inspect - Restore ack+status of serialized nodes - Allow services to set their own address when not bound to INADDR_ANY - Finish separating node events from system events [f853508dba8c]

lib/arborist/monitor/socket.rb

Fix race to calculate select timeout in socket monitor [56a6dd2a8e40]

2016-07-20

2016-07-20 Michael Granger <ged@FaerieMUD.org>

TODO.md

Update the To-Do file [53ca09b4d50e]

2016-07-20 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node/resource.rb, spec/arborist/node/resource_spec.rb

Add a `category` attribute to the resource node type. [ae3aa8435e15]

2016-07-20 Michael Granger <ged@FaerieMUD.org>

.gems, .tm_properties, Events.md, TODO.md, arborist.gemspec, lib/arborist.rb, lib/arborist/command/watch.rb, lib/arborist/event/sys_shutdown.rb, lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb, lib/arborist/manager/tree_api.rb, lib/arborist/node.rb, lib/arborist/observer_runner.rb, spec/arborist/client_spec.rb, spec/arborist/manager/event_publisher_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/observer_runner_spec.rb, spec/spec_helper.rb

Send system events from the manager for status changes [4cc9924e6b0c]

2016-06-15

2016-06-15 Michael Granger <ged@FaerieMUD.org>

spec/arborist/observer_spec.rb, spec/data/observers/auditor.rb

Fix signature of observer actions in specs [196443e52d87]

lib/arborist/node.rb, lib/arborist/node/host.rb, spec/arborist/node_spec.rb

Add a config hash to node operational metadata [196223da8ba4]

2016-05-19

2016-05-19 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/node/resource.rb, spec/arborist/node/resource_spec.rb

Resource nodes should also inherit addressing from their parent hosts (as service nodes do). This gives resource monitors a path to gathering information – an obvious example being load or disk checks over SNMP. Something that isn't a service with a protocol and port, but a necessary piece of information for overall host and service health, that should be monitored (and potentially ack'ed/disabled) independently. [b4324ab8853e]

2016-05-18

2016-05-18 Mahlon E. Smith <mahlon@laika.com>

lib/arborist/cli.rb

Remove the default log level from the arborist command line client. [39338420aaa0]

2016-05-04

2016-05-04 Michael Granger <ged@FaerieMUD.org>

Protocol.md, README.md, lib/arborist/dependency.rb, lib/arborist/node.rb, spec/arborist/dependency_spec.rb, spec/arborist/node_spec.rb

Fix the way nodes' dependency state is restored [325443abe6df]

2016-04-27

2016-04-27 Michael Granger <ged@FaerieMUD.org>

README.md

Remove the link to the “tutorial” until there is one [650c1e0a0628]

lib/arborist/client.rb, spec/arborist/client_spec.rb

Add fetch with depth to the client [96b36155fad0]

2016-04-20

2016-04-20 Michael Granger <ged@FaerieMUD.org>

arborist.gemspec

Update the gemspec [1cd5199203f9]

lib/arborist/command/start.rb

Don't default to profiling the start command [8f480f46c441]

Manifest.txt, lib/arborist/node/resource.rb, spec/arborist/node/resource_spec.rb, spec/arborist/node/service_spec.rb

Add a `resource` host subnode type. [880c4d370508]

Protocol.md, TODO.md, lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb

Add a depth argument to the tree API “list” command. [e319210e26cb]

lib/arborist/monitor/socket.rb

Use an empty string for the send in the UDP socket monitor [4a43736bba05]

Manifest.txt

Update the manifest [15f5c789b17c]

spec/arborist/event/node_spec.rb

Add specs for the node event base class [d9b8715427c3]

spec/data/observers/webservices.rb

Fix the observer setup in spec data [a990ba28f0a8]

lib/arborist/monitor/socket.rb

Add a to-do comment for a race condition [7aab38ffd06a]

2016-04-18

2016-04-18 Michael Granger <ged@FaerieMUD.org>

lib/arborist/cli.rb, lib/arborist/command/start.rb

Add profiling to the `start` command, clean up cli code a bit [7117040136c4]

2016-04-18 Mahlon E. Smith <mahlon@martini.nu>

TODO.md

Update TODO with some additional ideas. [f81ee9253773]

2016-04-14

2016-04-14 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/monitor/socket.rb, lib/arborist/node.rb

Checkpoint commit. - Add UDP checking, based on the TCP checker. - Fix logging for quieted nodes. - Start updating the status_changed node attribute on status transitions. [527fafd7c668]

TODO.md

Add a quick blurb to the TODO. [6f93cc30a5e1]

2016-04-14 Michael Granger <ged@FaerieMUD.org>

.hgignore, .hoerc, lib/arborist/monitor_runner.rb, spec/arborist/manager_spec.rb

Fix the monitor running after adding negative criteria. [46d6c436174c]

2016-04-13

2016-04-13 Michael Granger <ged@FaerieMUD.org>

lib/arborist/client.rb, lib/arborist/event/node.rb, lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb, lib/arborist/monitor_runner.rb, spec/arborist/client_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb

Implement exclude for node matching/monitors [99d5e31791a3]

lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb

Handle system call errors while running the monitor command [b4ca615e0b32]

lib/arborist/node.rb, lib/arborist/node/ack.rb, spec/arborist/node/ack_spec.rb

Fix the status description during state changes with ack set. [40c91d7c3131]

Manifest.txt, TODO.md, arborist.gemspec, lib/arborist/node.rb, lib/arborist/node/ack.rb, spec/arborist/node/ack_spec.rb

Break node acks out into a class, fix serialization issues [d9d01450a189]

lib/arborist/node.rb, spec/arborist/node_spec.rb

Fix node ack-clearing [b6694a5b8368]

2016-04-12

2016-04-12 Mahlon E. Smith <mahlon@martini.nu>

lib/arborist/client.rb

Add acknowledgement helpers for Arborist::Client. [98dae44fa322]

2016-04-11

2016-04-11 Michael Granger <ged@FaerieMUD.org>

Manifest.txt, lib/arborist/event/node_delta.rb, lib/arborist/node/host.rb, spec/arborist/node_spec.rb

Add an override to node.delta events The change to include node attributes in all `node.*` events broke the delta event, and changed what the `node.ack` events look like. This fixes `node.delta` events to look like they did before (only including the diff in their payload), and updates the specs for the `node.ack` event to expect the new-style payload. [af21efce26e3]

.tm_properties, lib/arborist/event/node.rb, lib/arborist/event/node_update.rb, spec/arborist/event/node_down_spec.rb, spec/arborist/event/node_update_spec.rb

Include node payload in all node events [8257c7337a2b]

TODO.md

Update TODO [fca1215eee50]

lib/arborist/manager/tree_api.rb

Log client api commands at debug instead of info [a497308b8723]

2016-04-06

2016-04-06 Michael Granger <ged@FaerieMUD.org>

TODO.md, lib/arborist/manager.rb, lib/arborist/node.rb, spec/arborist/manager_spec.rb

Don't cross quieted nodes in default traversal [92756b2da807]

TODO.md

Update TO DO list [7a24db395228]

lib/arborist/node.rb

Don't log dependency state on every node.up event [8585c6dd3240]

lib/arborist/node/service.rb

Don't restore addresses for marshalled services [1665d36ffadd]

lib/arborist/cli.rb

Fix logging in the cli [25e09c2f43a9]

Manifest.txt, Nodes.md, TODO.md, arborist.gemspec, lib/arborist.rb, lib/arborist/cli.rb, lib/arborist/command/client.rb, lib/arborist/command/start.rb, lib/arborist/dependency.rb, lib/arborist/event.rb, lib/arborist/event/node.rb, lib/arborist/event/node_acked.rb, lib/arborist/event/node_delta.rb, lib/arborist/event/node_disabled.rb, lib/arborist/event/node_down.rb, lib/arborist/event/node_matching.rb, lib/arborist/event/node_quieted.rb, lib/arborist/event/node_unknown.rb, lib/arborist/event/node_up.rb, lib/arborist/event/node_update.rb, lib/arborist/event/sys_node_added.rb, lib/arborist/event/sys_node_removed.rb, lib/arborist/exceptions.rb, lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb, lib/arborist/manager/tree_api.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, lib/arborist/subscription.rb, spec/arborist/dependency_spec.rb, spec/arborist/event/node_delta_spec.rb, spec/arborist/event/node_update_spec.rb, spec/arborist/event_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_spec.rb, spec/arborist/node/host_spec.rb, spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb, spec/arborist/subscription_spec.rb

Add ability to express secondary dependencies

2016-03-02

2016-03-02 Michael Granger <ged@FaerieMUD.org>

TODO.md

Update the to-do list [5ff19d1aefbd]

arborist.gemspec, lib/arborist/cli.rb, lib/arborist/event.rb, lib/arborist/event/node_delta.rb, lib/arborist/mixins.rb, lib/arborist/node.rb, spec/arborist/event/node_delta_spec.rb

Fix matching for node delta events [c3ad32bd54a2]

lib/arborist/manager.rb

Remove unused Manager constant [8079f5cdaecb]

.hoerc

Don't include state files in the manifest [72aa5a4204b5]

.hgignore, lib/arborist.rb, lib/arborist/manager.rb, lib/arborist/node.rb, lib/arborist/node/root.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb

Save and restore tree state across restarts

2016-02-24

2016-02-24 Michael Granger <ged@FaerieMUD.org>

TODO.md

Update the TODO list [47ef6bc4fe24]

2016-02-22

2016-02-22 Michael Granger <ged@FaerieMUD.org>

TODO.md, lib/arborist/client.rb, lib/arborist/manager/tree_api.rb, spec/arborist/client_spec.rb, spec/arborist/manager/tree_api_spec.rb

Add MODIFY to the tree api/client. [6cfcaabc4a68]

lib/arborist/node.rb, spec/arborist/node_spec.rb

Fix Node tags modification [7ede931a8214]

2016-02-10

2016-02-10 Michael Granger <ged@FaerieMUD.org>

TODO.md, lib/arborist/client.rb, lib/arborist/exceptions.rb, lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, spec/arborist/client_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node/service_spec.rb, spec/arborist_spec.rb, spec/spec_helper.rb

Added GRAFT to the tree API [9c41353696cb]

Protocol.md, TODO.md, lib/arborist/client.rb, lib/arborist/manager/tree_api.rb, spec/arborist/client_spec.rb, spec/arborist/manager/tree_api_spec.rb

Added PRUNE to the tree API. [43af5daf67a7]

TODO.md

Updated the TODO list [b30a77db11dd]

LICENSE, Manifest.txt, Rakefile, arborist.gemspec

Build system cleanup [5fe75989da8e]

2016-02-08

2016-02-08 Michael Granger <ged@FaerieMUD.org>

lib/arborist.rb, lib/arborist/monitor.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, lib/arborist/observer.rb, spec/arborist/node/host_spec.rb, spec/arborist/node_spec.rb, spec/spec_helper.rb

Add subnode declarations and add the infrastructure for graft/modify [bfcbe35fc82f]

2016-02-03

2016-02-03 Michael Granger <ged@FaerieMUD.org>

TODO.md

Add some more stuff to the TODO doc [593114f4d409]

Protocol.md

Add the node operations to the Protocol doc [250d32bc3eb6]

2016-02-03 Michael Granger <ged@FaerieMUD.org>

lib/arborist/node.rb

Add API docs for the state_machines generated methods [00d6b23ff90a]

2016-02-02

2016-02-02 Mahlon E. Smith <mahlon@martini.nu>

.gems, Rakefile, arborist.gemspec

oop, highline also needs to be a dependency. [84af7642624c]

.gems, Rakefile

Add GLI dependency. [d73277230ec2]

2016-01-28

2016-01-28 Michael Granger <ged@FaerieMUD.org>

README.md, Rakefile, arborist.gemspec

Fix the link list in the README, 'docs' rake target. [6479be826ccc]

Manifest.txt, README.md, Tutorial.md

Update the README and add a stub for the Tutorial mentioned in it. [f020438be6d9]

spec/arborist/client_spec.rb, spec/spec_helper.rb

Skip the spec that requires the ZMQ workaround under CI - The ZMQ registration bug workaround never works in Semaphore's environment, so just skip that spec there. [3ec418f69498]

Manifest.txt, lib/arborist/cli.rb, spec/arborist_spec.rb

Fix leaking the root node singleton between specs. - Also silences some noisy logging from the config specs. [570a00a9311d]

lib/arborist.rb, lib/arborist/node.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/monitor_spec.rb, spec/arborist_spec.rb, spec/spec_helper.rb

Fix some specs; still an order-dependent failure for seed 46570 [e23d2b9f8f31]

bin/amanagerd, bin/amonitord, bin/aobserverd, bin/arborist, lib/arborist/cli.rb, lib/arborist/client.rb, lib/arborist/command/client.rb, lib/arborist/command/config.rb, lib/arborist/command/start.rb, lib/arborist/command/watch.rb, lib/arborist/event/node_matching.rb, lib/arborist/observer.rb, spec/data/monitors/pings.rb

Add a CLI and consolidate daemons into a “start” command [8180949a5e2c]

lib/arborist.rb, lib/arborist/loader.rb, lib/arborist/loader/file.rb, lib/arborist/manager.rb, lib/arborist/monitor.rb, lib/arborist/node.rb, lib/arborist/observer.rb

Add a loader-plugin system instead of assuming files [6871a50affeb]

2016-01-20

2016-01-20 Michael Granger <ged@FaerieMUD.org>

lib/arborist/node.rb

Whitespace fix [4ad9a2f6dd09]

spec/arborist/node_spec.rb, spec/data/monitors/port_checks.rb

Remove a note from the port checks example after discussion [e41ae3591da2]

TODO.md

Add some more TODO stuff [cf1ef68d637d]

Rakefile

Fix license copypasta in the Rakefile [83ab92cd92b1]

TODO.md, arborist.gemspec, lib/arborist/manager.rb, lib/arborist/node.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb

Add 'disabled' node state. [747e81edf7e4]

.hgignore, Rakefile, arborist.gemspec, lib/arborist/node/service.rb

Updates for the gem build. [de06b562b8bd]

2015-12-31

2015-12-31 Michael Granger <ged@FaerieMUD.org>

alerts/host_down.rb, images/Leaf.sketch, monitoring_featureset.txt

Removing some miscellanous files [a2f8b47a4b2a]

2015-12-30

2015-12-30 Michael Granger <ged@FaerieMUD.org>

.gems, .hoerc, Manifest.txt, Observers.md, Rakefile, arborist.gemspec, lib/arborist/observer/action.rb, lib/arborist/observer/summarize.rb, spec/arborist/observer/summarize_spec.rb

Add scheduling to observers. [55599200bf56]

2015-12-16

2015-12-16 Michael Granger <ged@FaerieMUD.org>

Observers.md, bin/amonitord, bin/aobserverd, lib/arborist/observer.rb, lib/arborist/observer/action.rb, lib/arborist/observer/summarize.rb, lib/arborist/observer_runner.rb, spec/arborist/observer/action_spec.rb, spec/arborist/observer/summarize_spec.rb, spec/arborist/observer_spec.rb, spec/data/observers/auditor.rb

Add Observer#summarize actions

2015-12-14

2015-12-14 Michael Granger <ged@FaerieMUD.org>

lib/arborist/manager/event_publisher.rb

Break the register retry loop [d784b06e615d]

2015-12-11

2015-12-11 Michael Granger <ged@FaerieMUD.org>

.hgignore, Observers.md, Protocol.md, TODO.md, lib/arborist/manager.rb, lib/arborist/observer.rb, lib/arborist/observer/action.rb, lib/arborist/observer_runner.rb, spec/arborist/observer/action_spec.rb

Implement count and time thresholds on Observer actions [88e5b037232f]

2015-12-09

2015-12-09 Michael Granger <ged@FaerieMUD.org>

Observers.md, bin/aobserverd, lib/arborist.rb, lib/arborist/client.rb, lib/arborist/event.rb, lib/arborist/event/node_acked.rb, lib/arborist/event/node_delta.rb, lib/arborist/event/node_matching.rb, lib/arborist/event/node_update.rb, lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb, lib/arborist/monitor/socket.rb, lib/arborist/node.rb, lib/arborist/node/service.rb, lib/arborist/observer.rb, lib/arborist/observer_runner.rb, lib/arborist/subscription.rb, spec/arborist/client_spec.rb, spec/arborist/event/node_update_spec.rb, spec/arborist/event_spec.rb, spec/arborist/manager/event_publisher_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/observer_spec.rb, spec/arborist/subscription_spec.rb, spec/data/nodes/localhost.rb, spec/data/observers/auditor.rb, spec/data/observers/webservices.rb, spec/spec_helper.rb

Add Observer class

2015-12-07

2015-12-07 Michael Granger <ged@FaerieMUD.org>

lib/arborist/node.rb

Allow single filename arguments to Node.each_in as with Monitor et. al. [b675468ea2d3]

lib/arborist/monitor.rb

Fix a constant name in monitor.rb. [3fc70d8200e5]

lib/arborist/monitor/socket.rb, spec/arborist/monitor/socket_spec.rb

Fix the update data and error handling in the socket monitor [a552217db04b]

2015-12-05

2015-12-05 Michael Granger <ged@FaerieMUD.org>

lib/arborist/monitor/socket.rb, spec/arborist/monitor/socket_spec.rb, spec/data/monitors/port_checks.rb

Add initial TCP socket monitor logic class [a93e4f9cc81c]

2015-12-03

2015-12-03 Michael Granger <ged@FaerieMUD.org>

lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, spec/arborist/node/host_spec.rb, spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb, spec/spec_helper.rb

Fix some node filtering issues and improve Node#inspect [9f03e5ab6b67]

lib/arborist/mixins.rb, spec/arborist/mixins_spec.rb

Add future? and past? to TimeRefinements [5395744f5005]

2015-12-02

2015-12-02 Michael Granger <ged@FaerieMUD.org>

Monitors.md, lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb

Make Monitor#exec accept any object that implements run [38cf9a76d080]

.hgignore, Monitors.md, lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb

Allow monitor exec to take a Module too [f9b1e2534a0b]

2015-11-16

2015-11-16 Michael Granger <ged@FaerieMUD.org>

.gems, .tm_properties, Monitors.md, Protocol.md, bin/amonitord, experiments/modcontext-instance-eval.rb, experiments/pipe-cat.rb, lib/arborist/client.rb, lib/arborist/monitor.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_spec.rb, spec/data/monitors/pings.rb, spec/data/monitors/web_services.rb, spec/spec_helper.rb

Rewrote monitor strategy [1c67662ec4f3]

2015-10-14

2015-10-14 Michael Granger <ged@FaerieMUD.org>

.gems, Monitors.md, Protocol.md, lib/arborist/manager.rb, lib/arborist/monitor.rb, spec/data/monitors/pings.rb, spec/data/observers/webservices.rb

Change the execution strategy used for monitors/observers. Update docs/examples with the new mechanism [979179fac69a]

2015-10-07

2015-10-07 Mahlon E. Smith <mahlon@martini.nu>

.gems, Rakefile, experiments/arborist.schema, experiments/nodes- from-ldap.rb, lib/arborist/manager.rb

Checkpoint a LDAP sourced node builder. [0bdf779138c4]

2015-09-10

2015-09-10 Michael Granger <ged@FaerieMUD.org>

lib/arborist/node.rb, spec/arborist_spec.rb, spec/spec_helper.rb

Only use the `spec/data/nodes` directory for loading test nodes [43882cef9f1f]

2015-09-09

2015-09-09 Michael Granger <ged@FaerieMUD.org>

Observers.md, lib/arborist/client.rb, lib/arborist/event.rb, lib/arborist/event/sys_reloaded.rb, lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb, lib/arborist/node.rb, lib/arborist/subscription.rb, spec/arborist/client_spec.rb, spec/arborist/event_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb, spec/arborist/subscription_spec.rb, spec/data/nodes/sidonie.rb, spec/data/observers/webservices.rb

Checkpoint commit [2e629096ee55]

2015-08-20

2015-08-20 Michael Granger <ged@FaerieMUD.org>

Rakefile, arborist.gemspec

Add missing author to the gemspec. [013f9be18f9f]

Events.md, Manifest.txt, Observers.md, Rakefile, arborist.gemspec, lib/arborist.rb, lib/arborist/event.rb, lib/arborist/event/node_acked.rb, lib/arborist/event/node_delta.rb, lib/arborist/event/node_update.rb, lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb, lib/arborist/manager/tree_api.rb, lib/arborist/node.rb, lib/arborist/node/root.rb, lib/arborist/subscription.rb, spec/arborist/event/node_update_spec.rb, spec/arborist/event_spec.rb, spec/arborist/manager/event_publisher_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node/root_spec.rb, spec/arborist/node_spec.rb, spec/arborist/subscription_spec.rb, spec/spec_helper.rb

Add basic subscriptions, flesh out events. [6c8636097d37]

2015-07-20

2015-07-20 Michael Granger <ged@FaerieMUD.org>

Events.md, Manifest.txt, Observers.md, lib/arborist.rb, lib/arborist/event.rb, lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb, lib/arborist/node.rb, spec/arborist/client_spec.rb, spec/arborist/manager/event_publisher_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb

Start work on adding node update events - Simplify event class (no need for pluggability yet) - Refactor some of the tree API code with too much intimate knowledge of the manager and nodes up into the manager. This is also how the manager will be able to do event propagation from Tree API calls. - Add event-generation to Node#update. - Make the Tree API fetch always return Hash values for consistency [af63d56deafa]

2015-07-15

2015-07-15 Michael Granger <ged@FaerieMUD.org>

lib/arborist.rb, lib/arborist/manager.rb, spec/arborist/client_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb, spec/arborist_spec.rb

Fix a spec problem with trying to use two ZMQ contexts [ee2875d38797]

2015-07-08

2015-07-08 Michael Granger <ged@FaerieMUD.org>

Manifest.txt, bin/amonitord, lib/arborist.rb, lib/arborist/monitor_runner.rb, monitors/pings.rb, monitors/system_resources.rb, monitors/web_services.rb, spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb, spec/arborist_spec.rb, spec/data/monitors/pings.rb, spec/data/monitors/system_resources.rb, spec/data/monitors/web_services.rb

Add a monitor runner. [cd9a1a9cb61a]

2015-07-06

2015-07-06 Michael Granger <ged@FaerieMUD.org>

monitors/pings.rb

Only ping “down” nodes from the downed host pinger [874a2816d0d5]

2015-07-03

2015-07-03 Michael Granger <ged@FaerieMUD.org>

spec/data/nodes/duir.rb

Make the testing data work on hosts with no 'nat-pmp' /etc/services entry. [25bdee773318]

Rakefile, arborist.gemspec, bin/amanagerd

Add timecop developer dep [682cf0904237]

Rakefile, arborist.gemspec

Fix rbczmq version. [337d4ddc2c41]

Rakefile, arborist.gemspec

Fix deps: add rbczmq, remove rgl. [00aed09c231c]

Manifest.txt, Nodes.md, arborist.gemspec

Update manifest, gemspec. [905f639ef8c2]

Rakefile

Rebuild the gemspec before checkin [6ac865dc47c1]

2015-07-02

2015-07-02 Michael Granger <ged@FaerieMUD.org>

experiments/run_monitors.rb, lib/arborist.rb, lib/arborist/client.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/root.rb, spec/arborist/client_spec.rb

Add a spike of a ZMQ::Loop-based monitor runner. [c32fc2af7e33]

lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb, spec/arborist/manager/event_publisher_spec.rb

Add registration/deregistration for event publisher to avoid spinning. [fd304df012d4]

Monitors.md, lib/arborist/monitor.rb, monitors/pings.rb, monitors/system_resources.rb, monitors/web_services.rb, spec/arborist/monitor_spec.rb

Add initial implementation of the monitor class. [9fe5a028d82a]

2015-07-01

2015-07-01 Michael Granger <ged@FaerieMUD.org>

experiments/fping_wrapper.sh, experiments/fping_wrapper_data.txt

Adding experimental fping shell wrapper [97321e2a97fd]

2015-06-19

2015-06-19 Michael Granger <ged@FaerieMUD.org>

README.md

Fix spelling of the project in the README. [f0ffaa9a81b8]

2015-06-18

2015-06-18 Michael Granger <ged@FaerieMUD.org>

Monitors.md, Protocol.md

Renamed Monitors.md to Protocol.md [05ab00e422c5]

2015-06-17

2015-06-17 Michael Granger <ged@FaerieMUD.org>

bin/amanagerd, experiments/make_dot.rb, lib/arborist.rb, lib/arborist/client.rb, lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb, lib/arborist/mixins.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, spec/arborist/client_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb, spec/spec_helper.rb

Finish up work on the Tree API, add a simple client class [6e4b8b2e9692]

Monitors.md, lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb, lib/arborist/manager/tree_api.rb, lib/arborist/mixins.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb, spec/data/nodes/sidonie.rb, spec/data/nodes/yevaud.rb

Checkpoint commit [53f8c46273b7]

2015-05-28

2015-05-28 Michael Granger <ged@FaerieMUD.org>

.tm_properties, lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb, lib/arborist/node.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb

Checkpoint of work from Wednesday [c17020a7fb2a]

2015-05-27

2015-05-27 Mahlon E. Smith <mahlon@martini.nu>

.gems, experiments/make_dot.rb

Add some dependencies to the .gems file. Add a simplistic .dot generator. [3e66ce756411]

2015-05-25

2015-05-25 Michael Granger <ged@FaerieMUD.org>

.gems, .hgignore, Manifest.txt, Monitors.md, Observers.md, Rakefile, experiments/manager-sockets.rb, experiments/yay-client.rb, lib/arborist.rb, lib/arborist/exceptions.rb, lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb, lib/arborist/manager/tree_api.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, lib/arborist/node/webservice.rb, spec/arborist/manager/event_publisher_spec.rb, spec/arborist/manager/tree_api_spec.rb, spec/arborist/manager_spec.rb, spec/arborist/node/service_spec.rb, spec/arborist_spec.rb, spec/data/nodes/duir.rb, spec/data/nodes/sidonie.rb, spec/data/nodes/test1.rb, spec/data/nodes/yevaud.rb, spec/spec_helper.rb, tree/duir.rb, tree/sidonie.rb, tree/yevaud.rb

Start implementing the Tree API - Document the protocol - Start specs for the API handler. - Add MessagePack lib dependency - Add manager server stuff (startup, shutdown, signal-handling, etc.) - Resolve some problems with the Service node type. [c6fb156530cc]

2015-05-06

2015-05-06 Michael Granger <ged@FaerieMUD.org>

ChangeLog, Manifest.txt, Monitors.md, experiments/monitor-client.rb, experiments/monitor-service.rb, lib/arborist.rb, lib/arborist/mixins.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/service.rb, monitors/pings.rb, spec/arborist/node/host_spec.rb, spec/arborist/node/root_spec.rb, spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb, spec/arborist_spec.rb

Checkpoint of work from today and last week. - Added acknowlegements to Arborist::Node - Fixed address code for host nodes, port code for service nodes. - Better spec coverage all around. [c94494647182]

2015-04-22

2015-04-22 Michael Granger <ged@FaerieMUD.org>

.pryrc

Load all node types in .pryrc [7366a03c490e]

lib/arborist.rb

Fix a bug in `Arborist.manager_for` [4c9abee5b344]

lib/arborist/node.rb, lib/arborist/node/webservice.rb, spec/arborist/node_spec.rb

Add properties/status API to Arborist::Node. [98f3f332b5a3]

experiments/monitor-client.rb, experiments/monitor-service.rb

Add spike of REQ/REP socket use [0126d248b0f6]

2015-04-15

2015-04-15 Michael Granger <ged@FaerieMUD.org>

.tm_properties, Monitors.md, Rakefile, experiments/hash-add.rb, lib/arborist.rb, lib/arborist/manager.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/root.rb, spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb, spec/data/nodes/test1.rb, spec/spec_helper.rb

Add basic node graph functionality [e653b1bafeb7]

2015-03-22

2015-03-22 Michael Granger <ged@FaerieMUD.org>

.gems, .pryrc, .rvm.gems, README.md, images/Leaf.sketch, lib/arborist.rb, lib/arborist/collector.rb, lib/arborist/manager.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, spec/arborist/collector_spec.rb, spec/arborist/manager_spec.rb, tree/duir.rb, tree/sidonie.rb, tree/yevaud.rb

Snapshot of today's spike work [203aed65712a]

2015-03-18

2015-03-18 Michael Granger <ged@FaerieMUD.org>

.document, .hgignore, .pryrc, .rvm.gems, .rvmrc, .simplecov, ChangeLog, Gemfile, History.md, LICENSE, Manifest.txt, Observers.md, README.md, Rakefile, alerts/host_down.rb, arborist.gemspec, lib/arborist.rb, lib/arborist/collector.rb, lib/arborist/event.rb, lib/arborist/mixins.rb, lib/arborist/node.rb, lib/arborist/node/host.rb, lib/arborist/node/root.rb, lib/arborist/node/service.rb, monitoring_featureset.txt, monitors/pings.rb, monitors/system_resources.rb, monitors/web_services.rb, spec/arborist/collector_spec.rb, spec/arborist/mixins_spec.rb, spec/arborist_spec.rb, spec/spec_helper.rb, tree/duir.rb, tree/sidonie.rb, tree/yevaud.rb

Spikes and notes [0999d72c1a9f]