[Checkins] SVN: zc.buildout/branches/gary-launchpad/ merge from buildout trunk

Gary Poster gary.poster at canonical.com
Fri Mar 19 17:53:16 EDT 2010


Log message for revision 110070:
  merge from buildout trunk

Changed:
  _U  zc.buildout/branches/gary-launchpad/
  U   zc.buildout/branches/gary-launchpad/src/zc/buildout/buildout.py
  U   zc.buildout/branches/gary-launchpad/src/zc/buildout/buildout.txt

-=-

Property changes on: zc.buildout/branches/gary-launchpad
___________________________________________________________________
Modified: svn:mergeinfo
   - /zc.buildout/branches/gary-6:109416,109421,109426
/zc.buildout/branches/gary-7:109424,109427
/zc.buildout/branches/gary-5:109383,109387,109425
/zc.buildout/trunk:108946
/zc.buildout/branches/gary-8:109905,110061

   + /zc.buildout/branches/gary-6:109416,109421,109426
/zc.buildout/branches/gary-7:109424,109427
/zc.buildout/branches/gary-5:109383,109387,109425
/zc.buildout/trunk:108946,109993,109996
/zc.buildout/branches/gary-8:109905,110061

Modified: svk:merge
   - 62d5b8a3-27da-0310-9561-8e5933582275:/zc.buildout/branches/gary-8:109905
62d5b8a3-27da-0310-9561-8e5933582275:/zc.buildout/branches/gary-8:110061
62d5b8a3-27da-0310-9561-8e5933582275:/zc.buildout/trunk:108946

   + 62d5b8a3-27da-0310-9561-8e5933582275:/zc.buildout/branches/gary-8:109905
62d5b8a3-27da-0310-9561-8e5933582275:/zc.buildout/branches/gary-8:110061
62d5b8a3-27da-0310-9561-8e5933582275:/zc.buildout/trunk:108946
62d5b8a3-27da-0310-9561-8e5933582275:/zc.buildout/trunk:109996


Modified: zc.buildout/branches/gary-launchpad/src/zc/buildout/buildout.py
===================================================================
--- zc.buildout/branches/gary-launchpad/src/zc/buildout/buildout.py	2010-03-19 21:53:12 UTC (rev 110069)
+++ zc.buildout/branches/gary-launchpad/src/zc/buildout/buildout.py	2010-03-19 21:53:16 UTC (rev 110070)
@@ -32,6 +32,7 @@
 import re
 import shutil
 import sys
+import socket
 import tempfile
 import UserDict
 import zc.buildout
@@ -133,7 +134,18 @@
     'use-dependency-links': 'true',
     }, 'DEFAULT_VALUE')
 
+DEFAULT_SOCKET_TIMEOUT = socket.getdefaulttimeout()
 
+def _setup_socket_timeout(timeout_string):
+    try:
+        timeout = int(timeout_string)
+    except ValueError:
+        _error("Timeout value must be numeric [%s]." % timeout_string)
+    current_timeout = socket.getdefaulttimeout()
+    if current_timeout <> timeout:
+        socket.setdefaulttimeout(timeout)
+
+
 class Buildout(UserDict.DictMixin):
 
     def __init__(self, config_file, cloptions,
@@ -261,7 +273,7 @@
                                                 options['installed'])
 
         self._setup_logging()
-        self._setup_socket_timeout()
+        self._display_socket_timeout()
 
         offline = options['offline']
         if offline not in ('true', 'false'):
@@ -787,18 +799,11 @@
     def _error(self, message, *args):
         raise zc.buildout.UserError(message % args)
 
-    def _setup_socket_timeout(self):
-        timeout = self['buildout']['socket-timeout']
-        if timeout <> '':
-            try:
-                timeout = int(timeout)
-                import socket
-                self._logger.info('Setting socket time out to %d seconds.', timeout)
-                socket.setdefaulttimeout(timeout)
-            except ValueError:
-                self._logger.warning("Default socket timeout is used !\n"
-                    "Value in configuration is not numeric: [%s].\n",
-                    timeout)
+    def _display_socket_timeout(self):
+        current_timeout = socket.getdefaulttimeout()
+        if current_timeout <> DEFAULT_SOCKET_TIMEOUT:
+            info_msg = 'Socket timeout is set to %d seconds.' % current_timeout
+            self._logger.info(info_msg)
 
     def _setup_logging(self):
         root_logger = logging.getLogger()
@@ -1377,13 +1382,18 @@
         os.remove(path)
 
     extends = extended_by = None
+    socket_timeout = None
     for section in parser.sections():
         options = dict(parser.items(section))
         if section == 'buildout':
             extends = options.pop('extends', extends)
             extended_by = options.pop('extended-by', extended_by)
+            socket_timeout = options.pop('socket-timeout', socket_timeout)
         result[section] = options
 
+    if socket_timeout is not None:
+        _setup_socket_timeout(socket_timeout)
+
     result = _annotate(result, filename)
 
     if root_config_file and 'buildout' in result:
@@ -1677,12 +1687,10 @@
                 elif op_ == 't':
                     try:
                         timeout_string = args.pop(0)
-                        timeout = int(timeout_string)
+                        _setup_socket_timeout(timeout_string)
                         options.append(('buildout', 'socket-timeout', timeout_string))
                     except IndexError:
-                        _error("No timeout value specified for option", orig_op)
-                    except ValueError:
-                        _error("Timeout value must be numeric", orig_op)
+                        _error("No timeout value specified for option t", orig_op)
             elif op:
                 if orig_op == '--help':
                     _help()

Modified: zc.buildout/branches/gary-launchpad/src/zc/buildout/buildout.txt
===================================================================
--- zc.buildout/branches/gary-launchpad/src/zc/buildout/buildout.txt	2010-03-19 21:53:12 UTC (rev 110069)
+++ zc.buildout/branches/gary-launchpad/src/zc/buildout/buildout.txt	2010-03-19 21:53:16 UTC (rev 110070)
@@ -1535,15 +1535,14 @@
     ... """)
 
     >>> print system(buildout),
-    Setting socket time out to 5 seconds.
+    Socket timeout is set to 5 seconds.
     Develop: '/sample-buildout/recipes'
     Uninstalling debug.
     Installing debug.
     op timeout
     recipe recipes:debug
 
-If the socket-timeout is not numeric, a warning is issued and the default
-timeout of the Python socket module is used.
+If socket-timeout is not numeric, an error message is issued.
 
     >>> write(sample_buildout, 'buildout.cfg',
     ... """
@@ -1558,13 +1557,7 @@
     ... """)
 
     >>> print system(buildout),
-    Default socket timeout is used !
-    Value in configuration is not numeric: [5s].
-    <BLANKLINE>
-    Develop: '/sample-buildout/recipes'
-    Updating debug.
-    op timeout
-    recipe recipes:debug
+    Error: Timeout value must be numeric [5s].
 
 Uninstall recipes
 -----------------



More information about the checkins mailing list