Moved documentation to an unprotected directory so it's easier to share.
Moved documentation to an unprotected directory so it's easier to share.
Added support (and tests for that support) to CrawlDBI.
 - ignore some stuff
 - adding functionality to mpra.py
 - add util.hostname()
Adding tests for util.hostname()
More functionality
Adding tests for limit argument to DBI.select()
 - Support limit parameter on select.
 - Set env properly before attempting DB2 access.
 - Age migration records.
 - Report unique times from bfmigrrec.
Reset CRAWL_CONF in environment for each module.
Corrected test verification.
New routines to translate date/time values between ymdhms and epoch
format.
Implementing 'mpra age'
Move common code from mpra.py to mpra_lib.py
Add interactive 'age' command based on common code that the plugin can
use as well. Also fixed issue in toolframe when a function's docstring
is undefined.
- mpra_plugin.py: has to import CrawlConfig
- CrawlDBI.py: Tolerate empty DB2 username and/or password in crawler
  config (the connection may fail)
- tcc_common.py: Put connection data in a string before calling
  db2.connect()
- .gitignore: Ignore all _report.txt files (mpra as well as tcc)
 - CrawlPlugin.py: Separate plugin name from loadable python module name. The
   configuration section is named after the plugin. The python module name is
   specified in the plugin section.
 - crawl.py: Remove unused fire() routine from CrawlDaemon class.
 - mpra.py: Add options --before (report everything before a fixed point in the
   past) and --path (report path names as well as bit file IDs).
 - mpra_lib.py: Support the --path option.
 - tcc_common.py: Don't log every name lookup in get_bitfile_path() and return
   "<unnamed bitfile>" if the path look up fails.
- Ability to simulate the plugin from the command line for debugging.
- Change mpra_lib.age() to take start and end times rather than an
  age, allowing the plugin to control how far back in time it goes so
  it doesn't keep reporting the same records over and over.
Make it easier to get a db2 handle.
CrawlDBI.py:
 - dbname, tbl_pfx set based on dbtype in kwargs
 - cover all permutations of dbtype and cfg in kwargs
 - correct comment in mysql drop method

mpra.py:
 - add 'mpra reset' to drop the mpra table and remove the report file

mpra_lib.py:
 - report is based on the age of the records (i.e., time - end)
 - when checking to see if the recent record exists, we have to check
   by type
 - if an mpra recent record is not present, don't blow up but return 0