Beispiel #1
0
 def _close_replica(self):
     server_version = ast.literal_eval(
         os.environ.get('IRODS_VERSION_OVERRIDE', '()'))
     if (server_version or self.conn.server_version
         ) < IRODS_SERVER_WITH_CLOSE_REPLICA_API:
         return False
     message_body = JSON_Message(
         {
             "fd": self.desc,
             "send_notification": False,
             "update_size": False,
             "update_status": False,
             "compute_checksum": False
         },
         server_version=self.conn.server_version)
     self.conn.send(
         iRODSMessage('RODS_API_REQ',
                      msg=message_body,
                      int_info=api_number['REPLICA_CLOSE_APN']))
     try:
         self.conn.recv().int_info
     except Exception:
         logger.warning('** ERROR on closing replica **')
         raise
     return True
 def _call_atomic_metadata_api(self, request_text):
     with self.sess.pool.get_connection() as conn:
         request_msg = iRODSMessage("RODS_API_REQ",  JSON_Message( request_text, conn.server_version ),
                                    int_info=api_number['ATOMIC_APPLY_METADATA_OPERATIONS_APN'])
         conn.send( request_msg )
         response = conn.recv()
     response_msg = response.get_json_encoded_struct()
     logger.debug("in atomic_metadata, server responded with: %r",response_msg)
 def replica_access_info(self):
     message_body = JSON_Message( {'fd': self.desc},
                                  server_version = self.conn.server_version )
     message = iRODSMessage('RODS_API_REQ', msg = message_body,
                            int_info=api_number['GET_FILE_DESCRIPTOR_INFO_APN'])
     self.conn.send(message)
     result = None
     try:
         result = self.conn.recv()
     except Exception as e:
         logger.warning('''Couldn't receive or process response to GET_FILE_DESCRIPTOR_INFO_APN -- '''
                        '''caught: %r''',e)
         raise
     dobj_info = result.get_json_encoded_struct()
     replica_token = dobj_info.get("replica_token","")
     resc_hier = ( dobj_info.get("data_object_info") or {} ).get("resource_hierarchy","")
     return (replica_token, resc_hier)