Bug 1337240
Summary: | When using v4 rest api with request, which is valid for v3 compatibility requests, incorrect suggestion how request should look like is offered by system | ||
---|---|---|---|
Product: | [oVirt] ovirt-engine | Reporter: | Martin Mucha <mmucha> |
Component: | RestAPI | Assignee: | Ori Liel <oliel> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Lukas Svaty <lsvaty> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 4.0.0 | CC: | bugs, cmestreg, gklein, juan.hernandez, lsvaty, mgoldboi, mmirecki, mperina, oourfali, sbonazzo |
Target Milestone: | ovirt-4.0.2 | Flags: | rule-engine:
ovirt-4.0.z+
mgoldboi: exception+ rule-engine: planning_ack+ mperina: devel_ack+ lsvaty: testing_ack+ |
Target Release: | 4.0.2.1 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2016-08-12 14:21:24 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | Infra | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Martin Mucha
2016-05-18 15:11:01 UTC
There same problem occurns in: api/openstacknetworkproviders/ The type property is missing from the descriptions The problem here is that there isn't a RSDL for version 4 of the API, we have a description of the model instead, available in the following URLs: /ovirt-engine/api/model.xml /ovirt-engine/api/model.json /ovirt-engine/api/model.html (this isn't available yet) Most probably we will fix this bug changing the way we report errors. Instead of returning the RSDL for the operation we will return a link to the relevant section of the documentation, where all the details of the operation and the types used will be available. I'm requesting flags for 4.0.1, as I think we won't be able to fix this for 4.0.0. Better description of the problem for openstacknetworkproviders: Issuing a syntactically incorrect request, for example POST: http://localhost:8080/ovirt-engine/api/openstacknetworkproviders/ <garbage> results in: 400 Bad Request with the body containing a description on how the request should be formated, for example: <usage_message> <message>Request syntactically incorrect. See the description below for the correct usage:</message> <detailedLink href="/ovirt-engine/api/openstacknetworkproviders" rel="add"><description>add a new OpenStack network provider to the system</description> <request><http_method>POST</http_method> <headers> <header required="false"> <name>Correlation-Id</name><value>any string</value> </header> <header required="true"> <name>Content-Type</name> <value>application/xml|json</value> </header> </headers> <body> <type>OpenStackNetworkProvider</type> <parameters_set> <description>add a new OpenStack network provider to the system</description> <parameter required="true" type="xs:string"> <name>openstack_network_provider.name</name> </parameter> <parameter required="false" type="collection"><name>openstack_network_provider.properties.property</name></parameter> <parameter required="false" type="xs:string"><name>openstack_network_provider.tenant_name</name> </parameter> ... The problem is that this reply does not list the full set of parameters. For example, in case of /ovirt-engine/api/openstacknetworkproviders we are missing the "type" parameter. In version 4 of the API the returned for incorrect results will be a link to the documentation. For example, the following request: POST: https://engine.example.com/ovirt-engine/api/openstacknetworkproviders <garbage> Will produce the following response: <fault> <reason>Request syntactically incorrect.</reason> <detail>For correct usage, see: https://engine.example.com/ovirt-engine/api/model#services/openstack-network-providers/methods/add</detail> </fault> *** Bug 1361079 has been marked as a duplicate of this bug. *** verified in ovirt-engine-restapi-4.0.2.1-0.1.el7ev.noarch [lsvaty@nope ~]$ curl -k -X POST -H "Accept: application/xml" -H "Content-Type: application/xml" -u admin@internal:*password* --cacert ca.crt -d "<test></test>" https://*hostname*:443/ovirt-engine/api/vms <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <fault> <detail>For correct usage, see: https://*hostname*/ovirt-engine/api/v4/model#services/vms/methods/add</detail> <reason>Request syntactically incorrect.</reason> </fault> |