Commit Graph

1376 Commits

Author SHA1 Message Date
Digimer
217dfaedc7 * Created System->pids() to read in all process data and, optionally, return an array reference of PIDs matching a string (program name).
* Got tools/anvil-configure-network to exit if another instance is running. If not, it now starts (barely) the process of configuring the network.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-03-31 02:01:38 -04:00
Digimer
b53f688048 * Got tools/anvil-configure-network to the point where it loads the job details.
* Made the Striker logo clickable.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-03-29 01:04:04 -04:00
Digimer
7694847160 * Fixed a bug in Database->insert_or_update_jobs().
* Fixed some logging in Get->cgi() and generally cleaned up logging levels.
* Got striker to the point where the job to reconfigure the network is saved in the database and the dashboard goes offline until it is done.
* Created the start of the new anvil-configure-network tool.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-03-26 23:55:39 -04:00
Digimer
e38bc826dd * Fixed a bug in resync_databases where undefined column values weren't being handled properly.
* Made the link speed of down interfaces '0'.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-03-24 15:20:37 -04:00
Digimer
0370d6acef * Fixed a bug in the network_interfaces SQL procedure that broke how data was recorded in the history schema.
* Added 'file' and 'line' arguments to the Database->insert_or_update_X methods to allow for the original caller's file and line number to be recorded in the SQL call logs.
* Cleaned up how logging to 'anvil.log' logging is handled.
* Updated anvil-update-states to ignore libvirt bridges and to manually set the speed and duplex of virtio network based interfaces.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-03-24 09:57:10 -04:00
Digimer
527848de97 * Added logging to a plain file to aid in debugging. We will revert to journald logging before first release.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-03-07 03:48:48 -05:00
Digimer
c21b326f1a * Changed all methods to take a 'debug' argument for setting log level on calls.
* Fixed a bug with resync, but others remain as resync is incomplete (at least for network_interfaces).
* Currently, tools/anvil-update-states is broken while working on the above issue.
* Reworked the jobs table and removed the units/anvil-jobs.service unit. Jobs will be invoked and backgrounded in all calls.
* Started adding missing hidden form fields.
* Updated the 'server' OCF resource agent version and metadata.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-03-07 03:11:55 -05:00
Digimer
2d65e55baa Merge branch 'master' of github.com:digimer/m3 2018-03-02 14:49:26 -05:00
Digimer
6f4df4ed22 * Changed 'database::X::ping_before_connect' to 'database::X::ping' and made the value be the actual timeout to wait for pings when trying to connect to a database.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-23 00:58:47 -07:00
Digimer
92a1e29082 * The new resource agent works!
** Fixed a bug so that when the agent is invoked on the target node after a migration, it just does a quick check to see if the server is running and exists 0 if so.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-21 23:24:53 -05:00
Digimer
3b0659c5bf * Looks like the RA is done, though more testing is needed.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-21 13:54:49 -05:00
Digimer
f52d8196f6 * Migration is now sort of working. There is still an issue to sort out with enabling drbd dual-primary, but server can move is some cases now.
* Changed fence_pacemaker to exit with '1' on generic error as per LINBIT's comments.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-21 02:06:00 -05:00
Digimer
4e5dc9f1c2 * Started work on migration handling.
* Fixed a bug where a stop operation on a server already in shutdown would exit immediately instead of waiting for the server to actually shut off.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-20 02:14:59 -05:00
Digimer
f2079da183 * The agent can now boot and stop a server. Migration is up next.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-19 02:34:55 -05:00
Digimer
e755a708dd * The resource agent now properly checks (and starts, if needed) the DRBD resources under the server being asked to start. It probably needs optimization still, but the logic is in place.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-18 03:06:09 -05:00
Digimer
36c0d3b921 * Started parsing drbdsetup JSON data.
* Fixed a bug with how we stored data from the drbdadm dump-xml data.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-16 18:47:39 -05:00
Digimer
bb4b5b1778 * Got the RA to the point where it identifies the local DRBD devices and backing LVs.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-16 02:09:28 -05:00
Digimer
fe65718811 * Finished validating optical media.
* Added initial parsing of 'drbdadm dump-xml'.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-15 03:35:31 -05:00
Digimer
dd0bdec839 * Broke up the validation steps into their own functions.
* Finished bridge validation.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-15 00:49:19 -05:00
Digimer
8aa2d28103 * Got the server start function to the point where all data that we need to sanity check is gathered. It already verifies that the emulator exists, that there is enough RAM and that the server's name matches the name we expect.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-14 02:24:15 -05:00
Digimer
81534cddbc * Moved ocf:alteeve:server along... It now can properly check and report the server's status on a monitor call.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-13 23:59:07 -05:00
Digimer
4dcaa524c5 * Made Get->switches take a bare word as a valid switch.
* Framed up the new ocf:alteeve:server agent. It only handles metadata at this point, but its a start.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-12 21:58:37 -05:00
Digimer
14763136f2 * Added what will (might?) become the resource agent for managing Anvil!-hosted servers on m3.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-12 01:10:48 -05:00
Digimer
636cef0564 * Barring some testing, the fence_pacemaker fence handler is done.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-11 19:32:18 -05:00
Digimer
6405483fea * Added a check to fence_pacemaker that exits with 7 if the target node is already out of the pacemaker cluster.
* Verified that the logic works in a 3-node (Anvil! + DR) cluster.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-11 02:45:56 -05:00
Digimer
26f956e429 * Much more work done on the fence handler. How able to sanity check most of the pacemaker side of things and have the framing done for sanity checking DRBD.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-08 02:03:36 -05:00
Digimer
806b452d10 Merge branch 'master' of github.com:digimer/m3
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-07 12:11:21 -05:00
Digimer
ced92139b1 * Added the new (and still very much in progress) 'fence_pacemaker' fence handler for power-fencing via DRBD.
* Updated dev notes.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-07 03:36:49 -05:00
Digimer
fe4a1d5a1c * Working on timing for DB connections.
* Created a new tool (that may go away) for monitoring for network changes as quickly and with as few resources as possible.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-01-17 15:10:07 -06:00
Digimer
f72d8e0f70 * Added a version file and Tools->_anvil_version() which reports the version in it.
* Added Get->anvil_version() to check the local or remote Anvil! version.
* Added a check in Database->connect() to see if a database server's Anvil! version matches the local version. If the versions don't match, the database is not used.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-01-04 01:29:05 -08:00
Digimer
2170c00add * Added the 'debug' parameter to System->check_alert_sent. Also updated it to use 'alert_sent_uuid'.
* Added the 'debug' parameter to System->enable_daemon.
* Fixed a bug where the old 'Tools.sql' files was being referenced instead of the new 'anvil.sql'.
* Added the 'debug' parameter to Database->initialize and Database->write. Also made it enable the postgresql daemon when initializing the DB.
* Added the 'debug' parameter to Get->host_uuid.
* Fixed the old anvil.conf variable from defaults::log::db_transactions to sys::database::log_transactions.
* Fixed a bad replacement variable name in anvil.sql.

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-27 13:01:58 -04:00
Digimer
4e30f2024c * Changed tabs to white-spaces in the SQL source to make copy/pasting easier.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-27 02:43:32 -04:00
Digimer
f1bd4b99ca * Fixed more issues with anvil-prep-database.
* Added the 'debug' parameter to System->call(). Also added a check to make sure that the called executable exists.
* Added the 'debug' parameter to System->start_daemon().

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-27 00:45:59 -04:00
Digimer
d864bd6dac * Moved words.xml to /usr/share/anvil/
* Moved all executables to /usr/sbin/
* Made /root/anvil-backups/ the backup directory.
* Started debuging anvil-prep-database

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-26 14:12:59 -04:00
Digimer
d03213b860 * Fixed some string and path issues from the 'anvil' merger.
* Added a 'debug' parameter to System->ping() to allow per-call log levels.

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-24 01:49:57 -04:00
Digimer
665f2217d9 * Added 'jobs' to the core tables list.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-15 16:33:35 -05:00
Digimer
5d78ca6624 * Finished (but still need to test) Database->insert_or_update_jobs();
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-15 16:32:01 -05:00
Digimer
5976e7ea32 * Adding a new Database->insert_or_update_jobs() method and associated database tables.
* Fixed display issues when showing a summary of what will be done if the user confirms the reconfiguration of the Striker.

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-13 11:40:50 -05:00
Digimer
9648e8ba43 * Create tools/anvil-jobs and units/anvil-jobs.service, which is a new daemon that will handle jobs that can take some time to finish.
* Created Storage->record_md5sums() and Storage->check_md5sums for use in daemons. These will record the md5sums of the program itself, all perl modules and the words file. When check_md5sums is called, it returns '1' if any sums have changed, which daemons can trigger on to exit (and systemd will restart them). Removed the basic md5sum check from anvil-daemon and switched to this.
* Fixed how 'fatalstobrowsers' is invoked so that it only applies to programs running in a browser.

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-08 17:04:36 -05:00
Digimer
bb48c090a7 * Created Get->md5sum() to return the md5sum of the specified file.
* Updated anvil-daemon to exit if the md5sum on disk changes.
* Quieted a lot of logging.

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-12-07 18:42:48 -05:00
Digimer
8e5e5b07d3 * Moved the buffer disable up the script.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-11-01 00:33:41 -04:00
Digimer
9e4414613b * Added a check to exit if no DBs were available in tools/anvil-update-states.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-20 13:53:01 -04:00
Digimer
1c3b3c2c9e * Fixed a bug in calling ethtool in tools/anvil-update-states and added conditionals to reading the data files.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-20 13:45:55 -04:00
Digimer
2b9c6c26dc * Fixed a couple remaining issues from the recent merger. Specifically, '$$anvil' was fixed from a bad regex and the path/names of our tools were fixed.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-20 11:13:00 -04:00
Digimer
db8632ca1b * Fixed a couple problems with 'home' from the namespace update.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-20 00:32:05 -04:00
Digimer
1cb42080c3 ** Major Changes **
We've decided to give up on trying to keep ScanCore, AN::Tools and Striker as three separate things. We had originally hoped to make ScanCore easily separatable from the Anvil!, but this was adding increasing complexity to the project and complexity is the enemy of reliability.

In this release, AN::Tools becomes Anvil::Tools, all configuration files move to /etc/anvil and all programs and data files move to /usr/sbin/anvil. Words files are now merged, as are SQL schemas (ScanCore agents will still maintain their own, later). The journald tag has changed from 'an-tools' to 'anvil'.

Other changes;
* Tools.t has been updated to handle existing tests. New methods and parameters still need to have tests added though.
* Added a simple test.pl script used for testing things outside the main program. It will be removed before final release.
* Added the simple 'watch_logs' bash script to more easily tail output.

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-20 00:19:32 -04:00
Digimer
ee7b68bfb5 * Moved the logic to write the host UUID cache into Get->host_uuid().
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-19 13:20:01 -04:00
Digimer
ca417c7c84 * Added perl-DBD-Pg to the dependency list in notes.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-19 12:17:40 -04:00
Digimer
261addf153 Merge pull request #1 from cc452/patch-1
Fixed typo on last two perl dependency packages
2017-10-19 12:16:56 -04:00
Chris Johnson
dbca9cd4df Fixed typo on last two perl dependency packages 2017-10-19 11:47:57 -04:00