56 lines
2.2 KiB
Diff
56 lines
2.2 KiB
Diff
|
# HG changeset patch
|
||
|
# User Michael Young <m.a.young@durham.ac.uk>
|
||
|
# Date 1282234170 -3600
|
||
|
# Node ID 2940165380de2348e0ea3f628dea35750a2b4c8f
|
||
|
# Parent 60746a2c14a6cc123892f973fbdd6acb73251d39
|
||
|
tools/python: fix xm list for Python 2.7
|
||
|
|
||
|
This patch fixes
|
||
|
Unexpected error: <type 'exceptions.AttributeError'>
|
||
|
This is due to xmlrpc changes in Python 2.7. This patch should
|
||
|
fixe it for both old and new versions.
|
||
|
|
||
|
Signed-off-by: Michael Young <m.a.young@durham.ac.uk>
|
||
|
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||
|
|
||
|
Index: xen-4.0.1-testing/tools/python/xen/util/xmlrpcclient.py
|
||
|
===================================================================
|
||
|
--- xen-4.0.1-testing.orig/tools/python/xen/util/xmlrpcclient.py
|
||
|
+++ xen-4.0.1-testing/tools/python/xen/util/xmlrpcclient.py
|
||
|
@@ -22,6 +22,7 @@ import socket
|
||
|
import string
|
||
|
import xmlrpclib
|
||
|
from types import StringTypes
|
||
|
+from sys import hexversion
|
||
|
|
||
|
|
||
|
try:
|
||
|
@@ -54,7 +55,12 @@ class UnixTransport(xmlrpclib.Transport)
|
||
|
return xmlrpclib.Transport.request(self, host, '/RPC2',
|
||
|
request_body, verbose)
|
||
|
def make_connection(self, host):
|
||
|
- return HTTPUnix(self.__handler)
|
||
|
+ if hexversion < 0x02070000:
|
||
|
+ # python 2.6 or earlier
|
||
|
+ return HTTPUnix(self.__handler)
|
||
|
+ else:
|
||
|
+ # xmlrpclib.Transport changed in python 2.7
|
||
|
+ return HTTPUnixConnection(self.__handler)
|
||
|
|
||
|
|
||
|
# We need our own transport for HTTPS, because xmlrpclib.SafeTransport is
|
||
|
Index: xen-4.0.1-testing/tools/python/xen/util/xmlrpclib2.py
|
||
|
===================================================================
|
||
|
--- xen-4.0.1-testing.orig/tools/python/xen/util/xmlrpclib2.py
|
||
|
+++ xen-4.0.1-testing/tools/python/xen/util/xmlrpclib2.py
|
||
|
@@ -58,6 +58,9 @@ def stringify(value):
|
||
|
# some bugs in Keep-Alive handling and also enabled it by default
|
||
|
class XMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
|
||
|
protocol_version = "HTTP/1.1"
|
||
|
+ # xend crashes in python 2.7 unless disable_nagle_algorithm = False
|
||
|
+ # it isn't used in earlier versions so it is harmless to set it generally
|
||
|
+ disable_nagle_algorithm = False
|
||
|
|
||
|
def __init__(self, hosts_allowed, request, client_address, server):
|
||
|
self.hosts_allowed = hosts_allowed
|