Exemple #1
0
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'])
Exemple #2
0
    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!")
Exemple #3
0
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
Exemple #4
0
 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()))