open() instead of file()
[sfa.git] / sfa / client / manifolduploader.py
index 8354e1e..3b9de16 100755 (executable)
@@ -27,11 +27,13 @@ DEFAULT_PLATFORM = 'ple'
 
 # starting with 2.7.9 we need to turn off server verification
 import ssl
-ssl_needs_unverified_context = hasattr(ssl, '_create_unverified_context')
+try:    turn_off_server_verify = { 'context' : ssl._create_unverified_context() } 
+except: turn_off_server_verify = {}
 
-import xmlrpclib
 import getpass
 
+from sfa.util.py23 import xmlrpc_client
+
 class ManifoldUploader:
     """A utility class for uploading delegated credentials to a manifold/MySlice infrastructure"""
 
@@ -78,15 +80,13 @@ class ManifoldUploader:
 #        if not self._proxy:
 #            url=self.url()
 #            self.logger.info("Connecting manifold url %s"%url)
-#            self._proxy = xmlrpclib.ServerProxy(url, allow_none = True)
+#            self._proxy = xmlrpc_client.ServerProxy(url, allow_none = True)
 #        return self._proxy
         url=self.url()
         self.logger.debug("Connecting manifold url %s"%url)
-        if not ssl_needs_unverified_context:
-            proxy = xmlrpclib.ServerProxy(url, allow_none = True)
-        else:
-            proxy = xmlrpclib.ServerProxy(url, allow_none = True,
-                                          context=ssl._create_unverified_context())
+        proxy = xmlrpc_client.ServerProxy(url, allow_none = True,
+                                          **turn_off_server_verify)
+
         return proxy
 
     # does the job for one credential
@@ -114,7 +114,7 @@ class ManifoldUploader:
             try:
                 self.logger.debug("Using new v2 method forward+annotation@%s %s"%(platform,message))
                 retcod2=manifold.forward (query, annotation)
-            except Exception,e:
+            except Exception as e:
                 # xxx we need a constant constant for UNKNOWN, how about using 1
                 MANIFOLD_UNKNOWN=1
                 retcod2={'code':MANIFOLD_UNKNOWN,'description':"%s"%e}
@@ -130,7 +130,7 @@ class ManifoldUploader:
             self.logger.debug("****** full retcod2")
             for (k,v) in retcod2.items(): self.logger.debug("**** %s: %s"%(k,v))
             return False
-        except Exception, e:
+        except Exception as e:
             if message: self.logger.error("Could not upload %s %s"%(message,e))
             else:        self.logger.error("Could not upload credential %s"%e)
             if self.logger.debugEnabled():
@@ -164,7 +164,7 @@ def main ():
                                  logger=sfi_logger)
 
     for filename in args.credential_files:
-        with file(filename) as f:
+        with open(filename) as f:
             result=uploader.upload (f.read(),filename)
             sfi_logger.info('... result=%s'%result)