mirror of
https://github.com/KevinMidboe/mktxp-no-cli.git
synced 2025-10-29 17:50:23 +00:00
waitress, IPv4/IPv6 listen list
This commit is contained in:
@@ -24,20 +24,20 @@ def check_version():
|
||||
print(\
|
||||
'''
|
||||
Mikrotik Prometheus Exporter requires
|
||||
Python version 3.6 or later.
|
||||
Python version 3.8 or later.
|
||||
|
||||
You can create an isolated Python 3.6 environment
|
||||
You can create an isolated Python 3.8 environment
|
||||
with the virtualenv tool:
|
||||
http://docs.python-guide.org/en/latest/dev/virtualenvs
|
||||
|
||||
''')
|
||||
sys.exit(0)
|
||||
elif sys.version_info.major == 3 and sys.version_info.minor < 6:
|
||||
elif sys.version_info.major == 3 and sys.version_info.minor < 8:
|
||||
print(\
|
||||
'''
|
||||
|
||||
Mikrotik Prometheus Exporter requires
|
||||
Python version 3.6 or later.
|
||||
Python version 3.8 or later.
|
||||
|
||||
Please upgrade to the latest Python 3.x version.
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
|
||||
[MKTXP]
|
||||
port = 49090
|
||||
listen = '0.0.0.0:49090' # Space separated list of socket addresses to listen to, both IPV4 and IPV6
|
||||
socket_timeout = 2
|
||||
|
||||
initial_delay_on_failure = 120
|
||||
@@ -20,7 +20,7 @@
|
||||
delay_inc_div = 5
|
||||
|
||||
bandwidth = False # Turns metrics bandwidth metrics collection on / off
|
||||
bandwidth_test_interval = 600 # Interval for colllecting bandwidth metrics
|
||||
bandwidth_test_interval = 600 # Interval for collecting bandwidth metrics
|
||||
minimal_collect_interval = 5 # Minimal metric collection interval
|
||||
|
||||
verbose_mode = False # Set it on for troubleshooting
|
||||
|
||||
@@ -57,6 +57,7 @@ class MKTXPConfigKeys:
|
||||
ENABLED_KEY = 'enabled'
|
||||
HOST_KEY = 'hostname'
|
||||
PORT_KEY = 'port'
|
||||
LISTEN_KEY = 'listen'
|
||||
USER_KEY = 'username'
|
||||
PASSWD_KEY = 'password'
|
||||
|
||||
@@ -153,7 +154,7 @@ class MKTXPConfigKeys:
|
||||
MKTXP_INC_DIV, MKTXP_BANDWIDTH_TEST_INTERVAL, MKTXP_MIN_COLLECT_INTERVAL,
|
||||
MKTXP_MAX_WORKER_THREADS, MKTXP_MAX_SCRAPE_DURATION, MKTXP_TOTAL_MAX_SCRAPE_DURATION)
|
||||
|
||||
# MKTXP config entry nane
|
||||
# MKTXP config entry name
|
||||
MKTXP_CONFIG_ENTRY_NAME = 'MKTXP'
|
||||
|
||||
|
||||
@@ -167,7 +168,7 @@ class ConfigEntry:
|
||||
MKTXPConfigKeys.MKTXP_USE_COMMENTS_OVER_NAMES, MKTXPConfigKeys.FE_PUBLIC_IP_KEY, MKTXPConfigKeys.FE_IPV6_FIREWALL_KEY, MKTXPConfigKeys.FE_IPV6_NEIGHBOR_KEY,
|
||||
MKTXPConfigKeys.FE_USER_KEY, MKTXPConfigKeys.FE_QUEUE_KEY, MKTXPConfigKeys.FE_REMOTE_DHCP_ENTRY, MKTXPConfigKeys.FE_CHECK_FOR_UPDATES, MKTXPConfigKeys.FE_KID_CONTROL_DEVICE, MKTXPConfigKeys.FE_BGP_KEY,
|
||||
])
|
||||
MKTXPSystemEntry = namedtuple('MKTXPSystemEntry', [MKTXPConfigKeys.PORT_KEY, MKTXPConfigKeys.MKTXP_SOCKET_TIMEOUT,
|
||||
MKTXPSystemEntry = namedtuple('MKTXPSystemEntry', [MKTXPConfigKeys.PORT_KEY, MKTXPConfigKeys.LISTEN_KEY, MKTXPConfigKeys.MKTXP_SOCKET_TIMEOUT,
|
||||
MKTXPConfigKeys.MKTXP_INITIAL_DELAY, MKTXPConfigKeys.MKTXP_MAX_DELAY,
|
||||
MKTXPConfigKeys.MKTXP_INC_DIV, MKTXPConfigKeys.MKTXP_BANDWIDTH_KEY,
|
||||
MKTXPConfigKeys.MKTXP_VERBOSE_MODE, MKTXPConfigKeys.MKTXP_BANDWIDTH_TEST_INTERVAL,
|
||||
@@ -291,10 +292,10 @@ class MKTXPConfigHandler:
|
||||
def _read_from_disk(self):
|
||||
''' (Force-)Read conf data from disk
|
||||
'''
|
||||
self.config = ConfigObj(self.usr_conf_data_path)
|
||||
self.config = ConfigObj(self.usr_conf_data_path, indent_type = ' ')
|
||||
self.config.preserve_comments = True
|
||||
|
||||
self._config = ConfigObj(self.mktxp_conf_path)
|
||||
self._config = ConfigObj(self.mktxp_conf_path, indent_type = ' ')
|
||||
self._config.preserve_comments = True
|
||||
|
||||
def _create_os_path(self, os_path, resource_path):
|
||||
@@ -363,7 +364,8 @@ class MKTXPConfigHandler:
|
||||
system_entry_reader[key] = self._config[entry_name].as_int(key)
|
||||
else:
|
||||
system_entry_reader[key] = self._default_value_for_key(key)
|
||||
new_keys.append(key) # read from disk next time
|
||||
if key not in (MKTXPConfigKeys.PORT_KEY): # Port key has been depricated
|
||||
new_keys.append(key) # read from disk next time
|
||||
|
||||
for key in MKTXPConfigKeys.SYSTEM_BOOLEAN_KEYS_NO.union(MKTXPConfigKeys.SYSTEM_BOOLEAN_KEYS_YES):
|
||||
if self._config[entry_name].get(key) is not None:
|
||||
@@ -372,9 +374,17 @@ class MKTXPConfigHandler:
|
||||
system_entry_reader[key] = True if key in MKTXPConfigKeys.SYSTEM_BOOLEAN_KEYS_YES else False
|
||||
new_keys.append(key) # read from disk next time
|
||||
|
||||
# listen
|
||||
if self._config[entry_name].get(MKTXPConfigKeys.LISTEN_KEY):
|
||||
system_entry_reader[MKTXPConfigKeys.LISTEN_KEY] = self._config[entry_name].get(MKTXPConfigKeys.LISTEN_KEY)
|
||||
else:
|
||||
system_entry_reader[MKTXPConfigKeys.LISTEN_KEY] = f'0.0.0.0:{system_entry_reader[MKTXPConfigKeys.PORT_KEY]}'
|
||||
new_keys.append(MKTXPConfigKeys.LISTEN_KEY) # read from disk next time
|
||||
|
||||
if new_keys:
|
||||
self._config[entry_name] = system_entry_reader
|
||||
try:
|
||||
self._config[entry_name].pop(MKTXPConfigKeys.PORT_KEY, None) # Port key has been depricated
|
||||
self._config.write()
|
||||
if self._config[entry_name].as_bool(MKTXPConfigKeys.MKTXP_VERBOSE_MODE):
|
||||
print(f'Updated system entry {entry_name} with new system keys {new_keys}')
|
||||
|
||||
Reference in New Issue
Block a user