)]}'
{"neutron/common/config.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f28e493404240d8437aa8b765618cf0f9d560397","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                         common_config.IRONIC_CONF_SECTION)"},{"line_number":80,"context_line":"ks_loading.register_adapter_conf_options(cfg.CONF,"},{"line_number":81,"context_line":"                                         common_config.IRONIC_CONF_SECTION)"},{"line_number":82,"context_line":"cfg.CONF.set_default(\u0027valid_interfaces\u0027, [\u0027internal\u0027, \u0027public\u0027],"},{"line_number":83,"context_line":"                     group\u003d\u0027ironic\u0027)"},{"line_number":84,"context_line":"common_config.register_ironic_opts()"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_980105b3","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":36},"updated":"2019-09-16 17:00:18.000000000","message":"Isn\u0027t it already the default?","commit_id":"9becaa9138adcb5b6fc52cc717bbb87e656eda3a"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"7130db85123c3fd125955ec07f03dc0cce60ddf8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                         common_config.IRONIC_CONF_SECTION)"},{"line_number":80,"context_line":"ks_loading.register_adapter_conf_options(cfg.CONF,"},{"line_number":81,"context_line":"                                         common_config.IRONIC_CONF_SECTION)"},{"line_number":82,"context_line":"cfg.CONF.set_default(\u0027valid_interfaces\u0027, [\u0027internal\u0027, \u0027public\u0027],"},{"line_number":83,"context_line":"                     group\u003d\u0027ironic\u0027)"},{"line_number":84,"context_line":"common_config.register_ironic_opts()"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_b60966de","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":36},"in_reply_to":"3fa7e38b_980105b3","updated":"2019-09-17 09:36:13.000000000","message":"yeah, I removed it","commit_id":"9becaa9138adcb5b6fc52cc717bbb87e656eda3a"}],"neutron/notifiers/ironic.py":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"286c02dee81c8b440a4f84adf8cd87044f86ccf5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        \"\"\"Get Ironic client instance.\"\"\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # NOTE: To support standalone ironic without keystone"},{"line_number":65,"context_line":"        if cfg.CONF.ironic.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":66,"context_line":"            args \u003d {\u0027token\u0027: \u0027noauth\u0027,"},{"line_number":67,"context_line":"                    \u0027endpoint\u0027: cfg.CONF.ironic.ironic_url}"},{"line_number":68,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_318c1535","side":"PARENT","line":65,"range":{"start_line":65,"start_character":20,"end_line":65,"end_character":40},"updated":"2019-09-13 13:15:02.000000000","message":"I guess we can alos remove some of these options. In neutron/conf/common.py as the noauth option is removed with this change?","commit_id":"090ede21b03c301765ba4a57807b19d83de5a3ac"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"f644bacb4b52bea4ded09e5e392e5d07063183d6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        \"\"\"Get Ironic client instance.\"\"\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # NOTE: To support standalone ironic without keystone"},{"line_number":65,"context_line":"        if cfg.CONF.ironic.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":66,"context_line":"            args \u003d {\u0027token\u0027: \u0027noauth\u0027,"},{"line_number":67,"context_line":"                    \u0027endpoint\u0027: cfg.CONF.ironic.ironic_url}"},{"line_number":68,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_9abf0260","side":"PARENT","line":65,"range":{"start_line":65,"start_character":20,"end_line":65,"end_character":40},"in_reply_to":"5faad753_318c1535","updated":"2019-09-16 08:52:02.000000000","message":"I\u0027m not sure, isn\u0027t the option passed to the _get_session function?","commit_id":"090ede21b03c301765ba4a57807b19d83de5a3ac"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"286c02dee81c8b440a4f84adf8cd87044f86ccf5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        # NOTE: To support standalone ironic without keystone"},{"line_number":65,"context_line":"        if cfg.CONF.ironic.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":66,"context_line":"            args \u003d {\u0027token\u0027: \u0027noauth\u0027,"},{"line_number":67,"context_line":"                    \u0027endpoint\u0027: cfg.CONF.ironic.ironic_url}"},{"line_number":68,"context_line":"        else:"},{"line_number":69,"context_line":"            global IRONIC_SESSION"},{"line_number":70,"context_line":"            if not IRONIC_SESSION:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5faad753_91a709a8","side":"PARENT","line":67,"range":{"start_line":67,"start_character":48,"end_line":67,"end_character":58},"updated":"2019-09-13 13:15:02.000000000","message":"ditto, remove in neutron/conf/common.py ?","commit_id":"090ede21b03c301765ba4a57807b19d83de5a3ac"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"381cd7441ecdea90f91f1c7a7119f9b67bdce670","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        # NOTE(TheJulia): Friendly exception handling so operators"},{"line_number":74,"context_line":"        # can decouple updates."},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            self.irclient.post(\u0027/events\u0027, data\u003dbatched_events,"},{"line_number":77,"context_line":"                               microversion\u003d\u00271.54\u0027)"},{"line_number":78,"context_line":"        except os_exc.NotFoundException:"},{"line_number":79,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_0a128d59","line":76,"range":{"start_line":76,"start_character":42,"end_line":76,"end_character":46},"updated":"2019-09-17 13:07:37.000000000","message":"my bad, it\u0027s called json, not data","commit_id":"999f8b19005cc7647a1cb0e1d3bbb3e3cad127da"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"73040fd2f8c0c9f39bb5729823f29d6d0d785c59","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        # NOTE(TheJulia): Friendly exception handling so operators"},{"line_number":74,"context_line":"        # can decouple updates."},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            self.irclient.post(\u0027/events\u0027, data\u003dbatched_events,"},{"line_number":77,"context_line":"                               microversion\u003d\u00271.54\u0027)"},{"line_number":78,"context_line":"        except os_exc.NotFoundException:"},{"line_number":79,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_0ac5ad8e","line":76,"range":{"start_line":76,"start_character":42,"end_line":76,"end_character":46},"in_reply_to":"3fa7e38b_0a128d59","updated":"2019-09-17 13:15:17.000000000","message":"a working example: http://paste.openstack.org/show/777159/","commit_id":"999f8b19005cc7647a1cb0e1d3bbb3e3cad127da"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"df6c1cdee811819095e0784fcadc5616e2062e1d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        # NOTE(TheJulia): Friendly exception handling so operators"},{"line_number":74,"context_line":"        # can decouple updates."},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            self.irclient.post(\u0027/events\u0027, data\u003dbatched_events,"},{"line_number":77,"context_line":"                               microversion\u003d\u00271.54\u0027)"},{"line_number":78,"context_line":"        except os_exc.NotFoundException:"},{"line_number":79,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"},{"line_number":80,"context_line":"                      \u0027The API likely needs to be upgraded.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_798761d9","line":77,"range":{"start_line":76,"start_character":12,"end_line":77,"end_character":51},"updated":"2019-09-17 11:03:36.000000000","message":"This does not work.\n\nSep 17 11:02:02 ironic-devstack neutron-server[6656]: ERROR neutron.notifiers.ironic [-] Unknown error encountered posting the event to ironic. too many values to unpack (expected 2)","commit_id":"999f8b19005cc7647a1cb0e1d3bbb3e3cad127da"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"73040fd2f8c0c9f39bb5729823f29d6d0d785c59","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            self.irclient.post(\u0027/events\u0027, data\u003dbatched_events,"},{"line_number":77,"context_line":"                               microversion\u003d\u00271.54\u0027)"},{"line_number":78,"context_line":"        except os_exc.NotFoundException:"},{"line_number":79,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"},{"line_number":80,"context_line":"                      \u0027The API likely needs to be upgraded.\u0027)"},{"line_number":81,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_4acba5a4","line":78,"range":{"start_line":78,"start_character":8,"end_line":78,"end_character":40},"updated":"2019-09-17 13:15:17.000000000","message":"The raw HTTP methods do not raise by default, use\n\n openstack.exceptions.raise_from_response(resp)","commit_id":"999f8b19005cc7647a1cb0e1d3bbb3e3cad127da"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"381cd7441ecdea90f91f1c7a7119f9b67bdce670","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"},{"line_number":80,"context_line":"                      \u0027The API likely needs to be upgraded.\u0027)"},{"line_number":81,"context_line":"        except Exception as e:"},{"line_number":82,"context_line":"            LOG.error(\u0027Unknown error encountered posting the event to \u0027"},{"line_number":83,"context_line":"                      \u0027ironic. {error}\u0027.format(error\u003de))"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @registry.receives(resources.PORT, [events.AFTER_UPDATE])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_ff2a518e","line":82,"range":{"start_line":82,"start_character":16,"end_line":82,"end_character":22},"updated":"2019-09-17 13:07:37.000000000","message":"Let\u0027s use exception here so that we catch traceback","commit_id":"999f8b19005cc7647a1cb0e1d3bbb3e3cad127da"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"0aee383546bd0ed61f470f317d01e754d4753fbe","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            session\u003dIRONIC_SESSION, oslo_conf\u003dcfg.CONF).baremetal"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def send_events(self, batched_events):"},{"line_number":73,"context_line":"        # NOTE(TheJulia): Friendly exception handling so operators"},{"line_number":74,"context_line":"        # can decouple updates."},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            response \u003d self.irclient.post(\u0027/events\u0027, json\u003dbatched_events,"},{"line_number":77,"context_line":"                                          microversion\u003d\u00271.54\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_e5464250","line":74,"range":{"start_line":73,"start_character":8,"end_line":74,"end_character":31},"updated":"2019-09-17 13:50:08.000000000","message":"nit: I think we can drop this comment as we no longer catch the \"NotFound\"","commit_id":"12ce70911b7409cc6b7720762ade80099b905c3e"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"0aee383546bd0ed61f470f317d01e754d4753fbe","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        # NOTE(TheJulia): Friendly exception handling so operators"},{"line_number":74,"context_line":"        # can decouple updates."},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            response \u003d self.irclient.post(\u0027/events\u0027, json\u003dbatched_events,"},{"line_number":77,"context_line":"                                          microversion\u003d\u00271.54\u0027)"},{"line_number":78,"context_line":"            os_exc.raise_from_response(response)"},{"line_number":79,"context_line":"        except Exception as e:"},{"line_number":80,"context_line":"            LOG.exception(\u0027Error encountered posting the event to \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_25669aef","line":77,"range":{"start_line":76,"start_character":23,"end_line":77,"end_character":62},"updated":"2019-09-17 13:50:08.000000000","message":"ERROR neutron.notifiers.ironic [-] Error encountered posting the event to ironic. HttpException: 500: Server Error for url: https://192.168.122.234/baremetal/v1/events, \u0027list\u0027 object has no attribute \u0027keys\u0027: openstack.exceptions.HttpException: HttpException: 500: Server Error for url: https://192.168.122.234/baremetal/v1/events, \u0027list\u0027 object has no attribute \u0027keys\u0027","commit_id":"12ce70911b7409cc6b7720762ade80099b905c3e"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"035efda7af56ec79d8605078d5d2a10a9f3d312e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        # NOTE(TheJulia): Friendly exception handling so operators"},{"line_number":74,"context_line":"        # can decouple updates."},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            response \u003d self.irclient.post(\u0027/events\u0027, json\u003dbatched_events,"},{"line_number":77,"context_line":"                                          microversion\u003d\u00271.54\u0027)"},{"line_number":78,"context_line":"            os_exc.raise_from_response(response)"},{"line_number":79,"context_line":"        except Exception as e:"},{"line_number":80,"context_line":"            LOG.exception(\u0027Error encountered posting the event to \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_25c21a87","line":77,"range":{"start_line":76,"start_character":23,"end_line":77,"end_character":62},"in_reply_to":"3fa7e38b_25669aef","updated":"2019-09-17 13:54:13.000000000","message":"It must be: json\u003d{\u0027events\u0027: batched_events}","commit_id":"12ce70911b7409cc6b7720762ade80099b905c3e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"64b5d5a0a6c3a726d17a0d4475fff9b79de2b70c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        # NOTE(TheJulia): Friendly exception handling so operators"},{"line_number":74,"context_line":"        # can decouple updates."},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            response \u003d self.irclient.post(\u0027/events\u0027, json\u003dbatched_events,"},{"line_number":77,"context_line":"                                          microversion\u003d\u00271.54\u0027)"},{"line_number":78,"context_line":"            os_exc.raise_from_response(response)"},{"line_number":79,"context_line":"        except Exception as e:"},{"line_number":80,"context_line":"            LOG.exception(\u0027Error encountered posting the event to \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_057d9e1b","line":77,"range":{"start_line":76,"start_character":23,"end_line":77,"end_character":62},"in_reply_to":"3fa7e38b_25c21a87","updated":"2019-09-17 14:04:58.000000000","message":"yeah, I saw it too late, I\u0027m uploading a new set now","commit_id":"12ce70911b7409cc6b7720762ade80099b905c3e"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"177563218be18fb7bc647c0aec6eb9436b891820","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            IRONIC_SESSION \u003d self._get_session(IRONIC_CONF_SECTION)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return connection.Connection("},{"line_number":70,"context_line":"            session\u003dIRONIC_SESSION, oslo_conf\u003dcfg.CONF).baremetal"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def send_events(self, batched_events):"},{"line_number":73,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_d92af8e5","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":65},"updated":"2019-09-18 15:59:56.000000000","message":"If you only care about the baremetal service, you may wish to consider openstacksdk 0.34.0 or higher and make use of the service_types kwarg [1] so SDK doesn\u0027t go trying to load up all the other services.\n\n[1] I3d16d17caa2e8a58b7064c54e930468288aa6ff1","commit_id":"a55963034afd95912428eb75bcfa3142df0a3769"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0b131956007e2d749d516ca61a56c130a4e977cf","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            IRONIC_SESSION \u003d self._get_session(IRONIC_CONF_SECTION)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return connection.Connection("},{"line_number":70,"context_line":"            session\u003dIRONIC_SESSION, oslo_conf\u003dcfg.CONF).baremetal"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def send_events(self, batched_events):"},{"line_number":73,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_19e410ac","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":65},"in_reply_to":"3fa7e38b_d92af8e5","updated":"2019-09-18 16:05:39.000000000","message":"Sounds like a good follow-up","commit_id":"a55963034afd95912428eb75bcfa3142df0a3769"}]}
