Merge lp:~niedbalski/charm-helpers/fix-lp-1489053 into lp:charm-helpers

Proposed by Jorge Niedbalski
Status: Merged
Merged at revision: 434
Proposed branch: lp:~niedbalski/charm-helpers/fix-lp-1489053
Merge into: lp:charm-helpers
Diff against target: 48 lines (+20/-2)
2 files modified
charmhelpers/contrib/network/ip.py (+5/-1)
tests/contrib/network/test_ip.py (+15/-1)
To merge this branch: bzr merge lp:~niedbalski/charm-helpers/fix-lp-1489053
Reviewer Review Type Date Requested Status
Felipe Reyes (community) Approve
Review via email: mp+269255@code.launchpad.net

Description of the change

This is the charm-helpers fix required to fix LP: #1489053

To post a comment you must log in.
Revision history for this message
Felipe Reyes (freyes) wrote :

Jorge, there is a minor detail in your change.

review: Needs Fixing
435. By Jorge Niedbalski

addressing freyes comment

Revision history for this message
Felipe Reyes (freyes) wrote :

LGTM, all tests pass

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'charmhelpers/contrib/network/ip.py'
2--- charmhelpers/contrib/network/ip.py 2015-03-03 02:16:13 +0000
3+++ charmhelpers/contrib/network/ip.py 2015-08-26 18:44:08 +0000
4@@ -435,8 +435,12 @@
5
6 rev = dns.reversename.from_address(address)
7 result = ns_query(rev)
8+
9 if not result:
10- return None
11+ try:
12+ result = socket.gethostbyaddr(address)[0]
13+ except:
14+ return None
15 else:
16 result = address
17
18
19=== modified file 'tests/contrib/network/test_ip.py'
20--- tests/contrib/network/test_ip.py 2015-03-03 02:16:13 +0000
21+++ tests/contrib/network/test_ip.py 2015-08-26 18:44:08 +0000
22@@ -670,11 +670,25 @@
23 apt_install.assert_called_with('python-dnspython')
24 self.assertEquals(hn, 'www.ubuntu.com')
25
26+ @patch('charmhelpers.contrib.network.ip.socket.gethostbyaddr')
27 @patch('charmhelpers.contrib.network.ip.ns_query')
28 @patch('charmhelpers.contrib.network.ip.apt_install')
29- def test_get_hostname_lookup_fail(self, apt_install, ns_query):
30+ def test_get_hostname_lookup_fail(self, apt_install, ns_query, socket):
31 fake_dns = FakeDNS('www.ubuntu.com')
32 ns_query.return_value = []
33+ socket.return_value = ()
34 with patch(builtin_import, side_effect=[fake_dns, fake_dns]):
35 hn = net_ip.get_hostname('4.2.2.1')
36 self.assertEquals(hn, None)
37+
38+ @patch('charmhelpers.contrib.network.ip.socket.gethostbyaddr')
39+ @patch('charmhelpers.contrib.network.ip.ns_query')
40+ @patch('charmhelpers.contrib.network.ip.apt_install')
41+ def test_get_hostname_lookup_fail_gethostbyaddr_fallback(
42+ self, apt_install, ns_query, socket):
43+ fake_dns = FakeDNS('www.ubuntu.com')
44+ ns_query.return_value = []
45+ socket.return_value = ("www.ubuntu.com", "", "")
46+ with patch(builtin_import, side_effect=[fake_dns]):
47+ hn = net_ip.get_hostname('4.2.2.1')
48+ self.assertEquals(hn, "www.ubuntu.com")

Subscribers

People subscribed via source and target branches