def check_metadata_formatted(self, k, m, ec_type, chksum_type): if ec_type not in VALID_EC_TYPES: return filesize = 1024 * 1024 * 3 file_str = ''.join( random.choice(ascii_letters) for i in range(filesize)) file_bytes = file_str.encode('utf-8') pyeclib_driver = ECDriver(k=k, m=m, ec_type=ec_type, chksum_type=chksum_type) fragments = pyeclib_driver.encode(file_bytes) f = 0 for fragment in fragments: metadata = pyeclib_driver.get_metadata(fragment, 1) if 'index' in metadata: self.assertEqual(metadata['index'], f) else: self.assertTrue(False) if 'chksum_mismatch' in metadata: self.assertEqual(metadata['chksum_mismatch'], 0) else: self.assertTrue(False) if 'backend_id' in metadata: self.assertEqual(metadata['backend_id'], ec_type) else: self.assertTrue(False) if 'orig_data_size' in metadata: self.assertEqual(metadata['orig_data_size'], 3145728) else: self.assertTrue(False) if 'chksum_type' in metadata: self.assertEqual(metadata['chksum_type'], 'crc32') else: self.assertTrue(False) if 'backend_version' not in metadata: self.assertTrue(False) if 'chksum' not in metadata: self.assertTrue(False) if 'size' not in metadata: self.assertTrue(False) f += 1
def check_metadata_formatted(self, k, m, ec_type, chksum_type): if ec_type not in VALID_EC_TYPES: return filesize = 1024 * 1024 * 3 file_str = ''.join(random.choice(ascii_letters) for i in range(filesize)) file_bytes = file_str.encode('utf-8') pyeclib_driver = ECDriver(k=k, m=m, ec_type=ec_type, chksum_type=chksum_type) fragments = pyeclib_driver.encode(file_bytes) f = 0 for fragment in fragments: metadata = pyeclib_driver.get_metadata(fragment, 1) if 'index' in metadata: self.assertEqual(metadata['index'], f) else: self.assertTrue(False) if 'chksum_mismatch' in metadata: self.assertEqual(metadata['chksum_mismatch'], 0) else: self.assertTrue(False) if 'backend_id' in metadata: self.assertEqual(metadata['backend_id'], ec_type) else: self.assertTrue(False) if 'orig_data_size' in metadata: self.assertEqual(metadata['orig_data_size'], 3145728) else: self.assertTrue(False) if 'chksum_type' in metadata: self.assertEqual(metadata['chksum_type'], 'crc32') else: self.assertTrue(False) if 'backend_version' not in metadata: self.assertTrue(False) if 'chksum' not in metadata: self.assertTrue(False) if 'size' not in metadata: self.assertTrue(False) f += 1
def check_metadata_formatted(self, k, m, ec_type, chksum_type): if ec_type not in VALID_EC_TYPES: return filesize = 1024 * 1024 * 3 file_str = "".join(random.choice(ascii_letters) for i in range(filesize)) file_bytes = file_str.encode("utf-8") pyeclib_driver = ECDriver(k=k, m=m, ec_type=ec_type, chksum_type=chksum_type) fragments = pyeclib_driver.encode(file_bytes) f = 0 for fragment in fragments: metadata = pyeclib_driver.get_metadata(fragment, 1) if "index" in metadata: self.assertEqual(metadata["index"], f) else: self.assertTrue(False) if "chksum_mismatch" in metadata: self.assertEqual(metadata["chksum_mismatch"], 0) else: self.assertTrue(False) if "backend_id" in metadata: self.assertEqual(metadata["backend_id"], ec_type) else: self.assertTrue(False) if "orig_data_size" in metadata: self.assertEqual(metadata["orig_data_size"], 3145728) else: self.assertTrue(False) if "chksum_type" in metadata: self.assertEqual(metadata["chksum_type"], "crc32") else: self.assertTrue(False) if "backend_version" not in metadata: self.assertTrue(False) if "chksum" not in metadata: self.assertTrue(False) if "size" not in metadata: self.assertTrue(False) f += 1
def test_get_metadata_formatted(self): pyeclib_driver = ECDriver(k=12, m=2, ec_type="jerasure_rs_vand", chksum_type="inline_crc32") filesize = 1024 * 1024 * 3 file_str = ''.join(random.choice(ascii_letters) for i in range(filesize)) file_bytes = file_str.encode('utf-8') fragments = pyeclib_driver.encode(file_bytes) i = 0 for fragment in fragments: metadata = pyeclib_driver.get_metadata(fragment, 1) if metadata.has_key('index'): self.assertEqual(metadata['index'], i) else: self.assertTrue(false) if metadata.has_key('chksum_mismatch'): self.assertEqual(metadata['chksum_mismatch'], 0) else: self.assertTrue(false) if metadata.has_key('backend_id'): self.assertEqual(metadata['backend_id'], 'jerasure_rs_vand') else: self.assertTrue(false) if metadata.has_key('orig_data_size'): self.assertEqual(metadata['orig_data_size'], 3145728) else: self.assertTrue(false) if metadata.has_key('chksum_type'): self.assertEqual(metadata['chksum_type'], 'crc32') else: self.assertTrue(false) if not metadata.has_key('backend_version'): self.assertTrue(false) if not metadata.has_key('chksum'): self.assertTrue(false) if not metadata.has_key('size'): self.assertTrue(false) i += 1