def _set_idmap(cmd, msg): if cmd == "add": fibcdbm.idmap().add(**msg) elif cmd == "delete": fibcdbm.idmap().delete_by_re_id(msg["re_id"]) else: _LOG.error("invalid portmap command. %s", cmd)
def get_idmap(req, **kwargs): """ Get All datas. """ sio = StringIO() fibcdbm.idmap().dump(sio) return Response(content_type='application/json', body=sio.getvalue())
def _set_idmap(cmd, msg): """ cmd: "add" or "delete" msg: re_id: <string> dp_id: <int> """ if cmd == "add": fibcdbm.idmap().add(**msg) elif cmd == "delete": fibcdbm.idmap().delete_by_re_id(msg["re_id"]) else: _LOG.error("invalid portmap command. %s", cmd)
def _on_ff_l2addr_status(self, evt): """ process ff_l2addr_status message. """ msg = evt.msg # pb.FFL2AddrStatus dpath = evt.datapath dp_id = evt.datapath.id _LOG.debug("FFL2AddrStatus: %s %s", dp_id, msg) try: re_id = fibcdbm.idmap().find_by_dp_id(dp_id)["re_id"] except Exception as ex: _LOG.exception(ex) new_addrs = [] for addr in msg.addrs: try: port = fibcdbm.portmap().find_by_dp(dp_id, addr.port_id) vm_port = port["vm"] addr.ifname = port["name"].name addr.port_id = vm_port.port new_addrs.append(addr) except Exception as ex: _LOG.exception(ex) _LOG.debug("FFL2AddrStatus: %s %s", re_id, new_addrs) msg = fibcapi.new_l2addr_status(re_id, new_addrs) evt = fibcevt.EventFIBCL2AddrStatus(msg) self.send_event_to_observers(evt)
def _get_entry(): try: return fibcdbm.portmap().find_by_name(re_id=msg.re_id, name=msg.ifname) except KeyError as expt: if msg.dp_port != 0: idmap = fibcdbm.idmap().find_by_re_id(msg.re_id) entry = fibcdbm.FIBCPortEntry.new( dp_id=idmap["dp_id"], port=msg.dp_port, re_id=msg.re_id, link=msg.link, name=msg.ifname, no_vs=True, dpenter=idmap["dp_status"], ) else: entry = fibcdbm.FIBCPortEntry.new( dp_id=0, port=0, re_id=msg.re_id, link=msg.link, name=msg.ifname, no_vs=False, ) if not entry.is_config(): fibcdbm.portmap().add(entry) return entry raise expt
def on_dp_config(self, evt): """ Process DpConfig event. evt,msg: None """ _LOG.debug("DpConfig: dp_id:%d enter:%s", evt.dp_id, evt.enter) entry = fibcdbm.idmap().find_by_dp_id(evt.dp_id) if entry.update_dp_status(evt.enter): _LOG.debug("send DpStatus on DpConfig. %s %s", entry["re_id"], evt.enter) self._send_dp_status_event(entry["re_id"], evt.enter)
def on_vm_config(self, evt): """ Process VmConfig event. evt,msg: pb.Hello """ msg = evt.msg _LOG.debug("VmConfig: re_id:%s enter:%s", msg.re_id, evt.enter) entry = fibcdbm.idmap().find_by_re_id(msg.re_id) if entry.update_vm_status(evt.enter): _LOG.debug("send DpStatus on VmConfig. %s %s", msg.re_id, evt.enter) self._send_dp_status_event(msg.re_id, evt.enter)
def _find_dp_by_re_id(re_id): dp_id = fibcdbm.idmap().find_by_re_id(re_id)["dp_id"] return fibcdbm.dps().find_by_id(dp_id)
def _find_dp_by_re_id(re_id): dp_id = fibcdbm.idmap().find_by_re_id(re_id)["dp_id"] return fibcdbm.dps().find_by_id(dp_id), fibcdbm.dps().get_mode(dp_id, "default")