Skip to content

Commit 54387b9

Browse files
mikkeloscarhughcapet
authored andcommitted
Correctly format URLs when address is IPv6
Signed-off-by: Mikkel Oscar Lyderik Larsen <mikkel.larsen@zalando.de>
1 parent b75fb61 commit 54387b9

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

postgres-appliance/scripts/configure_spilo.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ def deep_update(a, b):
268268
scope: &scope '{{SCOPE}}'
269269
restapi:
270270
listen: ':{{APIPORT}}'
271-
connect_address: {{RESTAPI_CONNECT_ADDRESS}}:{{APIPORT}}
271+
connect_address: '{{RESTAPI_CONNECT_ADDRESS}}'
272272
{{#SSL_RESTAPI_CA_FILE}}
273273
cafile: {{SSL_RESTAPI_CA_FILE}}
274274
{{/SSL_RESTAPI_CA_FILE}}
@@ -284,7 +284,7 @@ def deep_update(a, b):
284284
use_unix_socket_repl: true
285285
name: '{{instance_data.id}}'
286286
listen: '*:{{PGPORT}}'
287-
connect_address: {{instance_data.ip}}:{{PGPORT}}
287+
connect_address: '{{PG_CONNECT_ADDRESS}}'
288288
data_dir: {{PGDATA}}
289289
parameters:
290290
archive_command: {{{postgresql.parameters.archive_command}}}
@@ -697,7 +697,11 @@ def get_placeholders(provider):
697697
placeholders['postgresql']['parameters']['max_connections'] = min(max(100, int(os_memory_mb/30)), 1000)
698698

699699
placeholders['instance_data'] = get_instance_metadata(provider)
700-
placeholders.setdefault('RESTAPI_CONNECT_ADDRESS', placeholders['instance_data']['ip'])
700+
restapi_connect_address = format_url(placeholders['instance_data']['ip'], placeholders.get("APIPORT"))
701+
placeholders.setdefault('RESTAPI_CONNECT_ADDRESS', restapi_connect_address)
702+
703+
connect_address = format_url(placeholders['instance_data']['ip'], placeholders.get("PGPORT"))
704+
placeholders.setdefault("PG_CONNECT_ADDRESS", connect_address)
701705

702706
placeholders['BGMON_LISTEN_IP'] = get_listen_ip()
703707

@@ -719,6 +723,12 @@ def get_placeholders(provider):
719723
return placeholders
720724

721725

726+
def format_url(host, port):
727+
if ":" in host:
728+
return "[" + host + "]" + ":" + port
729+
return host + ":" + port
730+
731+
722732
def pystache_render(*args, **kwargs):
723733
render = pystache.Renderer(missing_tags='strict')
724734
return render.render(*args, **kwargs)

0 commit comments

Comments
 (0)