Example #1
0
 def test_on_not_connected(self):
     config = common.load_config()
     with Storage() as storage, MqttClient("keeperconnectortest",
                                           config) as mc, Connector(
                                               config, storage,
                                               mc) as connector:
         connector.on_not_connect()
         self.assertEqual(connector.attempts, 1)
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_FAILED_CONNECTIONS), 1)
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 0)
         connector.on_not_connect()
         self.assertEqual(connector.attempts, 2)
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_FAILED_CONNECTIONS), 2)
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 0)
         connector.on_not_connect()
         self.assertEqual(connector.attempts, 3)
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_FAILED_CONNECTIONS), 3)
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 0)
         connector.on_not_connect()
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 1)
         self.assertEqual(connector.attempts, 0)
         connector.on_not_connect()
         self.assertEqual(connector.attempts, 1)
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_FAILED_CONNECTIONS), 4)
         self.assertEqual(
             storage.get_int(constants.CONNECTOR_MQTT_RESTARTS), 1)
Example #2
0
    def test_is_connected(self):
        config = common.load_config()
        with MqttClient("keepermqtttest", config) as mqtt_client:
            mqtt_client.reconnect()
            self.assertEqual(mqtt_client.connection_status(), 2)

        self.assertEqual(mqtt_client.connection_status(), 0)
Example #3
0
 def test_monitor_in_time_no_delay(self):
     config = common.load_config()
     with Storage() as storage, MqttClient("keeperconnectortest", config) as mc, Heartbeater(config, storage,
                                                                                             mc) as heartbeater:
         heartbeater.last_message = datetime.now() - timedelta(seconds=config["heartbeat.interval"])
         heartbeater.monitor()
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 0)
Example #4
0
 def test_not_connected(self):
     config = common.load_config()
     config["mqtt.broker"] = "1.1.1.1"
     try:
         with MqttClient("keepermqtttest", config, False) as mqtt_client:
             mqtt_client.reconnect()
             pass
     except:
         pass
Example #5
0
 def test_not_stable(self):
     config = common.load_config()
     with Storage() as storage, MqttClient("keeperconnectortest",
                                           config) as mc, Connector(
                                               config, storage,
                                               mc) as connector:
         now = datetime.now()
         connector.started_at = now - timedelta(seconds=10)
         connector.connected_at = now - timedelta(seconds=8)
         self.assertFalse(connector.is_stable())
Example #6
0
 def test_monitor_restart_ha(self):
     config = common.load_config()
     with Storage() as storage, MqttClient("keeperconnectortest", config) as mc, Heartbeater(config, storage,
                                                                                             mc) as heartbeater:
         diff = config["heartbeat.interval"] + config["heartbeat.delay"] + 1
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 1)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 1)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 0)
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 2)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 2)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 0)
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 3)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 3)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 0)
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 0)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 3)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 1)
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 1)
         self.assertEqual(heartbeater.attempts, 1)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 4)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 1)
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 2)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 5)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 1)
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 3)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 6)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 1)
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 0)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 6)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 2)
         heartbeater.last_message = datetime.now() - timedelta(seconds=diff)
         heartbeater.monitor()
         self.assertEqual(heartbeater.misses, 1)
         self.assertEqual(heartbeater.attempts, 2)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_MISSED_HEARTBEAT), 7)
         self.assertEqual(storage.get_int(constants.HEARTBEATER_HA_RESTARTS), 2)
Example #7
0
def start():
    """
    starts this manager and calls it's routine
    loop which monitors heartbeat messages
    """

    config = load_config()
    with Storage() as storage, MqttClient("keeperheartbeater", config) as mqtt_client, \
            Heartbeater(config, storage, mqtt_client) as heartbeater:
        del config
        try:
            loop(heartbeater, mqtt_client)
        except Exception as ex:
            if running:
                raise ex
Example #8
0
def start():
    """
    starts this manager and calls it's routine
    loop which monitors mqtt connections
    """

    config = load_config()
    with Storage() as storage, MqttClient("keeperconnector", config) as mqtt_client, Connector(config, storage,
                                                                                               mqtt_client) as connector:
        del config
        try:
            loop(connector, mqtt_client)
        except Exception as ex:
            if running:
                raise ex