LayerManager / layman

Publishing geospatial vector data online
GNU General Public License v3.0
10 stars 3 forks source link

Tests get stuck after make reset-data-directories #116

Open jirik opened 4 years ago

jirik commented 4 years ago

Versions:

Steps to reproduce:

make stop-and-remove-all-docker-containers
make reset-data-directories
make test

Then test always stops on test_missing_attribute or test_missing_attribute_authz. Some research shown, that it stops on different places, always on request.<http method> calls from Layman to GeoServer. Such requests hangs on forever.

jirik commented 4 years ago

Maybe related, from travis

Show log ``` src/layman/gs_wfs_proxy_test.py::test_missing_attribute FAILED [ 6%] =================================== FAILURES =================================== ____________________________ test_missing_attribute ____________________________ client = > def test_missing_attribute(client): username = 'testmissingattr' layername = 'inexisting_attribute_layer' layername2 = 'inexisting_attribute_layer2' flask_client.publish_layer(username, layername, client) flask_client.publish_layer(username, layername2, client) rest_url = f"http://{settings.LAYMAN_SERVER_NAME}/geoserver/wfs?request=Transaction" headers = { 'Accept': 'text/xml', 'Content-type': 'text/xml', } def wfs_post(username, attr_names_list, data_xml): with app.app_context(): wfs_url = urljoin(settings.LAYMAN_GS_URL, username + '/ows') old_db_attributes = {} old_wfs_properties = {} for layername, attr_names in attr_names_list: # test that all attr_names are not yet presented in DB table old_db_attributes[layername] = db.get_all_column_names(username, layername) for attr_name in attr_names: assert attr_name not in old_db_attributes[layername], f"old_db_attributes={old_db_attributes[layername]}, attr_name={attr_name}" wfs = wfs_proxy(wfs_url) layer_schema = wfs.get_schema(f"{username}:{layername}") old_wfs_properties[layername] = sorted(layer_schema['properties'].keys()) r = client.post(rest_url, data=data_xml, headers=headers) assert r.status_code == 200, f"{r.get_data()}" new_db_attributes = {} new_wfs_properties = {} for layername, attr_names in attr_names_list: # test that exactly all attr_names were created in DB table new_db_attributes[layername] = db.get_all_column_names(username, layername) for attr_name in attr_names: assert attr_name in new_db_attributes[layername], f"new_db_attributes={new_db_attributes[layername]}, attr_name={attr_name}" assert set(attr_names).union(set(old_db_attributes[layername])) == set(new_db_attributes[layername]) # test that exactly all attr_names were distinguished also in WFS feature type wfs = wfs_proxy(wfs_url) layer_schema = wfs.get_schema(f"{username}:{layername}") new_wfs_properties[layername] = sorted(layer_schema['properties'].keys()) for attr_name in attr_names: assert attr_name in new_wfs_properties[layername], f"new_wfs_properties={new_wfs_properties[layername]}, attr_name={attr_name}" assert set(attr_names).union(set(old_wfs_properties[layername])) == set(new_wfs_properties[layername]),\ set(new_wfs_properties[layername]).difference(set(attr_names).union(set(old_wfs_properties[layername]))) attr_names = ['inexisting_attribute_attr', 'inexisting_attribute_attr1a'] data_xml = data_wfs.get_wfs20_insert_points_new_attr(username, layername, attr_names) wfs_post(username, [(layername, attr_names)], data_xml) attr_names2 = ['inexisting_attribute_attr2'] data_xml = data_wfs.get_wfs20_update_points_new_attr(username, layername, attr_names2) wfs_post(username, [(layername, attr_names2)], data_xml) attr_names3 = ['inexisting_attribute_attr3'] data_xml = data_wfs.get_wfs20_update_points_new_attr(username, layername, attr_names3, with_attr_namespace=True) wfs_post(username, [(layername, attr_names3)], data_xml) attr_names4 = ['inexisting_attribute_attr4'] data_xml = data_wfs.get_wfs20_update_points_new_attr(username, layername, attr_names4, with_filter=True) wfs_post(username, [(layername, attr_names4)], data_xml) attr_names5 = ['inexisting_attribute_attr5'] data_xml = data_wfs.get_wfs20_replace_points_new_attr(username, layername, attr_names5) wfs_post(username, [(layername, attr_names5)], data_xml) attr_names_i1 = ['inexisting_attribute_attr_complex_i1'] attr_names_i2 = ['inexisting_attribute_attr_complex_i2'] attr_names_u = ['inexisting_attribute_attr_complex_u'] attr_names_r = ['inexisting_attribute_attr_complex_r'] attr_names_complex = [(layername, attr_names_i1 + attr_names_r), (layername2, attr_names_i2 + attr_names_u)] data_xml = data_wfs.get_wfs20_complex_new_attr(username=username, layername1=layername, layername2=layername2, attr_names_insert1=attr_names_i1, attr_names_insert2=attr_names_i2, attr_names_update=attr_names_u, attr_names_replace=attr_names_r ) > wfs_post(username, attr_names_complex, data_xml) src/layman/gs_wfs_proxy_test.py:248: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ username = 'testmissingattr' attr_names_list = [('inexisting_attribute_layer', ['inexisting_attribute_attr_complex_i1', 'inexisting_attribute_attr_complex_r']), ('inexisting_attribute_layer2', ['inexisting_attribute_attr_complex_i2', 'inexisting_attribute_attr_complex_u'])] data_xml = '\n\n \n \n' def wfs_post(username, attr_names_list, data_xml): with app.app_context(): wfs_url = urljoin(settings.LAYMAN_GS_URL, username + '/ows') old_db_attributes = {} old_wfs_properties = {} for layername, attr_names in attr_names_list: # test that all attr_names are not yet presented in DB table old_db_attributes[layername] = db.get_all_column_names(username, layername) for attr_name in attr_names: assert attr_name not in old_db_attributes[layername], f"old_db_attributes={old_db_attributes[layername]}, attr_name={attr_name}" wfs = wfs_proxy(wfs_url) layer_schema = wfs.get_schema(f"{username}:{layername}") old_wfs_properties[layername] = sorted(layer_schema['properties'].keys()) r = client.post(rest_url, data=data_xml, headers=headers) > assert r.status_code == 200, f"{r.get_data()}" E AssertionError: b'\n \n org.geoserver.wfs.WFSTransactionException: Error performing insert: Source was null in trying to create a reprojected feature collection!\nError performing insert: Source was null in trying to create a reprojected feature collection!\nSource was null in trying to create a reprojected feature collection!\n \n\n' E assert 500 == 200 E +500 E -200 src/layman/gs_wfs_proxy_test.py:195: AssertionError ---------------------------- Captured stdout setup ----------------------------- * Serving Flask app "layman" (lazy loading) * Environment: development * Debug mode: off ------------------------------ Captured log call ------------------------------- INFO layman:rest_layers.py:47 POST Layers, user=None INFO layman:redis.py:43 Locking testmissingattr:layman.layer:inexisting_attribute_layer with POST INFO layman:rest_layers.py:47 POST Layers, user=None INFO layman:redis.py:43 Locking testmissingattr:layman.layer:inexisting_attribute_layer2 with POST INFO layman:gs_wfs_proxy.py:144 GET WFS proxy, user=None, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction INFO layman:gs_wfs_proxy.py:152 GET WFS proxy, headers_req={'user-agent': 'werkzeug/1.0.1', 'content-type': 'text/xml', 'content-length': '2069', 'accept': 'text/xml'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction INFO layman:gs_wfs_proxy.py:51 GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'name'), ('testmissingattr', 'inexisting_attribute_layer', 'wkb_geometry'), ('testmissingattr', 'inexisting_attribute_layer', 'labelrank'), ('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr1a'), ('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr')} INFO layman.common.geoserver:__init__.py:473 Resetting GeoServer INFO layman:gs_wfs_proxy.py:144 GET WFS proxy, user=None, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction INFO layman:gs_wfs_proxy.py:152 GET WFS proxy, headers_req={'user-agent': 'werkzeug/1.0.1', 'content-type': 'text/xml', 'content-length': '926', 'accept': 'text/xml'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction INFO layman:gs_wfs_proxy.py:51 GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr2')} INFO layman.common.geoserver:__init__.py:473 Resetting GeoServer INFO layman:gs_wfs_proxy.py:144 GET WFS proxy, user=None, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction INFO layman:gs_wfs_proxy.py:152 GET WFS proxy, headers_req={'user-agent': 'werkzeug/1.0.1', 'content-type': 'text/xml', 'content-length': '942', 'accept': 'text/xml'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction INFO layman:gs_wfs_proxy.py:51 GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr3')} INFO layman.common.geoserver:__init__.py:473 Resetting GeoServer INFO layman:gs_wfs_proxy.py:144 GET WFS proxy, user=None, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction INFO layman:gs_wfs_proxy.py:152 GET WFS proxy, headers_req={'user-agent': 'werkzeug/1.0.1', 'content-type': 'text/xml', 'content-length': '1035', 'accept': 'text/xml'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction INFO layman:gs_wfs_proxy.py:51 GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr4')} INFO layman.common.geoserver:__init__.py:473 Resetting GeoServer INFO layman:gs_wfs_proxy.py:144 GET WFS proxy, user=None, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction INFO layman:gs_wfs_proxy.py:152 GET WFS proxy, headers_req={'user-agent': 'werkzeug/1.0.1', 'content-type': 'text/xml', 'content-length': '2081', 'accept': 'text/xml'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction WARNING layman:gs_wfs_proxy.py:114 WFS Proxy: skipping due to wrong namespace name. Namespace=http://www.opengis.net/fes/2.0 WARNING layman:gs_wfs_proxy.py:114 WFS Proxy: skipping due to wrong namespace name. Namespace=http://www.opengis.net/fes/2.0 INFO layman:gs_wfs_proxy.py:51 GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'name'), ('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr5'), ('testmissingattr', 'inexisting_attribute_layer', 'wkb_geometry'), ('testmissingattr', 'inexisting_attribute_layer', 'labelrank')} INFO layman.common.geoserver:__init__.py:473 Resetting GeoServer INFO layman:gs_wfs_proxy.py:144 GET WFS proxy, user=None, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction INFO layman:gs_wfs_proxy.py:152 GET WFS proxy, headers_req={'user-agent': 'werkzeug/1.0.1', 'content-type': 'text/xml', 'content-length': '2939', 'accept': 'text/xml'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction WARNING layman:gs_wfs_proxy.py:114 WFS Proxy: skipping due to wrong namespace name. Namespace=http://www.opengis.net/fes/2.0 INFO layman:gs_wfs_proxy.py:51 GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'name'), ('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr_complex_i1'), ('testmissingattr', 'inexisting_attribute_layer', 'wkb_geometry'), ('testmissingattr', 'inexisting_attribute_layer2', 'name'), ('testmissingattr', 'inexisting_attribute_layer2', 'inexisting_attribute_attr_complex_u'), ('testmissingattr', 'inexisting_attribute_layer2', 'inexisting_attribute_attr_complex_i2'), ('testmissingattr', 'inexisting_attribute_layer2', 'labelrank'), ('testmissingattr', 'inexisting_attribute_layer2', 'wkb_geometry'), ('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr_complex_r'), ('testmissingattr', 'inexisting_attribute_layer', 'labelrank')} INFO layman.common.geoserver:__init__.py:473 Resetting GeoServer =========================== short test summary info ============================ FAILED src/layman/gs_wfs_proxy_test.py::test_missing_attribute - AssertionErr... ```
jirik commented 4 years ago

