PNG IHDR x sBIT|d pHYs + tEXtSoftware www.inkscape.org< ,tEXtComment
'''
Run a network probe
===================
A successful network probe neither creates real network objects
like interfaces or addresses, nor database records. The only
important thing it does -- it raises no exception.
On the contrary, an unsuccessful network probe raises a
`NetlinkError` exception, cancelling the whole transaction.
A network probe is always run from the corresponding netlink
target: a local system, a remote system, a network namespace,
a container.
An example scenario:
* target alpha, set up eth0 10.0.0.2/24
* target beta, set up eth0 10.0.0.4/24
* ping 10.0.0.4 (beta) from target alpha
* ping 10.0.0.2 (alpha) from target beta
The code below sets up the addresses and checks ICMP responses. If
any step fails, the whole transaction will be rolled back automatically::
with NDB(log='debug') as ndb:
ndb.sources.add(kind='remote', hostname='alpha', username='root')
ndb.sources.add(kind='remote', hostname='beta', username='root')
with ndb.begin() as trx:
trx.push(
(ndb
.interfaces[{'target': 'alpha', 'ifname': 'eth0'}]
.set(state='up')
.add_ip(address='10.0.0.2', prefixlen=24)
),
(ndb
.interfaces[{'target': 'beta', 'ifname': 'eth0'}]
.set(state='up')
.add_ip(address='10.0.0.4', prefixlen=24)
),
(ndb
.probes
.create(target='alpha', kind='ping', dst='10.0.0.4')
),
(ndb
.probes
.create(target='beta', kind='ping', dst='10.0.0.2')
),
)
'''
from pyroute2.netlink.rtnl.probe_msg import probe_msg
from ..objects import AsyncObject
async def load_probe_msg(schema, sources, target, event):
pass
schema = probe_msg.sql_schema().unique_index()
init = {
'specs': [['probes', schema]],
'classes': [['probes', probe_msg]],
'event_map': {probe_msg: [load_probe_msg]},
}
class Probe(AsyncObject):
table = 'probes'
msg_class = probe_msg
api = 'probe'
def __init__(self, *argv, **kwarg):
kwarg['iclass'] = probe_msg
self.event_map = {probe_msg: 'load_probe_msg'}
super().__init__(*argv, **kwarg)
def check(self):
return True
b IDATxytVսϓ22 A@IR:hCiZ[v*E:WũZA ^dQeQ @ !jZ'>gsV仿$|?g)&x-E