Using just socket.gethostbyaddr(socket.gethostname())[0] caused some
issues recently in one of my DHCP testing environments. Breaking down
the calls showed the following:
>> socket.gethostname()
'dhcp-186-211.bos.redhat.com'
>> socket.gethostbyname("dhcp-186-211.bos.redhat.com")
'10.16.186.211'
>> socket.gethostbyaddr(socket.gethostname())[0]
Traceback
(most recent call last):
File "<stdin>", line 1, in <module>
socket.herror: [Errno 1] Unknown host
While just a socket.gethostname() could have worked, using the
socket.getfqdn() seemed to be safer just in case.
---
lib/VirtLib/live.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/VirtLib/live.py b/lib/VirtLib/live.py
index c929e71..6a10474 100644
--- a/lib/VirtLib/live.py
+++ b/lib/VirtLib/live.py
@@ -100,6 +100,9 @@ def hostname(server):
return out
def full_hostname(server):
- """To return the fully qualifiec domain name(FQDN) of the
system"""
+ """To return the fully qualified domain name(FQDN) of the
system"""
- return socket.gethostbyaddr(socket.gethostname())[0]
+ if socket.getfqdn().find('.') >= 0:
+ return socket.getfqdn()
+ else:
+ return socket.gethostbyaddr(socket.gethostname())[0]
--
1.8.3.1