created os_version function, renamed functions with ambiguous names

This commit is contained in:
mjkantti
2024-01-21 13:06:18 +09:00
parent 9017d65152
commit 3f7dd92407
3 changed files with 18 additions and 15 deletions

View File

@@ -13,7 +13,7 @@
from mktxp.datasource.base_ds import BaseDSProcessor from mktxp.datasource.base_ds import BaseDSProcessor
from mktxp.utils.utils import is_wifi_version from mktxp.utils.utils import builtin_wifi_capsman_version
class SystemResourceMetricsDataSource: class SystemResourceMetricsDataSource:
@@ -31,18 +31,20 @@ class SystemResourceMetricsDataSource:
return None return None
@staticmethod @staticmethod
def is_os_with_wifi_builtin(router_entry): def os_version(router_entry):
try: try:
system_resource_records = router_entry.api_connection.router_api().get_resource('/system/resource').get() system_version_records = router_entry.api_connection.router_api().get_resource('/system/resource').call('print', {'proplist':'version'})
version = None for record in system_version_records:
for record in system_resource_records: ver = record.get('version', None)
if record['version']: if ver:
version = record['version'] return ver
break
if not version: return None
return False
return is_wifi_version(version)
except Exception as exc: except Exception as exc:
print(f'Error getting system resource info from router{router_entry.router_name}@{router_entry.config_entry.hostname}: {exc}') print(f'Error getting system resource info from router{router_entry.router_name}@{router_entry.config_entry.hostname}: {exc}')
return False return False
@staticmethod
def has_builtin_wifi_capsman(router_entry):
ver = SystemResourceMetricsDataSource.os_version(router_entry)
return builtin_wifi_capsman_version(ver)

View File

@@ -84,7 +84,7 @@ class RouterEntry:
self._wireless_type = RouterEntryWirelessType.WIFIWAVE2 self._wireless_type = RouterEntryWirelessType.WIFIWAVE2
elif PackageMetricsDataSource.is_package_installed(router_entry, package_name = RouterEntryWirelessPackage.WIRELESS_PACKAGE): elif PackageMetricsDataSource.is_package_installed(router_entry, package_name = RouterEntryWirelessPackage.WIRELESS_PACKAGE):
self._wireless_type = RouterEntryWirelessType.DUAL self._wireless_type = RouterEntryWirelessType.DUAL
elif SystemResourceMetricsDataSource.is_os_with_wifi_builtin(router_entry): elif SystemResourceMetricsDataSource.has_builtin_wifi_capsman(router_entry):
self._wireless_type = RouterEntryWirelessType.WIFI self._wireless_type = RouterEntryWirelessType.WIFI
else: else:
self._wireless_type = RouterEntryWirelessType.WIRELESS self._wireless_type = RouterEntryWirelessType.WIRELESS

View File

@@ -324,8 +324,8 @@ def parse_ros_version(string):
version, channel = re.findall(r'([\d\.]+).*?([\w]+)', string)[0] version, channel = re.findall(r'([\d\.]+).*?([\w]+)', string)[0]
return packaging.version.parse(version), channel return packaging.version.parse(version), channel
def is_wifi_version(string): def builtin_wifi_capsman_version(string):
"""Try to check if the version is Wifi version of RouterOS (> 7.13). """Try to check if the version is Wifi version of RouterOS (>= 7.13).
If anything goes wrong, return None. If anything goes wrong, return None.
Returns a boolean""" Returns a boolean"""
try: try:
@@ -334,6 +334,7 @@ def is_wifi_version(string):
return True return True
except Exception as err: except Exception as err:
print(f'could not get current RouterOS version, because: {str(err)}') print(f'could not get current RouterOS version, because: {str(err)}')
return None
return False return False