def recv(self): try: msg = iRODSMessage.recv(self.socket) except socket.error: logger.error("Could not receive server response") self.release(True) raise NetworkException("Could not receive server response") if msg.int_info < 0: try: err_msg = iRODSMessage(msg=msg.error).get_main_message(Error).RErrMsg_PI[0].msg except TypeError: raise get_exception_by_code(msg.int_info) raise get_exception_by_code(msg.int_info, err_msg) return msg
def recv(self, into_buffer=None, return_message=(), acceptable_errors=()): acceptable_codes = set(nominal_code(e) for e in acceptable_errors) try: if into_buffer is None: msg = iRODSMessage.recv(self.socket) else: msg = iRODSMessage.recv_into(self.socket, into_buffer) except (socket.error, socket.timeout) as e: # If _recv_message_in_len() fails in recv() or recv_into(), # it will throw a socket.error exception. The exception is # caught here, a critical message is logged, and is wrapped # in a NetworkException with a more user friendly message logger.critical(e) logger.error("Could not receive server response") self.release(True) raise NetworkException("Could not receive server response") if isinstance(return_message, list): return_message[:] = [msg] if msg.int_info < 0: try: err_msg = iRODSMessage( msg=msg.error).get_main_message(Error).RErrMsg_PI[0].msg except TypeError: err_msg = None if nominal_code(msg.int_info) not in acceptable_codes: raise get_exception_by_code(msg.int_info, err_msg) return msg
def recv(self): try: msg = iRODSMessage.recv(self.socket) except socket.error: logger.error("Could not receive server response") exit(1) if msg.int_info < 0: raise get_exception_by_code(msg.int_info) return msg
def setInfo(self): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: s.connect((self.host, self.port)) except socket.error: raise NetworkException( "Could not connect to specified host and port!") mainMessage = StartupPack((self.dummycred, self.dummycred), (self.dummycred, self.dummycred)) msg = iRODSMessage(msg_type='RODS_CONNECT', msg=mainMessage) string = msg.pack() try: s.sendall(string) except: raise NetworkException("Unable to send message") try: msg = iRODSMessage.recv(s) except socket.error: exit(1) if msg.int_info < 0: raise get_exception_by_code(msg.int_info) msg = iRODSMessage(msg_type='RODS_API_REQ', msg=None, int_info=api_number['GET_MISC_SVR_INFO_AN']) string = msg.pack() try: s.sendall(string) except: raise NetworkException("Unable to send message") try: miscsvrinfo = iRODSMessage.recv(s) except socket.error: exit(1) if msg.int_info < 0: raise get_exception_by_code(msg.int_info) root = ET.fromstring(miscsvrinfo.msg) self.setProps("RCAT_ENABLED" if int(root[0].text) else "RCAT_DISABLED", root[2].text, root[3].text, root[4].text, int(root[1].text)) s.close() return
def recv(self): msg = iRODSMessage.recv(self.socket) if msg.int_info < 0: raise get_exception_by_code(msg.int_info) return msg