def obj_store_size_inKB_not_used(tmpdir=""): if tmpdir: ryw.give_news2('temp objectstore copied to: ' + tmpdir + '<BR>', logging.info) ryw.give_news2('computing outgoing objectstore size...', logging.info) try: resources = su.parseKeyValueFile(os.path.join(RepositoryRoot, 'Resources.txt')) objectstoreroots = resources['objectstore'].split(';') firstRoot = objectstoreroots[0] if tmpdir: tmpOutDir = tmpdir else: tmpOutDir = resources['tmpout'] except: ryw.give_bad_news('obj_store_size_inKB: get_resources failed.', logging.critical) return (False, None, None, None) tmpStoreDir,objPrefix = ryw_upload.attempt_just_make_tmpdir( tmpOutDir, 'outgoing_obj_store_', '') if not tmpStoreDir: ryw.give_bad_news('obj_store_size_inKB: failed to make tmpdir: ' + tmpOutDir, logging.critical) return (False, None, None, None) tmpStoreName = os.path.join(tmpStoreDir, 'outgoing_store') try: success = ryw_copytree.copy_tree_diff_repo(firstRoot, tmpStoreName) if not success: raise 'copy_tree_diff_repo failed.' except: ryw.give_bad_news('obj_store_size_inKB: copy_tree_diff_repo failed: '+ firstRoot + ' -> ' + tmpStoreName, logging.critical) return (False, None, None, None) kB = ryw_disc.getRecursiveSizeInKB(tmpStoreName) logging.debug('obj_store_size_inKB: ' + tmpStoreName + ' = ' + str(kB)) ryw.give_news2 (str(kB) + ' KB<BR>', logging.info) return (True, kB, tmpStoreDir, tmpStoreName)
def copy_objectstore(firstRoot, repDir, tmpStoreName): """copies the objectstore minus the big data items. only copying the first root. I assume this is ok. the multiple roots will just get merged over time at one root on the village side.""" dst = os.path.join(repDir, 'ObjectStore') if os.path.exists(tmpStoreName): ryw.give_news2('moving a pre-copied object store... ', logging.info) logging.debug('copy_objectstore: moving a pre-copied store: ' + tmpStoreName) try: shutil.move(tmpStoreName, dst) ryw.cleanup_partial_dir( ryw.parent_dir(tmpStoreName), 'copy_objectstore:', True) except: ryw.give_bad_news('copy_objectstore: failed to move store: ' + tmpStoreName, logging.critical) return False ryw.give_news2('done. ', logging.info) ryw.give_news2('<BR>', logging.info) return True ryw.give_news2('copying object store... ', logging.info) logging.debug('copy_objectstore: ' + firstRoot + ' -> ' + repDir) try: success = ryw_copytree.copy_tree_diff_repo(firstRoot, dst) if not success: raise 'copy_tree_diff_repo failed.' except: ryw.give_bad_news('copy_objectstore: copy_tree_diff_repo failed: '+ firstRoot + ' -> ' + dst, logging.critical) return False logging.debug('copy_objectstore: done: ' + dst) ryw.give_news2('done. ', logging.info) ryw.give_news2('<BR>', logging.info) return True