def test_missing_slave_file(self, os_path_file_mock): """ Check if the status is SKIPPED when slaves file is missing. """ configs = {"{{hawq-site/hawq_master_address_port}}": "5432"} [status, messages ] = alert_segment_registration_status.execute(configurations=configs) self.assertEqual(status, RESULT_STATE_SKIPPED) self.assertTrue(messages is not None and len(messages) == 1) self.assertEqual(messages[0], 'Slaves file is not present in /usr/local/hawq/etc')
def test_missing_configs(self): """ Check if the status is UNKNOWN when configs are missing. """ configs = None [status, messages ] = alert_segment_registration_status.execute(configurations=configs) self.assertEqual(status, RESULT_STATE_UNKNOWN) self.assertTrue(messages is not None and len(messages) == 1) self.assertEqual( messages[0], 'There were no configurations supplied to the script.')
def test_successful_registration_status(self, os_path_isfile_mock, get_segment_list_ambari_mock, get_segment_list_db_mock): """ Check if the status is OK if no difference in registration segment number and slaves count. """ get_segment_list_ambari_mock.return_value = self.HOST_LIST_A get_segment_list_db_mock.return_value = self.HOST_LIST_A configs = {"{{hawq-site/hawq_master_address_port}}": "5432"} [status, messages ] = alert_segment_registration_status.execute(configurations=configs) self.assertEqual(status, RESULT_STATE_OK) self.assertTrue(messages is not None and len(messages) == 1) self.assertEqual(messages[0], 'All HAWQ Segments are registered.')
def test_unsuccessful_empty_db_registration_status( self, os_path_isfile_mock, get_segment_list_ambari_mock, get_segment_list_db_mock): """ Check if the status is WARNING if a difference is present in registration segment number and slaves count. """ get_segment_list_ambari_mock.return_value = [] get_segment_list_db_mock.return_value = self.HOST_LIST_C configs = {"{{hawq-site/hawq_master_address_port}}": "5432"} [status, messages ] = alert_segment_registration_status.execute(configurations=configs) self.assertEqual(status, RESULT_STATE_WARNING) self.assertTrue(messages is not None and len(messages) == 1) self.assertEqual( messages[0], '3 HAWQ Segments are not registered with HAWQ Master. Try restarting HAWQ service if a segment has been added/removed. Check the log file in /var/log/ambari-agent/ambari-alerts.log for more details on unregistered hosts.' )
def test_exception_registration_status(self, os_path_isfile_mock, get_segment_list_ambari_mock, get_segment_list_db_mock): """ Check if the status is UNKNOWN if an exception is thrown when finding registration segment number and slaves count. """ get_segment_list_ambari_mock.return_value = self.HOST_LIST_A get_segment_list_db_mock.side_effect = Exception( "Exception raised to fail") configs = {"{{hawq-site/hawq_master_address_port}}": "5432"} [status, messages ] = alert_segment_registration_status.execute(configurations=configs) self.assertEqual(status, RESULT_STATE_UNKNOWN) self.assertTrue(messages is not None and len(messages) == 1) self.assertEqual( messages[0], 'HAWQ Segments Registration Status cannot be determined.')