Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- So this thing:
- ```python
- class BotoConnection(object):
- def __new__(cls, profile_name, services):
- if not hasattr(cls, '__instance__'):
- cls.__instance__ = super(BotoConnection, cls)\
- .__new__(cls, profile_name, services)
- return cls.__instance__
- def __init__(self, profile_name, services):
- self.__connect_to_boto_services(profile_name, services)
- def __connect_to_boto_services(self, profile_name, services):
- for service_name in services:
- attribute_name = service_name.split('.')[-1]
- if hasattr(self, attribute_name):
- raise Exception("'%s' service connection already exists. Did "
- "you define the same service twice, or have "
- "two services with the same module "
- "name?" % attribute_name)
- service = import_module(service_name)
- connection = service.connect_to_region(
- env.region, profile_name=env.profile_name)
- setattr(self, attribute_name, connection)
- ```
- Allows me to go:
- ```python
- # Boto connections
- services = [
- 'boto.ec2',
- 'boto.ec2.elb',
- 'boto.ec2.autoscale',
- 'boto.ec2.cloudwatch',
- 'boto.route53',
- 'boto.s3']
- env.connections = utils.BotoConnection(
- profile_name=env.profile_name, services=services)
- ```
- In my `fabconfig.py` and then:
- ```python
- reservations = env.connections.ec2.get_all_instances(
- instance_ids=[instance_id])
- ```
- In my build modules.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement