def _save_layer(layer, state): index_by_id = _index_by_id(state) if not index_by_id.has_key(layer.id): index_by_id[layer.id] = len(index_by_id) _layer_by_id(state)[layer.id] = layer render.create_renderer(layer, _renderers(state)) return layer.bounds()
def occi_render_init(): """Initialize pOCCI renderers. Limitations: - For HTTP GET requests 'text/occi' is always needed - For bigger data 'text/occi' should not be used (using 'text/plain') """ mimetypes = ["text/plain", "text/occi"] self = sys.modules[__name__] # renderers always needed for mime in mimetypes: renderers[mime] = render.create_renderer(mime) # user configurable renderer if occi_config["mimetype"] in mimetypes: renderer = renderers[occi_config["mimetype"]] else: renderer = render.create_renderer(occi_config["mimetype"]) # big data requires anything except HTTP Headers renderer renderer_big = renderer if occi_config["mimetype"] != occi_config["mimetype.big"]: if occi_config["mimetype.big"] in mimetypes: renderer_big = renderers[occi_config["mimetype.big"]] else: renderer_big = render.create_renderer(occi_config["mimetype.big"]) # HTTP GET requests needs HTTP Headers renderer renderer_httpheaders = renderer if occi_config["mimetype"] != "text/occi": renderer_httpheaders = renderers["text/occi"] # configurable filters for f in ["tests.category", "tests.entity"]: if f in occi_config: try: categories = renderers["text/plain"].parse_categories([occi_config[f]], None) except occi.ParseError as pe: print >> sys.stderr, ("Can't parse '%s' config option: " % f) + str(pe) sys.exit(2) if categories: occi_config["occi.%s" % f] = categories[0] if occi_config["curlverbose"]: print ("[config] '%s'=" % f) + str(categories[0]) self.renderer = renderer self.renderer_big = renderer_big self.renderer_httpheaders = renderer_httpheaders
def occi_render_init(): """Initialize pOCCI renderers. Limitations: - For HTTP GET requests 'text/occi' is always needed - For bigger data 'text/occi' should not be used (using 'text/plain') """ mimetypes = ['text/plain', 'text/occi'] self = sys.modules[__name__] # renderers always needed for mime in mimetypes: renderers[mime] = render.create_renderer(mime) # user configurable renderer if occi_config['mimetype'] in mimetypes: renderer = renderers[occi_config['mimetype']] else: renderer = render.create_renderer(occi_config['mimetype']) # big data requires anything except HTTP Headers renderer renderer_big = renderer if occi_config['mimetype'] != occi_config['mimetype.big']: if occi_config['mimetype.big'] in mimetypes: renderer_big = renderers[occi_config['mimetype.big']] else: renderer_big = render.create_renderer(occi_config['mimetype.big']) # HTTP GET requests needs HTTP Headers renderer renderer_httpheaders = renderer if occi_config['mimetype'] != 'text/occi': renderer_httpheaders = renderers['text/occi'] self.renderer = renderer self.renderer_big = renderer_big self.renderer_httpheaders = renderer_httpheaders
def occi_render_init(): """Initialize pOCCI renderers. Limitations: - For HTTP GET requests 'text/occi' is always needed - For bigger data 'text/occi' should not be used (using 'text/plain') """ mimetypes = ["text/plain", "text/occi"] self = sys.modules[__name__] # renderers always needed for mime in mimetypes: renderers[mime] = render.create_renderer(mime) # user configurable renderer if occi_config["mimetype"] in mimetypes: renderer = renderers[occi_config["mimetype"]] else: renderer = render.create_renderer(occi_config["mimetype"]) # big data requires anything except HTTP Headers renderer renderer_big = renderer if occi_config["mimetype"] != occi_config["mimetype.big"]: if occi_config["mimetype.big"] in mimetypes: renderer_big = renderers[occi_config["mimetype.big"]] else: renderer_big = render.create_renderer(occi_config["mimetype.big"]) # HTTP GET requests needs HTTP Headers renderer renderer_httpheaders = renderer if occi_config["mimetype"] != "text/occi": renderer_httpheaders = renderers["text/occi"] self.renderer = renderer self.renderer_big = renderer_big self.renderer_httpheaders = renderer_httpheaders
def main(argv=sys.argv[1:]): global inputmime, outputmime, messagetype occi_parser = None occi_renderer = None try: opts, args = getopt.getopt( argv, 'hi:o:t:V', ['--help', '--input-mime=', '--output-mime=', 'type=', 'version']) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ['-h', '--help']: usage() sys.exit() elif opt in ['-i', '--input-mime']: inputmime = arg elif opt in ['-o', '--output-mime']: outputmime = arg elif opt in ['-t', '--type']: messagetype = arg elif opt in ["-V", "--version"]: print version.__version__ sys.exit() if messagetype not in messagetypes: print >> sys.stderr, 'OCCI message type expected: %s' % ', '.join( messagetypes) sys.exit(2) occi_parser = render.create_renderer(inputmime) if not occi_parser: print >> sys.stderr, 'OCCI parser can\'t be initialized (wrong mime-type "%s"?)' % inputmime sys.exit(2) occi_renderer = render.create_renderer(outputmime) if not occi_renderer: print >> sys.stderr, 'OCCI renderer can\'t be initialized (wrong mime-type "%s"?)' % outputmime sys.exit(2) if re.match(r'text/occi(;.*)?$', inputmime): body = None headers = list(read_input(strip=False)) else: body = list(read_input(strip=True)) headers = None try: if messagetype in ['categories']: categories = occi_parser.parse_categories(body, headers) [body, headers] = occi_renderer.render_categories(categories) elif messagetype in ['entities']: urls = occi_parser.parse_locations(body, headers) [body, headers] = occi_renderer.render_locations(urls) elif messagetype in ['resource']: [categories, links, attributes] = occi_parser.parse_resource(body, headers) [body, headers] = occi_renderer.render_resource(categories, links, attributes) except occi.ParseError as perr: print >> sys.stderr, str(perr) sys.exit(1) except occi.RenderError as rerr: print >> sys.stderr, str(rerr) sys.exit(1) if body: sys.stdout.write(body) if headers: sys.stdout.write('\n'.join(headers) + '\n')
def main(argv=sys.argv[1:]): global inputmime, outputmime, messagetype occi_parser = None occi_renderer = None try: opts, args = getopt.getopt(argv, "hi:o:t:V", ["--help", "--input-mime=", "--output-mime=", "type=", "version"]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ["-h", "--help"]: usage() sys.exit() elif opt in ["-i", "--input-mime"]: inputmime = arg elif opt in ["-o", "--output-mime"]: outputmime = arg elif opt in ["-t", "--type"]: messagetype = arg elif opt in ["-V", "--version"]: print version.__version__ sys.exit() if messagetype not in messagetypes: print >> sys.stderr, "OCCI message type expected: %s" % ", ".join(messagetypes) sys.exit(2) occi_parser = render.create_renderer(inputmime) if not occi_parser: print >> sys.stderr, 'OCCI parser can\'t be initialized (wrong mime-type "%s"?)' % inputmime sys.exit(2) occi_renderer = render.create_renderer(outputmime) if not occi_renderer: print >> sys.stderr, 'OCCI renderer can\'t be initialized (wrong mime-type "%s"?)' % outputmime sys.exit(2) if re.match(r"text/occi(;.*)?$", inputmime): body = None headers = list(read_input(strip=False)) else: body = list(read_input(strip=True)) headers = None try: if messagetype in ["categories"]: categories = occi_parser.parse_categories(body, headers) [body, headers] = occi_renderer.render_categories(categories) elif messagetype in ["entities"]: urls = occi_parser.parse_locations(body, headers) [body, headers] = occi_renderer.render_locations(urls) elif messagetype in ["resource"]: [categories, links, attributes] = occi_parser.parse_resource(body, headers) [body, headers] = occi_renderer.render_resource(categories, links, attributes) except occi.ParseError as perr: print >> sys.stderr, str(perr) sys.exit(1) except occi.RenderError as rerr: print >> sys.stderr, str(rerr) sys.exit(1) if body: sys.stdout.write(body) if headers: sys.stdout.write("\n".join(headers) + "\n")