+Structure:
+
+monitor module
+ plc wrapper
+ util functions
+ pkl database access
+ database models
+ third-party data sources
+
+pcucontrol
+ maps types to code
+ reboot.py
+ interface.py
+
+ transport:
+ pyssh
+ ssh
+ telnetlib
+ models:
+ hpilo cmds
+ intelamt cmds
+ racadm cmd
+ ipmitool cmd
+
+web
+ cgi scripts
+ tgweb
+ project...
+
+cmds
+ py scripts
+ node
+ site
+ pcu
+ query
+ grouprins
+
+bootman
+ rpyc
+
+
+
+
+
+###############################
+for each node:
+ Check Status ->
+ if Pass Threshold ->
+ Create Issue ->
+ Take Action ->
+ email
+ bm
+ pcu
+ plc reset
+ apply penalties
+ flag for admin
+
+for each issue
+ check issue.status
+ if issue.status is "open":
+ issue.take_next_action()
+ if issue.closed:
+ issue.shutdown()
+ if issue.paused:
+ pass
+
+action_list for issuetype (pcudown)
+ send email
+ yield
+ send email, apply penalty
+ yield
+ send email, apply second penalty
+ yield
+ send email
+
+action_list for issuetype (badhardware)
+action_list for issuetype (dnserror)
+action_list for issuetype (nodeconfig)
+action_list for issuetype (oldbootcd)
+
+action_list for issuetype (nodedown)
+ if pcuok, reboot
+ yield
+ if pcuok, and reboot failed, set rins, reboot
+ yield
+ create_issue pcubroken
+ send email
+ yield
+ send email, apply penalty
+ yield
+ send email, apppy second penalty
+ yield
+ send email
+
+
+TOOLS:
+ * add a '--nocache' to the default set of options.
+ * add a cache parameter in the monitor.conf file.
+
+
TODO:
* install openssh-server, passwd, perl-libwww-perl (for rt), rt-3.4.1, MySQL-python
* had to mount -t devpts devpts /dev/pts to get ssh to work inside the
chroot. also, disable the pam modules in /etc/pam.d/sshd
+ * blue
* auto configuration for php configuration.
maybe run translation of monitor.conf before loading monitorconfig.php?
+ * blue2
* A setup script of some kind would be nice that walked through :
- writing monitorconfig.py
- testapi.py
- findbad.py on sample site.
- nodebad.py
+ - findbadpcus.py
- nodequery.py
- nodegroups.py
- - findbadpcus.py
- loads webpage for those retreived values to confirm setup succeeded.
* reimplement the config.py / .config mechanism. I'd like for many commands