geowatchutil.runtime module

Provides runtime functions. These functions wrap factory functions with exception handling and timeouts.

geowatchutil.runtime.build_broker_kwargs(brokerconfig, globalconfig, templates=None, verbose=False)[source]
geowatchutil.runtime.provision_broker(brokerconfig, globalconfig, templates=None, verbose=True)[source]

Provision new GeoWatch broker.

brokerconfig is a broker dict configurations.

globalconfig is a dict configuration for shared variables, such as AWS Region, AWS Credentials, etc. Fallback for missing broker-specific values.

provision_broker() returns a GeoWatchBroker broker.

Examples

from geowatchutil.runtime import provision_broker

globalconfig = {'aws_access_key_id':'', 'aws_secret_access_key':'', 'aws_region':''}
brokers = provision_brokers(settings.GEOWATCH_BROKERS_CRON, globalconfig=globalconfig)

for broker in brokers:

    broker.run(maxcycle=1)
geowatchutil.runtime.provision_brokers(watchlist, globalconfig=None, templates=None, brokerfilter=None, verbose=False)[source]

Provision new GeoWatch brokers.

watchlist is a list of broker dict configurations. globalconfig is a dict configuration for shared variables, such as AWS Region, AWS Credentials, etc. Fallback for missing broker-specific values.

If brokerfilter are non-None then they are used for filtering the brokers against their message filters. This is more efficient than initializing brokers that will never be used.

provision_brokers() returns a list of GeoWatchBroker brokers.

Examples

from geowatchutil.runtime import provision_brokers

config = {'aws_access_key_id':'', 'aws_secret_access_key':'', 'aws_region':''}
brokers = provision_brokers(settings.GEOWATCH_BROKERS_CRON, config=config)

for broker in brokers:

    broker.run(maxcycle=1)
geowatchutil.runtime.provision_consumer(backend, **kwargs)[source]
geowatchutil.runtime.provision_duplex(backend, **kwargs)[source]
geowatchutil.runtime.provision_node(backend, mode, **kwargs)[source]

Provision a new GeoWatch Node.

backend is either: ‘kafka’, ‘kinesis’, ‘slack’, ‘sns’, or ‘sqs’.

If client=None in kwargs, provision_producer() will create a client.

provision_producer() returns a tuple (client, producer).

Examples

from geowatchutil.runtime import provision_producer

client, consumer = provision_producer('kafka', host="localhost")

client, consumer = provision_producer(
    'kinesis',
    aws_region=aws_region,
    aws_access_key_id=aws_access_key_id,
    aws_secret_access_key=aws_secret_access_key,
    topic_prefix=topic_prefix)
geowatchutil.runtime.provision_producer(backend, **kwargs)[source]
geowatchutil.runtime.provision_store(backend, key, codec, **kwargs)[source]

Provision a new GeoWatch store.

backend is either: ‘file’, ‘memcached’, ‘s3’, or ‘wfs’.

codec is either: ‘plain’, ‘json’, ‘tilerequest’, or ‘wfs’.

provision_store() returns a store.

Examples

from geowatchutil.runtime import provision_store

store = provision_store(
    's3',
    'results.json',
    'json',
    aws_region=aws_region,
    aws_access_key_id=aws_access_key_id,
    aws_secret_access_key=aws_secret_access_key,
    aws_bucket=aws_bucket)