From db5ae6e6d58b100070f34610aa5f9a7b14020e51 Mon Sep 17 00:00:00 2001 From: Rolf Niepraschk <Rolf.Niepraschk@ptb.de> Date: Fri, 30 Jul 2021 08:45:06 +0200 Subject: [PATCH] Description og "/update" --- README.md | 56 ++++++++++--------------------------------------------- server.py | 2 -- 2 files changed, 10 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 364963b..a1fd410 100644 --- a/README.md +++ b/README.md @@ -55,14 +55,14 @@ File `config.json`: ### /validate endpoint [POST] ```shell -curl -X POST -H "Content-Type: text/xml" -d @valid_xml_matches_xsd http://localhost:5005/validate +curl -X POST -H "Content-Type: text/xml" -d @VALID.xml http://localhost:5005/validate <ok/> ``` Validation against an explizit schema version ```shell -curl -X POST -H "Content-Type: text/xml" -d @valid_xml_matches_xsd http://localhost:5005/validate?v=2.4.0 +curl -X POST -H "Content-Type: text/xml" -d @VALID.xml http://localhost:5005/validate?v=2.4.0 <ok/> ``` @@ -73,59 +73,17 @@ wget --post-file=example.xml --header="Content-Type:text/xml;" -q -O- http://loc ``` ```shell -curl -X POST -H "Content-Type: text/xml?v=2.1.0" -d @no_valid_xml http://localhost:5005/validate +curl -X POST -H "Content-Type: text/xml" -d @INVALID.xml http://localhost:5005/validate <error>invalid xml data</error> ``` ```shell -curl -X POST -H "Content-Type: text/xml" -d @valid_xml_but_dont_matches_xsd http://localhost:5005/validate +curl -X POST -H "Content-Type: text/xml" -d @VALID_XML_BUT_DONT_MATCHES_XSD.xml http://localhost:5005/validate <error>verbose error message</error> ``` -Example: - -```shell -curl -X POST -H "Content-Type: text/xml" -d @11044_17_DCC_v1.8.1_Au_with_error.xml http://localhost:5005/validate - -<error>failed decoding 'A' with XsdAtomicBuiltin(name='xs:double'): - -Reason: could not convert string to float: 'A' - -Schema: - - <simpleType xmlns="http://www.w3.org/2001/XMLSchema" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty" id="double" name="double"> - <annotation> - <appinfo> - <hfp:hasFacet name="pattern" /> - <hfp:hasFacet name="enumeration" /> - <hfp:hasFacet name="whiteSpace" /> - <hfp:hasFacet name="maxInclusive" /> - <hfp:hasFacet name="maxExclusive" /> - <hfp:hasFacet name="minInclusive" /> - <hfp:hasFacet name="minExclusive" /> - <hfp:hasProperty name="ordered" value="total" /> - <hfp:hasProperty name="bounded" value="true" /> - <hfp:hasProperty name="cardinality" value="finite" /> - <hfp:hasProperty name="numeric" value="true" /> - </appinfo> - <documentation source="http://www.w3.org/TR/xmlschema-2/#double" /> - </annotation> - <restriction base="xs:anySimpleType"> - <whiteSpace fixed="true" id="double.whiteSpace" value="collapse" /> - </restriction> - </simpleType> - -Instance: - - <ns0:coverageProbability xmlns:ns0="https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/SI">A</ns0:coverageProbability> - -Path: /{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/DCC}digitalCalibrationCertificate/{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/DCC}measurementResults/{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/DCC}influenceConditions/{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/DCC}influenceCondition/{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/DCC}outcome/{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/DCC}data/{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/DCC}quantity/{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/SI}list/{https://intranet.ptb.de/fileadmin/dokumente/intranet/abteilungen/abteilung_1/Digitaler_Kalibrierschein/SI}coverageProbability -</error> -``` - - ### /version [GET] Returns the version of the validation server: @@ -136,6 +94,12 @@ curl http://localhost:5005/version <version>0.2.0</version> ``` +### /update [POST] + +This URL can be used as a webhook for GitLab (Tag Push Events). With this, +GitLab notifies the Flask server of the existence of a new program version, +which is then requested as a tarball and unpacked. + ## Web interface ``` diff --git a/server.py b/server.py index 395655c..26efbcf 100644 --- a/server.py +++ b/server.py @@ -7,8 +7,6 @@ import subprocess, json from pprint import pprint config = utils.get_config_dict() -###releases_dict = utils.get_releases_dict(config['xsd']['releases']) -###versions = utils.get_versions(releases_dict) app = Flask(__name__) CORS(app) -- GitLab