def ogc_server(session): from c2cgeoportal.models import LayerV1, OGCServer servers_v1 = session.query( LayerV1.url, LayerV1.image_type, LayerV1.is_single_tile ).group_by( LayerV1.url, LayerV1.image_type, LayerV1.is_single_tile ).all() # get existing list of ogc_server servers_ogc = session.query(OGCServer).all() unique_servers = set([ ( server.url, server.image_type, True if server.is_single_tile is None else server.is_single_tile ) for server in servers_ogc ]) # add new ogc_server for url, image_type, is_single_tile in servers_v1: # default image_type if image_type is None: image_type = "image/png" if is_single_tile is None: is_single_tile = False if url is None: url = "config://internal/mapserv" name = u"source for {}".format(image_type) else: name = u"source for {} {}".format(url, image_type) if is_single_tile: name += u" with single_tile" identifier = (url, image_type, is_single_tile) if identifier not in unique_servers: unique_servers.add(identifier) new_ogc_server = OGCServer() new_ogc_server.url = url new_ogc_server.image_type = image_type new_ogc_server.is_single_tile = is_single_tile new_ogc_server.name = name session.add(new_ogc_server) transaction.commit()
def ogc_server(session): from c2cgeoportal.models import LayerV1, OGCServer servers_v1 = session.query( LayerV1.url, LayerV1.image_type, LayerV1.is_single_tile).group_by( LayerV1.url, LayerV1.image_type, LayerV1.is_single_tile).all() unique_servers = [] # get existing list of ogc_server servers_ogc = session.query(OGCServer).all() for server in servers_ogc: identifier = str(server.url) + ' ' + str(server.image_type) + ' ' + \ str(server.is_single_tile) if identifier not in unique_servers: unique_servers.append(identifier) # add new ogc_server for server in servers_v1: # default image_type image_type = server[1] if server[1] is None: image_type = 'image/png' identifier = str(server[0]) + ' ' + image_type + ' ' + str(server[2]) if identifier not in unique_servers: unique_servers.append(identifier) new_ogc_server = OGCServer() new_ogc_server.url = server[0] new_ogc_server.image_type = image_type new_ogc_server.is_single_tile = server[2] name = server[0] if name is None: name = str(server[1]) if server[2]: name += ' with single_tile' new_ogc_server.name = u'source for %s' % name session.add(new_ogc_server) transaction.commit()
def setup_method(self, _): self.maxDiff = None from c2cgeoportal.models import User, Role, LayerWMS, RestrictionArea, \ Interface, DBSession, OGCServer, \ OGCSERVER_TYPE_MAPSERVER, OGCSERVER_AUTH_STANDARD cleanup_db() create_default_ogcserver() ogcserver_jpeg = OGCServer(name="__test_ogc_server_jpeg") ogcserver_jpeg.url = mapserv_url ogcserver_jpeg.image_type = "image/jpeg" ogcserver_jpeg.type = OGCSERVER_TYPE_MAPSERVER ogcserver_jpeg.auth = OGCSERVER_AUTH_STANDARD ogcserver_png = OGCServer(name="__test_ogc_server_png") ogcserver_png.url = mapserv_url ogcserver_png.image_type = "image/png" ogcserver_png.type = OGCSERVER_TYPE_MAPSERVER ogcserver_png.auth = OGCSERVER_AUTH_STANDARD ogcserver_wfs1 = OGCServer(name="__test_ogc_server_wfs1") ogcserver_wfs1.url = mapserv_url ogcserver_wfs1.url_wfs = "config://srv" ogcserver_wfs1.image_type = "image/png" ogcserver_wfs1.type = OGCSERVER_TYPE_MAPSERVER ogcserver_wfs1.auth = OGCSERVER_AUTH_STANDARD ogcserver_wfs2 = OGCServer(name="__test_ogc_server_wfs2") ogcserver_wfs2.url = "config://srv" ogcserver_wfs2.url_wfs = mapserv_url ogcserver_wfs2.image_type = "image/png" ogcserver_wfs2.type = OGCSERVER_TYPE_MAPSERVER ogcserver_wfs2.auth = OGCSERVER_AUTH_STANDARD role = Role(name="__test_role", description="__test_role") user = User(username="******", password="******") user.role_name = "__test_role" main = Interface(name="main") layer1 = LayerWMS("__test_layer1", public=False) layer1.layer = "__test_private_layer1" layer1.ogc_server = ogcserver_jpeg layer1.interfaces = [main] layer2 = LayerWMS("__test_layer2", public=False) layer2.layer = "__test_private_layer2" layer2.ogc_server = ogcserver_png layer2.interfaces = [main] layer3 = LayerWMS("__test_layer3", public=False) layer3.layer = "__test_private_layer3" layer3.ogc_server = ogcserver_wfs1 layer3.interfaces = [main] layer4 = LayerWMS("__test_layer4", public=False) layer4.layer = "__test_private_layer4" layer4.ogc_server = ogcserver_wfs2 layer4.interfaces = [main] restricted_area = RestrictionArea("__test_ra", "", [layer1, layer2, layer3, layer4], [role]) DBSession.add_all([user, restricted_area]) transaction.commit()
def ogc_server(session, settings): from c2cgeoportal.models import LayerV1, OGCServer, \ OGCSERVER_TYPE_QGISSERVER, OGCSERVER_TYPE_GEOSERVER, OGCSERVER_TYPE_OTHER, \ OGCSERVER_AUTH_GEOSERVER, OGCSERVER_AUTH_NOAUTH qgis_re = [] geoserver_re = [] other_re = [] for e in settings.get("themev1tov2_qgis_res", "").split(","): if e.strip() != "": qgis_re.append(re.compile(e)) for e in settings.get("themev1tov2_geoserver_res", "").split(","): if e.strip() != "": geoserver_re.append(re.compile(e)) for e in settings.get("themev1tov2_other_res", "").split(","): if e.strip() != "": other_re.append(re.compile(e)) servers_v1 = session.query( LayerV1.url, LayerV1.image_type, LayerV1.is_single_tile ).group_by( LayerV1.url, LayerV1.image_type, LayerV1.is_single_tile ).filter(LayerV1.layer_type != "WMTS").all() # get existing list of ogc_server servers_ogc = session.query(OGCServer).all() unique_servers = { ( server.url, server.image_type, True if server.is_single_tile is None else server.is_single_tile ) for server in servers_ogc } # add new ogc_server for url, image_type, is_single_tile in servers_v1: # default image_type if image_type is None: image_type = "image/png" if is_single_tile is None: is_single_tile = False if url is None: url = "config://internal/mapserv" name = "source for {}".format(image_type) else: name = "source for {} {}".format(url, image_type) if is_single_tile: name += " with single_tile" identifier = (url, image_type, is_single_tile) if identifier not in unique_servers: unique_servers.add(identifier) new_ogc_server = OGCServer() new_ogc_server.url = url new_ogc_server.image_type = image_type new_ogc_server.is_single_tile = is_single_tile new_ogc_server.name = name for e in qgis_re: if e.search(url) is not None: new_ogc_server.type = OGCSERVER_TYPE_QGISSERVER break for e in geoserver_re: if e.search(url) is not None: new_ogc_server.type = OGCSERVER_TYPE_GEOSERVER new_ogc_server.auth = OGCSERVER_AUTH_GEOSERVER break for e in other_re: if e.search(url) is not None: new_ogc_server.type = OGCSERVER_TYPE_OTHER new_ogc_server.auth = OGCSERVER_AUTH_NOAUTH break session.add(new_ogc_server) transaction.commit()