Re: [Freeipa-devel] [PATCH] 029 ipa-dns-install does not exit on error

2011-02-11 Thread Rob Crittenden

Martin Kosek wrote:

On Thu, 2011-02-10 at 13:58 -0500, Rob Crittenden wrote:

Martin Kosek wrote:

This patch fixes behavior of ipa-dns-install, which does not
exit when an invalid configuration of /etc/hosts is detected.

https://fedorahosted.org/freeipa/ticket/736


I'm not positive but was the address info checking done within the try
to catch any possible exception?

This code dates back to very early IPA code (say 4 years old or so) when
we were pretty new to python and somethings catching things in a very
broad way.

Is it possible that running through the addresses could raise an
unhandled exception?

rob


Rob, thanks for the review. Well, I think the unhandled code should not
raise any exception - we are not calling any external function, just
going through an array. But to bulletproof it, I have added a check just
to be sure that we do it right even when socket.getaddrinfo would return
empty result and did not raise an exception. Patch is attached.

I moved the exception handling closer to the socket.getaddrinfo to
actually be able to easily call sys.exit().

Martin


I modified your patch very slightly to add a period to the end of 
Please fix your /etc/hosts file as requested in the ticket.


Ack, pushed to master

rob

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


[Freeipa-devel] [PATCH] 029 ipa-dns-install does not exit on error

2011-02-10 Thread Martin Kosek
This patch fixes behavior of ipa-dns-install, which does not
exit when an invalid configuration of /etc/hosts is detected.

https://fedorahosted.org/freeipa/ticket/736

From 0c75da337003e0660679534928a70b6b7317c3e8 Mon Sep 17 00:00:00 2001
From: Martin Kosek mko...@redhat.com
Date: Thu, 10 Feb 2011 14:18:57 +0100
Subject: [PATCH] ipa-dns-install does not exit on error

This patch fixes behavior of ipa-dns-install, which does not
exit when an invalid configuration of /etc/hosts is detected.

https://fedorahosted.org/freeipa/ticket/736
---
 install/tools/ipa-dns-install |   28 
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/install/tools/ipa-dns-install b/install/tools/ipa-dns-install
index 66cdaffd8a18b1ba3771f14cf17e61edc021f1e0..35d225537aec919cd3d379cace6ca5cc0c41e3ad 100755
--- a/install/tools/ipa-dns-install
+++ b/install/tools/ipa-dns-install
@@ -67,19 +67,23 @@ def resolve_host(host_name):
 try:
 addrinfos = socket.getaddrinfo(host_name, None,
socket.AF_UNSPEC, socket.SOCK_DGRAM)
-for ai in addrinfos:
-ip = ai[4][0]
-if ip == 127.0.0.1 or ip == ::1:
-print The hostname resolves to the localhost address (127.0.0.1/::1)
-print Please change your /etc/hosts file so that the hostname
-print resolves to the ip address of your network interface.
-print 
-print Please fix your /etc/hosts file and restart the setup program
-return None
-
-ip = addrinfos[0][4][0]
 except:
 print Unable to lookup the IP address of the provided host
+return None
+
+for ai in addrinfos:
+ip = ai[4][0]
+if ip == 127.0.0.1 or ip == ::1:
+print The hostname resolves to the localhost address (127.0.0.1/::1)
+print Please change your /etc/hosts file so that the hostname
+print resolves to the ip address of your network interface.
+print 
+print Please fix your /etc/hosts file and restart the setup program.
+print 
+sys.exit(Aborting installation.)
+
+ip = addrinfos[0][4][0]
+
 return ip
 
 def main():
@@ -108,7 +112,7 @@ def main():
 
 # Check bind packages are installed
 if not bindinstance.check_inst(options.unattended):
