This repository has been archived by the owner on Oct 10, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeployment_manager_pubsub.py
64 lines (59 loc) · 2.55 KB
/
deployment_manager_pubsub.py
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
def GenerateConfig(context):
resources = []
chains = ['bitcoin', 'bitcoin_cash', 'dogecoin', 'litecoin', 'dash', 'zcash']
for chain in chains:
topic_name_prefix = 'crypto_' + chain
subscription_name_prefix = 'crypto_' + chain + '.dataflow.bigquery'
# 7 days
message_retention_duration = '604800s'
# blocks
blocks_topic_name = topic_name_prefix + '.blocks'
blocks_topic_resource_name = topic_name_prefix + '.blocks'.replace('.', '-')
blocks_subscription_name = subscription_name_prefix + '.blocks'
blocks_subscription_resource_name = (subscription_name_prefix + '.blocks').replace('.', '-')
resources.append({
'name': blocks_topic_resource_name,
'type': 'pubsub.v1.topic',
'properties': {
'topic': blocks_topic_name
}
})
resources.append({
'name': blocks_subscription_resource_name,
'type': 'pubsub.v1.subscription',
'properties': {
'subscription': blocks_subscription_name,
'topic': '$(ref.' + blocks_topic_resource_name + '.name)',
'ackDeadlineSeconds': 30,
'retainAckedMessages': True,
'messageRetentionDuration': message_retention_duration,
'expirationPolicy': {
}
}
})
# transactions
transactions_topic_name = topic_name_prefix + '.transactions'
transactions_topic_resource_name = topic_name_prefix + '.transactions'.replace('.', '-')
transactions_subscription_name = subscription_name_prefix + '.transactions'
transactions_subscription_resource_name = (subscription_name_prefix + '.transactions').replace('.', '-')
resources.append({
'name': transactions_topic_resource_name,
'type': 'pubsub.v1.topic',
'properties': {
'topic': transactions_topic_name
}
})
resources.append({
'name': transactions_subscription_resource_name,
'type': 'pubsub.v1.subscription',
'properties': {
'subscription': transactions_subscription_name,
'topic': '$(ref.' + transactions_topic_resource_name + '.name)',
'ackDeadlineSeconds': 30,
'retainAckedMessages': True,
'messageRetentionDuration': message_retention_duration,
'expirationPolicy': {
}
}
})
return {'resources': resources}