Query¶
Basic usage¶
Get only name
and disabled
keys from all interfaces.
from librouteros.query import Key
# Each key must be created first in order to reference it later.
name = Key('name')
disabled = Key('disabled')
for row in api.path('/interface').select(name, disabled):
print(row)
Advanced Usage¶
Adding where()
, allows to fine tune search criteria.
Syntax is very simmilar to a SQL query.
name = Key('name')
disabled = Key('disabled')
query = api.path('/interface').select(name, disabled).where(
disabled == False,
Or(
name == 'ether2',
name == 'wlan-lan',
),
)
Above code demonstrates how to select name
, disabled
fields where each interface is disabled
and name
is equal to one of ether2
, wlan-lan
.
If you do not specify any logical operation within where(), them it defaults to And().
Above example can be rewritten using In operator.
name = Key('name')
disabled = Key('disabled')
query = api.path('/interface').select(name, disabled).where(
disabled == False,
name.In('ether2', 'wlan-lan'),
)
Usable operators¶
operator | example |
---|---|
== |
name == 'ether2' |
!= |
name != 'ether2' |
> |
mtu > 1500 |
< |
mtu < 1400 |
In |
name.In('ether1', 'ether2', 'wlan1') |
Logical operators¶
And
, Or
. Each operator takes at least two expressions and performs a logical operation translating it to API
query equivalents.