def get_connection(provider=None, region=None): """ Returns a connect to the specified provider :param provider: Name of provider (see `maestro.config.AVAILABLE_CLOUD_PROVIDERS`) :param region: Name of region """ drv = get_provider_driver(provider=provider, region=region) key = get_key(provider, region) conn = drv(key.get('id'), key.get('key')) return conn
def get_nodes(provider=None, region=None): """ Returns all nodes in region for provider :param provider: Name of provider (see `maestro.config.AVAILABLE_CLOUD_PROVIDERS`) :param region: Name of region """ Driver = get_provider_driver(provider, region) nodes = [] # check for ec2 east/west and use ec2 keys if provider.find('ec2') > -1: pk = env.provider_keys.get('ec2') else: pk = env.provider_keys[provider] try: log.debug('Getting nodes for {0} in {1}'.format(provider, region)) conn = Driver(pk.get('id'), pk.get('key')) nodes = conn.list_nodes() except Exception, e: log.warn('Unable to connect to {0} for {1}: {2}'.format(region, provider, e))
def test_get_ec2_provider_driver_us_west_1(self): ec2 = EC2NodeDriver(None, None) region = 'us-west-1' drv = get_provider_driver('ec2', region) self.assertTrue(drv.region_name, region)