def send_and_receive(self, msg): """Sends an IPMI request message and waits for its response. `msg` is a IPMI Message containing both the request and response. """ log().debug('IPMI Request [%s]', msg) retries = 0 while retries < self.max_retries: try: rx_data = self._send_and_receive_raw(msg.target, msg.lun, msg.netfn, chr(msg.cmdid) + encode_message(msg)) break except TimeoutError: pass retries += 1 else: raise TimeoutError() msg = create_message(msg.cmdid, msg.netfn + 1) decode_message(msg, rx_data[5:-1]) log().debug('IPMI Response [%s])', msg) return msg
def send_and_receive(self, req): log().debug('IPMI Request [%s]', req) req_data = (chr(req.cmdid)) req_data += encode_message(req) rsp_data = self.send_and_receive_raw(req.target, req.lun, req.netfn, req_data) rsp = create_message(req.cmdid, req.netfn + 1) decode_message(rsp, rsp_data.tostring()) log().debug('IPMI Response [%s])', rsp) return rsp
def send_and_receive(self, msg): """Sends an IPMI request message and waits for its response. `msg` is a IPMI Message containing both the request and response. """ log().debug('IPMI Request [%s]', msg) rx_data = self._send_and_receive(msg.target, msg.lun, msg.netfn, msg.cmdid, encode_message(msg)) msg = create_message(msg.cmdid, msg.netfn + 1) decode_message(msg, rx_data) log().debug('IPMI Response [%s])', msg) return msg
def send_and_receive(self, msg): """Sends an IPMI request message and waits for its response. `msg` is a IPMI Message containing both the request and response. """ log().debug('IPMI Request [%s]', msg) rx_data = self._send_and_receive_raw(msg.target, msg.lun, msg.netfn, chr(msg.cmdid) + encode_message(msg)) msg = create_message(msg.cmdid, msg.netfn + 1) decode_message(msg, rx_data[5:-1]) log().debug('IPMI Response [%s])', msg) return msg
def test_create_message(): req = create_message(6, 1, None) eq_(type(req), pyipmi.msgs.bmc.GetDeviceIdReq) req = create_message(7, 1, None) eq_(type(req), pyipmi.msgs.bmc.GetDeviceIdRsp)