예제 #1
0
    def test_feed_information_response1(self):
        push_method1 = tm10.PushMethod(
            push_protocol=t.VID_TAXII_HTTP_10,  # Required
            push_message_bindings=[t.VID_TAXII_XML_10])  # Required

        polling_service1 = tm10.PollingServiceInstance(
            poll_protocol=t.VID_TAXII_HTTP_10,  # Required
            poll_address='http://example.com/PollService/',  # Required
            poll_message_bindings=[t.VID_TAXII_XML_10])  # Required

        subscription_service1 = tm10.SubscriptionMethod(
            subscription_protocol=t.VID_TAXII_HTTP_10,  # Required
            subscription_address='http://example.com/SubsService/',  # Required
            subscription_message_bindings=[t.VID_TAXII_XML_10])  # Required

        feed1 = tm10.FeedInformation(
            feed_name='Feed1',  # Required
            feed_description='Description of a feed',  # Required
            supported_contents=[t.CB_STIX_XML_10],  # Required. List of supported content binding IDs
            available=True,  # Optional. Defaults to None (aka Unknown)
            push_methods=[push_method1],  # Required if there are no polling_services. Optional otherwise
            polling_service_instances=[polling_service1],  # Required if there are no push_methods. Optional otherwise.
            subscription_methods=[subscription_service1])  # Optional

        feed_information_response1 = tm10.FeedInformationResponse(
            message_id=tm10.generate_message_id(),  # Required
            in_response_to=tm10.generate_message_id(),  # Required. This should be the ID of the corresponding request
            feed_informations=[feed1])  # Optional

        round_trip_message(feed_information_response1)
예제 #2
0
def collection_to_feedcollection_information(service, collection, version):

    polling_instances = []
    for poll in service.get_polling_services(collection):
        polling_instances.extend(
            poll_service_to_polling_service_instance(poll, version=version))

    push_methods = service.get_push_methods(collection)

    subscription_methods = []
    for s in service.get_subscription_services(collection):
        subscription_methods.extend(
            subscription_service_to_subscription_method(s, version=version))

    if collection.accept_all_content:
        supported_content = []
    else:
        supported_content = content_binding_entities_to_content_bindings(
            collection.supported_content, version=version)

    if version == 11:
        inbox_instances = []
        for inbox in service.get_receiving_inbox_services(collection):
            inbox_instances.extend(inbox_to_receiving_inbox_instance(inbox))

        return tm11.CollectionInformation(
            collection_name=collection.name,
            collection_description=collection.description,
            supported_contents=supported_content,
            available=collection.available,
            push_methods=push_methods,
            polling_service_instances=polling_instances,
            subscription_methods=subscription_methods,
            collection_volume=collection.volume,
            collection_type=collection.type,
            receiving_inbox_services=inbox_instances)

    if version == 10:
        return tm10.FeedInformation(
            feed_name=collection.name,
            feed_description=collection.description,
            supported_contents=supported_content,
            available=collection.available,
            push_methods=push_methods,
            polling_service_instances=polling_instances,
            subscription_methods=subscription_methods
            # collection_volume, collection_type, and
            # receiving_inbox_services are not supported in TAXII 1.0
        )

    raise ValueError('invalid version')