Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > 7643f0c3f070d52835fec28a2433cbb9 > files > 19

euca2ools-1.3.1-10.fc13.src.rpm

--- euca2ools-1.3.1/euca2ools/euca2ools/__init__.py.uriparse	2010-12-07 23:02:46.820902570 -0600
+++ euca2ools-1.3.1/euca2ools/euca2ools/__init__.py	2010-12-07 23:07:56.137241108 -0600
@@ -45,6 +45,7 @@ from binascii import hexlify, unhexlify
 from subprocess import *
 import platform
 import urllib
+import urlparse
 import re
 import shutil
 from boto.ec2.regioninfo import RegionInfo
@@ -464,8 +465,7 @@ class Euca2ool:
         ):
         self.ec2_user_access_key = None
         self.ec2_user_secret_key = None
-        self.ec2_url = None
-        self.s3_url = None
+        self.url = None
         self.config_file_path = None
         self.is_s3 = is_s3
         if compat:
@@ -505,7 +505,7 @@ class Euca2ool:
                 except ValueError:
                     self.ec2_user_secret_key = value
             elif name in ('-U', '--url'):
-                self.ec2_url = value
+                self.url = value
             elif name == '--debug':
                 self.debug = True
             elif name == '--config':
@@ -574,40 +574,38 @@ class Euca2ool:
                 raise ConnectionFailed
 
         if not self.is_s3:
-            if not self.ec2_url:
-                self.ec2_url = self.environ['EC2_URL']
-                if not self.ec2_url:
-                    self.ec2_url = \
+            if not self.url:
+                self.url = self.environ['EC2_URL']
+                if not self.url:
+                    self.url = \
                         'http://localhost:8773/services/Eucalyptus'
                     print 'EC2_URL not specified. Trying %s' \
-                        % self.ec2_url
+                        % self.url
         else:
-            if not self.ec2_url:
-                self.ec2_url = self.environ['S3_URL']
-                if not self.ec2_url:
-                    self.ec2_url = \
+            if not self.url:
+                self.url = self.environ['S3_URL']
+                if not self.url:
+                    self.url = \
                         'http://localhost:8773/services/Walrus'
                     print 'S3_URL not specified. Trying %s' \
-                        % self.ec2_url
+                        % self.url
 
         self.port = None
         self.service_path = '/'
-        if self.ec2_url.find('https://') >= 0:
-            self.ec2_url = self.ec2_url.replace('https://', '')
+        rslt = urlparse.urlparse(self.url)
+        if rslt.scheme == 'https':
             self.is_secure = True
         else:
-            self.ec2_url = self.ec2_url.replace('http://', '')
             self.is_secure = False
-        self.host = self.ec2_url
-        url_parts = self.ec2_url.split(':')
-        if len(url_parts) > 1:
-            self.host = url_parts[0]
-            path_parts = url_parts[1].split('/', 1)
-            if len(path_parts) > 1:
-                self.port = int(path_parts[0])
-                self.service_path = self.service_path + path_parts[1]
-            else:
-                self.port = int(url_parts[1])
+
+        self.host = rslt.netloc
+        l = self.host.split(':')
+        if len(l) > 1:
+            self.host = l[0]
+            self.port = int(l[1])
+
+        if rslt.path:
+            self.service_path = rslt.path
 
         if not self.is_s3:
             return EC2Connection(