Maybe related, https://github.com/jirik/layman/commit/f3a4ef1bc4e15c518d1d6ffd8a91ff2a841a1533 from travis

Show log ``` src/layman/gs_wfs_proxy_test.py::test_missing_attribute_authz FAILED [ 7%] =================================== FAILURES =================================== _________________________ test_missing_attribute_authz _________________________ liferay_mock = def test_missing_attribute_authz(liferay_mock): username = 'testmissingattr_authz' layername1 = 'testmissingattr_authz_layer' username2 = 'testmissingattr_authz2' authn_headers1 = get_auth_header(username) authn_headers2 = get_auth_header(username2) headers1 = { 'Accept': 'text/xml', 'Content-type': 'text/xml', **authn_headers1, } headers2 = { 'Accept': 'text/xml', 'Content-type': 'text/xml', **authn_headers2, } def do_test(wfs_query, attribute_names): # Test, that unauthorized user will not cause new attribute with app.app_context(): old_db_attributes = db.get_all_column_names(username, layername1) for attr_name in attribute_names: assert attr_name not in old_db_attributes, f"old_db_attributes={old_db_attributes}, attr_name={attr_name}" r = requests.post(rest_url, data=wfs_query, headers=headers2) assert r.status_code == 400, r.text with app.app_context(): new_db_attributes = db.get_all_column_names(username, layername1) for attr_name in attribute_names: assert attr_name not in new_db_attributes, f"new_db_attributes={new_db_attributes}, attr_name={attr_name}" # Test, that authorized user will cause new attribute r = requests.post(rest_url, data=wfs_query, headers=headers1) assert r.status_code == 200, r.text with app.app_context(): new_db_attributes = db.get_all_column_names(username, layername1) for attr_name in attribute_names: assert attr_name in new_db_attributes, f"new_db_attributes={new_db_attributes}, attr_name={attr_name}" layman_process = process.start_layman(dict({ 'LAYMAN_AUTHZ_MODULE': 'layman.authz.read_everyone_write_owner', }, **AUTHN_SETTINGS)) client_util.reserve_username(username, headers=authn_headers1) ln = client_util.publish_layer(username, layername1, ['tmp/naturalearth/110m/cultural/ne_110m_admin_0_countries.geojson', ], headers=authn_headers1) assert ln == layername1 rest_url = f"http://{settings.LAYMAN_SERVER_NAME}/geoserver/{username}/wfs?request=Transaction" # Testing, that user2 is not able to write to layer of user1 client_util.reserve_username(username2, headers=authn_headers2) # INSERT attr_names = ['inexisting_attribute_auth1', 'inexisting_attribute_auth2'] data_xml = data_wfs.get_wfs20_insert_points_new_attr(username, layername1, attr_names) > do_test(data_xml, attr_names) src/layman/gs_wfs_proxy_test.py:337: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ wfs_query = '\n assert r.status_code == 200, r.text E AssertionError: E E {http://testmissingattr_authz}testmissingattr_authz_layer is not available: nullNo code &quot;EPSG:3857&quot; from authority &quot;European Petroleum Survey Group&quot; found for object of type &quot;IdentifiedObject&quot;. E E E E assert 400 == 200 E +400 E -200 src/layman/gs_wfs_proxy_test.py:311: AssertionError ----------------------------- Captured stdout call ----------------------------- * Serving Flask app "src/layman" * Environment: development * Debug mode: on ----------------------------- Captured stderr call ----------------------------- [2020-10-21 17:49:45,495] INFO in __init__: IN_CELERY_WORKER_PROCESS=False [2020-10-21 17:49:45,495] INFO in __init__: IN_PYTEST_PROCESS=False [2020-10-21 17:49:45,495] INFO in __init__: IN_FLOWER_PROCESS=False [2020-10-21 17:49:45,495] INFO in __init__: IN_FLASK_PROCESS=True [2020-10-21 17:49:45,497] INFO in __init__: Adjusting GeoServer [2020-10-21 17:49:45,505] INFO in __init__: Role LAYMAN_TEST_ROLE already exists [2020-10-21 17:49:45,511] INFO in __init__: User layman_test already exists [2020-10-21 17:49:45,518] INFO in __init__: Role ADMIN already associated with user layman_test [2020-10-21 17:49:45,524] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user layman_test [2020-10-21 17:49:45,550] INFO in __init__: Current SRS list [3857, 4326] already corresponds with requested one. [2020-10-21 17:49:45,583] INFO in __init__: Current Proxy Base URL http://localhost:8000/geoserver/ already corresponds with requested one. [2020-10-21 17:49:45,708] INFO in __init__: Layman DB schema already exists, schema_name=_prime_schema [2020-10-21 17:49:45,709] INFO in __init__: Loading Redis database [2020-10-21 17:49:45,709] INFO in uuid: Importing UUIDs to REDIS [2020-10-21 17:49:46,196] INFO in redis: Importing authn to REDIS [2020-10-21 17:49:46,302] INFO in redis: Import authn into redis: username test_rewe1, iss_id layman.authn.oauth2.liferay, sub 30000 [2020-10-21 17:49:46,302] INFO in redis: Import authn into redis: username test_rewe_rewo2, iss_id layman.authn.oauth2.liferay, sub 30003 [2020-10-21 17:49:46,303] INFO in redis: Import authn into redis: username testproxy2, iss_id layman.authn.oauth2.liferay, sub 30005 [2020-10-21 17:49:46,303] INFO in redis: Import authn into redis: username test_rewe_rewo1, iss_id layman.authn.oauth2.liferay, sub 30002 [2020-10-21 17:49:46,304] INFO in redis: Import authn into redis: username test_rewo1, iss_id layman.authn.oauth2.liferay, sub 30001 [2020-10-21 17:49:46,304] INFO in redis: Import authn into redis: username testproxy, iss_id layman.authn.oauth2.liferay, sub 30004 [2020-10-21 17:49:46,305] INFO in __init__: Ensuring users [2020-10-21 17:49:46,429] INFO in __init__: Ensuring user test_rewe1 [2020-10-21 17:49:46,430] INFO in util: ensure_whole_user:test_rewe1 [2020-10-21 17:49:46,440] INFO in __init__: User test_rewe1 already exists [2020-10-21 17:49:46,446] INFO in __init__: Role USER_TEST_REWE1 already exists [2020-10-21 17:49:46,452] INFO in __init__: Role USER_TEST_REWE1 already associated with user test_rewe1 [2020-10-21 17:49:46,458] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user test_rewe1 [2020-10-21 17:49:46,474] INFO in __init__: Ensure_workspace_security workspace=test_rewe1, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,483] INFO in __init__: Ensure_workspace_security_roles workspace=test_rewe1, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=test_rewe1.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:46,496] INFO in __init__: Ensure_workspace_security workspace=test_rewe1, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,502] INFO in __init__: Ensure_workspace_security_roles workspace=test_rewe1, type=w, roles={'USER_TEST_REWE1'}, rule=test_rewe1.*.w, roles_str=USER_TEST_REWE1 [2020-10-21 17:49:46,518] INFO in __init__: Ensuring user wfs_proxy_test [2020-10-21 17:49:46,518] INFO in util: ensure_whole_user:wfs_proxy_test [2020-10-21 17:49:46,528] INFO in __init__: User wfs_proxy_test already exists [2020-10-21 17:49:46,537] INFO in __init__: Role USER_WFS_PROXY_TEST already exists [2020-10-21 17:49:46,543] INFO in __init__: Role USER_WFS_PROXY_TEST already associated with user wfs_proxy_test [2020-10-21 17:49:46,549] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user wfs_proxy_test [2020-10-21 17:49:46,549] INFO in __init__: Ensure_workspace_security workspace=wfs_proxy_test, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,555] INFO in __init__: Ensure_workspace_security_roles workspace=wfs_proxy_test, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=wfs_proxy_test.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:46,570] INFO in __init__: Ensure_workspace_security workspace=wfs_proxy_test, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,578] INFO in __init__: Ensure_workspace_security_roles workspace=wfs_proxy_test, type=w, roles={'USER_WFS_PROXY_TEST'}, rule=wfs_proxy_test.*.w, roles_str=USER_WFS_PROXY_TEST [2020-10-21 17:49:46,591] INFO in __init__: Ensuring user test_rewe_rewo2 [2020-10-21 17:49:46,592] INFO in util: ensure_whole_user:test_rewe_rewo2 [2020-10-21 17:49:46,600] INFO in __init__: User test_rewe_rewo2 already exists [2020-10-21 17:49:46,607] INFO in __init__: Role USER_TEST_REWE_REWO2 already exists [2020-10-21 17:49:46,613] INFO in __init__: Role USER_TEST_REWE_REWO2 already associated with user test_rewe_rewo2 [2020-10-21 17:49:46,620] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user test_rewe_rewo2 [2020-10-21 17:49:46,620] INFO in __init__: Ensure_workspace_security workspace=test_rewe_rewo2, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,626] INFO in __init__: Ensure_workspace_security_roles workspace=test_rewe_rewo2, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=test_rewe_rewo2.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:46,638] INFO in __init__: Ensure_workspace_security workspace=test_rewe_rewo2, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,644] INFO in __init__: Ensure_workspace_security_roles workspace=test_rewe_rewo2, type=w, roles={'USER_TEST_REWE_REWO2'}, rule=test_rewe_rewo2.*.w, roles_str=USER_TEST_REWE_REWO2 [2020-10-21 17:49:46,655] INFO in __init__: Ensuring user test_abort_user [2020-10-21 17:49:46,656] INFO in util: ensure_whole_user:test_abort_user [2020-10-21 17:49:46,663] INFO in __init__: User test_abort_user already exists [2020-10-21 17:49:46,669] INFO in __init__: Role USER_TEST_ABORT_USER already exists [2020-10-21 17:49:46,679] INFO in __init__: Role USER_TEST_ABORT_USER already associated with user test_abort_user [2020-10-21 17:49:46,687] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user test_abort_user [2020-10-21 17:49:46,687] INFO in __init__: Ensure_workspace_security workspace=test_abort_user, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,693] INFO in __init__: Ensure_workspace_security_roles workspace=test_abort_user, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=test_abort_user.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:46,706] INFO in __init__: Ensure_workspace_security workspace=test_abort_user, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,711] INFO in __init__: Ensure_workspace_security_roles workspace=test_abort_user, type=w, roles={'USER_TEST_ABORT_USER'}, rule=test_abort_user.*.w, roles_str=USER_TEST_ABORT_USER [2020-10-21 17:49:46,725] INFO in __init__: Ensuring user testproxy2 [2020-10-21 17:49:46,726] INFO in util: ensure_whole_user:testproxy2 [2020-10-21 17:49:46,734] INFO in __init__: User testproxy2 already exists [2020-10-21 17:49:46,741] INFO in __init__: Role USER_TESTPROXY2 already exists [2020-10-21 17:49:46,749] INFO in __init__: Role USER_TESTPROXY2 already associated with user testproxy2 [2020-10-21 17:49:46,758] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user testproxy2 [2020-10-21 17:49:46,758] INFO in __init__: Ensure_workspace_security workspace=testproxy2, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,766] INFO in __init__: Ensure_workspace_security_roles workspace=testproxy2, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=testproxy2.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:46,780] INFO in __init__: Ensure_workspace_security workspace=testproxy2, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,788] INFO in __init__: Ensure_workspace_security_roles workspace=testproxy2, type=w, roles={'USER_TESTPROXY2'}, rule=testproxy2.*.w, roles_str=USER_TESTPROXY2 [2020-10-21 17:49:46,804] INFO in __init__: Ensuring user test_rewe_rewo1 [2020-10-21 17:49:46,805] INFO in util: ensure_whole_user:test_rewe_rewo1 [2020-10-21 17:49:46,812] INFO in __init__: User test_rewe_rewo1 already exists [2020-10-21 17:49:46,818] INFO in __init__: Role USER_TEST_REWE_REWO1 already exists [2020-10-21 17:49:46,823] INFO in __init__: Role USER_TEST_REWE_REWO1 already associated with user test_rewe_rewo1 [2020-10-21 17:49:46,830] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user test_rewe_rewo1 [2020-10-21 17:49:46,830] INFO in __init__: Ensure_workspace_security workspace=test_rewe_rewo1, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,839] INFO in __init__: Ensure_workspace_security_roles workspace=test_rewe_rewo1, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=test_rewe_rewo1.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:46,854] INFO in __init__: Ensure_workspace_security workspace=test_rewe_rewo1, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,860] INFO in __init__: Ensure_workspace_security_roles workspace=test_rewe_rewo1, type=w, roles={'USER_TEST_REWE_REWO1'}, rule=test_rewe_rewo1.*.w, roles_str=USER_TEST_REWE_REWO1 [2020-10-21 17:49:46,876] INFO in __init__: Ensuring user test_rewo1 [2020-10-21 17:49:46,876] INFO in util: ensure_whole_user:test_rewo1 [2020-10-21 17:49:46,918] INFO in __init__: User test_rewo1 already exists [2020-10-21 17:49:46,927] INFO in __init__: Role USER_TEST_REWO1 already exists [2020-10-21 17:49:46,940] INFO in __init__: Role USER_TEST_REWO1 already associated with user test_rewo1 [2020-10-21 17:49:46,949] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user test_rewo1 [2020-10-21 17:49:46,949] INFO in __init__: Ensure_workspace_security workspace=test_rewo1, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,958] INFO in __init__: Ensure_workspace_security_roles workspace=test_rewo1, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=test_rewo1.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:46,980] INFO in __init__: Ensure_workspace_security workspace=test_rewo1, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:46,988] INFO in __init__: Ensure_workspace_security_roles workspace=test_rewo1, type=w, roles={'USER_TEST_REWO1'}, rule=test_rewo1.*.w, roles_str=USER_TEST_REWO1 [2020-10-21 17:49:47,013] INFO in __init__: Ensuring user testproxy [2020-10-21 17:49:47,013] INFO in util: ensure_whole_user:testproxy [2020-10-21 17:49:47,024] INFO in __init__: User testproxy already exists [2020-10-21 17:49:47,034] INFO in __init__: Role USER_TESTPROXY already exists [2020-10-21 17:49:47,043] INFO in __init__: Role USER_TESTPROXY already associated with user testproxy [2020-10-21 17:49:47,052] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user testproxy [2020-10-21 17:49:47,052] INFO in __init__: Ensure_workspace_security workspace=testproxy, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:47,060] INFO in __init__: Ensure_workspace_security_roles workspace=testproxy, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=testproxy.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:47,078] INFO in __init__: Ensure_workspace_security workspace=testproxy, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:47,085] INFO in __init__: Ensure_workspace_security_roles workspace=testproxy, type=w, roles={'USER_TESTPROXY'}, rule=testproxy.*.w, roles_str=USER_TESTPROXY [2020-10-21 17:49:47,101] INFO in __init__: Ensuring user testmissingattr [2020-10-21 17:49:47,101] INFO in util: ensure_whole_user:testmissingattr [2020-10-21 17:49:47,120] INFO in __init__: User testmissingattr already exists [2020-10-21 17:49:47,128] INFO in __init__: Role USER_TESTMISSINGATTR already exists [2020-10-21 17:49:47,137] INFO in __init__: Role USER_TESTMISSINGATTR already associated with user testmissingattr [2020-10-21 17:49:47,149] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user testmissingattr [2020-10-21 17:49:47,149] INFO in __init__: Ensure_workspace_security workspace=testmissingattr, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:47,157] INFO in __init__: Ensure_workspace_security_roles workspace=testmissingattr, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=testmissingattr.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:47,172] INFO in __init__: Ensure_workspace_security workspace=testmissingattr, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:47,180] INFO in __init__: Ensure_workspace_security_roles workspace=testmissingattr, type=w, roles={'USER_TESTMISSINGATTR'}, rule=testmissingattr.*.w, roles_str=USER_TESTMISSINGATTR * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit) [2020-10-21 17:49:47,243] INFO in rest_current_user: GET Current User, user=None 172.18.0.9 - - [21/Oct/2020 17:49:47] "GET /rest/current-user HTTP/1.1" 200 - [2020-10-21 17:49:47,271] INFO in rest_current_user: PATCH Current User, user={'AUTHN_MODULE': 'layman.authn.oauth2'} [2020-10-21 17:49:47,445] INFO in util: ensure_whole_user:testmissingattr_authz [2020-10-21 17:49:47,457] INFO in __init__: User testmissingattr_authz does not exist yet, creating. [2020-10-21 17:49:47,622] INFO in __init__: Role USER_TESTMISSINGATTR_AUTHZ does not exist yet, creating. [2020-10-21 17:49:47,663] INFO in __init__: Role USER_TESTMISSINGATTR_AUTHZ not associated with user testmissingattr_authz yet, associating. [2020-10-21 17:49:47,707] INFO in __init__: Role LAYMAN_TEST_ROLE not associated with user testmissingattr_authz yet, associating. [2020-10-21 17:49:48,067] INFO in __init__: Ensure_workspace_security workspace=testmissingattr_authz, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:48,082] INFO in __init__: Ensure_workspace_security_roles workspace=testmissingattr_authz, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=testmissingattr_authz.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:48,101] INFO in __init__: Ensure_workspace_security workspace=testmissingattr_authz, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:48,122] INFO in __init__: Ensure_workspace_security_roles workspace=testmissingattr_authz, type=w, roles={'USER_TESTMISSINGATTR_AUTHZ'}, rule=testmissingattr_authz.*.w, roles_str=USER_TESTMISSINGATTR_AUTHZ 172.18.0.9 - - [21/Oct/2020 17:49:48] "PATCH /rest/current-user?adjust_username=true HTTP/1.1" 200 - [2020-10-21 17:49:48,195] INFO in rest_layers: POST Layers, user={'username': 'testmissingattr_authz', 'AUTHN_MODULE': 'layman.authn.oauth2'} [2020-10-21 17:49:48,275] INFO in __init__: IN_CELERY_WORKER_PROCESS=True [2020-10-21 17:49:48,275] INFO in __init__: IN_PYTEST_PROCESS=False [2020-10-21 17:49:48,275] INFO in __init__: IN_FLOWER_PROCESS=False [2020-10-21 17:49:48,275] INFO in __init__: IN_FLASK_PROCESS=False [2020-10-21 17:49:48,306] INFO in redis: Locking testmissingattr_authz:layman.layer:testmissingattr_authz_layer with POST 172.18.0.9 - - [21/Oct/2020 17:49:48] "POST /rest/testmissingattr_authz/layers HTTP/1.1" 200 - /usr/local/lib/python3.6/dist-packages/celery/platforms.py:801: RuntimeWarning: You're running the worker with superuser privileges: this is absolutely not recommended! Please specify a different user using the --uid option. User information: uid=0 euid=0 gid=0 egid=0 uid=uid, euid=euid, gid=gid, egid=egid, [2020-10-21 17:49:48,589: INFO/MainProcess] Connected to redis://redis:6379/15 [2020-10-21 17:49:48,609: INFO/MainProcess] mingle: searching for neighbors [2020-10-21 17:49:48,718] INFO in rest_layer: GET Layer, user=None 172.18.0.9 - - [21/Oct/2020 17:49:48] "GET /rest/testmissingattr_authz/layers/testmissingattr_authz_layer HTTP/1.1" 200 - [2020-10-21 17:49:49,401] INFO in rest_layer: GET Layer, user=None 172.18.0.9 - - [21/Oct/2020 17:49:49] "GET /rest/testmissingattr_authz/layers/testmissingattr_authz_layer HTTP/1.1" 200 - [2020-10-21 17:49:49,639: INFO/MainProcess] mingle: sync with 1 nodes [2020-10-21 17:49:49,640: INFO/MainProcess] mingle: sync complete [2020-10-21 17:49:49,651: INFO/MainProcess] celery@ddde78081fd7 ready. [2020-10-21 17:49:49,768: INFO/MainProcess] Received task: layman.layer.db.table.refresh[af7a791a-841b-45bd-beb7-319609adfef7] /usr/local/lib/python3.6/dist-packages/celery/platforms.py:801: RuntimeWarning: You're running the worker with superuser privileges: this is absolutely not recommended! Please specify a different user using the --uid option. User information: uid=0 euid=0 gid=0 egid=0 uid=uid, euid=euid, gid=gid, egid=egid, [2020-10-21 17:49:49,771: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:49,771] INFO in celery: PRE task=layman.layer.db.table.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:49,771: INFO/ForkPoolWorker-1] PRE task=layman.layer.db.table.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,102: INFO/ForkPoolWorker-1] Task layman.layer.db.table.refresh[af7a791a-841b-45bd-beb7-319609adfef7] succeeded in 0.3319173020000221s: None [2020-10-21 17:49:50,103: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,103] INFO in celery: POST task=layman.layer.db.table.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,103: INFO/ForkPoolWorker-1] POST task=layman.layer.db.table.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,102: INFO/MainProcess] Received task: layman.layer.geoserver.wfs.refresh[dd78bf71-dbf8-4676-adbd-9035e5987b96] [2020-10-21 17:49:50,105: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,105] INFO in celery: PRE task=layman.layer.geoserver.wfs.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,105: INFO/ForkPoolWorker-1] PRE task=layman.layer.geoserver.wfs.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,121: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,121] INFO in __init__: User testmissingattr_authz already exists [2020-10-21 17:49:50,121: INFO/ForkPoolWorker-1] User testmissingattr_authz already exists [2020-10-21 17:49:50,132: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,132] INFO in __init__: Role USER_TESTMISSINGATTR_AUTHZ already exists [2020-10-21 17:49:50,132: INFO/ForkPoolWorker-1] Role USER_TESTMISSINGATTR_AUTHZ already exists [2020-10-21 17:49:50,142: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,142] INFO in __init__: Role USER_TESTMISSINGATTR_AUTHZ already associated with user testmissingattr_authz [2020-10-21 17:49:50,142: INFO/ForkPoolWorker-1] Role USER_TESTMISSINGATTR_AUTHZ already associated with user testmissingattr_authz [2020-10-21 17:49:50,152: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,152] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user testmissingattr_authz [2020-10-21 17:49:50,152: INFO/ForkPoolWorker-1] Role LAYMAN_TEST_ROLE already associated with user testmissingattr_authz [2020-10-21 17:49:50,169: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,169] INFO in __init__: Ensure_workspace_security workspace=testmissingattr_authz, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:50,169: INFO/ForkPoolWorker-1] Ensure_workspace_security workspace=testmissingattr_authz, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:50,179: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,178] INFO in __init__: Ensure_workspace_security_roles workspace=testmissingattr_authz, type=r, roles={'ROLE_ANONYMOUS', 'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED'}, rule=testmissingattr_authz.*.r, roles_str=ROLE_ANONYMOUS, LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED [2020-10-21 17:49:50,178: INFO/ForkPoolWorker-1] Ensure_workspace_security_roles workspace=testmissingattr_authz, type=r, roles={'ROLE_ANONYMOUS', 'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED'}, rule=testmissingattr_authz.*.r, roles_str=ROLE_ANONYMOUS, LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED [2020-10-21 17:49:50,198: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,198] INFO in __init__: Ensure_workspace_security workspace=testmissingattr_authz, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:50,198: INFO/ForkPoolWorker-1] Ensure_workspace_security workspace=testmissingattr_authz, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:50,206: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,206] INFO in __init__: Ensure_workspace_security_roles workspace=testmissingattr_authz, type=w, roles={'USER_TESTMISSINGATTR_AUTHZ'}, rule=testmissingattr_authz.*.w, roles_str=USER_TESTMISSINGATTR_AUTHZ [2020-10-21 17:49:50,206: INFO/ForkPoolWorker-1] Ensure_workspace_security_roles workspace=testmissingattr_authz, type=w, roles={'USER_TESTMISSINGATTR_AUTHZ'}, rule=testmissingattr_authz.*.w, roles_str=USER_TESTMISSINGATTR_AUTHZ [2020-10-21 17:49:50,218] INFO in rest_layer: GET Layer, user=None 172.18.0.9 - - [21/Oct/2020 17:49:50] "GET /rest/testmissingattr_authz/layers/testmissingattr_authz_layer HTTP/1.1" 200 - [2020-10-21 17:49:50,697: INFO/MainProcess] Received task: layman.layer.geoserver.sld.refresh[f73d5a6f-3f33-409d-8373-45ff78227bdc] /usr/local/lib/python3.6/dist-packages/celery/platforms.py:801: RuntimeWarning: You're running the worker with superuser privileges: this is absolutely not recommended! Please specify a different user using the --uid option. User information: uid=0 euid=0 gid=0 egid=0 uid=uid, euid=euid, gid=gid, egid=egid, [2020-10-21 17:49:50,700: WARNING/ForkPoolWorker-2] [2020-10-21 17:49:50,700] INFO in celery: PRE task=layman.layer.geoserver.sld.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,700: INFO/ForkPoolWorker-2] PRE task=layman.layer.geoserver.sld.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,711: INFO/ForkPoolWorker-1] Task layman.layer.geoserver.wfs.refresh[dd78bf71-dbf8-4676-adbd-9035e5987b96] succeeded in 0.6055587100000253s: None [2020-10-21 17:49:50,711: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,711] INFO in celery: POST task=layman.layer.geoserver.wfs.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,711: INFO/ForkPoolWorker-1] POST task=layman.layer.geoserver.wfs.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,889: INFO/ForkPoolWorker-2] Task layman.layer.geoserver.sld.refresh[f73d5a6f-3f33-409d-8373-45ff78227bdc] succeeded in 0.1897688860000244s: None [2020-10-21 17:49:50,889: WARNING/ForkPoolWorker-2] [2020-10-21 17:49:50,889] INFO in celery: POST task=layman.layer.geoserver.sld.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,889: INFO/ForkPoolWorker-2] POST task=layman.layer.geoserver.sld.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,891: INFO/MainProcess] Received task: layman.layer.filesystem.thumbnail.refresh[b46889e7-a04a-4016-9be6-695f76e80c4e] [2020-10-21 17:49:50,892: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:50,892] INFO in celery: PRE task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:50,892: INFO/ForkPoolWorker-1] PRE task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:51,075] INFO in rest_layer: GET Layer, user=None 172.18.0.9 - - [21/Oct/2020 17:49:51] "GET /rest/testmissingattr_authz/layers/testmissingattr_authz_layer HTTP/1.1" 200 - [2020-10-21 17:49:51,109: INFO/MainProcess] Received task: layman.layer.micka.soap.refresh[7342d750-84b2-4970-b9f0-332c22b518db] [2020-10-21 17:49:51,111: WARNING/ForkPoolWorker-2] [2020-10-21 17:49:51,110] INFO in celery: PRE task=layman.layer.micka.soap.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:51,110: INFO/ForkPoolWorker-2] PRE task=layman.layer.micka.soap.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:51,112: INFO/ForkPoolWorker-1] Task layman.layer.filesystem.thumbnail.refresh[b46889e7-a04a-4016-9be6-695f76e80c4e] succeeded in 0.21986620399997037s: None [2020-10-21 17:49:51,112: WARNING/ForkPoolWorker-1] [2020-10-21 17:49:51,112] INFO in celery: POST task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:51,112: INFO/ForkPoolWorker-1] POST task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:51,940] INFO in rest_layer: GET Layer, user=None 172.18.0.8 - - [21/Oct/2020 17:49:51] "GET /rest/testmissingattr_authz/layers/testmissingattr_authz_layer HTTP/1.1" 200 - [2020-10-21 17:49:51,959: INFO/ForkPoolWorker-2] Task layman.layer.micka.soap.refresh[7342d750-84b2-4970-b9f0-332c22b518db] succeeded in 0.849108081000054s: None [2020-10-21 17:49:51,960: WARNING/ForkPoolWorker-2] [2020-10-21 17:49:51,960] INFO in celery: POST task=layman.layer.micka.soap.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:51,960: INFO/ForkPoolWorker-2] POST task=layman.layer.micka.soap.refresh, username=testmissingattr_authz, publication_name=testmissingattr_authz_layer [2020-10-21 17:49:51,961: WARNING/ForkPoolWorker-2] [2020-10-21 17:49:51,961] INFO in redis: Unlocking testmissingattr_authz:layman.layer:testmissingattr_authz_layer [2020-10-21 17:49:51,961: INFO/ForkPoolWorker-2] Unlocking testmissingattr_authz:layman.layer:testmissingattr_authz_layer [2020-10-21 17:49:51,966] INFO in rest_layer: GET Layer, user=None 172.18.0.9 - - [21/Oct/2020 17:49:51] "GET /rest/testmissingattr_authz/layers/testmissingattr_authz_layer HTTP/1.1" 200 - [2020-10-21 17:49:51,977] INFO in rest_current_user: PATCH Current User, user={'AUTHN_MODULE': 'layman.authn.oauth2'} [2020-10-21 17:49:52,080] INFO in util: ensure_whole_user:testmissingattr_authz2 [2020-10-21 17:49:52,090] INFO in __init__: User testmissingattr_authz2 does not exist yet, creating. [2020-10-21 17:49:52,212] INFO in __init__: Role USER_TESTMISSINGATTR_AUTHZ2 does not exist yet, creating. [2020-10-21 17:49:52,247] INFO in __init__: Role USER_TESTMISSINGATTR_AUTHZ2 not associated with user testmissingattr_authz2 yet, associating. [2020-10-21 17:49:52,275] INFO in __init__: Role LAYMAN_TEST_ROLE not associated with user testmissingattr_authz2 yet, associating. [2020-10-21 17:49:52,477] INFO in __init__: Ensure_workspace_security workspace=testmissingattr_authz2, type=r, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:52,487] INFO in __init__: Ensure_workspace_security_roles workspace=testmissingattr_authz2, type=r, roles={'LAYMAN_TEST_ROLE', 'ROLE_AUTHENTICATED', 'ROLE_ANONYMOUS'}, rule=testmissingattr_authz2.*.r, roles_str=LAYMAN_TEST_ROLE, ROLE_AUTHENTICATED, ROLE_ANONYMOUS [2020-10-21 17:49:52,512] INFO in __init__: Ensure_workspace_security workspace=testmissingattr_authz2, type=w, auth=('layman_test', 'laymanpwd') [2020-10-21 17:49:52,521] INFO in __init__: Ensure_workspace_security_roles workspace=testmissingattr_authz2, type=w, roles={'USER_TESTMISSINGATTR_AUTHZ2'}, rule=testmissingattr_authz2.*.w, roles_str=USER_TESTMISSINGATTR_AUTHZ2 172.18.0.9 - - [21/Oct/2020 17:49:52] "PATCH /rest/current-user?adjust_username=true HTTP/1.1" 200 - [2020-10-21 17:49:52,575] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr_authz2', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr_authz/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr_authz/wfs?request=Transaction, request.query_string=request=Transaction [2020-10-21 17:49:52,575] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': 'text/xml', 'connection': 'keep-alive', 'content-type': 'text/xml', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': 'Bearer testmissingattr_authz2', 'content-length': '2229', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr_authz2'}, url=http://geoserver:8080/geoserver/testmissingattr_authz/wfs?request=Transaction [2020-10-21 17:49:52,576] WARNING in gs_wfs_proxy: WFS Proxy: Can not edit. ws_namespace=testmissingattr_authz [2020-10-21 17:49:52,576] WARNING in gs_wfs_proxy: WFS Proxy: Can not edit. ws_namespace=testmissingattr_authz [2020-10-21 17:49:52,576] INFO in gs_wfs_proxy: GET WFS check_xml_for_attribute attribs=set() 172.18.0.9 - - [21/Oct/2020 17:49:52] "POST /geoserver/testmissingattr_authz/wfs?request=Transaction HTTP/1.1" 400 - [2020-10-21 17:49:52,695] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr_authz', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr_authz/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr_authz/wfs?request=Transaction, request.query_string=request=Transaction [2020-10-21 17:49:52,696] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': 'text/xml', 'connection': 'keep-alive', 'content-type': 'text/xml', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': 'Bearer testmissingattr_authz', 'content-length': '2229', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr_authz'}, url=http://geoserver:8080/geoserver/testmissingattr_authz/wfs?request=Transaction [2020-10-21 17:49:52,696] INFO in gs_wfs_proxy: GET WFS check_xml_for_attribute attribs={('testmissingattr_authz', 'testmissingattr_authz_layer', 'inexisting_attribute_auth1'), ('testmissingattr_authz', 'testmissingattr_authz_layer', 'labelrank'), ('testmissingattr_authz', 'testmissingattr_authz_layer', 'inexisting_attribute_auth2'), ('testmissingattr_authz', 'testmissingattr_authz_layer', 'name'), ('testmissingattr_authz', 'testmissingattr_authz_layer', 'wkb_geometry')} [2020-10-21 17:49:52,721] INFO in __init__: Resetting GeoServer 172.18.0.9 - - [21/Oct/2020 17:49:53] "POST /geoserver/testmissingattr_authz/wfs?request=Transaction HTTP/1.1" 400 - =========================== short test summary info ============================ FAILED src/layman/gs_wfs_proxy_test.py::test_missing_attribute_authz - Assert... !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! ==================== 1 failed, 8 passed in 70.88s (0:01:10) ==================== ```
jirik commented 4 years ago

