3 from boto.ec2.regioninfo import RegionInfo
4 from boto.exception import EC2ResponseError
9 from sfa.util.sfalogging import logger
10 from sfa.openstack.nova_shell import NovaShell
11 from sfa.util.config import Config
15 A xmlrpc connection to the euca api.
18 def __init__(self, config):
21 def get_euca_connection(self):
23 logger.info('Unable to access EC2 API - boto library not found.')
25 nova = NovaShell(self.config)
26 admin_user = nova.auth_manager.get_user(self.config.SFA_NOVA_USER)
27 #access_key = admin_user.access
28 access_key = '%s' % admin_user.name
29 secret_key = admin_user.secret
30 url = self.config.SFA_NOVA_API_URL
35 # Split the url into parts
36 if url.find('https://') >= 0:
38 url = url.replace('https://', '')
39 elif url.find('http://') >= 0:
41 url = url.replace('http://', '')
42 parts = url.split(':')
45 parts = parts[1].split('/')
48 path = '/'+'/'.join(parts)
49 return boto.connect_ec2(aws_access_key_id=access_key,
50 aws_secret_access_key=secret_key,
52 region=RegionInfo(None, 'eucalyptus', host),
57 def __getattr__(self, name):
58 def func(*args, **kwds):
59 conn = self.get_euca_connection()