[master 04/10] Adjust _getTreeInfo so that proxy_url can be passed

Brian C. Lane bcl at redhat.com
Tue Mar 12 00:13:31 UTC 2013


From: "Brian C. Lane" <bcl at redhat.com>

The caller shouldn't need to know the details of proxies, instead it
should be able to just pass the proxy_url.
---
 pyanaconda/packaging/__init__.py | 40 +++++++++++++++++++++++++---------------
 1 file changed, 25 insertions(+), 15 deletions(-)

diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
index aacb84f..edb27c2 100644
--- a/pyanaconda/packaging/__init__.py
+++ b/pyanaconda/packaging/__init__.py
@@ -377,17 +377,37 @@ class Payload(object):
     ##
     ## METHODS FOR TREE VERIFICATION
     ##
-    def _getTreeInfo(self, url, sslverify, proxies):
-        """ Retrieve treeinfo and return the path to the local file. """
+    def _getTreeInfo(self, url, proxy_url, sslverify):
+        """ Retrieve treeinfo and return the path to the local file.
+
+            :param baseurl: url of the repo
+            :type baseurl: string
+            :param proxy_url: Optional full proxy URL of or ""
+            :type proxy_url: string
+            :param sslverify: True if SSL certificate should be varified
+            :type sslverify: bool
+            :returns: Path to retrieved .treeinfo file or None
+            :rtype: string or None
+        """
         if not url:
             return None
 
-        log.debug("retrieving treeinfo from %s (proxies: %s ; sslverify: %s)"
-                    % (url, proxies, sslverify))
+        log.debug("retrieving treeinfo from %s (proxy: %s ; sslverify: %s)"
+                    % (url, proxy_url, sslverify))
 
         ugopts = {"ssl_verify_peer": sslverify,
                   "ssl_verify_host": sslverify}
 
+        proxies = {}
+        if proxy_url:
+            try:
+                proxy = ProxyString(proxy_url)
+                proxies = {"http": proxy.url,
+                           "https": proxy.url}
+            except ProxyStringError as e:
+                log.info("Failed to parse proxy for _getTreeInfo %s: %s" \
+                         % (proxy_url, e))
+
         ug = URLGrabber()
         try:
             treeinfo = ug.urlgrab("%s/.treeinfo" % url,
@@ -411,17 +431,7 @@ class Payload(object):
         log.debug("getting release version from tree at %s (%s)" % (url,
                                                                     version))
 
-        proxies = {}
-        if self.data.method.proxy:
-            try:
-                proxy = ProxyString(self.data.method.proxy)
-                proxies = {"http": proxy.url,
-                           "https": proxy.url}
-            except ProxyStringError as e:
-                log.info("Failed to parse proxy for _getReleaseVersion %s: %s" \
-                         % (self.data.method.proxy, e))
-
-        treeinfo = self._getTreeInfo(url, not flags.noverifyssl, proxies)
+        treeinfo = self._getTreeInfo(url, self.data.method.proxy, not flags.noverifyssl)
         if treeinfo:
             c = ConfigParser.ConfigParser()
             c.read(treeinfo)
-- 
1.8.1.2



More information about the anaconda-patches mailing list