def get_port_id_by_mac(self, port_mac):
     for network_id, data in self.network_map.iteritems():
         for port in data['ports']:
             if port['port_mac'] == port_mac:
                 return port['port_id']
     err_msg = _("Agent cache inconsistency - port id "
                 "is not stored for %s") % port_mac
     LOG.error(err_msg)
     raise exceptions.MlnxException(err_msg)
Beispiel #2
0
 def parse_response_msg(self, recv_msg):
     msg = jsonutils.loads(recv_msg)
     if msg['status'] == 'OK':
         if 'response' in msg:
             return msg.get('response')
         return
     elif msg['status'] == 'FAIL':
         msg_dict = dict(action=msg['action'], reason=msg['reason'])
         error_msg = _("Action %(action)s failed: %(reason)s") % msg_dict
     else:
         error_msg = _("Unknown operation status %s") % msg['status']
     LOG.error(error_msg)
     raise exceptions.MlnxException(error_msg)
Beispiel #3
0
    def send_msg(self, msg):
        self._conn.send(msg)

        socks = dict(self.poller.poll(self.timeout))
        if socks.get(self._conn) == zmq.POLLIN:
            recv_msg = self._conn.recv()
            response = self.parse_response_msg(recv_msg)
            return response
        else:
            self._conn.setsockopt(zmq.LINGER, 0)
            self._conn.close()
            self.poller.unregister(self._conn)
            self.__conn = None
            raise exceptions.MlnxException(_("eSwitchD: Request timeout"))