Closed MaelREBOUX closed 7 years ago
For testing :
UUID : bafa5038-dad5-4311-ba38-bdf61a4ebf8c [TEST sdi-consistence-check] wms ko wfs ko checking WMS url: OK checking WFS url: OK
UUID : dc5fe03a-ff85-4393-9a3c-eff20888310a [TEST sdi-consistence-check] wms ok wfs ok checking WMS url: OK checking WFS url: OK
See previous commit, here is the output after my modification:
start time: 2017-03-31 13:50:59
#0
UUID : 3dafbf1e-37e7-4921-89f3-60505a656b3a
Aménagements vélo et zones de circulation apaisée sur Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#1
UUID : 33f019b4-40e5-4fe7-9bc4-358960e021bb
Limites communales référentielles de Rennes Métropole (polylignes)
checking WMS url: OK
checking WFS url: OK
#2
UUID : 44215fc3-e316-4547-b391-3ad691533ffa
Emprise de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#3
UUID : 57c79ab9-2289-4a15-a579-0ee668d8dfa1
Périmètres des 12 quartiers de la Ville de Rennes
checking WMS url: OK
checking WFS url: OK
#4
UUID : 6a7b2637-e1ba-4913-9dd0-4915a36784af
Périmètres des 45 sous-quartiers de la Ville de Rennes
checking WMS url: OK
checking WFS url: OK
#5
UUID : 8cbffd7d-e1ea-4419-baa5-1ebe52030b8d
Périmètres des 6 directions de quartier de la Ville de Rennes
checking WMS url: OK
checking WFS url: OK
#6
UUID : f81eef94-5c42-4b8b-b585-d2777c83f446
Stations du canevas géodésique de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#7
UUID : 53056e53-854c-48c5-8908-0e0492f79c61
Comités de secteur de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#8
UUID : 874e8b0c-2528-4042-83d7-c06d1eeb6a10
Bornes de recharge dédiées aux véhicules électriques sur le territoire de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#9
UUID : 5451cbf0-6353-47ad-a274-f237001aed10
Murs d'expression libre (Street Art et graffitis) sur le territoire de la Ville de Rennes
checking WMS url: OK
checking WFS url: KO: no OGC:WFS url defined, or layer not found on the WFS server
#10
UUID : dcb56c40-d9cd-4f0f-9d89-faa55959ce45
Tronçons de voies du référentiel voies et adresses de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#11
UUID : 9e4e8a3d-190d-4397-8d24-97aa37d1b3d7
Adresses du référentiel voies et adresses de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#12
UUID : 2ff4b02a-7d1e-4e9c-a0c2-dddbb11a3168
Les œuvres d'art sur le domaine public de la ville de Rennes
checking WMS url: OK
checking WFS url: OK
#13
UUID : cbc1ed13-e17e-4379-ba89-11d3daf10b89
Inventaire 2014 des commerces du Pays de Rennes : cellules commerciales
checking WMS url: OK
checking WFS url: OK
#14
UUID : 2e354f94-5f50-4abf-9127-0f8b4e772851
Domanialité des voies du Référentiel Voies et Adresses de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#15
UUID : 548d87bc-4679-41d5-b396-c4b279651b62
Gestionnaires des voies du Référentiel Voies et Adresses de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#16
UUID : bafa5038-dad5-4311-ba38-bdf61a4ebf8c
[TEST sdi-consistence-check] wms ko wfs ko
checking WMS url: KO: no OGC:WMS url defined, or layer not found on the WMS server
checking WFS url: KO: no OGC:WFS url defined, or layer not found on the WFS server
#17
UUID : dc5fe03a-ff85-4393-9a3c-eff20888310a
[TEST sdi-consistence-check] wms ok wfs ok
checking WMS url: OK
checking WFS url: OK
#18
UUID : 217bd991-56d7-4fa6-8157-24a0afb0c596
Zonages des plans locaux d'urbanisme et des plans d'occupation des sols des communes de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#19
UUID : 4ac9283b-7d17-4144-8ec6-cf00fa05f985
Arbres d'ornement des espaces verts de la Ville de Rennes
checking WMS url: OK
checking WFS url: OK
#20
UUID : b705395e-a1c4-4e6c-b069-d35b2efe1a45
Aires de jeux des espaces verts de la Ville de Rennes
checking WMS url: OK
checking WFS url: OK
#21
UUID : 9f792e02-d195-4c3d-a3d0-1fe81b4dba58
Arbres d'alignement en accompagnement de voirie sur la ville de Rennes
checking WMS url: OK
checking WFS url: OK
#22
UUID : b4160431-020e-4b1f-b0b7-ec3550f8babe
Surfaces enherbées des espaces verts de la Ville de Rennes
checking WMS url: OK
checking WFS url: OK
#23
UUID : 5c2e0578-5e4b-476e-b560-76641a4b374e
Centres de vote sur Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#24
UUID : 3753bb54-3dfa-4f95-a163-a2c3444802a6
Périmètres des bureaux de vote sur Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#25
UUID : df789a3f-9980-4629-95be-50a8b04eac3c
Ilots Regroupés pour l'Information Statistique (Iris) version Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#26
UUID : aa90d970-4b87-4a0d-b78c-9c4e270704fb
Cantons d'Ille-et-Vilaine (version Rennes Métropole)
checking WMS url: OK
checking WFS url: OK
#27
UUID : dc03f7c6-d6f3-4b8f-8491-e97ba77defba
Limites communales référentielles de Rennes Métropole (polygones)
checking WMS url: OK
checking WFS url: OK
#28
UUID : 74052be5-4ce0-4861-baf1-35c0761538af
Données géographiques du réseau STAR : itinéraires des lignes
checking WMS url: OK
checking WFS url: OK
#29
UUID : be36bcbf-9d0e-4425-9b8b-c58c155c96e7
Données géographiques du réseau STAR : arrêts physiques
checking WMS url: OK
checking WFS url: OK
#30
UUID : 35dac6d8-b573-4a5a-ad98-541296863e99
Données géographiques du réseau STAR : arrêts logiques
checking WMS url: OK
checking WFS url: OK
#31
UUID : fe63bde5-1b91-454e-9f24-5386b479ddaf
Repères de nivellement du canevas géodésique de Rennes Métropole
checking WMS url: OK
checking WFS url: OK
#32
UUID : 8dfdbb9a-29ca-4780-b767-7b2aa3ab5d2a
Parcs vélos sécurisés gérés par Rennes Métropole
checking WMS url: OK
checking WFS url: KO: no OGC:WFS url defined, or layer not found on the WFS server
#33
UUID : f160f512-f163-467d-8841-930dbb6eba9c
Points culminants issus du modèle Numérique de Terrain de 2014 sur le territoire de Rennes Métropole
checking WMS url: OK
checking WFS url: KO: no OGC:WFS url defined, or layer not found on the WFS server
#34
UUID : 31cd10dc-1245-4554-8ca9-232f925d4402
Métro du réseau STAR : tracés de l'axe des lignes
checking WMS url: KO: no OGC:WMS url defined, or layer not found on the WMS server
checking WFS url: OK
#35
UUID : 65b1c6dd-249f-4d94-b7e8-2f92c47afae1
Métro du réseau STAR : localisation des stations
checking WMS url: OK
checking WFS url: OK
#36
UUID : a0bd708d-a92d-4757-8a38-05405b22abc7
Périmètres des centres de vote sur Rennes Métropole
checking WMS url: OK
checking WFS url: OK
37 metadata parsed, 12 inconsistencies found, 5 unique metadata in error (13 %)
end time: 2017-03-31 13:51:04
(not tested myself)
#9
UUID : 5451cbf0-6353-47ad-a274-f237001aed10
Murs d'expression libre (Street Art et graffitis) sur le territoire de la Ville de Rennes
checking WMS url: OK
checking WFS url: KO: no OGC:WFS url defined, or layer not found on the WFS server
Can't agree : I found the ptou_lois:mur_tague layer in the WFS capacities (line 767)
#32
UUID : 8dfdbb9a-29ca-4780-b767-7b2aa3ab5d2a
Parcs vélos sécurisés gérés par Rennes Métropole
checking WMS url: OK
checking WFS url: KO: no OGC:WFS url defined, or layer not found on the WFS server
The 2 urls are bad : impossible to have 'OK' for WMS. same thing for 33
#34
UUID : 31cd10dc-1245-4554-8ca9-232f925d4402
Métro du réseau STAR : tracés de l'axe des lignes
checking WMS url: KO: no OGC:WMS url defined, or layer not found on the WMS server
checking WFS url: OK
correct : error in the WMS url
Can't agree : I found the ptou_lois:mur_tague layer in the WFS capacities (line 767)
It actually fails into OWSLib, but is caught by our code and transformed as a GnToGsLayerNotFoundInconsistency
:
File "/home/pmauduit/projects/georchestra/sdi-consistence-checker/env/lib/python3.5/site-packages/owslib/wfs.py", line 45, in WebFeatureService
password=password)
File "/home/pmauduit/projects/georchestra/sdi-consistence-checker/env/lib/python3.5/site-packages/owslib/feature/wfs110.py", line 58, in __new__
username=username, password=password)
File "/home/pmauduit/projects/georchestra/sdi-consistence-checker/env/lib/python3.5/site-packages/owslib/feature/wfs110.py", line 84, in __init__
self._buildMetadata(parse_remote_metadata)
File "/home/pmauduit/projects/georchestra/sdi-consistence-checker/env/lib/python3.5/site-packages/owslib/feature/wfs110.py", line 93, in _buildMetadata
self.identification=ServiceIdentification(val,self.owscommon.namespace)
File "/home/pmauduit/projects/georchestra/sdi-consistence-checker/env/lib/python3.5/site-packages/owslib/ows.py", line 47, in __init__
val = self._root.find(util.nspath('Title', namespace))
And the reason it fails is because GeoServer returns the following namespace for 'ows': xmlns:ows="http://www.opengis.net/ows/1.1 ; Python OWSLib expects ows to be bound to the following uri: 'http://www.opengis.net/ows'
Why it fails with OWSLib ?
At the end it produces a false error.
Why it fails with OWSLib ?
I updated my comment
The 2 urls are bad : impossible to have 'OK' for WMS.
The layer parc_velo_securise
for protocol OGC:WMS
can be found under the getcapabilities currently defined:
https://public.sig.rennesmetropole.fr/geoserver/trp_doux/wms?service=wms&request=getcapabilities
So for me, this is correct. the WFS is probably failing for the same reason as #9
Below the onLine ressources for https://public.sig.rennesmetropole.fr/geonetwork/srv/fre/catalog.search#/metadata/8dfdbb9a-29ca-4780-b767-7b2aa3ab5d2a
<gmd:onLine>
<gmd:CI_OnlineResource>
<gmd:linkage>
<gmd:URL>https://public.sig.rennesmetropole.fr/geoserver/trp_doux/wms?parc_velo_securise</gmd:URL>
</gmd:linkage>
<gmd:protocol>
<gco:CharacterString>OGC:WMS</gco:CharacterString>
</gmd:protocol>
<gmd:name>
<gco:CharacterString>parc_velo_securise</gco:CharacterString>
</gmd:name>
<gmd:description>
<gco:CharacterString>Parcs vélos sécurisés gérés par Rennes Métropole</gco:CharacterString>
</gmd:description>
</gmd:CI_OnlineResource>
</gmd:onLine>
<gmd:onLine>
<gmd:CI_OnlineResource>
<gmd:linkage>
<gmd:URL>https://public.sig.rennesmetropole.fr/geoserver/trp_doux/wfs?parc_velo_securise</gmd:URL>
</gmd:linkage>
<gmd:protocol>
<gco:CharacterString>OGC:WFS</gco:CharacterString>
</gmd:protocol>
<gmd:name>
<gco:CharacterString>parc_velo_securise</gco:CharacterString>
</gmd:name>
<gmd:description>
<gco:CharacterString>Parcs vélos sécurisés gérés par Rennes Métropole</gco:CharacterString>
</gmd:description>
</gmd:CI_OnlineResource>
</gmd:onLine>
If you want to get a WMS capacity from the URL https://public.sig.rennesmetropole.fr/geoserver/trp_doux/wms?parc_velo_securise : you can't because it is not a capacities document. So it must produce an error. Idem for WFS.
In anyway you can use the https://public.sig.rennesmetropole.fr/geoserver/trp_doux/wms?service=wms&request=getcapabilities url because it is not stored in the metadata !
And there is a second error : the layer on GeoServer is named "trp_doux:parc_velo_securise" and the metadata references only "parc_velo_securise". That does not match.
https://public.sig.rennesmetropole.fr/geoserver/trp_doux/wms?parc_velo_securise : you can't because it is not a capacities document. So it must produce an error. Idem for WFS.
The url is a legit WMS entrypoint, regardless the parameters which are automatically managed by the owslib library.
the parameters which are automatically managed by the owslib library.
It can't be done : the goal is to test if the metadata content is correct and conform. OWSLib seems to have a kinf of intelligence but it is not the case of a another software wich could hang out.
the goal is to test if the metadata content is correct and conform.
I do agree but for me, the behaviour is correct: there is a WMS server behind, and a layer named as referenced in the MD is available. What do you expect for the MD to contain exactly ? we can test it more precisely
If I may : entrypoints must end with ? or &. Sure it's old school.
That's not an entry point, that's an URL to whatever with human (capabilities are supposed to be) and/or machine readable output.
French guidelines : all URLs must resolve. Means that you must get something, typically a capabilities document or a 302 to a capabilities document or whatever. Obviously a "Could not determine geoserver request" isn't appropriate.
GeoBretagne's inner good practices : we expect a regular capabilities document behind each OGC:WxS linkage.
French guidelines : all URLs must resolve
It is nearly european recommendations for INSPIRE
we expect a regular capabilities document behind each OGC:WxS linkage.
yes
@MaelREBOUX So, do you confirm you want to have a error reported everytime there is no parameters specified in the layer url ? If so, we'll do this.
No : we need to check that the target server answers with a correct WMS or WFS capabilities document.
<WMS_Capabilities version="1.3.0" updateSequence="749" xsi:schemaLocation="http://www.opengis.net/wms https://public.sig.rennesmetropole.fr/geoserver/schemas/wms/1.3.0/capabilities_1_3_0.xsd">
The goal is to test if the metadata content is correct and conform : if we do not have the parameters in the layer URL it is not, is it ?
Ok . Let's go.
I left only 1 valid / good metadata on portail-test :
python checker.py --mode CSW --server https://portail-test.sig.rennesmetropole.fr/geonetwork/srv/fre/csw --disable-ssl-verification
SDI check
mode: CSW
metadata catalog CSW URL: https://portail-test.sig.rennesmetropole.fr/geonetwork/srv/fre/csw
INSPIRE mode: flexible
output mode: log
start time: 2017-04-05 10:55:11
#0
UUID : 53056e53-854c-48c5-8908-0e0492f79c61
Comités de secteur de Rennes Métropole
WMS url: OK
WFS url: KO: https://portail-test.sig.rennesmetropole.fr/geoserver/ows?service=wfs&request=GetCapabilities: GnToGsOtherError: ParseError: undefined entity: line 91, column 23
#1
UUID : 53056e53-854c-48c5-8908-0e0492f79c61
Comités de secteur de Rennes Métropole
WMS url: OK
WFS url: KO: https://portail-test.sig.rennesmetropole.fr/geoserver/ows?service=wfs&request=GetCapabilities: GnToGsOtherError: ParseError: undefined entity: line 91, column 23
2 metadata parsed, 2 inconsistencies found, 1 unique metadatas in error (50 %)
end time: 2017-04-05 10:55:14
what is wrong with the WFS test ?
OWSLib: namespace mismatch already mentionned
We should have only 1 metadata check.
Working on it
Working on it
done.
OWSLib: namespace mismatch already mentionned
I might be wrong: it is working on my dev environment (connecting to portail-test via a SSH tunnel) but I encounter the same issue when launching the script locally from portail-test.
Now on portail-test, results seems OK
Done from terminal in Ubuntu
Problem : all is written 'OK' but the %age is 22% : Who say the truth ?