def setUp(self): super(SimplePipeLineTest, self).setUp() self.templates = TemplateLookup( directories=[os.path.join(self.datadir, 'simple-pipeline')]) self.output = tempfile.NamedTemporaryFile('w').name self.signer = tempfile.NamedTemporaryFile('w').name self.signer_template = self.templates.get_template('signer.fd') self.validator = tempfile.NamedTemporaryFile('w').name self.validator_template = self.templates.get_template('validator.fd') self.md_signer = MDRepository(store=MemoryStore()) self.md_validator = MDRepository(store=MemoryStore()) with open(self.signer, "w") as fd: fd.write(self.signer_template.render(ctx=self)) with open(self.validator, "w") as fd: fd.write(self.validator_template.render(ctx=self)) self.signer_result = plumbing(self.signer).process(self.md_signer, state={ 'batch': True, 'stats': {} }) self.validator_result = plumbing(self.validator).process( self.md_validator, state={ 'batch': True, 'stats': {} })
def _get_metadata_stream(self, load_streams): try: load = [] select = [] count = 1 for stream in load_streams: curid = "%s%d" % (self.slug, count) load.append("%s as %s" % (stream[0], curid)) if stream[1] == 'SP' or stream[1] == 'IDP': select.append( "%s!//md:EntityDescriptor[md:%sSSODescriptor]" % (curid, stream[1])) else: select.append("%s" % curid) count = count + 1 if len(select) > 0: pipeline = [{'load': load}, {'select': select}] else: pipeline = [{'load': load}, 'select'] md = MDRepository() entities = Plumbing(pipeline=pipeline, id=self.slug).process(md, state={ 'batch': True, 'stats': {} }) return etree.tostring(entities) except Exception, e: raise Exception('Getting metadata from %s failed.\nError: %s' % (load_streams, e))
def __init__(self, pipes=None, autoreload=False, frequency=600, aliases=None, cache_enabled=True, observers=None, store=None): if aliases is None: aliases = ATTRS if not observers: observers = [] if not pipes: pipes = [] self._pipes = pipes self.cache_enabled = cache_enabled self.lock = ReadWriteLock() self.plumbings = [plumbing(v) for v in pipes] self.refresh = MDUpdate(cherrypy.engine, server=self, frequency=frequency) self.refresh.subscribe() self.aliases = aliases self.psl = PublicSuffixList() self.md = MDRepository(metadata_cache_enabled=self.cache_enabled, store=store) if autoreload: for f in pipes: cherrypy.engine.autoreload.files.add(f)
def setUp(self): self.md = MDRepository(store=MemoryStore) self.datadir = resource_filename('metadata', 'test/data') self.xml_source = os.path.join(self.datadir, 'test01.xml') self.swamid_source = os.path.join(self.datadir, 'swamid-2.0-test.xml') self.swamid = root(parse_xml(self.swamid_source)) self.t = parse_xml(self.xml_source) self.non_metadata = parse_xml(resource_filename("not-metadata.xml", self.datadir))
def exec_pipeline(self, pstr): md = MDRepository() p = yaml.load(StringIO(pstr)) print(p) res = Plumbing(p, pid="test").process(md, state={ 'batch': True, 'stats': {} }) return res, md
def run_pipeline(self, pl_name, ctx=None, md=MDRepository()): if ctx is None: ctx = dict() templates = TemplateLookup(directories=[os.path.join(self.datadir, 'simple-pipeline')]) pipeline = tempfile.NamedTemporaryFile('w').name template = templates.get_template(pl_name) with open(pipeline, "w") as fd: fd.write(template.render(ctx=ctx)) res = plumbing(pipeline).process(md, state={'batch': True, 'stats': {}}) os.unlink(pipeline) return res, md, ctx
def __init__(self, pipes=None, observers=None): if not observers: observers = [] if not pipes: pipes = [] self._pipes = pipes self.lock = ReadWriteLock() self.plumbings = [plumbing(v) for v in pipes] self.refresh = MDUpdate(cherrypy.engine, server=self, frequency=config.frequency) self.refresh.subscribe() self.aliases = config.aliases self.psl = PublicSuffixList() self.md = MDRepository(metadata_cache_enabled=config.caching_enabled, store=config.store) if config.autoreload: for f in pipes: cherrypy.engine.autoreload.files.add(f)