def _test_get_required_fragments(self, num_data, num_parity, ec_type): """ :return boolean, True if all tests passed """ handle = pyeclib_c.init(num_data, num_parity, ec_type.value) success = True # # MDS codes need any k fragments # if ec_type in ["jerasure_rs_vand", "jerasure_rs_cauchy"]: expected_fragments = [i for i in range(num_data + num_parity)] missing_fragments = [] # # Remove between 1 and num_parity # for i in range(random.randint(0, num_parity - 1)): missing_fragment = random.sample(expected_fragments, 1)[0] missing_fragments.append(missing_fragment) expected_fragments.remove(missing_fragment) expected_fragments = expected_fragments[:num_data] required_fragments = pyeclib_c.get_required_fragments( handle, missing_fragments, []) if expected_fragments != required_fragments: success = False print(("Unexpected required fragments list " "(exp != req): %s != %s" % (expected_fragments, required_fragments))) return success
def fragments_needed(self, reconstruct_indexes, exclude_indexes): try: required_fragments = pyeclib_c.get_required_fragments( self.handle, reconstruct_indexes, exclude_indexes) return required_fragments except PyECLibError as e: raise ECPyECLibException(e)
def fragments_needed(self, reconstruct_indexes, exclude_indexes): required_fragments = pyeclib_c.get_required_fragments( self.handle, reconstruct_indexes, exclude_indexes) return required_fragments