{"push_id":856675887,"size":2,"distinct_size":2,"ref":"refs/heads/master","head":"4b384e7ce4ca31c4d8579426827029eac8d4cdb3","before":"80e7085739459834864fad8c897440015ceecda6","commits":[{"sha":"74fa8d2b1b0f4fcb5b3dd17c27a746bfb50bc1c3","author":{"email":"542fd0a169b70930d1f6fe07fb68292ef6d134a9@alteeve.ca","name":"digimer"},"message":"Note: This is a pretty hefty commit with very little testing. Expect bugs.\n\n* This commits adds several new methods to AN::Tools based largely on the (now removed) functions from tools/striker-merge-dashboards.\n** Added AN::Tools::Get->users_home() that takes the 'user' variable and returns that user's home directory, based on the data in /etc/passwd.\n** Added AN::Tools::Get->rsa_public_key() that takes the 'user' variable and returns that user's RSA public key. If it doesn't exist, it is created via AN::Tools::Remote->generate_rsa_public_key().\n** Changed all the '$param' variables to '$parameter' in AN::Tools::Get.\n** Added AN::Tools::Remote->add_rsa_key_to_target() that takes 'user', 'targer', 'key' and 'password', logs into the target machine as the user, using the defined password and adds the key to the remote user's authorized_keys file, avoiding further need for passwords.\n** Added AN::Tools::Remote->generate_rsa_public_key() that takes 'user' and, optionally, 'key_size' and generates a new RSA key for the named local user.\n** Added AN::Tools::Remote->add_target_to_known_hosts() that takes 'user' and 'target' and scans the target and adds it's RSA fingerprint to the local user's 'known_hosts' file.\n** Added AN::Tools::Remote->_check_known_hosts_for_target() that takes 'targer' and 'known_hosts' and searches the named known_hosts file for the given target.\n** Added AN::Tools::Remote->_call_ssh_keyscan() that takes 'user', 'target' and 'known_hosts' and does the actual work of adding the target's fingerprint to the given 'known_hosts' file and then sets the ownership to the named user.\n** Added AN::Tools::Storage->rsync() that creates an 'expect' wrapper for the given user@target and then calls the wrapper to perform an rsync call that requires a password to be entered.\n** Added AN::Tools::Storage->_create_rsync_wrapper() that creates the actual expect wrapper that AN::Tools::Storage->rsync() calls.\n* Basically gutted striker-merge-dashboards, moving most of it's functions into AN::Tools to make it all more portable. The old functions are still there, commented out, until further testing is done.\n* Fixed a bug in safe_anvil_start that caused the 'avoid_duplicate_run' to fail.\n* Changed safe_anvil_start to disable itself as soon as the run starts, helping to prevent multile copies running at the same time when the first run takes more than a minute to complete.\n* Changed striker-merge-dashboards so that it writes the peer's new striker.conf to a local /tmp file and then calls the new AN::Tools::Storage->rsync() method to do the actual copy.\n\nSigned-off-by: Madison Kelly (digimer) <digimer@alteeve.ca>","distinct":true,"url":"https://api.github.com/repos/digimer/striker/commits/74fa8d2b1b0f4fcb5b3dd17c27a746bfb50bc1c3"},{"sha":"4b384e7ce4ca31c4d8579426827029eac8d4cdb3","author":{"email":"542fd0a169b70930d1f6fe07fb68292ef6d134a9@alteeve.ca","name":"digimer"},"message":"Merge branch 'master' of github.com:digimer/striker","distinct":true,"url":"https://api.github.com/repos/digimer/striker/commits/4b384e7ce4ca31c4d8579426827029eac8d4cdb3"}]}