### OPEN SOURCE LICENSE - GNU PUBLIC LICENSE Version 3.0 ####### # # Net::FullAuto - Powerful Network Process Automation Software # Copyright (C) 2011 Brian M. Kelly # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version. # # This program is distributed in the hope that it will be useful, # but **WITHOUT ANY WARRANTY**; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ################################################################ ################################################################ # # WARNING: THIS IS A ***BETA*** RELEASE OF Net::FullAuto # # Net::FullAuto is powerful network process automation # software that has been in un-released development for # more than eleven years. For this reason, you may find # it to be useful for many process automation projects. # Because it has been worked on for so long, it may appear # to work well, and pass a number of non-intensive tests. # # DO NOT - I REPEAT - DO !!NOT!! USE IN A PRODUCTION # ENVIRONMENT! This is newly released software that has # not had the benefit of wide exposure - and the presence # of here-to-now undetected bugs and design flaws is a # virtual certainty. DO NOT USE IN IN/FOR A PROCESS WHERE # DATA LOSS IS UNRECOVERABLE. DO NOT USE IN/FOR A PROCESS # WHERE DATA INTEGRITY IS CRITICAL. DO NOT USE IN/FOR A # PROCESS THAT IS TIME SENSITIVE, UNMONITORED, OR # PERSISTENCE CRITICAL. DO NOT USE THIS SOFTWARE WITHOUT # ANOTHER METHOD iOR RUNNING THE PROCESS YOU WISH TO # AUTOMATE WITH Net::FullAuto. DO NOT USE IN/FOR A PROCESS # WHERE FAILURE OF "ANY KIND" IS UNACCEPTABLE. # ################################################################ 2011-07-21 Brian M. Kelly * Version 0.9947 released. * Implemented new menu and db feature to choose and save a default fa_menu.pm file for use when FullAuto starts for the user. There is now a Custom/$username/Menus directory to house many menu files. Default menu file name is stored in the db. fa --menu will display this functionality. 2011-07-21 Brian M. Kelly * Version 0.9946 released. * More changes to Makefile.PL. 2011-07-18 Brian M. Kelly * Version 0.9945 released. * More changes to Makefile.PL. 2011-07-17 Brian M. Kelly * Version 0.9944 released. * More changes to Makefile.PL. 2011-07-10 Brian M. Kelly * Version 0.9943 released. * More changes to Makefile.PL. 2011-07-09 Brian M. Kelly * Version 0.9942 released. * More changes to Makefile.PL. 2011-07-08 Brian M. Kelly * Version 0.9941 released. * More changes to Makefile.PL. 2011-07-08 Brian M. Kelly * Version 0.9940 released. * Now forcing Term::RawInput to install early in Makefile.PL. 2011-07-07 Brian M. Kelly * Version 0.9939 released. * Fixed some more logic in Makefile.PL. 2011-07-07 Brian M. Kelly * Version 0.9938 released. * Fixed some more logic in Makefile.PL. 2011-07-05 Brian M. Kelly * Version 0.9937 released. * Added Algorithm::Diff as a dependency to Makefile.PL. (This is a prerequisite for Data::Dump::Streamer). 2011-07-04 Brian M. Kelly * Version 0.9936 released. * Made more adjustments to Cygwin based installation code in Makefile.PL for Windows EXE installation. 2011-06-23 Brian M. Kelly * Version 0.9935 released. * Made more adjustments to Cygwin based installation code in Makefile.PL for Windows EXE installation. 2011-06-22 Brian M. Kelly * Version 0.9934 released. * Made more adjustments to Cygwin based installation code in Makefile.PL for Windows EXE installation. 2011-06-20 Brian M. Kelly * Version 0.9933 released. * Made more adjustments to Cygwin based installation code in Makefile.PL for Windows EXE installation. 2011-06-17 Brian M. Kelly * Version 0.9932 released. * Made more adjustments to Cygwin based installation code in Makefile.PL for Windows EXE installation. 2011-06-15 Brian M. Kelly * Version 0.9931 released. * Made more adjustments to Cygwin based installation code in Makefile.PL for Windows EXE installation. 2011-06-14 Brian M. Kelly * Version 0.9930 released. * Made more adjustments to Cygwin based installation code in Makefile.PL for Windows EXE installation. 2011-06-12 Brian M. Kelly * Version 0.9929 released. * Made major adjustments to Cygwin based installation code in Makefile.PL for Windows EXE installation. Now working end-to-end on Windows 2008 Server. 2011-06-05 Brian M. Kelly * Version 0.9928 released. * Made adjustments to Cygwin based installation code in Makefile.PL. * Added &persist() function for Custom Code writers. 2011-03-05 Brian M. Kelly * Version 0.9927 released. * Made adjustments to Cygwin based installation code in Makefile.PL. 2011-03-04 Brian M. Kelly * Version 0.9926 released. * Fixed FULL CALENDAR date issue regarding current month and current time. 2011-02-28 Brian M. Kelly * Version 0.9925 released. * Completed Windows Installer. 2011-02-27 Brian M. Kelly * Version 0.9924 released. * More minor fixes to bugs discovered while testing in OpenSolaris. * Implemented $host->close() for ssh connections. * Tested with threading - it WORKS. 2011-02-27 Brian M. Kelly * Version 0.9923 released. * More minor fixes to bugs discovered while testing in OpenSolaris. * Fixed Ping functionality. * Worked on setuid operations. 2011-02-25 Brian M. Kelly * Version 0.9922 released. * More minor fixes to bugs discovered while testing in OpenSolaris. * Changed Makefile.PL to eliminate searching of hidden directories when looking for BerkeleyDB. 2011-02-24 Brian M. Kelly * Version 0.9921 released. * Minor changes to fix errors found when run in Linux. 2011-02-22 Brian M. Kelly * Version 0.9920 released. * Minor changes to fix errors found when run in Linux. 2011-02-22 Brian M. Kelly * Version 0.9919 released. * Wrapped DB operations with semaphore protection. * More output parsing tweaks and bug fixes. 2011-02-21 Brian M. Kelly * Version 0.9918 released. * Completed work on both IPC and Win32 Semaphore code. * Implemented 'top' CPU usage test to prevent FullAuto launching in unattended mode when CPU usage is high. * More output parsing tweaks and bug fixes. 2011-02-14 Brian M. Kelly * Version 0.9917 released. * Added a LOT more password persistence and management code. * Prompts now have timeouts. (So they don't interfere with other processes in unattended mode). * Got semaphores working again in Cygwin. 2011-02-09 Brian M. Kelly * Version 0.9916 released. * More work on "Scheduled Jobs". * Fixed bugs with pwd test. 2011-02-08 Brian M. Kelly * Version 0.9915 released. * Looks like "Finally" fixed Cygwin reliability - use built-in bash pwd rather than cmd /c chdir for determining current directory during login. * Much more work on "Scheduled Jobs" - can actually populate running cron job. 2011-02-07 Brian M. Kelly * Version 0.9914 released. * Regular Expression fix [$%>#-:] to [:\$%>#-] because the dollar sign was not matching. 2011-02-07 Brian M. Kelly * Version 0.9913 released. * Regular Expression fix [$%>#-:] to [:$%>#-] because the former was improperly matching a '('. 2011-02-07 Brian M. Kelly * Version 0.9912 released. * Removed 'use MLDBM' and 'use DB_File' from FullAuto.pm. This should fix full install. * Included Test::Deep (needed by MIME::Tools) and Term::RawInput in required modules list in Makefile.PL. * Fixed what "should" be the very last Cygwin "reliability" bug. When login process fails to verify /tmp dir, it fails the login quietly behind the scenes and re-attempts. Testing has so far been successful. * Completed coding for keeping passwords encrypted while in volatile memory as much as possible. The lifespan of clear text passwords in memory can now be measured in milliseconds. * Fixed some more runtime bugs that surfaced via 'use strict'. 2011-02-06 Brian M. Kelly * Version 0.9911 released. * Fixed some runtime bugs that surfaced with the 'use strict' pragma on Ubuntu Linux. 2011-02-05 Brian M. Kelly * Version 0.991 released. * Version 101 also did not Index. So we'll try .991 (I don't want to go 1.0 just yet). 2011-02-05 Brian M. Kelly * Version 0.101 released. * CPAN Indexing of Version 100 failed (I'm *not* surprised). Going to version 101 "should" fix the issue. 2011-02-05 Brian M. Kelly * Version 0.100 released. * Added 'use DirHandle' to Makefile.PL in attempt to fix CPAN Testers issue. 2011-02-05 Brian M. Kelly * Version 0.99 released. * Completed cron generation code for scheduled jobs. 2011-01-31 Brian M. Kelly * Version 0.98 released. * Implemented Full Calendar menuing for Scheduled Job creation. 2011-01-22 Brian M. Kelly * Version 0.97 released. * Implemented new rotating encryption key logic, to make cleartext passwords and/or keys to encrypt them impossible to determine from looking at source code alone. Using String::Random for this feature. 2011-01-21 Brian M. Kelly * Version 0.96 released. * Hundreds of changes to both Term::Menus and FullAuto. 'use strict' and 'use warnings' are NOW TURNED *ON* in all files! 2011-01-17 Brian M. Kelly * Version 0.95 released. * More strict cleanup. 2011-01-16 Brian M. Kelly * Version 0.94 released. * Added functionality to save main password in encrypted format with an expiration feature. 2011-01-10 Brian M. Kelly * Version 0.93 released. * New service/daemon functionality now implemented. FullAuto can not be configured as a service/daemon. (Most of the change occured in the Term::Menus module). 2011-01-08 Brian M. Kelly * Version 0.92 released. * New "Plan" functionality is now implemented. 2011-01-04 Brian M. Kelly * Version 0.91 released. * Fixed output when entire output returns in one string (happens mostly on AIX). * Changed 'kill' on Cygwin to use kill -f instead of kill -9 (which gets permission denied on Windows 2008 Server). 2011-01-02 Brian M. Kelly * Version 0.90 released. * Fixed last "known" error condition when running under Cygwin/Windows. * Modified Makefile.PL to do optional registry modification. * Now forcing build and install of very latest BerkeleyDB in order to enhance reliability. 2010-12-31 Brian M. Kelly * Version 0.89 released. * HAPPY NEW YEAR!! * Added 'Plan' functionality. (Not yet usable). 2010-12-31 Brian M. Kelly * Version 0.88 released. * Added test for first invocation and NOTICE message to advice patience with slow first startup due to the need for ssh to negotiate initial encryption. 2010-12-29 Brian M. Kelly * Version 0.87 released. * Removed all code utilizing MLDBM and DB_File and replaced with BerkeleyDB in order to use MVCC. * Added use of Data::Dump::Streamer to use with BerkeleyDB 2010-12-25 Brian M. Kelly * Version 0.86 released. * Merry Christmas! * Added test for Berkeley DB version 4.5 or greater in order to use MVCC. * Changed DB location in FA_Core.pm. 2010-12-21 Brian M. Kelly * Version 0.85 released. * Remove testing print statements from Makefile.PL. 2010-12-20 Brian M. Kelly * Version 0.84 released. * Added conditional to load CPAN::MyConfig. * Removed -type f from find in Makefile.PL so symbolic links can be located 2010-12-18 Brian M. Kelly * Version 0.83 released. * Temporarily undef $ENV{PERL5_CPAN_IS_RUNNING} in order to defeat JSON user prompt. 2010-12-17 Brian M. Kelly * Version 0.82 released. * Added JSON to pre-req treatment to defeat prompt. 2010-12-16 Brian M. Kelly * Version 0.81 released. * Fixed testpid() to work with IO::CaptureOutput::capture. * Added Password: test to when looking for cmd prompt after login attempt (needed for Solaris). 2010-12-15 Brian M. Kelly * Version 0.80 released. * Version 0.79 failed to contain changes listed 2010-12-14 Brian M. Kelly * Version 0.79 released. * Fixed logic to find module build dir in Makefile.PL * Fixed timeout bug in output parser * Added alarm timeout for password function when ssh makes new connection and dialogue asks for permission to connect. Timeout is used for when FullAuto runs in cron, or on a server by another process or service with no user interaction. The situation can be remedied by using the --authorize_connect argument when first connecting to a new remote host. * Cleaned up a slew of unused variables in FA_Core.pm 2010-12-02 Brian M. Kelly * Version 0.78 released. * Added ncurses and libdb4.5-devel to Cygwin install in Makefile.PL 2010-12-01 Brian M. Kelly * Version 0.77 released. * Added tests to find gzip, tar and make for cygwin in Makefile.PL 2010-12-01 Brian M. Kelly * Version 0.76 released. * Changed bash -ic to bash -lc for cygwin setup in Makefile.PL * Fixed uniq capture * Added override package for LWP::UserAgent to improve compatibility with older CPAN installations 2010-12-01 Brian M. Kelly * Version 0.75 released. * Added BerkeleyDB::Manager to "requires" list in Makefile.PL 2010-11-30 Brian M. Kelly * Version 0.74 released. * Removed LWP::UserAgent->config in Makefile.PL 2010-11-30 Brian M. Kelly * Version 0.73 released. * Changed CPAN::LWP::UserAgent to just LWP::UserAgent in Makefile.PL 2010-11-29 Brian M. Kelly * Version 0.72 released. * added module requirements for Term::Menus to "requires" list for Windows installations. 2010-11-28 Brian M. Kelly * Version 0.71 released. * Fixed small bug in Makefile.PL. * Added error message informing user of necessary permission requirements when writable directory is not located during FullAuto initialization. 2010-11-27 Brian M. Kelly * Version 0.70 released. * Removed use CPAN::LWP::UserAgent statement. 2010-11-26 Brian M. Kelly * Version 0.69 released. * Fixed replacement list error generating warning. 2010-11-25 Brian M. Kelly * Version 0.68 released. * Modified Makefile.PL again to load build dependencies. 2010-11-24 Brian M. Kelly * Version 0.67 released. * Modified Makefile.PL again to load build dependencies. 2010-11-22 Brian M. Kelly * Version 0.66 released. * Modified Makefile.PL again to load build dependencies. 2010-11-21 Brian M. Kelly * Version 0.65 released. * Modified Makefile.PL again to load Term::Menus dependencies. 2010-11-21 Brian M. Kelly * Version 0.64 released. * Modified Makefile.PL again to load Term::Menus dependencies. 2010-11-19 Brian M. Kelly * Version 0.63 released. * Modified Makefile.PL to load Term::Menus dependencies. 2010-11-09 Brian M. Kelly * Version 0.62 released. * Modified Makefile.PL to fix Ticket 62852. * Removed configure_requires LWP from META.yml. 2010-11-08 Brian M. Kelly * Version 0.61 released. * Modified Makefile.PL to download Term::Menus 2010-11-07 Brian M. Kelly * Version 0.60 released. * Cleaned up search for Berkeley DB. * Modified Makefile.PL to download and compile BerkeleyDB if this C Library is not found on the host. 2010-10-22 Brian M. Kelly * Version 0.59 released. * Modified Makefile.PL to load Term::Menus from included fai (f[ull]a[uto]i[nclude]) directory. 2010-10-18 Brian M. Kelly * Version 0.58 released. * Removed the parentesis from 'use' statements in FullAuto.pm. 2010-10-16 Brian M. Kelly * Version 0.57 released. * Swapped position of MLDBM and MLDBM::Sync in Makefile.PL 2010-10-15 Brian M. Kelly * Version 0.56 released. * Added test for BerkeleyDB to Makefile.PL 2010-10-11 Brian M. Kelly * Version 0.55 released. * Adding 'use dependency' statements to FullAuto.pm in another attempt to fix broken CPAN testers results 2010-10-08 Brian M. Kelly * Version 0.54 released. * Added MLDBM::Sync Bootstrap code to Makefile.PL in yet another attempt to fix CPAN testers results * Removed VERSION variables from Distro files 2010-10-07 Brian M. Kelly * Version 0.53 released. * Removed call to Cygwin mount in Windows section in Makefile.PL * Added conditional test for SED in Makefile.PL 2010-10-05 Brian M. Kelly * Version 0.52 released. * Moved IO::Pty requirement to 1.09 for Cygwin * Added new argument -p and --plan for new "Plan" functionality 2010-10-04 Brian M. Kelly * Version 0.51 released. * Fixed more permissions for Custom dir when choosing Default permissions * Fixed some bugs associated with the --edit feature * Fixed multiple addresses when sending email 2010-10-03 Brian M. Kelly * Version 0.50 released. * Fixed permissions for Custom dir when choosing Default permissions * Switched back to IO::CaptureOutput for two functions that didn't work right with Capture::Tiny. Capture::Tiny remains in the email function however. 2010-10-03 Brian M. Kelly * Version 0.49 released. * fa_conf now stores editor setting * Makefile.PL modified to assist user in selecting editor 2010-09-29 Brian M. Kelly * Version 0.48 released. * Replaced IO::CaptureOutput with Capture::Tiny (works better). 2010-09-29 Brian M. Kelly * Version 0.47 released. * Replaced Mail::Internet and Mail::Sender with Email::Sender and MIME::Entity modules. Send_email functionality was modified to use these modules instead. The reason for the replacement, was Mail::Sender paused to ask for user input during cpan builds, and this might have been causing the automated test builds to fail. * Modified Makefile.PL to install new email dependencies. * Modified Makefile.PL to ask users installing Cygwin what editor they would prefer for installation and/or default. 2010-09-26 Brian M. Kelly * Version 0.46 released. * Changed Makefile.PL to fix Cygwin install 2010-09-17 Brian M. Kelly * Version 0.45 released. * Moved "requires DB_File" to bottom of requires list in continuing effort to clean up CPAN testers reports 2010-09-14 Brian M. Kelly * Version 0.44 released. * Changed fullauto -V to work better with Cygwin 2010-09-11 Brian M. Kelly * Version 0.43 released. * Forgot to include fullauto.pl changes in Version 0.42 2010-09-11 Brian M. Kelly * Version 0.42 released. * Makefile.PL changed to not demand particular versions of LWP or Term::Menus when autoloading * Added --version and -V arguments and printouts * --edit and -e now open broken syntax files and open faster 2010-09-04 Brian M. Kelly * Version 0.41 released. * Makefile.PL substantially modified with latest version of Module::Install. * Build.PL removed * Makefile.PL modified to accomodate stand-alone Windows exe installer. * Returns content on both STDOUT and STDERR when content exists on both 2010-09-04 Brian M. Kelly * Version 0.40 released. * 'Finally' got gpg signature working again * Modifed Makefile.PL to enable users to automatically install Cygwin when Windows is detected. This now works. 2010-09-03 Brian M. Kelly * Version 0.39 released. * Changed install to include latest Module::Install * Added option to install Cygwin when Windows is detected and FullAuto install is not running in Cygwin bash environment 2010-08-31 Brian M. Kelly * Version 0.38 released. * Implemented 'unattended' mode in conjunction with changes to Term::Menus. Menus can now be used in FullAuto and when Default selections are set, Fullauto can be run 'unattended' in schedulers, and where a Menu would ususally great a user, the Default selections will be used. 2010-08-30 Brian M. Kelly * Version 0.37 released. * &sendemail() now has better error reporting. * improved output parser to better detect stderr output from remote hosts. 2010-08-26 Brian M. Kelly * Version 0.36 released. * Major restructuring with addtion of Custom and Distro Architecture * All custum files renamed to start with 'fa_' * Added edit option 2010-08-22 Brian M. Kelly * Version 0.34 released. * More error handling cleanup * Removed dependency on MemHandle * &Menu() is now available in usr_code.pm * retry logic made saner and more reliable * &send_email() functionality restored 2010-08-17 Brian M. Kelly * Version 0.33 released. * More error handling cleanup 2010-08-15 Brian M. Kelly * Version 0.32 released. * Fixed bug in cwd() cmd 2010-08-15 Brian M. Kelly * Version 0.31 released. * Numerous changes to enable FullAuto to work on AIX. Changes are *not* AIX specific. FullAuto is not more robust. * More debugging code added * "clear" logic removed (should fix cpan testers error) 2010-08-12 Brian M. Kelly * Version 0.30 released. * Improved the setup Makefile.PL Added more pre-req checks and error handling 2010-08-12 Brian M. Kelly * Version 0.29 released. * Improved the setup Makefile.PL Added more pre-req checks and error handling 2010-08-09 Brian M. Kelly * Version 0.28 released. * Fixed a bug in how timeouts were handled when looking for ssh prompt after login 2010-08-08 Brian M. Kelly * Version 0.27 released. * Removed 'use Term::Menus;' from Makefile.PL 2010-08-08 Brian M. Kelly * Version 0.26 released. * Implemented 'tosspass' condition so that users can have the option of *not* saving passwords to the encrypted database file. This behavior must be specifically 'requested' via configuration setting or command line arguement. Saving passwords remains and WILL remain the 'default' behavior for FullAuto. 2010-08-04 Brian M. Kelly * Version 0.25 released. * Added process flow to Makefile.PL for scenarios when installers do not have permission to install to the default location. It now gives them an option to install to alternate locations. * Added alarm timeout to Makefile.PL so that installs never hang indefinitely 2010-08-03 Brian M. Kelly * Version 0.24 released. * Implemented Bad_Handle package to enable methods to return the stderr from the orginal connection failure as an explanation for why the method invocation fails. * Cleaned up more ftp & ssh login flow * Cleaned up more error messaging. * More logging cleanup. 2010-08-01 Brian M. Kelly * Version 0.23 released. * Cleaned up more ftp & ssh login flow * Cleaned up more error messaging. * More logging cleanup. 2010-07-31 Brian M. Kelly * Version 0.22 released. * Cleaned up ftp login flow * Cleaned up error messaging. * More logging cleanup. 2010-07-29 Brian M. Kelly * Version 0.20 released. * Cleaned up error messaging. * More logging cleanup. 2010-07-28 Brian M. Kelly * Version 0.20 released. * MORE Misc bug fixes to socket output processing. * Implemented printf printing of download progress. * Cleaned up logging. 2010-07-23 Brian M. Kelly * Version 0.19 released. * MORE Misc bug fixes to socket output processing. 2010-07-21 Brian M. Kelly * Version 0.18 released. * Misc bug fixes to socket output processing. 2010-07-19 Brian M. Kelly * Version 0.17 released. * Added line to unset environment DISPLAY setting in forked processes 2010-07-19 Brian M. Kelly * Version 0.16 released. * Fixed cygwin output fetching from socket bugs 2010-07-17 Brian M. Kelly * Version 0.15 released. * Fixed setgid build and runtime bugs 2010-07-15 Brian M. Kelly * Version 0.14 released. * Modifed Makefile.PL to install setuid, and setgid configurations 2010-07-15 Brian M. Kelly * Version 0.13 released. * Modified Build to compile C Wrapper fullauto(.exe) to fullauto.pl to use with setuid 2009-07-11 Brian M. Kelly * Version 0.12 released. * Repaired ability to run multi-line commands * Added code to remove PROMPT_COMMAND in remote environment 2007-09-23 Brian M. Kelly * Version 0.11 released. * Repaired Pod Documentation 2007-09-20 Brian M. Kelly * Version 0.10 released. * Repaired Pod Documentation * Added Setup Checklist to Pod 2007-09-20 Brian M. Kelly * Version 0.09 released. * Repaired Pod Documentation 2007-09-19 Brian M. Kelly * Version 0.08 released. * Cleaned out usr_code.pm file 2007-09-19 Brian M. Kelly * Version 0.07 released. * Repaired Pod Documentation * Cleaned out fa_hosts.pm file 2007-09-19 Brian M. Kelly * Version 0.06 released. * Added more Pod Documentation to FullAuto.pm describing the required contents of the usr_code.pm file. 2007-09-17 Brian M. Kelly * Version 0.05 released. * Added more Pod Documentation to FullAuto.pm describing the required contents of the fa_hosts.pm file. 2007-09-14 Brian M. Kelly * Version 0.04 released. * Added '&' before threads-> method call in usr_code.pm * Changed Makefile.PL to require at least version 1.24 version of Term::Menus. 2007-09-06 Brian M. Kelly * Version 0.03 released. * Commented out threads.pm in usr_code.pm 2007-09-06 Brian M. Kelly * Version 0.01 released. * Fixed unintialized variable error. 2007-09-06 Brian M. Kelly * Version 0.01 released. * INITIAL RELEASE of ***BETA*** Net::FullAuto