)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"f086e759a6384313408297b404a5351ede78568a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"11073ef3_681b3030","updated":"2022-08-24 18:59:34.000000000","message":"This will partially solve issues we have e.g. with Ansible module openstack.cloud.project_info [1]. There we could pass any project attribute or an JMESPath expression as filters argument to search_projects() [2] in the past, while doing so with the new search_projects() [3] would fail because it would try to use the contents of filters as query parameters but then might fail because the contents is a JMESPath or an project attribute which is not a valid query argument for OpenStack API [3].\n\nThis patch would solve the issue of invalid query arguments. It still requires us to change our code to check whether filters is a JMESPath and if it is, then we would have to convert it to jmespath_filters argument. Which is totally fine, so +1 from me.\n\n[1] https://github.com/openstack/ansible-collections-openstack/blob/b99218c143fca541bfcd9b0ce026e0bb02913d82/plugins/modules/project_info.py#L142\n[2] https://opendev.org/openstack/openstacksdk/src/commit/fd300de63f5a7a9c7760d69a2d7ce248e058bd61/openstack/cloud/_identity.py#L84\n[3] https://opendev.org/openstack/openstacksdk/src/commit/9a9da8a0527dd36d2d7d867195ddc1ef91c2e827/openstack/cloud/_identity.py#L64","commit_id":"b0f31a011047ee030aa558013c43d543f2bd8923"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"fc5384a39588108d5cc397be04c0a8546108fe15","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"47311548_3406a18b","in_reply_to":"11073ef3_681b3030","updated":"2022-08-25 07:54:48.000000000","message":"Actually this check whether filters is a JMESPath expression should be added to openstacksdk, e.g. directly into search_projects() [1]. For example, \n\n    if not filters:\n        filters \u003d {}\n    query \u003d dict(**filters)\n\ncould be changed to\n\n\n    if not filters:\n        filters \u003d {}\n    elif isinstance(filters, str):\n        filters \u003d dict(jmespath_filters\u003dfilters)\n    query \u003d dict(**filters)\n\n[1] https://opendev.org/openstack/openstacksdk/src/commit/9a9da8a0527dd36d2d7d867195ddc1ef91c2e827/openstack/cloud/_identity.py#L64","commit_id":"b0f31a011047ee030aa558013c43d543f2bd8923"}]}
