Source code for paradrop.core.config.services

"""
Configure optional additional services such as telemetry.
"""

import os
import re
import signal
import subprocess

from paradrop.base import settings
from paradrop.base.output import out
from paradrop.core.agent import reporting
from paradrop.lib.utils import datastruct

from twisted.internet.task import LoopingCall


telemetry_looping_call = None


[docs]def configure_telemetry(update): global telemetry_looping_call hostConfig = update.new.getCache('hostConfig') enabled = datastruct.getValue(hostConfig, 'telemetry.enabled', False) interval = datastruct.getValue(hostConfig, 'telemetry.interval', 60) # Cancel the old looping call. if telemetry_looping_call is not None: telemetry_looping_call.stop() telemetry_looping_call = None if enabled and interval > 0: telemetry_looping_call = LoopingCall(reporting.sendTelemetryReport) telemetry_looping_call.start(interval, now=False)