Ejemplo n.º 1
0
 def lsn_port_get_by_mac(self, context, network_id, mac, raise_on_err=True):
     try:
         obj = lsn_db.lsn_port_get_for_mac(
             context, mac, raise_on_err=raise_on_err)
         return (obj.lsn_id, obj.lsn_port_id) if obj else (None, None)
     except p_exc.LsnPortNotFound:
         with excutils.save_and_reraise_exception() as ctxt:
             ctxt.reraise = False
             if self.sync_on_missing:
                 lsn_id, lsn_port_id = (
                     super(PersistentLsnManager, self).lsn_port_get_by_mac(
                         context, network_id, mac,
                         raise_on_err=raise_on_err))
                 subnet_id = lsn_api.lsn_port_info_get(
                     self.cluster, lsn_id, lsn_port_id).get('subnet_id')
                 self.lsn_port_save(
                     context, lsn_port_id, subnet_id, mac, lsn_id)
                 return (lsn_id, lsn_port_id)
             if raise_on_err:
                 ctxt.reraise = True
Ejemplo n.º 2
0
 def test_lsn_port_get_for_mac(self):
     lsn_db.lsn_add(self.ctx, self.net_id, self.lsn_id)
     lsn_db.lsn_port_add_for_lsn(self.ctx, self.lsn_port_id,
                                 self.subnet_id, self.mac_addr, self.lsn_id)
     result = lsn_db.lsn_port_get_for_mac(self.ctx, self.mac_addr)
     self.assertEqual(self.mac_addr, result.mac_addr)