def test_parse_url(self): self.assertEqual( dict( utils.parse_url_config( 'aws://target?format=json®ion=us-west-2')), dict(url='aws://target?format=json®ion=us-west-2', netloc='target', path='', scheme='aws', region='us-west-2', format='json')) self.assertEqual(dict(utils.parse_url_config('')), { 'netloc': '', 'path': '', 'scheme': '', 'url': '' }) self.assertEqual(dict(utils.parse_url_config('aws')), { 'path': '', 'scheme': 'aws', 'netloc': '', 'url': 'aws://' }) self.assertEqual(dict(utils.parse_url_config('aws://')), { 'path': '', 'scheme': 'aws', 'netloc': '', 'url': 'aws://' })
def __init__(self, ctx, config): self.ctx = ctx # we allow format strings in output urls so reparse config # post interpolation. self.config = parse_url_config(self.get_output_path(config['url'])) self.bucket = self.config.netloc self.key_prefix = self.config.path.strip('/') self.root_dir = tempfile.mkdtemp()
def initialize(self, options): """ """ _default_region(options) _default_account_id(options) if options.tracer and options.tracer.startswith('xray') and HAVE_XRAY: XrayTracer.initialize(utils.parse_url_config(options.tracer)) return options
def get_log_output(request, output_url): log = StackDriverLogging( ExecutionContext(lambda assume=False: mock.MagicMock(), Bag(name="xyz", provider_name="gcp", resource_type='gcp.function'), Config.empty(account_id='custodian-test')), parse_url_config(output_url)) request.addfinalizer(reset_session_cache) return log
def select(self, selector, ctx): if not selector: return self['default'](ctx, {'url': selector}) if self.default_protocol and '://' not in selector: selector = "{}://{}".format(self.default_protocol, selector) for k in self.keys(): if selector.startswith(k): return self[k](ctx, parse_url_config(selector)) raise InvalidOutputConfig("Invalid %s: %s" % (self.plugin_type, selector))
def select(self, selector, ctx): if not selector: return self['default'](ctx, {'url': selector}) if self.default_protocol and '://' not in selector: selector = "{}://{}".format( self.default_protocol, selector) for k in self.keys(): if selector.startswith(k): return self[k](ctx, parse_url_config(selector)) raise InvalidOutputConfig("Invalid %s: %s" % ( self.plugin_type, selector))
def test_parse_url(self): self.assertEqual( dict(utils.parse_url_config('aws://target?format=json®ion=us-west-2')), dict(url='aws://target?format=json®ion=us-west-2', netloc='target', path='', scheme='aws', region='us-west-2', format='json')) self.assertEqual( dict(utils.parse_url_config('')), {'netloc': '', 'path': '', 'scheme': '', 'url': ''}) self.assertEqual( dict(utils.parse_url_config('aws')), {'path': '', 'scheme': 'aws', 'netloc': '', 'url': 'aws://'}) self.assertEqual( dict(utils.parse_url_config('aws://')), {'path': '', 'scheme': 'aws', 'netloc': '', 'url': 'aws://'})
def get_blob_output(request, output_url=None, cleanup=True): if output_url is None: output_url = "gs://cloud-custodian/policies" output = GCPStorageOutput( ExecutionContext(lambda assume=False: mock.MagicMock(), Bag(name="xyz", provider_name="gcp"), Config.empty(output_dir=output_url, account_id='custodian-test')), parse_url_config(output_url)) if cleanup: request.addfinalizer(lambda: shutil.rmtree(output.root_dir)) # noqa request.addfinalizer(reset_session_cache) return output