Merge ~pjdc/ubuntu-mirror-charm/+git/ubuntu-mirror-charm:default-v6 into ubuntu-mirror-charm:master

Proposed by Paul Collins
Status: Merged
Approved by: Haw Loeung
Approved revision: 53baf86bc3cfd68eb753dd23e7aaeb00056b0e56
Merged at revision: 3775701f7862cf739540a60f76120a9f66ec9737
Proposed branch: ~pjdc/ubuntu-mirror-charm/+git/ubuntu-mirror-charm:default-v6
Merge into: ubuntu-mirror-charm:master
Diff against target: 56 lines (+23/-14)
1 file modified
hooks/hooks.py (+23/-14)
Reviewer Review Type Date Requested Status
Haw Loeung +1 Approve
Canonical IS Reviewers Pending
Review via email: mp+381482@code.launchpad.net

Commit message

rewrite my_ipaddr as get_default_address

To post a comment you must log in.
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

This merge proposal is being monitored by mergebot. Change the status to Approved to merge.

Revision history for this message
Haw Loeung (hloeung) wrote :

LGTM

review: Approve (+1)
Revision history for this message
🤖 Canonical IS Merge Bot (canonical-is-mergebot) wrote :

Change successfully merged at revision 3775701f7862cf739540a60f76120a9f66ec9737

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/hooks/hooks.py b/hooks/hooks.py
index 448c752..f5b932e 100755
--- a/hooks/hooks.py
+++ b/hooks/hooks.py
@@ -80,20 +80,24 @@ def juju_header():
80 return header80 return header
8181
8282
83#83# Google Public DNS addresses are good "cannot possibly be internal" destinations
84# Make an educated guess at our external IP address84GET_DEFAULT_ADDRESS_DESTINATIONS = {
85#85 socket.AF_INET: ("8.8.8.8", 53),
86def my_ipaddr():86 socket.AF_INET6: ("2001:4860:4860::8888", 53),
87 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)87}
88
89
90def get_default_address(af):
91 """Determine our default address for the given address family."""
88 try:92 try:
89 # Use some arbitrary external address here93 s = socket.socket(af, socket.SOCK_DGRAM)
90 s.connect(("ntp.ubuntu.com", 123))94 s.connect(GET_DEFAULT_ADDRESS_DESTINATIONS[af])
91 except socket.error:95 return s.getsockname()[0]
92 log("CHARM: Unable to determine local IP address - possible DNS issues")96 except Exception as e:
93 return "127.0.1.1"97 log("CHARM: Unable to determine local {} address: {}".format(af.name, str(e)))
94 ipaddr = s.getsockname()[0]98 return None
95 s.close()99 finally:
96 return ipaddr100 s.close()
97101
98102
99def get_pkg_version(name):103def get_pkg_version(name):
@@ -608,7 +612,12 @@ def configure_nrpe():
608 if 'addresses' in role_config:612 if 'addresses' in role_config:
609 tmpl_data["ipaddr"] = ' '.join(role_config['addresses'])613 tmpl_data["ipaddr"] = ' '.join(role_config['addresses'])
610 else:614 else:
611 tmpl_data["ipaddr"] = my_ipaddr()615 ipaddr = get_default_address(socket.AF_INET)
616 if not ipaddr:
617 error = 'Could not determine default IP address!'
618 status_set('blocked', error)
619 raise Exception(error)
620 tmpl_data["ipaddr"] = ipaddr
612 tmpl_data["port"] = 80621 tmpl_data["port"] = 80
613 tmpl_data["role"] = role622 tmpl_data["role"] = role
614 tmpl_data["path"] = mirror["path"]623 tmpl_data["path"] = mirror["path"]

Subscribers

People subscribed via source and target branches