okay, Thanks all for your help.

On Thu, Jun 21, 2018 at 5:14 PM, Ondra Machacek <omachace@redhat.com> wrote:
Well, if they may use 4.0, you should write code which support 4.0 and
don't use any 4.2 features, as it won't work anyway on 4.2.

If you want to support features from 4.2, and use it against 4.0 where it will be igonored and use it also agains 4.2 where it will be supported, it's quite simple to do in our SDKs, not sure how it can be done in your script, is it bash or something else?

On 06/21/2018 01:05 PM, Hari Prasanth Loganathan wrote:
the problem is, I can't write different client codes for the different version.
Consider my case, I developed my script considering the oVirt version 4.2, If my client is using 4.1 then he needs the same script to be supported.
What If the client is using further older version say 4.0, So do you want me to write the script for every version of oVirt. It is not correct.

So could you let me know, Is there a way to ignore extra properties in oVirt Rest API?

On Thu, Jun 21, 2018 at 4:30 PM, Ondra Machacek <omachace@redhat.com <mailto:omachace@redhat.com>> wrote:

    Well, I don't know what are you using to generate the JSON,
    but you just need to check if engine is v4.1 and then send the JSON
    without the field and if version is v4.2 and higher you can use that
    field.

    If you share you script maybe I can advice, or if you are using any SDK.
    It would be even simpler as you just set the field to None/null/nil
    and it won't be generated to the XML body which SDK send.

    On 06/21/2018 12:52 PM, Hari Prasanth Loganathan wrote:

        Thanks, Ondra for confirming.

        You need to handle this situation client side.

        So you are saying there is a work-around in client side, I
        didn't get this point, Could you explain, please.

        On Thu, Jun 21, 2018 at 4:20 PM, Ondra Machacek
        <omachace@redhat.com <mailto:omachace@redhat.com>
        <mailto:omachace@redhat.com <mailto:omachace@redhat.com>>> wrote:

             We do not support this.

             For xml we use event handler, which takes unknown fields as
        error:


        https://github.com/oVirt/ovirt-engine/blob/68753f46f09419ddcdbb632453501273697d1a20/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/xml/JAXBProvider.java#L182
        <https://github.com/oVirt/ovirt-engine/blob/68753f46f09419ddcdbb632453501273697d1a20/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/xml/JAXBProvider.java#L182>
                    <https://github.com/oVirt/ovirt-engine/blob/68753f46f09419ddcdbb632453501273697d1a20/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/xml/JAXBProvider.java#L182
        <https://github.com/oVirt/ovirt-engine/blob/68753f46f09419ddcdbb632453501273697d1a20/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/xml/JAXBProvider.java#L182>>

             For json we don't have turn of the feature
        FAIL_ON_UNKNOWN_PROPERTIES,
             you would need to put it on line 29 to make it working:


        https://github.com/oVirt/ovirt-engine/blob/e06859fef6c38a955a4e0e1f6b0ddaa1e8eae8fb/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/json/CustomObjectMapper.java#L28
        <https://github.com/oVirt/ovirt-engine/blob/e06859fef6c38a955a4e0e1f6b0ddaa1e8eae8fb/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/json/CustomObjectMapper.java#L28>
                    <https://github.com/oVirt/ovirt-engine/blob/e06859fef6c38a955a4e0e1f6b0ddaa1e8eae8fb/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/json/CustomObjectMapper.java#L28
        <https://github.com/oVirt/ovirt-engine/blob/e06859fef6c38a955a4e0e1f6b0ddaa1e8eae8fb/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/json/CustomObjectMapper.java#L28>>

             You need to handle this situation client side.

             On 06/21/2018 11:21 AM, Hari Prasanth Loganathan wrote:

                 Could somebody explain this please?

                 On Thu, Jun 21, 2018 at 7:41 AM, Hari Prasanth Loganathan
                 <hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>>> wrote:

                      *Hi Ondra / Ori,*

        https://github.com/oVirt/ovirt-engine/search?q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B&unscoped_q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B
        <https://github.com/oVirt/ovirt-engine/search?q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B&unscoped_q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B>
                        <https://github.com/oVirt/ovirt-engine/search?q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B&unscoped_q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B
        <https://github.com/oVirt/ovirt-engine/search?q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B&unscoped_q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B>>
                                    <https://github.com/oVirt/ovirt-engine/search?q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B&unscoped_q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B
        <https://github.com/oVirt/ovirt-engine/search?q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B&unscoped_q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B>
                        <https://github.com/oVirt/ovirt-engine/search?q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B&unscoped_q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B
        <https://github.com/oVirt/ovirt-engine/search?q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B&unscoped_q=FAIL_ON_UNKNOWN_PROPERTIES%2C+false%29%3B>>>

                      Check the above link, As per the code it is always
        set as
                 false, So
                      is there a way in payload / headers in client API
        / server
                      configuration in oVirt engine which can ignore the
        extra
                 payload
                      parameters?

                      Any help / workaround is much appreciated.

                      Thanks, Greg for pointing the right ppl.

                      Thanks,
                      Hari

                      On Thu, Jun 21, 2018 at 1:35 AM, Greg Sheremeta
                 <gshereme@redhat.com <mailto:gshereme@redhat.com>
        <mailto:gshereme@redhat.com <mailto:gshereme@redhat.com>>
                      <mailto:gshereme@redhat.com
        <mailto:gshereme@redhat.com> <mailto:gshereme@redhat.com
        <mailto:gshereme@redhat.com>>>>
                 wrote:

                          +Ondra and Ori

                          On Wed, Jun 20, 2018 at 1:07 PM Hari Prasanth
        Loganathan
                          <hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>
                          <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>>> wrote:

                              Guys any update on this?  if you have any
                 clarification let
                              me know please.

                              Thanks

                              On Wed, 20 Jun 2018 at 5:41 PM, Hari Prasanth
                 Loganathan
                              <hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>
                                     <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>>> wrote:

                                  Hi Team,

                                  I got one clue, using the code base :
        https://github.com/oVirt/ovirt-engine/blob/e2aad594a55c7272b513736616cb4b9841c2c43d/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectDeserializer.java
        <https://github.com/oVirt/ovirt-engine/blob/e2aad594a55c7272b513736616cb4b9841c2c43d/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectDeserializer.java>
                        <https://github.com/oVirt/ovirt-engine/blob/e2aad594a55c7272b513736616cb4b9841c2c43d/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectDeserializer.java
        <https://github.com/oVirt/ovirt-engine/blob/e2aad594a55c7272b513736616cb4b9841c2c43d/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectDeserializer.java>>
                                                <https://github.com/oVirt/ovirt-engine/blob/e2aad594a55c7272b513736616cb4b9841c2c43d/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectDeserializer.java
        <https://github.com/oVirt/ovirt-engine/blob/e2aad594a55c7272b513736616cb4b9841c2c43d/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectDeserializer.java>
                        <https://github.com/oVirt/ovirt-engine/blob/e2aad594a55c7272b513736616cb4b9841c2c43d/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectDeserializer.java
        <https://github.com/oVirt/ovirt-engine/blob/e2aad594a55c7272b513736616cb4b9841c2c43d/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectDeserializer.java>>>


                                                formattedMapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES,
                                  false);

                                  As a default, this flag is set as
        false, then
                 How I get
                                  this error? Any idea?


                                  Thanks,
                                  Hari



                                  On Wed, Jun 20, 2018 at 5:21 PM, Hari
        Prasanth
                                  Loganathan
        <hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>
                                         <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>

                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>>> wrote:

                                      Hi all,

                                      To clarify my payload is like below,

                                      *_Expected :_*

                                      {
                                          "alias": "testdisk",
                                          "shareable": false,
                                          "storage_type": "cinder",
                                          "openstack_volume_type": {
                                               "name": "ceph"
                                           },
                                          "description": "",
                                          "storage_domains": {
                                                "storage_domain": [{
                                                   "name": "cinder_newone"
                                                }]
                                           },
                                          "provisioned_size": 1073741824,
                                            "interface": "virtio",
                                            "format": "cow"
                                      }
                                      _*
                                      *_
                                      _*I sent : *_

                                      {
                                          "alias": "testdisk",
                                          "shareable": false,
                                          "storage_type": "cinder",
                                          "openstack_volume_type": {
                                               "name": "ceph"
                                           },
                                          "description": "",
                                          "storage_domains": {
                                                "storage_domain": [{
                                                   "name": "cinder_newone"
                                                }]
                                           },
                                          "provisioned_size": 1073741824,
                                            "interface": "virtio",
                                            "format": "cow",
                                      *     "test" : "value"*
                                      }


                                      Is there a way to ignore the
        *test* field?
                 Please
                                      let me know any way / work around.


                                      Any help is much appreciated.

                                      Thanks,
                                      Hari


                                      On Wed, Jun 20, 2018 at 3:09 PM,
        Hari Prasanth
                                      Loganathan
                 <hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>
                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>
                                             <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>

                 <mailto:hariprasanth.l@msystechnologies.com
        <mailto:hariprasanth.l@msystechnologies.com>>>> wrote:

                                          Hi Team,

                                          I want to attach the disk
        using the
                 oVIrt rest
                                          API, I use the version*4.2* and
                 completed my script.
                                          But when I downgrade my oVirt
        to lower
                 version
                                          *4.1*, I get the following error.

                                          detail: 'For correct usage, see:
        https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add
        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add>
                        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add
        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add>>
                                                        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add
        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add>
                        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add
        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add>>>',\n                                         reason: 'Request syntactically
                 incorrect.',\n                         error: 'For correct
                 usage, see:
        https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add
        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add>
                        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add
        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add>>
                                                        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add
        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add>
                        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add
        <https://X.X.99.84/ovirt-engine/api/v4/model#services/disk-attachments/methods/add>>>',\n


                                          *Reason*: I added an extra
        parameter called
                                          'isSharable' which is not
        expected in
                 this API.


                                          *So Is there a way to Ignore
        the extra
                                          parameters sent for oVirt API?*
                                          *
                                          *
                                          _*Example :*_
                                          *
                                          *
                                          *Expected :
                                          *
                                          *
                                          *
                                          *{*
                                          * "a"  : "1"*
                                          *}
                                          *
                                          *
                                          *
                                          *I sent :*
                                          *
                                          *
                                          *{*
                                          *  "a" : "1",*
                                          *  "b" : "2"*
                                          *}*
                                          *
                                          *
                                          *My expectation is, Ignore the
        "b" and
                 the API
                                          should work, Is there a flag
        in oVirt
                 API which
                                          ignores the extra parameters?
                                          *

                                          Thanks,
                                          Hari



                                     _______________________________________________
                              Users mailing list -- users@ovirt.org
        <mailto:users@ovirt.org>
                 <mailto:users@ovirt.org <mailto:users@ovirt.org>>
        <mailto:users@ovirt.org <mailto:users@ovirt.org>
                 <mailto:users@ovirt.org <mailto:users@ovirt.org>>>

                              To unsubscribe send an email to
        users-leave@ovirt.org <mailto:users-leave@ovirt.org>
        <mailto:users-leave@ovirt.org <mailto:users-leave@ovirt.org>>
                              <mailto:users-leave@ovirt.org
        <mailto:users-leave@ovirt.org>
                 <mailto:users-leave@ovirt.org
        <mailto:users-leave@ovirt.org>>>
                              Privacy Statement:
        https://www.ovirt.org/site/privacy-policy/
        <https://www.ovirt.org/site/privacy-policy/>
                 <https://www.ovirt.org/site/privacy-policy/
        <https://www.ovirt.org/site/privacy-policy/>>
                                     <https://www.ovirt.org/site/privacy-policy/
        <https://www.ovirt.org/site/privacy-policy/>
                 <https://www.ovirt.org/site/privacy-policy/
        <https://www.ovirt.org/site/privacy-policy/>>>
                              oVirt Code of Conduct:
        https://www.ovirt.org/community/about/community-guidelines/
        <https://www.ovirt.org/community/about/community-guidelines/>
                        <https://www.ovirt.org/community/about/community-guidelines/
        <https://www.ovirt.org/community/about/community-guidelines/>>
                                            <https://www.ovirt.org/community/about/community-guidelines/
        <https://www.ovirt.org/community/about/community-guidelines/>
                        <https://www.ovirt.org/community/about/community-guidelines/
        <https://www.ovirt.org/community/about/community-guidelines/>>>
                              List Archives:
        https://lists.ovirt.org/archives/list/users@ovirt.org/message/Q3S2KU4PXZ7P2ZBLAYM7CYAK2S4NUJD5/
        <https://lists.ovirt.org/archives/list/users@ovirt.org/message/Q3S2KU4PXZ7P2ZBLAYM7CYAK2S4NUJD5/>
                        <https://lists.ovirt.org/archives/list/users@ovirt.org/message/Q3S2KU4PXZ7P2ZBLAYM7CYAK2S4NUJD5/
        <https://lists.ovirt.org/archives/list/users@ovirt.org/message/Q3S2KU4PXZ7P2ZBLAYM7CYAK2S4NUJD5/>>
                                            <https://lists.ovirt.org/archives/list/users@ovirt.org/message/Q3S2KU4PXZ7P2ZBLAYM7CYAK2S4NUJD5/
        <https://lists.ovirt.org/archives/list/users@ovirt.org/message/Q3S2KU4PXZ7P2ZBLAYM7CYAK2S4NUJD5/>
                        <https://lists.ovirt.org/archives/list/users@ovirt.org/message/Q3S2KU4PXZ7P2ZBLAYM7CYAK2S4NUJD5/
        <https://lists.ovirt.org/archives/list/users@ovirt.org/message/Q3S2KU4PXZ7P2ZBLAYM7CYAK2S4NUJD5/>>>



                          --
                          GREG SHEREMETA

                          SENIOR SOFTWARE ENGINEER - TEAM LEAD - RHV UX

                          Red Hat NA

                          <https://www.redhat.com/>

        gshereme@redhat.com <mailto:gshereme@redhat.com>
        <mailto:gshereme@redhat.com <mailto:gshereme@redhat.com>>
                 <mailto:gshereme@redhat.com
        <mailto:gshereme@redhat.com> <mailto:gshereme@redhat.com
        <mailto:gshereme@redhat.com>>> IRC:
                 gshereme

                          <https://red.ht/sig>