Skip to content

Commit 2deb99d

Browse files
authored
fix: resolve race condition for consul token (#599)
1 parent ddcd0e5 commit 2deb99d

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

salt/_states/consul.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
def external_service(name, datacenter, node, address, port, token=None):
22
ret = {'name': name, 'changes': {}, 'result': False, 'comment': ''}
33

4-
if token is None:
5-
token = __pillar__['consul']['acl']['tokens']['default']
6-
7-
# Determine if the cluster is ready
4+
# Determine if the cluster is ready first, before trying to get token
85
if not __salt__["consul.cluster_ready"]():
96
ret["result"] = True
107
ret["comment"] = "Consul cluster is not ready."
118
return ret
129

10+
# Get token after confirming cluster is ready
11+
if token is None:
12+
token = __pillar__['consul']['acl']['tokens']['default']
13+
1314
# Determine if the node we're attempting to register exists
1415
if __salt__["consul.node_exists"](node, address, dc=datacenter):
1516
# Determine if the service we're attempting to register exists

salt/consul/init.sls

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,5 @@ consul-external-{{ service.service }}:
127127
- port: {{ service.port }}
128128
- require:
129129
- pkg: python-requests
130+
- service: consul
130131
{% endfor %}

0 commit comments

Comments
 (0)