Changed mangle name to be more user friendly #75

This commit is contained in:
tomaae 2020-12-25 22:57:12 +01:00
parent 88c79bcada
commit ec1788ad3a
2 changed files with 20 additions and 11 deletions

View file

@ -850,7 +850,7 @@ class MikrotikControllerData:
], ],
val_proc=[ val_proc=[
[ [
{"name": "name"}, {"name": "uniq-id"},
{"action": "combine"}, {"action": "combine"},
{"key": "chain"}, {"key": "chain"},
{"text": ","}, {"text": ","},
@ -865,7 +865,16 @@ class MikrotikControllerData:
{"key": "dst-address"}, {"key": "dst-address"},
{"text": ":"}, {"text": ":"},
{"key": "dst-port"}, {"key": "dst-port"},
] ],
[
{"name": "name"},
{"action": "combine"},
{"key": "action"},
{"text": ","},
{"key": "protocol"},
{"text": ":"},
{"key": "dst-port"},
],
], ],
skip=[ skip=[
{"name": "dynamic", "value": True}, {"name": "dynamic", "value": True},
@ -877,7 +886,7 @@ class MikrotikControllerData:
mangle_uniq = {} mangle_uniq = {}
mangle_del = {} mangle_del = {}
for uid in self.data["mangle"]: for uid in self.data["mangle"]:
tmp_name = self.data["mangle"][uid]["name"] tmp_name = self.data["mangle"][uid]["uniq-id"]
if tmp_name not in mangle_uniq: if tmp_name not in mangle_uniq:
mangle_uniq[tmp_name] = uid mangle_uniq[tmp_name] = uid
else: else:
@ -885,8 +894,8 @@ class MikrotikControllerData:
mangle_del[mangle_uniq[tmp_name]] = 1 mangle_del[mangle_uniq[tmp_name]] = 1
for uid in mangle_del: for uid in mangle_del:
if self.data["mangle"][uid]["name"] not in self.mangle_removed: if self.data["mangle"][uid]["uniq-id"] not in self.mangle_removed:
self.mangle_removed[self.data["mangle"][uid]["name"]] = 1 self.mangle_removed[self.data["mangle"][uid]["uniq-id"]] = 1
_LOGGER.error( _LOGGER.error(
"Mikrotik %s duplicate Mangle rule %s, entity will be unavailable.", "Mikrotik %s duplicate Mangle rule %s, entity will be unavailable.",
self.host, self.host,

View file

@ -145,11 +145,11 @@ def update_items(inst, mikrotik_controller, async_add_entities, switches):
# Data point name # Data point name
["interface", "nat", "mangle", "ppp_secret", "script", "queue", "kid-control"], ["interface", "nat", "mangle", "ppp_secret", "script", "queue", "kid-control"],
# Data point unique id # Data point unique id
["name", "uniq-id", "name", "name", "name", "name", "name"], ["name", "uniq-id", "uniq-id", "name", "name", "name", "name"],
# Entry Name # Entry Name
["name", "name", "comment", "name", "name", "name", "name"], ["name", "name", "name", "name", "name", "name", "name"],
# Entry Unique id # Entry Unique id
["port-mac-address", "uniq-id", "name", "name", "name", "name", "name"], ["port-mac-address", "uniq-id", "uniq-id", "name", "name", "name", "name"],
# Attr # Attr
[ [
DEVICE_ATTRIBUTES_IFACE, DEVICE_ATTRIBUTES_IFACE,
@ -448,7 +448,7 @@ class MikrotikControllerMangleSwitch(MikrotikControllerSwitch):
@property @property
def unique_id(self) -> str: def unique_id(self) -> str:
"""Return a unique id for this entity.""" """Return a unique id for this entity."""
return f"{self._inst.lower()}-enable_mangle-{self._data['name']}" return f"{self._inst.lower()}-enable_mangle-{self._data['uniq-id']}"
@property @property
def icon(self) -> str: def icon(self) -> str:
@ -486,7 +486,7 @@ class MikrotikControllerMangleSwitch(MikrotikControllerSwitch):
value = None value = None
for uid in self._ctrl.data["mangle"]: for uid in self._ctrl.data["mangle"]:
if ( if (
self._ctrl.data["mangle"][uid]["name"] self._ctrl.data["mangle"][uid]["uniq-id"]
== f"{self._data['chain']},{self._data['action']},{self._data['protocol']},{self._data['src-address']}:{self._data['src-port']}-{self._data['dst-address']}:{self._data['dst-port']}" == f"{self._data['chain']},{self._data['action']},{self._data['protocol']},{self._data['src-address']}:{self._data['src-port']}-{self._data['dst-address']}:{self._data['dst-port']}"
): ):
value = self._ctrl.data["mangle"][uid][".id"] value = self._ctrl.data["mangle"][uid][".id"]
@ -503,7 +503,7 @@ class MikrotikControllerMangleSwitch(MikrotikControllerSwitch):
value = None value = None
for uid in self._ctrl.data["mangle"]: for uid in self._ctrl.data["mangle"]:
if ( if (
self._ctrl.data["mangle"][uid]["name"] self._ctrl.data["mangle"][uid]["uniq-id"]
== f"{self._data['chain']},{self._data['action']},{self._data['protocol']},{self._data['src-address']}:{self._data['src-port']}-{self._data['dst-address']}:{self._data['dst-port']}" == f"{self._data['chain']},{self._data['action']},{self._data['protocol']},{self._data['src-address']}:{self._data['src-port']}-{self._data['dst-address']}:{self._data['dst-port']}"
): ):
value = self._ctrl.data["mangle"][uid][".id"] value = self._ctrl.data["mangle"][uid][".id"]