-sys.exit(Aborting installation)
+sys.exit(Aborting installation.)
 
 # Initialize the ipalib api
 cfg = dict(
-- 
1.7.4

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Re: [Freeipa-devel] [PATCH] 029 ipa-dns-install does not exit on error

2011-02-10 Thread Rob Crittenden

Martin Kosek wrote:

This patch fixes behavior of ipa-dns-install, which does not
exit when an invalid configuration of /etc/hosts is detected.

https://fedorahosted.org/freeipa/ticket/736


I'm not positive but was the address info checking done within the try 
to catch any possible exception?


This code dates back to very early IPA code (say 4 years old or so) when 
we were pretty new to python and somethings catching things in a very 
broad way.


Is it possible that running through the addresses could raise an 
unhandled exception?


rob

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 029 ipa-dns-install does not exit on error

2011-02-10 Thread Martin Kosek
On Thu, 2011-02-10 at 13:58 -0500, Rob Crittenden wrote:
 Martin Kosek wrote:
  This patch fixes behavior of ipa-dns-install, which does not
  exit when an invalid configuration of /etc/hosts is detected.
 
  https://fedorahosted.org/freeipa/ticket/736
 
 I'm not positive but was the address info checking done within the try 
 to catch any possible exception?
 
 This code dates back to very early IPA code (say 4 years old or so) when 
 we were pretty new to python and somethings catching things in a very 
 broad way.
 
 Is it possible that running through the addresses could raise an 
 unhandled exception?
 
 rob

Rob, thanks for the review. Well, I think the unhandled code should not
raise any exception - we are not calling any external function, just
going through an array. But to bulletproof it, I have added a check just
to be sure that we do it right even when socket.getaddrinfo would return
empty result and did not raise an exception. Patch is attached.

I moved the exception handling closer to the socket.getaddrinfo to
actually be able to easily call sys.exit().

Martin
From 1b361dbe9469a5896140ce7ce819d4013d93d0cd Mon Sep 17 00:00:00 2001
From: Martin Kosek mko...@redhat.com
Date: Thu, 10 Feb 2011 14:18:57 +0100
Subject: [PATCH] ipa-dns-install does not exit on error

This patch fixes behavior of ipa-dns-install, which does not
exit when an invalid configuration of /etc/hosts is detected.

https://fedorahosted.org/freeipa/ticket/736
---
 install/tools/ipa-dns-install |   29 +
 1 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/install/tools/ipa-dns-install b/install/tools/ipa-dns-install
index 66cdaffd8a18b1ba3771f14cf17e61edc021f1e0..57a9cb36eb86e408e305c9b1e2431e4e54cce621 100755
--- a/install/tools/ipa-dns-install
+++ b/install/tools/ipa-dns-install
@@ -67,19 +67,24 @@ def resolve_host(host_name):
 try:
 addrinfos = socket.getaddrinfo(host_name, None,
socket.AF_UNSPEC, socket.SOCK_DGRAM)
-for ai in addrinfos:
-ip = ai[4][0]
-if ip == 127.0.0.1 or ip == ::1:
-print The hostname resolves to the localhost address (127.0.0.1/::1)
-print Please change your /etc/hosts file so that the hostname
-print resolves to the ip address of your network interface.
-print 
-print Please fix your /etc/hosts file and restart the setup program
-return None
-
-ip = addrinfos[0][4][0]
 except:
 print Unable to lookup the IP address of the provided host
+return None
+
+for ai in addrinfos:
+ip = ai[4][0]
+if ip == 127.0.0.1 or ip == ::1:
+print The hostname resolves to the localhost address (127.0.0.1/::1)
+print Please change your /etc/hosts file so that the hostname
+print resolves to the ip address of your network interface.
+print 
+print Please fix your /etc/hosts file and restart the setup program.
+print 
+sys.exit(Aborting installation.)
+
+if addrinfos:
+ip = addrinfos[0][4][0]
+
 return ip
 
 def main():
@@ -108,7 +113,7 @@ def main():
 
 # Check bind packages are installed
 if not bindinstance.check_inst(options.unattended):
-sys.exit(Aborting installation)
+sys.exit(Aborting installation.)
 
 # Initialize the ipalib api
 cfg = dict(
-- 
1.7.4

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel