def do_show(objID, version):

    success,meta,objroot = ryw_meta.get_meta2(RepositoryRoot, objID, version)
    if not success:
        return False

    ryw_meta.show_meta_edit_page(meta, '/cgi-bin/EditObject.py',
                                 objID + '#' + str(version))
    return True
def get_all_paths(objID, version, skipLock = False, searchFile = None,
             allowNullSearchFile = False):
    #searchFile = ryw_meta.open_search_file(RepositoryRoot)
    #if not searchFile:
    #    return (False, None)

    #meta,objroot = ryw_meta.get_meta(searchFile, objID, version,
    #                                 RepositoryRoot)
    #searchFile.done()

    if searchFile == None and not allowNullSearchFile:
        ryw.give_bad_news('DisplaySelection.get_path: warning, no ' +
                          'searchFile. ok but should fix.',
                          logging.warning)

    if searchFile:
        success,meta = searchFile.get_meta(objID, version)
        if success and meta:
            objroot = ryw_meta.get_objectstore_root(RepositoryRoot, meta)
    else:
        success,meta,objroot = ryw_meta.get_meta2(
            RepositoryRoot, objID, version, skipLk = skipLock)
        logging.warning('DisplaySelection.get_path: get_meta2 called.')

    if not success or (not meta and not objroot):
        ryw.give_bad_news(
            'DisplaySelection: no meta, no objroot, giving up...',
            logging.critical)
        return (False, None, None)

    paths = ryw_meta.get_paths(objroot, objID, version, meta, RepositoryRoot)
    if not paths:
        ryw.give_bad_news('DisplaySelection: failed to get paths.',
                          logging.critical)
        return (False, None, None)

    return (True, paths, meta)
def main():
    # initialization.
    print_header()
    form = cgi.FieldStorage()
    setup_logging()

    # cgi.print_form(form)

    success,objID,version = ryw.get_obj_str2(form)
    if not success:
        ryw_upload.quick_exit(1)
    logging.debug('EditObject: ' + objID + '#' + str(version))

    if not ryw_meta.check_required_fields(form):
        ryw_upload.quick_exit(1)

    success,meta,objroot = ryw_meta.get_meta2(RepositoryRoot,
                                                  objID, version)
    if not success:
        ryw_upload.quick_exit(1)



    reext = re_extract_or_not(form)
    if reext:
        paths = ryw_meta.get_paths(objroot, objID, version,
                                   meta, RepositoryRoot)
        if not paths:
            ryw.give_bad_news('EditObject: failed to get paths.',
                              logging.critical)
            ryw_upload.quick_exit(1)

        dataPath = paths[0]
        fileName = get_file_name(dataPath)
        if not fileName:
            reext = False



    success = ryw_meta.process_error_fields(form, meta)
    if not success:
        ryw_upload.quick_exit(1)

    ryw_meta.process_fields(form, meta)
    logging.debug('EditObjects: ' + repr(meta))

    meta = ryw_upload.get_change_date_time(meta)

    #ryw.give_news(repr(meta), logging.info)



    if reext:
        re_extract(dataPath, fileName, meta)


    success,searchFile = do_update_metadata(objroot, objID, version, meta)
    if not success:
        ryw_upload.quick_exit(1)


    show_one_server_object(meta, searchFile)
    ryw.give_good_news('edit completed.', logging.info)

    ryw_view.print_footer()

    if searchFile:
        searchFile.done()
    sys.exit(0)