Esempio n. 1
0
    def test_enc_dec(self):
        obj_store = SeafObjStoreFactory().get_obj_store('commits')
        self.assertIsNotNone(obj_store.crypto)

        crypto = obj_store.crypto
        obj_store.crypto = None
        # read original data
        dec_data = obj_store.read_obj(TEST_REPO_ID, 1, TEST_HEAD_COMMIT)
        # encrypt original data
        enc_data = crypto.enc_data(dec_data)
        obj_path = os.path.join(obj_store.obj_dir, TEST_REPO_ID, \
                                TEST_HEAD_COMMIT[0:2], TEST_HEAD_COMMIT[2:])
        with open(obj_path, 'w') as fd:
            fd.truncate(0)
            # write encrypted data to file
            fd.write(enc_data)

        obj_store.crypto = crypto
        # get decrypted data
        dec_data = obj_store.read_obj(TEST_REPO_ID, 1, TEST_HEAD_COMMIT)
        cobj = json.loads(dec_data)
        self.assertEqual(TEST_HEAD_COMMIT, cobj['commit_id'])
        with open(obj_path, 'w') as fd:
            fd.truncate(0)
            fd.write(dec_data)
Esempio n. 2
0
def main():
    try:
        orig_obj_factory = SeafObjStoreFactory()
        os.environ['SEAFILE_CENTRAL_CONF_DIR'] = os.environ['DEST_SEAFILE_CENTRAL_CONF_DIR']
    except KeyError:
        logging.warning('DEST_SEAFILE_CENTRAL_CONF_DIR environment variable is not set.\n')
        sys.exit()

    dest_obj_factory = SeafObjStoreFactory()

    dtypes = ['commits', 'fs', 'blocks']
    for dtype in dtypes:
        ObjMigrateWorker(orig_obj_factory, dest_obj_factory, dtype).start()
Esempio n. 3
0
    def test_enc_dec(self):
        obj_store = SeafObjStoreFactory().get_obj_store('commits')
        self.assertIsNotNone(obj_store.crypto)

        crypto = obj_store.crypto
        obj_store.crypto = None
        # read original data
        dec_data = obj_store.read_obj(TEST_REPO_ID, 1, TEST_HEAD_COMMIT)
        # encrypt original data
        enc_data = crypto.enc_data(dec_data)
        obj_path = os.path.join(obj_store.obj_dir, TEST_REPO_ID, \
                                TEST_HEAD_COMMIT[0:2], TEST_HEAD_COMMIT[2:])
        with open(obj_path, 'wb') as fd:
            fd.truncate(0)
            # write encrypted data to file
            fd.write(enc_data)

        obj_store.crypto = crypto
        # get decrypted data
        dec_data = obj_store.read_obj(TEST_REPO_ID, 1, TEST_HEAD_COMMIT)
        cobj = json.loads(dec_data)
        self.assertEqual(TEST_HEAD_COMMIT, cobj['commit_id'])
        with open(obj_path, 'wb') as fd:
            fd.truncate(0)
            fd.write(dec_data)
Esempio n. 4
0
 def create_factory_with_conf(self, content):
     return SeafObjStoreFactory(FakeSeafileConfig(content))
Esempio n. 5
0
 def test_invalid_data(self):
     obj_store = SeafObjStoreFactory().get_obj_store('commits')
     self.assertIsNotNone(obj_store.crypto)
     self.assertRaises(Exception, obj_store.crypto.enc_data, None)
     self.assertRaises(Exception, obj_store.crypto.dec_data, 'abc')