)]}'
{"ironic/common/nova.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c4e8f80498c261a2d4b3ecc1533cc7e0b07f42aa","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _get_nova_adapter():"},{"line_number":27,"context_line":"    global _NOVA_ADAPTER"},{"line_number":28,"context_line":"    if not _NOVA_ADAPTER:"},{"line_number":29,"context_line":"        _NOVA_ADAPTER \u003d keystone.get_adapter("},{"line_number":30,"context_line":"            \u0027nova\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_b0c36a57","line":27,"updated":"2019-07-26 08:39:43.000000000","message":"FWIW I have a patch bumping that version for another reason","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"774d4b7a68cddf375240006b2c397398c18dd9da","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def _get_nova_adapter():"},{"line_number":27,"context_line":"    global _NOVA_ADAPTER"},{"line_number":28,"context_line":"    if not _NOVA_ADAPTER:"},{"line_number":29,"context_line":"        _NOVA_ADAPTER \u003d keystone.get_adapter("},{"line_number":30,"context_line":"            \u0027nova\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9fcc6b62","line":27,"updated":"2019-07-23 21:46:06.000000000","message":"Note: if you wanted to do this with openstacksdk, you could cut over easily with something like:\n\n from openstack import connection\n\n ...\n\n         _NOVA_ADAPTER \u003d connection.Connection(\n            session\u003dkeystone.get_session(\n                \u0027nova\u0027, auth\u003dkeystone.get_auth(\u0027nova\u0027)),\n            oslo_conf\u003dCONF).compute\n\nThis would require bumping your dependency on openstacksdk to at least 0.31.0.","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"774d4b7a68cddf375240006b2c397398c18dd9da","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    nova \u003d _get_nova_adapter()"},{"line_number":60,"context_line":"    response \u003d nova.post("},{"line_number":61,"context_line":"        \u0027/os-server-external-events\u0027, json\u003d{\u0027events\u0027: events},"},{"line_number":62,"context_line":"        microversion\u003dapi_version, global_request_id\u003dcontext.global_id,"},{"line_number":63,"context_line":"        raise_exc\u003dFalse)"},{"line_number":64,"context_line":"    if not response:"},{"line_number":65,"context_line":"        if response.status_code \u003d\u003d 404:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_bffe0769","line":62,"range":{"start_line":62,"start_character":52,"end_line":62,"end_character":70},"updated":"2019-07-23 21:46:06.000000000","message":"Note: it makes more sense to send the global request ID here rather than setting it in the Adapter. (For this kwarg you need keystoneauth1\u003c\u003d3.15.0.)","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5aa941095d9e4d0b0b72afeb769ca6d82c3f1211","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    nova \u003d _get_nova_adapter()"},{"line_number":60,"context_line":"    response \u003d nova.post("},{"line_number":61,"context_line":"        \u0027/os-server-external-events\u0027, json\u003d{\u0027events\u0027: events},"},{"line_number":62,"context_line":"        microversion\u003dapi_version, global_request_id\u003dcontext.global_id,"},{"line_number":63,"context_line":"        raise_exc\u003dFalse)"},{"line_number":64,"context_line":"    if not response:"},{"line_number":65,"context_line":"        if response.status_code \u003d\u003d 404:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_dee93e80","line":62,"range":{"start_line":62,"start_character":52,"end_line":62,"end_character":70},"in_reply_to":"7faddb67_bffe0769","updated":"2019-07-29 12:30:01.000000000","message":"\u003e Note: it makes more sense to send the global request ID here rather\n \u003e than setting it in the Adapter. (For this kwarg you need\n \u003e keystoneauth1\u003c\u003d3.15.0.)\n\noh ok cool. Thanks for explaining why you bumped the version.","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"774d4b7a68cddf375240006b2c397398c18dd9da","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    response \u003d nova.post("},{"line_number":61,"context_line":"        \u0027/os-server-external-events\u0027, json\u003d{\u0027events\u0027: events},"},{"line_number":62,"context_line":"        microversion\u003dapi_version, global_request_id\u003dcontext.global_id,"},{"line_number":63,"context_line":"        raise_exc\u003dFalse)"},{"line_number":64,"context_line":"    if not response:"},{"line_number":65,"context_line":"        if response.status_code \u003d\u003d 404:"},{"line_number":66,"context_line":"            LOG.warning(\u0027Nova returned NotFound for events: %s.\u0027, events)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9ff54b86","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":17},"updated":"2019-07-23 21:46:06.000000000","message":"Note: using raise_exc\u003dFalse (which might actually be the default, I can\u0027t remember) allows you to inspect the response\u0027s status_code etc manually, as demonstrated below.","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"8119b2f18b3856506720f085fc14c3e1095fc4c1","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    response \u003d nova.post("},{"line_number":61,"context_line":"        \u0027/os-server-external-events\u0027, json\u003d{\u0027events\u0027: events},"},{"line_number":62,"context_line":"        microversion\u003dapi_version, global_request_id\u003dcontext.global_id,"},{"line_number":63,"context_line":"        raise_exc\u003dFalse)"},{"line_number":64,"context_line":"    if not response:"},{"line_number":65,"context_line":"        if response.status_code \u003d\u003d 404:"},{"line_number":66,"context_line":"            LOG.warning(\u0027Nova returned NotFound for events: %s.\u0027, events)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_56fa0475","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":17},"in_reply_to":"7faddb67_1487b263","updated":"2019-07-30 09:16:41.000000000","message":"\u003e Correct.\n \u003e \n \u003e I\u0027m sure it\u0027s subjective, but in my experience I\u0027ve found it easier\n \u003e to use raise_exc\u003dFalse and check the status codes with\n \u003e conditionals. YMMV.\n \u003e \n\nack, I don\u0027t have a very firm opinion on this I am just worried that the 404 could mean multiple things (but it looks like it is not: https://docs.openstack.org/api-ref/compute/?expanded\u003drun-events-detail#id395) so I\u0027ll go with your experience :).\n\n \u003e BTW, I checked, and the ksa default is raise_exc\u003dTrue [1]. We made\n \u003e it False in Nova [2] at the Adapter level via [3], presumably\n \u003e because others shared my above noted bias :)\n \u003e \n \u003e [1] https://opendev.org/openstack/keystoneauth/src/branch/master/keystoneauth1/session.py#L581\n \u003e [2] https://opendev.org/openstack/nova/src/branch/master/nova/utils.py#L1221\n \u003e [3] https://review.opendev.org/#/c/577437/\n\noh okay, cool, I\u0027ll also stick to the False mode then and go with the codes.","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7eb423a4974c35882e2aba340c555fd618f0b5bd","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    response \u003d nova.post("},{"line_number":61,"context_line":"        \u0027/os-server-external-events\u0027, json\u003d{\u0027events\u0027: events},"},{"line_number":62,"context_line":"        microversion\u003dapi_version, global_request_id\u003dcontext.global_id,"},{"line_number":63,"context_line":"        raise_exc\u003dFalse)"},{"line_number":64,"context_line":"    if not response:"},{"line_number":65,"context_line":"        if response.status_code \u003d\u003d 404:"},{"line_number":66,"context_line":"            LOG.warning(\u0027Nova returned NotFound for events: %s.\u0027, events)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_1487b263","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":17},"in_reply_to":"7faddb67_60fd04b0","updated":"2019-07-29 15:24:00.000000000","message":"Correct.\n\nI\u0027m sure it\u0027s subjective, but in my experience I\u0027ve found it easier to use raise_exc\u003dFalse and check the status codes with conditionals. YMMV.\n\nBTW, I checked, and the ksa default is raise_exc\u003dTrue [1]. We made it False in Nova [2] at the Adapter level via [3], presumably because others shared my above noted bias :)\n\n[1] https://opendev.org/openstack/keystoneauth/src/branch/master/keystoneauth1/session.py#L581\n[2] https://opendev.org/openstack/nova/src/branch/master/nova/utils.py#L1221\n[3] https://review.opendev.org/#/c/577437/","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5aa941095d9e4d0b0b72afeb769ca6d82c3f1211","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    response \u003d nova.post("},{"line_number":61,"context_line":"        \u0027/os-server-external-events\u0027, json\u003d{\u0027events\u0027: events},"},{"line_number":62,"context_line":"        microversion\u003dapi_version, global_request_id\u003dcontext.global_id,"},{"line_number":63,"context_line":"        raise_exc\u003dFalse)"},{"line_number":64,"context_line":"    if not response:"},{"line_number":65,"context_line":"        if response.status_code \u003d\u003d 404:"},{"line_number":66,"context_line":"            LOG.warning(\u0027Nova returned NotFound for events: %s.\u0027, events)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_60fd04b0","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":17},"in_reply_to":"7faddb67_9ff54b86","updated":"2019-07-29 12:30:01.000000000","message":"ah ok so if this were True I would have to check it based on the exceptions like I was doing for novaclient.","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"774d4b7a68cddf375240006b2c397398c18dd9da","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                        events, response.text)"},{"line_number":70,"context_line":"        return False"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    resp_events \u003d response.json()[\u0027events\u0027]"},{"line_number":73,"context_line":"    response_error \u003d response.status_code \u003d\u003d 207"},{"line_number":74,"context_line":"    for event in resp_events:"},{"line_number":75,"context_line":"        code \u003d event.get(\u0027code\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_ff29dff1","line":72,"updated":"2019-07-23 21:46:06.000000000","message":"Note: The below will probably want to be revamped a bit. I didn\u0027t mess with it too hard.","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5aa941095d9e4d0b0b72afeb769ca6d82c3f1211","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                        events, response.text)"},{"line_number":70,"context_line":"        return False"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    resp_events \u003d response.json()[\u0027events\u0027]"},{"line_number":73,"context_line":"    response_error \u003d response.status_code \u003d\u003d 207"},{"line_number":74,"context_line":"    for event in resp_events:"},{"line_number":75,"context_line":"        code \u003d event.get(\u0027code\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_a01c5c13","line":72,"in_reply_to":"7faddb67_ff29dff1","updated":"2019-07-29 12:30:01.000000000","message":"ack let me check how this goes.","commit_id":"544d4fb655a0514a5530109d549d9090ea23565d"}],"ironic/conf/nova.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"774d4b7a68cddf375240006b2c397398c18dd9da","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from ironic.conf import auth"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"opts \u003d ["},{"line_number":19,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":20,"context_line":"               default\u003d3,"},{"line_number":21,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request \u0027"},{"line_number":22,"context_line":"                      \u0027connection.\u0027)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_3f4777bf","side":"PARENT","line":19,"range":{"start_line":19,"start_character":16,"end_line":19,"end_character":23},"updated":"2019-07-23 21:46:06.000000000","message":"Note: connect-retries comes for free with adapter opts as of ksa 3.15.0.","commit_id":"a8a8c70a529f59cef57fd2d05dac2ca5497a5799"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"8119b2f18b3856506720f085fc14c3e1095fc4c1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from ironic.conf import auth"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"opts \u003d ["},{"line_number":19,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":20,"context_line":"               default\u003d3,"},{"line_number":21,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request \u0027"},{"line_number":22,"context_line":"                      \u0027connection.\u0027)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_166a4c80","side":"PARENT","line":19,"range":{"start_line":19,"start_character":16,"end_line":19,"end_character":23},"in_reply_to":"7faddb67_3f4777bf","updated":"2019-07-30 09:16:41.000000000","message":"\u003e Note: connect-retries comes for free with adapter opts as of ksa\n \u003e 3.15.0.\n\ncool, nice thanks! so if the operator wants they can set it in the config file: https://github.com/openstack/keystoneauth/blob/996c8c66d488a926b3442889a94eb0c074c1c3eb/keystoneauth1/loading/adapter.py#L138 and it would work. If not.. I wonder what the default value is.\n\n(later)\n\nI think it would be 0 (https://github.com/openstack/keystoneauth/blob/3fd9ce7007208b8d59fa36f89a74769b33a8a803/keystoneauth1/session.py#L582) which is fine.","commit_id":"a8a8c70a529f59cef57fd2d05dac2ca5497a5799"}]}
