Blame SOURCES/cobbler-bz-253274.patch

1330ca
From 51f0baf6c7e6ef042ce6fa7543b37b0d2d723ae0 Mon Sep 17 00:00:00 2001
1330ca
From: =?UTF-8?q?Miroslav=20Such=C3=BD?= <msuchy@redhat.com>
1330ca
Date: Fri, 23 Sep 2011 13:56:07 +0200
1330ca
Subject: [PATCH] if hostname is not resolvable do not fail and use that
1330ca
 hostname
1330ca
1330ca
in commit 588756aa7aefc122310847d007becf3112647944 cobbler start using IP address in kickstart path due s390x
1330ca
but in BZ 253274 we have example where hostname is not resolvable from the location where cobbler run.
1330ca
But it is resolvable from location where client runs.
1330ca
So if cobbler is unable to resolve hostname, do not fail and revert to behaviour prior 588756aa7aefc122310847d007becf3112647944.
1330ca
1330ca
Addressing:
1330ca
Fri Sep 23 04:51:12 2011 - INFO | Exception occured: <class 'socket.gaierror'>
1330ca
Fri Sep 23 04:51:12 2011 - INFO | Exception value: [Errno -2] Name or service
1330ca
not known
1330ca
Fri Sep 23 04:51:12 2011 - INFO | Exception Info:
1330ca
  File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 1759, in
1330ca
_dispatch
1330ca
    return method_handle(*params)
1330ca
   File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 874, in
1330ca
save_system
1330ca
    return self.save_item("system",object_id,token,editmode=editmode)
1330ca
   File "/usr/lib/python2.6/site-packages/cobbler/remote.py", line 866, in
1330ca
save_item
1330ca
    rc = self.api.add_item(what,obj)
1330ca
   File "/usr/lib/python2.6/site-packages/cobbler/api.py", line 394, in
1330ca
add_item
1330ca
    return
1330ca
self.get_items(what).add(ref,check_for_duplicate_names=check_for_duplicate_names,save=save,logger=logger)
1330ca
   File "/usr/lib/python2.6/site-packages/cobbler/collection.py", line 284, in
1330ca
add
1330ca
    self.lite_sync.add_single_system(ref.name)
1330ca
   File "/usr/lib/python2.6/site-packages/cobbler/action_litesync.py", line
1330ca
142, in add_single_system
1330ca
    self.sync.pxegen.write_all_system_files(system)
1330ca
   File "/usr/lib/python2.6/site-packages/cobbler/pxegen.py", line 295, in
1330ca
write_all_system_files
1330ca
    self.write_pxe_file(f2,system,profile,distro,working_arch)
1330ca
   File "/usr/lib/python2.6/site-packages/cobbler/pxegen.py", line 566, in
1330ca
write_pxe_file
1330ca
    ipaddress = socket.gethostbyname_ex(blended["http_server"])[2][0]
1330ca
---
1330ca
 cobbler/pxegen.py |   19 ++++++++++++++-----
1330ca
 1 files changed, 14 insertions(+), 5 deletions(-)
1330ca
1330ca
diff --git a/cobbler/pxegen.py b/cobbler/pxegen.py
1330ca
index 889f363..32c8f01 100644
1330ca
--- a/cobbler/pxegen.py
1330ca
+++ b/cobbler/pxegen.py
1330ca
@@ -209,8 +209,11 @@ class PXEGen:
1330ca
             blended = utils.blender(self.api, True, system)
1330ca
             self.templar.render(template_cf, blended, cf)
1330ca
             # FIXME: profiles also need this data!
1330ca
-            # FIXME: the _conf and _parm files are limited to 80 characters in length 
1330ca
-            ipaddress = socket.gethostbyname_ex(blended["http_server"])[2][0]
1330ca
+            # FIXME: the _conf and _parm files are limited to 80 characters in length
1330ca
+            try: 
1330ca
+                ipaddress = socket.gethostbyname_ex(blended["http_server"])[2][0]
1330ca
+            except socket.gaierror:
1330ca
+                ipaddress = blended["http_server"]
1330ca
             kickstart_path = "http://%s/cblr/svc/op/ks/system/%s" % (ipaddress, system.name)
1330ca
             # gather default kernel_options and default kernel_options_s390x
1330ca
             kopts = blended.get("kernel_options","")
1330ca
@@ -321,8 +324,11 @@ class PXEGen:
1330ca
                 blended = utils.blender(self.api, True, profile)
1330ca
                 self.templar.render(template_cf, blended, cf)
1330ca
                 # FIXME: profiles also need this data!
1330ca
-                # FIXME: the _conf and _parm files are limited to 80 characters in length 
1330ca
-                ipaddress = socket.gethostbyname_ex(blended["http_server"])[2][0]
1330ca
+                # FIXME: the _conf and _parm files are limited to 80 characters in length
1330ca
+                try: 
1330ca
+                    ipaddress = socket.gethostbyname_ex(blended["http_server"])[2][0]
1330ca
+                except socket.gaierror:
1330ca
+                    ipaddress = blended["http_server"]
1330ca
                 kickstart_path = "http://%s/cblr/svc/op/ks/profile/%s" % (ipaddress, profile.name)
1330ca
                 # gather default kernel_options and default kernel_options_s390x
1330ca
                 kopts = blended.get("kernel_options","")
1330ca
@@ -666,7 +672,10 @@ class PXEGen:
1330ca
 
1330ca
             # FIXME: need to make shorter rewrite rules for these URLs
1330ca
 
1330ca
-            ipaddress = socket.gethostbyname_ex(blended["http_server"])[2][0]
1330ca
+            try:
1330ca
+                ipaddress = socket.gethostbyname_ex(blended["http_server"])[2][0]
1330ca
+            except socket.gaierror:
1330ca
+                ipaddress = blended["http_server"]
1330ca
             if system is not None and kickstart_path.startswith("/"):
1330ca
                 kickstart_path = "http://%s/cblr/svc/op/ks/system/%s" % (ipaddress, system.name)
1330ca
             elif kickstart_path.startswith("/"):
1330ca
-- 
1330ca
1.7.6.2
1330ca