def reply_with_item_list(req): """ Generates an item list by date range and sends it as reply to requesting node :param req: RegistryDateRangeSync already validated """ unpack_date = lambda x: [dpn_strptime(i) for i in x] entries = RegistryEntry.objects.filter( creation_date__range=unpack_date(req.body['date_range']) ) headers = { 'correlation_id': req.headers['correlation_id'], 'sequence': 1 } body = { 'date_range': req.body['date_range'], 'reg_sync_list': [e.to_message_dict() for e in entries] } rsp = RegistryListDateRangeReply(headers, body) rsp.send(req.headers['reply_key'])
def _is_alive(self, msg, current_time): """ Check if the message has date and ttl set and returns if still alive :param msg: kombu.transport.base.Message instance. :return: Boolean """ try: ttl = dpn_strptime(msg.headers['ttl']) now = dpn_strptime(dpn_strftime(current_time)) return ttl > now except KeyError: msg.ack() raise DPNMessageError( "Invalid message received with no 'date' or 'ttl' set!")
def make_registry_base_objects(): """ This produces a set of rights and brigthening registry entries. """ results = [] entries = [ { # Foward Version Object "dpn_object_id": "a395e773-668f-4a4d-876e-4a4039d86735", "object_type": "D" }, { # First Version Object "dpn_object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "object_type": "D" }, { # Brightening Object 1 "dpn_object_id": "a02de3cd-a74b-4cc6-adec-16f1dc65f726", "object_type": "B" }, { # Brightening Object 2 "dpn_object_id": "C92de3cd-a789-4cc6-adec-16a40c65f726", "object_type": "B" }, { # Rights Object 1 "dpn_object_id": "a02de3cd-a789-4cc6-adec-16a40c65f726", "object_type": "R" }, { # Rights Object 2 "dpn_object_id": "0df688d4-8dfb-4768-bee9-639558f40488", "object_type": "R" }, ] for data in entries: base_reg = { "first_node_name": "aptrust", "version_number": 1, "first_version": None, "fixity_algorithm": "sha256", "fixity_value": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824", "last_fixity_date": dpn_strptime("2013-01-18T09:49:28Z"), "creation_date": dpn_strptime("2013-01-05T09:49:28Z"), "last_modified_date": dpn_strptime("2013-01-05T09:49:28Z"), "bag_size": 65536, "object_type": "D" } results.append(dict(data.items() | base_reg.items())) return results
def test_dpn_strptime(self): self.failUnlessEqual(self.datetime, dpn_strptime(self.timestring))
def validate_date(self, datestring): try: return dpn_strptime(datestring) except ValueError: raise ValueError("Incorrect date format, should be '%s' (i.e. %s)" % DPN_DATE_FORMAT, dpn_strftime(datetime.utcnow()))