summaryrefslogtreecommitdiffstats
path: root/examples/boto3/topic_with_endpoint.py
blob: 3137cee7d4069f6e1be3830d9a6ff3c9a15eedfa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/python

import boto3
import sys
import urlparse
from botocore.client import Config

if len(sys.argv) == 3:
    # topic name as first argument
    topic_name = sys.argv[1]
    # region name as second argument
    region_name = sys.argv[2]
elif len(sys.argv) == 2:
    # topic name as first argument
    topic_name = sys.argv[1]
    region_name = ""
else:
    print('Usage: ' + sys.argv[0] + ' <topic name> [region name]')
    sys.exit(1)

# endpoint and keys from vstart
endpoint = 'http://127.0.0.1:8000'
access_key='0555b35654ad1656d804'
secret_key='h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=='

client = boto3.client('sns',
        endpoint_url=endpoint,
        aws_access_key_id=access_key,
        region_name=region_name,
        aws_secret_access_key=secret_key,
        config=Config(signature_version='s3'))

# to see the list of available "regions" use:
# radosgw-admin realm zonegroup list

# this is standard AWS services call, using custom attributes to add AMQP endpoint information to the topic

endpoint_args = 'push-endpoint=amqp://127.0.0.1:5672&amqp-exchange=ex1&amqp-ack-level=broker'
attributes = {nvp[0] : nvp[1] for nvp in urlparse.parse_qsl(endpoint_args, keep_blank_values=True)}

print(client.create_topic(Name=topic_name, Attributes=attributes))