It does not happen on https://github.com/jirik/layman/commit/4bc9593cfb9e9192c989d829d2e459cc051638c7, probably because REWE/REWO tests are commented out

jirik commented 3 years ago

Strikes back :) Version https://github.com/jirik/layman/commit/95242c8384644c335d277c656853741170de7453 , https://github.com/jirik/layman/runs/1459779768?check_suite_focus=true

However, this is different situation, geoserver returns 500 on WFS-T:

E           AssertionError: r.status_code=500
E             <?xml version="1.0" encoding="UTF-8"?><ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://localhost:8000/geoserver/schemas/ows/1.1.0/owsAll.xsd">
E               <ows:Exception exceptionCode="OperationProcessingFailed" locator="Transaction">
E                 <ows:ExceptionText>org.geoserver.wfs.WFSTransactionException: Error performing insert: Source was null in trying to create a reprojected feature collection!
E             Error performing insert: Source was null in trying to create a reprojected feature collection!
E             Source was null in trying to create a reprojected feature collection!</ows:ExceptionText>
E               </ows:Exception>
E             </ows:ExceptionReport>
Show log ``` src/layman/gs_wfs_proxy_test.py::test_missing_attribute FAILED [ 3%] =================================== FAILURES =================================== ____________________________ test_missing_attribute ____________________________ liferay_mock = def test_missing_attribute(liferay_mock): username = 'testmissingattr' layername = 'inexisting_attribute_layer' layername2 = 'inexisting_attribute_layer2' layman_process = process.start_layman(AUTHN_SETTINGS) authn_headers = get_authz_headers(username) headers = { 'Accept': 'text/xml', 'Content-type': 'text/xml', **authn_headers, } client_util.reserve_username(username, headers=authn_headers) ln = client_util.publish_layer(username, layername, ['tmp/naturalearth/110m/cultural/ne_110m_admin_0_countries.geojson', ], headers=authn_headers, ) assert ln == layername ln2 = client_util.publish_layer(username, layername2, ['tmp/naturalearth/110m/cultural/ne_110m_admin_0_countries.geojson', ], headers=authn_headers, ) assert ln2 == layername2 wfs_t_url = f"http://{settings.LAYMAN_SERVER_NAME}/geoserver/wfs?request=Transaction" def wfs_post(username, attr_names_list, data_xml): with app.app_context(): wfs_url = f"http://{settings.LAYMAN_SERVER_NAME}/geoserver/{username}/wfs" old_db_attributes = {} old_wfs_properties = {} for layername, attr_names in attr_names_list: # test that all attr_names are not yet presented in DB table old_db_attributes[layername] = db.get_all_column_names(username, layername) for attr_name in attr_names: assert attr_name not in old_db_attributes[layername], f"old_db_attributes={old_db_attributes[layername]}, attr_name={attr_name}" layer_schema = get_wfs_schema( wfs_url, typename=f"{username}:{layername}", version=geoserver_wfs.VERSION, headers=authn_headers) old_wfs_properties[layername] = sorted(layer_schema['properties'].keys()) r = requests.post(wfs_t_url, data=data_xml, headers=headers) assert r.status_code == 200, f"r.status_code={r.status_code}\n{r.text}" new_db_attributes = {} new_wfs_properties = {} for layername, attr_names in attr_names_list: # test that exactly all attr_names were created in DB table new_db_attributes[layername] = db.get_all_column_names(username, layername) for attr_name in attr_names: assert attr_name in new_db_attributes[layername], f"new_db_attributes={new_db_attributes[layername]}, attr_name={attr_name}" assert set(attr_names).union(set(old_db_attributes[layername])) == set(new_db_attributes[layername]) # test that exactly all attr_names were distinguished also in WFS feature type layer_schema = get_wfs_schema( wfs_url, typename=f"{username}:{layername}", version=geoserver_wfs.VERSION, headers=authn_headers) new_wfs_properties[layername] = sorted(layer_schema['properties'].keys()) for attr_name in attr_names: assert attr_name in new_wfs_properties[layername], f"new_wfs_properties={new_wfs_properties[layername]}, attr_name={attr_name}" assert set(attr_names).union(set(old_wfs_properties[layername])) == set(new_wfs_properties[layername]),\ set(new_wfs_properties[layername]).difference(set(attr_names).union(set(old_wfs_properties[layername]))) attr_names = ['inexisting_attribute_attr', 'inexisting_attribute_attr1a'] data_xml = data_wfs.get_wfs20_insert_points_new_attr(username, layername, attr_names) wfs_post(username, [(layername, attr_names)], data_xml) attr_names2 = ['inexisting_attribute_attr2'] data_xml = data_wfs.get_wfs20_update_points_new_attr(username, layername, attr_names2) wfs_post(username, [(layername, attr_names2)], data_xml) attr_names3 = ['inexisting_attribute_attr3'] data_xml = data_wfs.get_wfs20_update_points_new_attr(username, layername, attr_names3, with_attr_namespace=True) wfs_post(username, [(layername, attr_names3)], data_xml) attr_names4 = ['inexisting_attribute_attr4'] data_xml = data_wfs.get_wfs20_update_points_new_attr(username, layername, attr_names4, with_filter=True) wfs_post(username, [(layername, attr_names4)], data_xml) attr_names5 = ['inexisting_attribute_attr5'] data_xml = data_wfs.get_wfs20_replace_points_new_attr(username, layername, attr_names5) wfs_post(username, [(layername, attr_names5)], data_xml) attr_names_i1 = ['inexisting_attribute_attr_complex_i1'] attr_names_i2 = ['inexisting_attribute_attr_complex_i2'] attr_names_u = ['inexisting_attribute_attr_complex_u'] attr_names_r = ['inexisting_attribute_attr_complex_r'] attr_names_complex = [(layername, attr_names_i1 + attr_names_r), (layername2, attr_names_i2 + attr_names_u)] data_xml = data_wfs.get_wfs20_complex_new_attr(username=username, layername1=layername, layername2=layername2, attr_names_insert1=attr_names_i1, attr_names_insert2=attr_names_i2, attr_names_update=attr_names_u, attr_names_replace=attr_names_r ) > wfs_post(username, attr_names_complex, data_xml) src/layman/gs_wfs_proxy_test.py:288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ username = 'testmissingattr' attr_names_list = [('inexisting_attribute_layer', ['inexisting_attribute_attr_complex_i1', 'inexisting_attribute_attr_complex_r']), ('inexisting_attribute_layer2', ['inexisting_attribute_attr_complex_i2', 'inexisting_attribute_attr_complex_u'])] data_xml = '\n\n \n \n' def wfs_post(username, attr_names_list, data_xml): with app.app_context(): wfs_url = f"http://{settings.LAYMAN_SERVER_NAME}/geoserver/{username}/wfs" old_db_attributes = {} old_wfs_properties = {} for layername, attr_names in attr_names_list: # test that all attr_names are not yet presented in DB table old_db_attributes[layername] = db.get_all_column_names(username, layername) for attr_name in attr_names: assert attr_name not in old_db_attributes[layername], f"old_db_attributes={old_db_attributes[layername]}, attr_name={attr_name}" layer_schema = get_wfs_schema( wfs_url, typename=f"{username}:{layername}", version=geoserver_wfs.VERSION, headers=authn_headers) old_wfs_properties[layername] = sorted(layer_schema['properties'].keys()) r = requests.post(wfs_t_url, data=data_xml, headers=headers) > assert r.status_code == 200, f"r.status_code={r.status_code}\n{r.text}" E AssertionError: r.status_code=500 E E E org.geoserver.wfs.WFSTransactionException: Error performing insert: Source was null in trying to create a reprojected feature collection! E Error performing insert: Source was null in trying to create a reprojected feature collection! E Source was null in trying to create a reprojected feature collection! E E E E assert 500 == 200 E +500 E -200 src/layman/gs_wfs_proxy_test.py:235: AssertionError ----------------------------- Captured stdout call ----------------------------- * Serving Flask app "src/layman" * Environment: development * Debug mode: on ----------------------------- Captured stderr call ----------------------------- [2020-11-26 15:52:05,023] INFO in __init__: IN_CELERY_WORKER_PROCESS=False [2020-11-26 15:52:05,024] INFO in __init__: IN_PYTEST_PROCESS=False [2020-11-26 15:52:05,024] INFO in __init__: IN_FLOWER_PROCESS=False [2020-11-26 15:52:05,024] INFO in __init__: IN_FLASK_PROCESS=True [2020-11-26 15:52:05,025] INFO in __init__: Adjusting GeoServer [2020-11-26 15:52:05,039] INFO in __init__: Role LAYMAN_TEST_ROLE already exists [2020-11-26 15:52:05,049] INFO in __init__: User layman_test already exists [2020-11-26 15:52:05,058] INFO in __init__: Role ADMIN already associated with user layman_test [2020-11-26 15:52:05,070] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user layman_test [2020-11-26 15:52:05,090] INFO in __init__: Current SRS list [3857, 4326] already corresponds with requested one. [2020-11-26 15:52:05,112] INFO in __init__: Current Proxy Base URL http://localhost:8000/geoserver/ already corresponds with requested one. [2020-11-26 15:52:05,209] INFO in schema_initialization: Layman DB schema already exists, schema_name=_prime_schema [2020-11-26 15:52:05,209] INFO in __init__: Loading Redis database [2020-11-26 15:52:05,210] INFO in uuid: Importing UUIDs to REDIS [2020-11-26 15:52:05,514] INFO in redis: Importing authn to REDIS [2020-11-26 15:52:05,591] INFO in redis: Import authn into redis: username testproxy2, iss_id layman.authn.oauth2.liferay, sub 30002 [2020-11-26 15:52:05,591] INFO in redis: Import authn into redis: username test_wms_ows_proxy_user, iss_id layman.authn.oauth2.liferay, sub 30011 [2020-11-26 15:52:05,591] INFO in redis: Import authn into redis: username testproxy, iss_id layman.authn.oauth2.liferay, sub 30001 [2020-11-26 15:52:05,596] INFO in __init__: Ensuring users [2020-11-26 15:52:05,684] INFO in __init__: Ensuring user testproxy2 [2020-11-26 15:52:05,685] INFO in util: ensure_whole_user:testproxy2 [2020-11-26 15:52:05,695] INFO in __init__: User testproxy2 already exists [2020-11-26 15:52:05,703] INFO in __init__: Role USER_TESTPROXY2 already exists [2020-11-26 15:52:05,710] INFO in __init__: Role USER_TESTPROXY2 already associated with user testproxy2 [2020-11-26 15:52:05,719] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user testproxy2 [2020-11-26 15:52:05,732] INFO in __init__: Ensuring user test_abort_user [2020-11-26 15:52:05,732] INFO in util: ensure_whole_user:test_abort_user [2020-11-26 15:52:05,742] INFO in __init__: User test_abort_user already exists [2020-11-26 15:52:05,750] INFO in __init__: Role USER_TEST_ABORT_USER already exists [2020-11-26 15:52:05,757] INFO in __init__: Role USER_TEST_ABORT_USER already associated with user test_abort_user [2020-11-26 15:52:05,765] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user test_abort_user [2020-11-26 15:52:05,765] INFO in __init__: Ensuring user test_wms_ows_proxy_user [2020-11-26 15:52:05,765] INFO in util: ensure_whole_user:test_wms_ows_proxy_user [2020-11-26 15:52:05,774] INFO in __init__: User test_wms_ows_proxy_user already exists [2020-11-26 15:52:05,781] INFO in __init__: Role USER_TEST_WMS_OWS_PROXY_USER already exists [2020-11-26 15:52:05,789] INFO in __init__: Role USER_TEST_WMS_OWS_PROXY_USER already associated with user test_wms_ows_proxy_user [2020-11-26 15:52:05,798] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user test_wms_ows_proxy_user [2020-11-26 15:52:05,798] INFO in __init__: Ensuring user testproxy [2020-11-26 15:52:05,799] INFO in util: ensure_whole_user:testproxy [2020-11-26 15:52:05,809] INFO in __init__: User testproxy already exists [2020-11-26 15:52:05,817] INFO in __init__: Role USER_TESTPROXY already exists [2020-11-26 15:52:05,825] INFO in __init__: Role USER_TESTPROXY already associated with user testproxy [2020-11-26 15:52:05,833] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user testproxy [2020-11-26 15:52:05,834] INFO in __init__: Ensuring user wfs_proxy_test [2020-11-26 15:52:05,834] INFO in util: ensure_whole_user:wfs_proxy_test [2020-11-26 15:52:05,843] INFO in __init__: User wfs_proxy_test already exists [2020-11-26 15:52:05,851] INFO in __init__: Role USER_WFS_PROXY_TEST already exists [2020-11-26 15:52:05,861] INFO in __init__: Role USER_WFS_PROXY_TEST already associated with user wfs_proxy_test [2020-11-26 15:52:05,872] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user wfs_proxy_test * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit) [2020-11-26 15:52:05,970] INFO in rest_current_user: GET Current User, user=None 172.18.0.9 - - [26/Nov/2020 15:52:05] "GET /rest/current-user HTTP/1.1" 200 - [2020-11-26 15:52:05,984] INFO in rest_current_user: PATCH Current User, user={'AUTHN_MODULE': 'layman.authn.oauth2'} [2020-11-26 15:52:06,067] INFO in util: ensure_whole_user:testmissingattr [2020-11-26 15:52:06,078] INFO in __init__: User testmissingattr does not exist yet, creating. [2020-11-26 15:52:06,235] INFO in __init__: Role USER_TESTMISSINGATTR does not exist yet, creating. [2020-11-26 15:52:06,279] INFO in __init__: Role USER_TESTMISSINGATTR not associated with user testmissingattr yet, associating. [2020-11-26 15:52:06,312] INFO in __init__: Role LAYMAN_TEST_ROLE not associated with user testmissingattr yet, associating. 172.18.0.9 - - [26/Nov/2020 15:52:06] "PATCH /rest/current-user HTTP/1.1" 200 - [2020-11-26 15:52:06,674] INFO in rest_layers: POST Layers, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} [2020-11-26 15:52:06,842] INFO in redis: Locking testmissingattr:layman.layer:inexisting_attribute_layer with POST 172.18.0.9 - - [26/Nov/2020 15:52:07] "POST /rest/testmissingattr/layers HTTP/1.1" 200 - [2020-11-26 15:52:07,116] INFO in __init__: IN_CELERY_WORKER_PROCESS=True [2020-11-26 15:52:07,116] INFO in __init__: IN_PYTEST_PROCESS=False [2020-11-26 15:52:07,116] INFO in __init__: IN_FLOWER_PROCESS=False [2020-11-26 15:52:07,116] INFO in __init__: IN_FLASK_PROCESS=False [2020-11-26 15:52:07,306] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:07] "GET /rest/testmissingattr/layers/inexisting_attribute_layer HTTP/1.1" 200 - /usr/local/lib/python3.6/dist-packages/celery/platforms.py:801: RuntimeWarning: You're running the worker with superuser privileges: this is absolutely not recommended! Please specify a different user using the --uid option. User information: uid=0 euid=0 gid=0 egid=0 uid=uid, euid=euid, gid=gid, egid=egid, [2020-11-26 15:52:07,555: INFO/MainProcess] Connected to redis://redis:6379/12 [2020-11-26 15:52:07,566: INFO/MainProcess] mingle: searching for neighbors [2020-11-26 15:52:07,936] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:07] "GET /rest/testmissingattr/layers/inexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:08,573] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:08] "GET /rest/testmissingattr/layers/inexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:08,587: INFO/MainProcess] mingle: all alone [2020-11-26 15:52:08,601: INFO/MainProcess] celery@ed32c8f37c7f ready. [2020-11-26 15:52:09,202] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:09] "GET /rest/testmissingattr/layers/inexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:09,675: INFO/MainProcess] Received task: layman.layer.db.table.refresh[74a27e83-575d-4fe6-b686-906c34399516] /usr/local/lib/python3.6/dist-packages/celery/platforms.py:801: RuntimeWarning: You're running the worker with superuser privileges: this is absolutely not recommended! Please specify a different user using the --uid option. User information: uid=0 euid=0 gid=0 egid=0 uid=uid, euid=euid, gid=gid, egid=egid, [2020-11-26 15:52:09,678: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:09,678] INFO in celery: PRE task=layman.layer.db.table.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:09,678: INFO/ForkPoolWorker-1] PRE task=layman.layer.db.table.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:09,890] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:09] "GET /rest/testmissingattr/layers/inexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:09,986: INFO/MainProcess] Received task: layman.layer.geoserver.wfs.refresh[abfd0af1-47ae-485c-b02c-fd2501e330b1] [2020-11-26 15:52:09,987: INFO/ForkPoolWorker-1] Task layman.layer.db.table.refresh[74a27e83-575d-4fe6-b686-906c34399516] succeeded in 0.3098160879999341s: None [2020-11-26 15:52:09,987: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:09,987] INFO in celery: POST task=layman.layer.db.table.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:09,987: INFO/ForkPoolWorker-1] POST task=layman.layer.db.table.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer /usr/local/lib/python3.6/dist-packages/celery/platforms.py:801: RuntimeWarning: You're running the worker with superuser privileges: this is absolutely not recommended! Please specify a different user using the --uid option. User information: uid=0 euid=0 gid=0 egid=0 uid=uid, euid=euid, gid=gid, egid=egid, [2020-11-26 15:52:09,989: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:09,989] INFO in celery: PRE task=layman.layer.geoserver.wfs.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:09,989: INFO/ForkPoolWorker-3] PRE task=layman.layer.geoserver.wfs.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,006: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,006] INFO in __init__: User testmissingattr already exists [2020-11-26 15:52:10,006: INFO/ForkPoolWorker-3] User testmissingattr already exists [2020-11-26 15:52:10,016: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,016] INFO in __init__: Role USER_TESTMISSINGATTR already exists [2020-11-26 15:52:10,016: INFO/ForkPoolWorker-3] Role USER_TESTMISSINGATTR already exists [2020-11-26 15:52:10,025: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,024] INFO in __init__: Role USER_TESTMISSINGATTR already associated with user testmissingattr [2020-11-26 15:52:10,024: INFO/ForkPoolWorker-3] Role USER_TESTMISSINGATTR already associated with user testmissingattr [2020-11-26 15:52:10,036: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,036] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user testmissingattr [2020-11-26 15:52:10,036: INFO/ForkPoolWorker-3] Role LAYMAN_TEST_ROLE already associated with user testmissingattr [2020-11-26 15:52:10,172: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,172] INFO in __init__: Ensure_security_roles rule=testmissingattr.inexisting_attribute_layer.r, roles={'USER_TESTMISSINGATTR'}, roles_str=USER_TESTMISSINGATTR [2020-11-26 15:52:10,172: INFO/ForkPoolWorker-3] Ensure_security_roles rule=testmissingattr.inexisting_attribute_layer.r, roles={'USER_TESTMISSINGATTR'}, roles_str=USER_TESTMISSINGATTR [2020-11-26 15:52:10,191: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,190] INFO in __init__: Ensure_security_roles rule=testmissingattr.inexisting_attribute_layer.w, roles={'USER_TESTMISSINGATTR'}, roles_str=USER_TESTMISSINGATTR [2020-11-26 15:52:10,190: INFO/ForkPoolWorker-3] Ensure_security_roles rule=testmissingattr.inexisting_attribute_layer.w, roles={'USER_TESTMISSINGATTR'}, roles_str=USER_TESTMISSINGATTR [2020-11-26 15:52:10,234: INFO/MainProcess] Received task: layman.layer.geoserver.sld.refresh[611ef392-e463-416b-b1a3-00a27dd82168] [2020-11-26 15:52:10,236: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:10,236] INFO in celery: PRE task=layman.layer.geoserver.sld.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,236: INFO/ForkPoolWorker-1] PRE task=layman.layer.geoserver.sld.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,245: INFO/ForkPoolWorker-3] Task layman.layer.geoserver.wfs.refresh[abfd0af1-47ae-485c-b02c-fd2501e330b1] succeeded in 0.25626316399996085s: None [2020-11-26 15:52:10,245: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,245] INFO in celery: POST task=layman.layer.geoserver.wfs.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,245: INFO/ForkPoolWorker-3] POST task=layman.layer.geoserver.wfs.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,324: INFO/MainProcess] Received task: layman.layer.filesystem.thumbnail.refresh[c5e0943b-e05d-4d76-8344-16d9d6a37d2b] [2020-11-26 15:52:10,326: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,326] INFO in celery: PRE task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,326: INFO/ForkPoolWorker-3] PRE task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,328: INFO/ForkPoolWorker-1] Task layman.layer.geoserver.sld.refresh[611ef392-e463-416b-b1a3-00a27dd82168] succeeded in 0.09143375700000433s: None [2020-11-26 15:52:10,328: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:10,328] INFO in celery: POST task=layman.layer.geoserver.sld.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,328: INFO/ForkPoolWorker-1] POST task=layman.layer.geoserver.sld.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,542: INFO/MainProcess] Received task: layman.layer.micka.soap.refresh[15742c96-2e81-4422-b356-7e3d0c70b45d] [2020-11-26 15:52:10,544: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:10,543] INFO in celery: PRE task=layman.layer.micka.soap.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,543: INFO/ForkPoolWorker-1] PRE task=layman.layer.micka.soap.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,552: INFO/ForkPoolWorker-3] Task layman.layer.filesystem.thumbnail.refresh[c5e0943b-e05d-4d76-8344-16d9d6a37d2b] succeeded in 0.22669212300002073s: None [2020-11-26 15:52:10,553: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:10,553] INFO in celery: POST task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,553: INFO/ForkPoolWorker-3] POST task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:10,632] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:10] "GET /rest/testmissingattr/layers/inexisting_attribute_layer HTTP/1.1" 200 - 172.18.0.6 - - [26/Nov/2020 15:52:11] "GET /rest/testmissingattr/layers/inexisting_attribute_layer HTTP/1.1" 404 - [2020-11-26 15:52:11,053: INFO/ForkPoolWorker-1] Task layman.layer.micka.soap.refresh[15742c96-2e81-4422-b356-7e3d0c70b45d] succeeded in 0.5094277929999862s: None [2020-11-26 15:52:11,053: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:11,053] INFO in celery: POST task=layman.layer.micka.soap.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:11,053: INFO/ForkPoolWorker-1] POST task=layman.layer.micka.soap.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer [2020-11-26 15:52:11,054: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:11,054] INFO in redis: Unlocking testmissingattr:layman.layer:inexisting_attribute_layer [2020-11-26 15:52:11,054: INFO/ForkPoolWorker-1] Unlocking testmissingattr:layman.layer:inexisting_attribute_layer [2020-11-26 15:52:11,307] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:11] "GET /rest/testmissingattr/layers/inexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:11,317] INFO in rest_layers: POST Layers, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} [2020-11-26 15:52:11,349] INFO in redis: Locking testmissingattr:layman.layer:inexisting_attribute_layer2 with POST 172.18.0.9 - - [26/Nov/2020 15:52:11] "POST /rest/testmissingattr/layers HTTP/1.1" 200 - [2020-11-26 15:52:11,429: INFO/MainProcess] Received task: layman.layer.db.table.refresh[e8ae6421-6d6f-4962-9a0c-84c906cd4ee7] [2020-11-26 15:52:11,430: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:11,430] INFO in celery: PRE task=layman.layer.db.table.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,430: INFO/ForkPoolWorker-1] PRE task=layman.layer.db.table.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,568] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:11] "GET /rest/testmissingattr/layers/inexisting_attribute_layer2 HTTP/1.1" 200 - [2020-11-26 15:52:11,661: INFO/MainProcess] Received task: layman.layer.geoserver.wfs.refresh[0260a712-ab9b-4b49-a506-9636ff59e046] [2020-11-26 15:52:11,661: INFO/ForkPoolWorker-1] Task layman.layer.db.table.refresh[e8ae6421-6d6f-4962-9a0c-84c906cd4ee7] succeeded in 0.23100667000005615s: None [2020-11-26 15:52:11,662: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,662] INFO in celery: PRE task=layman.layer.geoserver.wfs.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,662: INFO/ForkPoolWorker-3] PRE task=layman.layer.geoserver.wfs.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,662: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:11,662] INFO in celery: POST task=layman.layer.db.table.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,662: INFO/ForkPoolWorker-1] POST task=layman.layer.db.table.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,673: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,673] INFO in __init__: User testmissingattr already exists [2020-11-26 15:52:11,673: INFO/ForkPoolWorker-3] User testmissingattr already exists [2020-11-26 15:52:11,681: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,681] INFO in __init__: Role USER_TESTMISSINGATTR already exists [2020-11-26 15:52:11,681: INFO/ForkPoolWorker-3] Role USER_TESTMISSINGATTR already exists [2020-11-26 15:52:11,690: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,689] INFO in __init__: Role USER_TESTMISSINGATTR already associated with user testmissingattr [2020-11-26 15:52:11,689: INFO/ForkPoolWorker-3] Role USER_TESTMISSINGATTR already associated with user testmissingattr [2020-11-26 15:52:11,698: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,698] INFO in __init__: Role LAYMAN_TEST_ROLE already associated with user testmissingattr [2020-11-26 15:52:11,698: INFO/ForkPoolWorker-3] Role LAYMAN_TEST_ROLE already associated with user testmissingattr [2020-11-26 15:52:11,774: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,774] INFO in __init__: Ensure_security_roles rule=testmissingattr.inexisting_attribute_layer2.r, roles={'USER_TESTMISSINGATTR'}, roles_str=USER_TESTMISSINGATTR [2020-11-26 15:52:11,774: INFO/ForkPoolWorker-3] Ensure_security_roles rule=testmissingattr.inexisting_attribute_layer2.r, roles={'USER_TESTMISSINGATTR'}, roles_str=USER_TESTMISSINGATTR [2020-11-26 15:52:11,793: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,793] INFO in __init__: Ensure_security_roles rule=testmissingattr.inexisting_attribute_layer2.w, roles={'USER_TESTMISSINGATTR'}, roles_str=USER_TESTMISSINGATTR [2020-11-26 15:52:11,793: INFO/ForkPoolWorker-3] Ensure_security_roles rule=testmissingattr.inexisting_attribute_layer2.w, roles={'USER_TESTMISSINGATTR'}, roles_str=USER_TESTMISSINGATTR [2020-11-26 15:52:11,812: INFO/MainProcess] Received task: layman.layer.geoserver.sld.refresh[aaa86b76-c489-48e0-bcf6-d294c89ecc12] [2020-11-26 15:52:11,813: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:11,813] INFO in celery: PRE task=layman.layer.geoserver.sld.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,813: INFO/ForkPoolWorker-1] PRE task=layman.layer.geoserver.sld.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,814: INFO/ForkPoolWorker-3] Task layman.layer.geoserver.wfs.refresh[0260a712-ab9b-4b49-a506-9636ff59e046] succeeded in 0.15270246499994755s: None [2020-11-26 15:52:11,815: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,815] INFO in celery: POST task=layman.layer.geoserver.wfs.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,815: INFO/ForkPoolWorker-3] POST task=layman.layer.geoserver.wfs.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,874: INFO/ForkPoolWorker-1] Task layman.layer.geoserver.sld.refresh[aaa86b76-c489-48e0-bcf6-d294c89ecc12] succeeded in 0.06121810800004823s: None [2020-11-26 15:52:11,874: INFO/MainProcess] Received task: layman.layer.filesystem.thumbnail.refresh[87f204d9-36aa-4d94-afd8-e1380de2bf90] [2020-11-26 15:52:11,874: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:11,874] INFO in celery: POST task=layman.layer.geoserver.sld.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,874: INFO/ForkPoolWorker-1] POST task=layman.layer.geoserver.sld.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,875: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,875] INFO in celery: PRE task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,875: INFO/ForkPoolWorker-3] PRE task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,975: INFO/MainProcess] Received task: layman.layer.micka.soap.refresh[e30de488-9ede-4d9b-9c19-d1f10585afb0] [2020-11-26 15:52:11,976: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:11,976] INFO in celery: PRE task=layman.layer.micka.soap.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,976: INFO/ForkPoolWorker-1] PRE task=layman.layer.micka.soap.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,983: INFO/ForkPoolWorker-3] Task layman.layer.filesystem.thumbnail.refresh[87f204d9-36aa-4d94-afd8-e1380de2bf90] succeeded in 0.10783444600008352s: None [2020-11-26 15:52:11,983: WARNING/ForkPoolWorker-3] [2020-11-26 15:52:11,983] INFO in celery: POST task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:11,983: INFO/ForkPoolWorker-3] POST task=layman.layer.filesystem.thumbnail.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:12,262] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:12] "GET /rest/testmissingattr/layers/inexisting_attribute_layer2 HTTP/1.1" 200 - 172.18.0.6 - - [26/Nov/2020 15:52:12] "GET /rest/testmissingattr/layers/inexisting_attribute_layer2 HTTP/1.1" 404 - [2020-11-26 15:52:12,437: INFO/ForkPoolWorker-1] Task layman.layer.micka.soap.refresh[e30de488-9ede-4d9b-9c19-d1f10585afb0] succeeded in 0.460820420999994s: None [2020-11-26 15:52:12,437: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:12,437] INFO in celery: POST task=layman.layer.micka.soap.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:12,437: INFO/ForkPoolWorker-1] POST task=layman.layer.micka.soap.refresh, username=testmissingattr, publication_name=inexisting_attribute_layer2 [2020-11-26 15:52:12,438: WARNING/ForkPoolWorker-1] [2020-11-26 15:52:12,438] INFO in redis: Unlocking testmissingattr:layman.layer:inexisting_attribute_layer2 [2020-11-26 15:52:12,438: INFO/ForkPoolWorker-1] Unlocking testmissingattr:layman.layer:inexisting_attribute_layer2 [2020-11-26 15:52:12,943] INFO in rest_layer: GET Layer, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'} 172.18.0.9 - - [26/Nov/2020 15:52:12] "GET /rest/testmissingattr/layers/inexisting_attribute_layer2 HTTP/1.1" 200 - [2020-11-26 15:52:12,965] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:12,966] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:13] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:13,024] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction [2020-11-26 15:52:13,024] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': 'text/xml', 'connection': 'keep-alive', 'content-type': 'text/xml', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'content-length': '2069', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction [2020-11-26 15:52:13,037] INFO in gs_wfs_proxy: GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'labelrank'), ('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr'), ('testmissingattr', 'inexisting_attribute_layer', 'wkb_geometry'), ('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr1a'), ('testmissingattr', 'inexisting_attribute_layer', 'name')} [2020-11-26 15:52:13,063] INFO in __init__: Resetting GeoServer [2020-11-26 15:52:13,086] INFO in __init__: Resetting GeoServer done 172.18.0.9 - - [26/Nov/2020 15:52:13] "POST /geoserver/wfs?request=Transaction HTTP/1.1" 200 - [2020-11-26 15:52:13,385] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:13,385] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:13] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:13,434] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:13,435] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:13] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:13,471] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction [2020-11-26 15:52:13,471] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': 'text/xml', 'connection': 'keep-alive', 'content-type': 'text/xml', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'content-length': '926', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction [2020-11-26 15:52:13,489] INFO in gs_wfs_proxy: GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr2')} [2020-11-26 15:52:13,512] INFO in __init__: Resetting GeoServer [2020-11-26 15:52:13,523] INFO in __init__: Resetting GeoServer done 172.18.0.9 - - [26/Nov/2020 15:52:13] "POST /geoserver/wfs?request=Transaction HTTP/1.1" 200 - [2020-11-26 15:52:13,805] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:13,805] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:13] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:13,854] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:13,854] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:13] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:13,884] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction [2020-11-26 15:52:13,884] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': 'text/xml', 'connection': 'keep-alive', 'content-type': 'text/xml', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'content-length': '942', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction [2020-11-26 15:52:13,896] INFO in gs_wfs_proxy: GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr3')} [2020-11-26 15:52:13,920] INFO in __init__: Resetting GeoServer [2020-11-26 15:52:13,928] INFO in __init__: Resetting GeoServer done 172.18.0.9 - - [26/Nov/2020 15:52:14] "POST /geoserver/wfs?request=Transaction HTTP/1.1" 200 - [2020-11-26 15:52:14,195] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:14,196] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:14] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:14,243] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:14,243] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:14] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:14,271] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction [2020-11-26 15:52:14,271] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': 'text/xml', 'connection': 'keep-alive', 'content-type': 'text/xml', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'content-length': '1035', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction [2020-11-26 15:52:14,284] INFO in gs_wfs_proxy: GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr4')} [2020-11-26 15:52:14,308] INFO in __init__: Resetting GeoServer [2020-11-26 15:52:14,315] INFO in __init__: Resetting GeoServer done 172.18.0.9 - - [26/Nov/2020 15:52:14] "POST /geoserver/wfs?request=Transaction HTTP/1.1" 200 - [2020-11-26 15:52:14,465] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:14,465] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:14] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:14,514] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:14,514] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:14] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:14,543] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction [2020-11-26 15:52:14,543] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': 'text/xml', 'connection': 'keep-alive', 'content-type': 'text/xml', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'content-length': '2081', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction [2020-11-26 15:52:14,557] INFO in gs_wfs_proxy: GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr5'), ('testmissingattr', 'inexisting_attribute_layer', 'labelrank'), ('testmissingattr', 'inexisting_attribute_layer', 'wkb_geometry'), ('testmissingattr', 'inexisting_attribute_layer', 'name')} [2020-11-26 15:52:14,583] INFO in __init__: Resetting GeoServer [2020-11-26 15:52:14,590] INFO in __init__: Resetting GeoServer done 172.18.0.9 - - [26/Nov/2020 15:52:14] "POST /geoserver/wfs?request=Transaction HTTP/1.1" 200 - [2020-11-26 15:52:14,827] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:14,827] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:14] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:14,877] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer [2020-11-26 15:52:14,877] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer 172.18.0.9 - - [26/Nov/2020 15:52:14] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer HTTP/1.1" 200 - [2020-11-26 15:52:14,908] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=testmissingattr/wfs, url=http://layman_test_run_1:8000/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer2, request.query_string=service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer2 [2020-11-26 15:52:14,908] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': '*/*', 'connection': 'keep-alive', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer2 172.18.0.9 - - [26/Nov/2020 15:52:14] "GET /geoserver/testmissingattr/wfs?service=WFS&request=DescribeFeatureType&version=2.0.0&typeName=testmissingattr%3Ainexisting_attribute_layer2 HTTP/1.1" 200 - [2020-11-26 15:52:14,935] INFO in gs_wfs_proxy: GET WFS proxy, user={'username': 'testmissingattr', 'AUTHN_MODULE': 'layman.authn.oauth2'}, subpath=wfs, url=http://layman_test_run_1:8000/geoserver/wfs?request=Transaction, request.query_string=request=Transaction [2020-11-26 15:52:14,936] INFO in gs_wfs_proxy: GET WFS proxy, headers_req={'user-agent': 'python-requests/2.24.0', 'accept-encoding': 'gzip, deflate', 'accept': 'text/xml', 'connection': 'keep-alive', 'content-type': 'text/xml', 'authorizationissurl': 'http://localhost:8082/o/oauth2/authorize', 'authorization': '***', 'content-length': '2939', 'e58e4774e3dc7d6443ad59a8202c5ee0': 'testmissingattr'}, url=http://geoserver:8080/geoserver/wfs?request=Transaction [2020-11-26 15:52:14,953] INFO in gs_wfs_proxy: GET WFS check_xml_for_attribute attribs={('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr_complex_i1'), ('testmissingattr', 'inexisting_attribute_layer2', 'name'), ('testmissingattr', 'inexisting_attribute_layer2', 'inexisting_attribute_attr_complex_i2'), ('testmissingattr', 'inexisting_attribute_layer', 'inexisting_attribute_attr_complex_r'), ('testmissingattr', 'inexisting_attribute_layer2', 'wkb_geometry'), ('testmissingattr', 'inexisting_attribute_layer', 'labelrank'), ('testmissingattr', 'inexisting_attribute_layer', 'wkb_geometry'), ('testmissingattr', 'inexisting_attribute_layer2', 'labelrank'), ('testmissingattr', 'inexisting_attribute_layer', 'name'), ('testmissingattr', 'inexisting_attribute_layer2', 'inexisting_attribute_attr_complex_u')} [2020-11-26 15:52:14,976] INFO in __init__: Resetting GeoServer [2020-11-26 15:52:14,983] INFO in __init__: Resetting GeoServer done 172.18.0.9 - - [26/Nov/2020 15:52:15] "POST /geoserver/wfs?request=Transaction HTTP/1.1" 500 - =========================== short test summary info ============================ FAILED src/layman/gs_wfs_proxy_test.py::test_missing_attribute - AssertionErr... !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! ========================= 1 failed, 6 passed in 53.18s ========================= make: *** [test] Error 1 Makefile:156: recipe for target 'test' failed Error: Process completed with exit code 2. ```
jirik commented 3 years ago

Another one

E           AssertionError: r.status_code=400
E             <?xml version="1.0" encoding="UTF-8"?><ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://localhost:8000/geoserver/schemas/ows/1.1.0/owsAll.xsd">
E               <ows:Exception exceptionCode="NoApplicableCode">
E                 <ows:ExceptionText>{http://testmissingattr}inexisting_attribute_layer is not available: nullNo code &amp;quot;EPSG:3857&amp;quot; from authority &amp;quot;European Petroleum Survey Group&amp;quot; found for object of type &amp;quot;IdentifiedObject&amp;quot;.</ows:ExceptionText>
E               </ows:Exception>
E             </ows:ExceptionReport>
index-git commented 3 years ago

Report after day of trying and playing:

jirik commented 1 year ago

Maybe it can be solved by turning off / adjusting GeoServer's brute force attack prevention