def _process_namespace(self, zipf): if self.options.get("namespace_tokenize"): self.logger.info("Tokenizing namespace prefix {}__".format( self.options["namespace_tokenize"])) zipf = zip_tokenize_namespace(zipf, self.options["namespace_tokenize"], logger=self.logger) if self.options.get("namespace_inject"): kwargs = {} kwargs["managed"] = not process_bool_arg( self.options.get("unmanaged", True)) kwargs["namespaced_org"] = process_bool_arg( self.options.get("namespaced_org", False)) kwargs["logger"] = self.logger if kwargs["managed"]: self.logger.info( "Replacing namespace tokens from metadata with namespace prefix {}__" .format(self.options["namespace_inject"])) else: self.logger.info( "Stripping namespace tokens from metadata for unmanaged deployment" ) zipf = zip_inject_namespace(zipf, self.options["namespace_inject"], **kwargs) if self.options.get("namespace_strip"): zipf = zip_strip_namespace(zipf, self.options["namespace_strip"], logger=self.logger) return zipf
def _process_namespace(self, zipf): if self.options.get('namespace_tokenize'): self.logger.info( 'Tokenizing namespace prefix {}__'.format( self.options['namespace_tokenize'], ) ) zipf = zip_tokenize_namespace(zipf, self.options['namespace_tokenize'], logger=self.logger) if self.options.get('namespace_inject'): kwargs = {} kwargs['managed'] = not process_bool_arg(self.options.get('unmanaged', True)) kwargs['namespaced_org'] = process_bool_arg(self.options.get('namespaced_org', False)) kwargs['logger'] = self.logger if kwargs['managed']: self.logger.info( 'Replacing namespace tokens from metadata with namespace prefix {}__'.format( self.options['namespace_inject'], ) ) else: self.logger.info( 'Stripping namespace tokens from metadata for unmanaged deployment' ) zipf = zip_inject_namespace(zipf, self.options['namespace_inject'], **kwargs) if self.options.get('namespace_strip'): zipf = zip_strip_namespace(zipf, self.options['namespace_strip'], logger=self.logger) return zipf
def test_zip_tokenize_namespace(self): zf = zipfile.ZipFile(io.BytesIO(), 'w') zf.writestr('ns__test', 'ns__test ns:test') zf = utils.zip_tokenize_namespace(zf, 'ns') result = zf.read('___NAMESPACE___test') self.assertEqual('%%%NAMESPACE%%%test %%%NAMESPACE_OR_C%%%test', result)
def test_zip_tokenize_namespace(self): zf = zipfile.ZipFile(io.BytesIO(), "w") zf.writestr("ns__test", "ns__test ns:test") zf = utils.zip_tokenize_namespace(zf, "ns") result = zf.read("___NAMESPACE___test") self.assertEqual(b"%%%NAMESPACE%%%test %%%NAMESPACE_OR_C%%%test", result)
def test_zip_tokenize_namespace__skips_binary(self): contents = b"\x9cns__" zf = zipfile.ZipFile(io.BytesIO(), "w") zf.writestr("test", contents) zf = utils.zip_tokenize_namespace(zf, "ns") result = zf.read("test") self.assertEqual(contents, result)
def test_zip_tokenize_namespace_skips_binary(self): contents = b'\xe2\x98\x83ns__' zf = zipfile.ZipFile(io.BytesIO(), 'w') zf.writestr('test', contents) zf = utils.zip_tokenize_namespace(zf, 'ns') result = zf.read('test') self.assertEqual(contents, result)
def _install_dependency(self, dependency): if 'zip_url' in dependency: self.logger.info( 'Deploying unmanaged metadata from /{} of {}'.format( dependency['subfolder'], dependency['zip_url'], )) package_zip = download_extract_zip( dependency['zip_url'], subfolder=dependency.get('subfolder'), headers=dependency.get('headers', {}), ) if dependency.get('namespace_tokenize'): self.logger.info( 'Replacing namespace prefix {}__ in files and filenames with namespace token strings' .format('{}__'.format(dependency['namespace_tokenize']), )) package_zip = zip_tokenize_namespace( package_zip, namespace=dependency['namespace_tokenize'], logger=self.logger, ) if dependency.get('namespace_inject'): self.logger.info('Replacing namespace tokens with {}'.format( '{}__'.format(dependency['namespace_inject']), )) package_zip = zip_inject_namespace( package_zip, namespace=dependency['namespace_inject'], managed=not dependency.get('unmanaged'), namespaced_org=self.options['namespaced_org'], logger=self.logger, ) if dependency.get('namespace_strip'): self.logger.info( 'Removing namespace prefix {}__ from all files and filenames' .format('{}__'.format(dependency['namespace_strip']), )) package_zip = zip_strip_namespace( package_zip, namespace=dependency['namespace_strip'], logger=self.logger, ) package_zip = ZipfilePackageZipBuilder(package_zip)() elif 'namespace' in dependency: self.logger.info('Installing {} version {}'.format( dependency['namespace'], dependency['version'], )) package_zip = InstallPackageZipBuilder(dependency['namespace'], dependency['version'])() api = self.api_class(self, package_zip, purge_on_delete=self.options['purge_on_delete']) return api()
def _install_dependency(self, dependency): if "zip_url" in dependency: self.logger.info( "Deploying unmanaged metadata from /{} of {}".format( dependency["subfolder"], dependency["zip_url"])) package_zip = download_extract_zip( dependency["zip_url"], subfolder=dependency.get("subfolder"), headers=dependency.get("headers", {}), ) if dependency.get("namespace_tokenize"): self.logger.info( "Replacing namespace prefix {}__ in files and filenames with namespace token strings" .format("{}__".format(dependency["namespace_tokenize"]))) package_zip = zip_tokenize_namespace( package_zip, namespace=dependency["namespace_tokenize"], logger=self.logger, ) if dependency.get("namespace_inject"): self.logger.info("Replacing namespace tokens with {}".format( "{}__".format(dependency["namespace_inject"]))) package_zip = zip_inject_namespace( package_zip, namespace=dependency["namespace_inject"], managed=not dependency.get("unmanaged"), namespaced_org=self.options["namespaced_org"], logger=self.logger, ) if dependency.get("namespace_strip"): self.logger.info( "Removing namespace prefix {}__ from all files and filenames" .format("{}__".format(dependency["namespace_strip"]))) package_zip = zip_strip_namespace( package_zip, namespace=dependency["namespace_strip"], logger=self.logger, ) package_zip = ZipfilePackageZipBuilder(package_zip)() elif "namespace" in dependency: self.logger.info("Installing {} version {}".format( dependency["namespace"], dependency["version"])) package_zip = InstallPackageZipBuilder(dependency["namespace"], dependency["version"])() api = self.api_class(self, package_zip, purge_on_delete=self.options["purge_on_delete"]) return api()
def _process_namespace(self, src_zip): if self.options.get('namespace_tokenize'): src_zip = zip_tokenize_namespace( src_zip, self.options['namespace_tokenize']) if self.options.get('namespace_inject'): if self.options.get('unmanaged'): src_zip = zip_inject_namespace( src_zip, self.options['namespace_inject']) else: src_zip = zip_inject_namespace( src_zip, self.options['namespace_inject'], True) if self.options.get('namespace_strip'): src_zip = zip_strip_namespace(src_zip, self.options['namespace_strip']) return src_zip
def _process_namespace(self, src_zip): if self.options.get("namespace_tokenize"): src_zip = zip_tokenize_namespace( src_zip, self.options["namespace_tokenize"], logger=self.logger) if self.options.get("namespace_inject"): kwargs = {} kwargs["managed"] = not process_bool_arg( self.options.get("unmanaged", True)) kwargs["namespaced_org"] = process_bool_arg( self.options.get("namespaced_org", False)) kwargs["logger"] = self.logger src_zip = zip_inject_namespace(src_zip, self.options["namespace_inject"], **kwargs) if self.options.get("namespace_strip"): src_zip = zip_strip_namespace(src_zip, self.options["namespace_strip"], logger=self.logger) return src_zip
def _process_namespace(self, src_zip): if self.options.get('namespace_tokenize'): src_zip = zip_tokenize_namespace( src_zip, self.options['namespace_tokenize'], logger=self.logger) if self.options.get('namespace_inject'): kwargs = {} kwargs['unmanaged'] = process_bool_arg( self.options.get('unmanaged', True)) kwargs['namespaced_org'] = process_bool_arg( self.options.get('namespaced_org', False)) kwargs['logger'] = self.logger src_zip = zip_inject_namespace(src_zip, self.options['namespace_inject'], **kwargs) if self.options.get('namespace_strip'): src_zip = zip_strip_namespace(src_zip, self.options['namespace_strip'], logger=self.logger) return src_zip
def _process_namespace(self, src_zip): if self.options.get("namespace_tokenize"): src_zip = zip_tokenize_namespace( src_zip, self.options["namespace_tokenize"], logger=self.logger ) if self.options.get("namespace_inject"): kwargs = {} kwargs["managed"] = not process_bool_arg( self.options.get("unmanaged", True) ) kwargs["namespaced_org"] = process_bool_arg( self.options.get("namespaced_org", False) ) kwargs["logger"] = self.logger src_zip = zip_inject_namespace( src_zip, self.options["namespace_inject"], **kwargs ) if self.options.get("namespace_strip"): src_zip = zip_strip_namespace( src_zip, self.options["namespace_strip"], logger=self.logger ) return src_zip
def _process_namespace(self, zipf): if self.options.get('namespace_tokenize'): self.logger.info('Tokenizing namespace prefix {}__'.format( self.options['namespace_tokenize'], )) zipf = zip_tokenize_namespace(zipf, self.options['namespace_tokenize']) if self.options.get('namespace_inject'): if self.options.get('unmanaged'): self.logger.info( 'Stripping namespace tokens from metadata for unmanaged deployment' ) zipf = zip_inject_namespace(zipf, self.options['namespace_inject']) else: self.logger.info( 'Replacing namespace tokens from metadata with namespace prefix {}__' .format(self.options['namespace_inject'], )) zipf = zip_inject_namespace(zipf, self.options['namespace_inject'], True) if self.options.get('namespace_strip'): zipf = zip_strip_namespace(zipf, self.options['namespace_strip']) return zipf
def _process_namespace(self, zipf): if self.options.get("namespace_tokenize"): self.logger.info( "Tokenizing namespace prefix {}__".format( self.options["namespace_tokenize"] ) ) zipf = zip_tokenize_namespace( zipf, self.options["namespace_tokenize"], logger=self.logger ) if self.options.get("namespace_inject"): kwargs = {} kwargs["managed"] = not process_bool_arg( self.options.get("unmanaged", True) ) kwargs["namespaced_org"] = process_bool_arg( self.options.get("namespaced_org", False) ) kwargs["logger"] = self.logger if kwargs["managed"]: self.logger.info( "Replacing namespace tokens from metadata with namespace prefix {}__".format( self.options["namespace_inject"] ) ) else: self.logger.info( "Stripping namespace tokens from metadata for unmanaged deployment" ) zipf = zip_inject_namespace( zipf, self.options["namespace_inject"], **kwargs ) if self.options.get("namespace_strip"): zipf = zip_strip_namespace( zipf, self.options["namespace_strip"], logger=self.logger ) return zipf
def test_zip_tokenize_namespace_no_namespace(self): zf = zipfile.ZipFile(io.BytesIO(), "w") zf.writestr("test", "") result = utils.zip_tokenize_namespace(zf, "") self.assertIs(zf, result)
def _install_dependency(self, dependency): if "zip_url" or "repo_name" in dependency: package_zip = None if "zip_url" in dependency: self.logger.info( "Deploying unmanaged metadata from /{} of {}".format( dependency["subfolder"], dependency["zip_url"] ) ) package_zip = self._download_extract_zip( dependency["zip_url"], subfolder=dependency.get("subfolder") ) elif "repo_name" in dependency: self.logger.info( "Deploying unmanaged metadata from /{} of {}/{}".format( dependency["subfolder"], dependency["repo_owner"], dependency["repo_name"], ) ) package_zip = self._download_extract_github( self.project_config.get_github_api(), dependency["repo_owner"], dependency["repo_name"], dependency["subfolder"], ref=dependency.get("ref"), ) if package_zip: if dependency.get("namespace_tokenize"): self.logger.info( "Replacing namespace prefix {}__ in files and filenames with namespace token strings".format( "{}__".format(dependency["namespace_tokenize"]) ) ) package_zip = zip_tokenize_namespace( package_zip, namespace=dependency["namespace_tokenize"], logger=self.logger, ) if dependency.get("namespace_inject"): self.logger.info( "Replacing namespace tokens with {}".format( "{}__".format(dependency["namespace_inject"]) ) ) package_zip = zip_inject_namespace( package_zip, namespace=dependency["namespace_inject"], managed=not dependency.get("unmanaged"), namespaced_org=self.options["namespaced_org"], logger=self.logger, ) if dependency.get("namespace_strip"): self.logger.info( "Removing namespace prefix {}__ from all files and filenames".format( "{}__".format(dependency["namespace_strip"]) ) ) package_zip = zip_strip_namespace( package_zip, namespace=dependency["namespace_strip"], logger=self.logger, ) package_zip = ZipfilePackageZipBuilder(package_zip)() elif "namespace" in dependency: self.logger.info( "Installing {} version {}".format( dependency["namespace"], dependency["version"] ) ) package_zip = InstallPackageZipBuilder( dependency["namespace"], dependency["version"] )() api = self.api_class( self, package_zip, purge_on_delete=self.options["purge_on_delete"] ) return api()
def test_zip_tokenize_namespace_no_namespace(self): zf = zipfile.ZipFile(io.BytesIO(), 'w') zf.writestr('test', '') result = utils.zip_tokenize_namespace(zf, '') self.assertIs(zf, result)