)]}'
{"networking_baremetal/notifier.py":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"7a552f0376b478a86c4d14b3fd6ba1bd7892116a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from neutron_lib.callbacks import events"},{"line_number":16,"context_line":"from neutron_lib.callbacks import registry"},{"line_number":17,"context_line":"from neutron_lib.callbacks import resources"},{"line_number":18,"context_line":"from neutron_lib import constants"},{"line_number":19,"context_line":"from oslo_config import cfg"},{"line_number":20,"context_line":"from oslo_log import log as logging"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bfdaf3ff_f439de3e","line":18,"range":{"start_line":18,"start_character":24,"end_line":18,"end_character":33},"updated":"2019-01-15 18:43:10.000000000","message":"will switch to n_const for consistency with the other code.","commit_id":"b747c68b7377670ede8db96a33236bc4086416e8"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"7a552f0376b478a86c4d14b3fd6ba1bd7892116a","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                                  **kwargs):"},{"line_number":57,"context_line":"        # We only want to notify about baremetal ports."},{"line_number":58,"context_line":"        if not port[\u0027binding:vnic_type\u0027] \u003d\u003d \u0027baremetal\u0027:"},{"line_number":59,"context_line":"            return"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        original_port_status \u003d original_port[\u0027status\u0027]"},{"line_number":62,"context_line":"        current_port_status \u003d port[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfdaf3ff_54146aa0","line":59,"range":{"start_line":59,"start_character":12,"end_line":59,"end_character":18},"updated":"2019-01-15 18:43:10.000000000","message":"Insert TODO about smartnic","commit_id":"b747c68b7377670ede8db96a33236bc4086416e8"}],"networking_baremetal/notifier/notifier.py":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"272aff58b54cb3c63cfff0023f9f6c4f63ff071b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                      port\u003dport[\u0027id\u0027],"},{"line_number":77,"context_line":"                      status\u003dcurrent_port_status))"},{"line_number":78,"context_line":"        if event_type:"},{"line_number":79,"context_line":"            event \u003d {"},{"line_number":80,"context_line":"                \u0027interface\u0027: \u0027network\u0027,"},{"line_number":81,"context_line":"                \u0027identifier\u0027: port[\u0027device_id\u0027],"},{"line_number":82,"context_line":"                \u0027payload\u0027: {"},{"line_number":83,"context_line":"                    \u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":84,"context_line":"                    \u0027mac_address\u0027: port[\u0027mac_address\u0027],"},{"line_number":85,"context_line":"                    \u0027status\u0027: current_port_status,"},{"line_number":86,"context_line":"                }"},{"line_number":87,"context_line":"            }"},{"line_number":88,"context_line":"            self.batch_notifier.queue_event(event)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def process_port_delete_event(self, resource, event, trigger,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bfdaf3ff_5c30d09f","line":87,"range":{"start_line":79,"start_character":0,"end_line":87,"end_character":13},"updated":"2019-01-18 15:19:53.000000000","message":"Need update to match the spec:\n\nhttps://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/synchronize-events-with-neutron.html#proposed-change","commit_id":"f7a5c5036781f7a123db5aeb2fd57355333a697a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"64fd020c711be477beba3a325096d95c87eaacb9","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                      port\u003dport[\u0027id\u0027],"},{"line_number":77,"context_line":"                      status\u003dcurrent_port_status))"},{"line_number":78,"context_line":"        if event_type:"},{"line_number":79,"context_line":"            event \u003d {"},{"line_number":80,"context_line":"                \u0027interface\u0027: \u0027network\u0027,"},{"line_number":81,"context_line":"                \u0027identifier\u0027: port[\u0027device_id\u0027],"},{"line_number":82,"context_line":"                \u0027payload\u0027: {"},{"line_number":83,"context_line":"                    \u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":84,"context_line":"                    \u0027mac_address\u0027: port[\u0027mac_address\u0027],"},{"line_number":85,"context_line":"                    \u0027status\u0027: current_port_status,"},{"line_number":86,"context_line":"                }"},{"line_number":87,"context_line":"            }"},{"line_number":88,"context_line":"            self.batch_notifier.queue_event(event)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def process_port_delete_event(self, resource, event, trigger,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_11e39f07","line":87,"range":{"start_line":79,"start_character":0,"end_line":87,"end_character":13},"in_reply_to":"bfdaf3ff_5c30d09f","updated":"2019-01-20 02:28:10.000000000","message":"Done","commit_id":"f7a5c5036781f7a123db5aeb2fd57355333a697a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"272aff58b54cb3c63cfff0023f9f6c4f63ff071b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        LOG.debug(\u0027Queing delete event for port %(port)s.\u0027.format("},{"line_number":99,"context_line":"            port\u003dport[\u0027id\u0027]))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        event \u003d {"},{"line_number":102,"context_line":"            \u0027interface\u0027: \u0027network\u0027,"},{"line_number":103,"context_line":"            \u0027identifier\u0027: port[\u0027device_id\u0027],"},{"line_number":104,"context_line":"            \u0027payload\u0027: {"},{"line_number":105,"context_line":"                \u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":106,"context_line":"                \u0027mac_address\u0027: port[\u0027mac_address\u0027],"},{"line_number":107,"context_line":"                \u0027status\u0027: \u0027DELETED\u0027,"},{"line_number":108,"context_line":"            }"},{"line_number":109,"context_line":"        }"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.batch_notifier.queue_event(event)"}],"source_content_type":"text/x-python","patch_set":7,"id":"bfdaf3ff_3c2b8c30","line":108,"range":{"start_line":101,"start_character":1,"end_line":108,"end_character":13},"updated":"2019-01-18 15:19:53.000000000","message":"Need update to match the spec:\n\nhttps://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/synchronize-events-with-neutron.html#proposed-change","commit_id":"f7a5c5036781f7a123db5aeb2fd57355333a697a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"64fd020c711be477beba3a325096d95c87eaacb9","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        LOG.debug(\u0027Queing delete event for port %(port)s.\u0027.format("},{"line_number":99,"context_line":"            port\u003dport[\u0027id\u0027]))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        event \u003d {"},{"line_number":102,"context_line":"            \u0027interface\u0027: \u0027network\u0027,"},{"line_number":103,"context_line":"            \u0027identifier\u0027: port[\u0027device_id\u0027],"},{"line_number":104,"context_line":"            \u0027payload\u0027: {"},{"line_number":105,"context_line":"                \u0027port_id\u0027: port[\u0027id\u0027],"},{"line_number":106,"context_line":"                \u0027mac_address\u0027: port[\u0027mac_address\u0027],"},{"line_number":107,"context_line":"                \u0027status\u0027: \u0027DELETED\u0027,"},{"line_number":108,"context_line":"            }"},{"line_number":109,"context_line":"        }"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        self.batch_notifier.queue_event(event)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_b1ef33e8","line":108,"range":{"start_line":101,"start_character":1,"end_line":108,"end_character":13},"in_reply_to":"bfdaf3ff_3c2b8c30","updated":"2019-01-20 02:28:10.000000000","message":"Done","commit_id":"f7a5c5036781f7a123db5aeb2fd57355333a697a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"6c6c9216b4c81a4191d89f4fc004120cb5c968f9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            \u0027binding:host_id\u0027: port[\u0027binding:host_id\u0027],"},{"line_number":114,"context_line":"            \u0027binding:vnic_type\u0027: port[\u0027binding:vnic_type\u0027]"},{"line_number":115,"context_line":"        }"},{"line_number":116,"context_line":"        # Filter keys with empty string as value. In case a type UUID field"},{"line_number":117,"context_line":"        # or similar is not set the API won\u0027t accept empty string."},{"line_number":118,"context_line":"        self.batch_notifier.queue_event("},{"line_number":119,"context_line":"            {k: v for k, v in event.iteritems() if v !\u003d \u0027\u0027})"}],"source_content_type":"text/x-python","patch_set":11,"id":"9fdfeff1_d4d73323","line":117,"range":{"start_line":116,"start_character":10,"end_line":117,"end_character":66},"updated":"2019-01-21 18:33:48.000000000","message":"Filter to avoid API error such as:\n  ERROR networking_baremetal.notifier.notifier [-] Unknown error encountered posting the event to ironic. %(error)s: ironicclient.common.apiclient.exceptions.BadRequest: Expected a UUID but received . (HTTP 400)\n\nhttp://logs.openstack.org/73/576873/10/check/networking-baremetal-multitenant-vlans/abd6bee/controller/logs/screen-q-svc.txt.gz?level\u003dERROR#_Jan_21_13_30_35_155381","commit_id":"127087e4bdd220af9e3e4d51f290a6eaed808c61"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fbbac2cc3466438f6538a3cf1ad6ec51d1fbacd8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        # can decouple updates."},{"line_number":44,"context_line":"        try:"},{"line_number":45,"context_line":"            self.irclient.events.create(events\u003dbatched_events)"},{"line_number":46,"context_line":"        except ironic_exc.Unauthorized:"},{"line_number":47,"context_line":"            LOG.error(\u0027Failure to authenticate to ironic API endpoint.\u0027)"},{"line_number":48,"context_line":"        except ironic_exc.MethodNotAllowed:"},{"line_number":49,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_c8eeaa87","line":46,"updated":"2019-01-22 12:04:47.000000000","message":"Why do we need to special-case this? line 51 will handle it with the other unexpected exceptions. I think only the one below needs special treatment.","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9b75b0ba600113bf80733e6b9dde625d33b1fd3e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        # can decouple updates."},{"line_number":44,"context_line":"        try:"},{"line_number":45,"context_line":"            self.irclient.events.create(events\u003dbatched_events)"},{"line_number":46,"context_line":"        except ironic_exc.Unauthorized:"},{"line_number":47,"context_line":"            LOG.error(\u0027Failure to authenticate to ironic API endpoint.\u0027)"},{"line_number":48,"context_line":"        except ironic_exc.MethodNotAllowed:"},{"line_number":49,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_125cd423","line":46,"in_reply_to":"9fdfeff1_c8eeaa87","updated":"2019-01-22 19:53:36.000000000","message":"I removed it. (TheJulia originally added it.)","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fbbac2cc3466438f6538a3cf1ad6ec51d1fbacd8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            self.irclient.events.create(events\u003dbatched_events)"},{"line_number":46,"context_line":"        except ironic_exc.Unauthorized:"},{"line_number":47,"context_line":"            LOG.error(\u0027Failure to authenticate to ironic API endpoint.\u0027)"},{"line_number":48,"context_line":"        except ironic_exc.MethodNotAllowed:"},{"line_number":49,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"},{"line_number":50,"context_line":"                      \u0027The API likely needs to be upgraded.\u0027)"},{"line_number":51,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_6803fe43","line":48,"updated":"2019-01-22 12:04:47.000000000","message":"I think it will be NotFound","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9b75b0ba600113bf80733e6b9dde625d33b1fd3e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            self.irclient.events.create(events\u003dbatched_events)"},{"line_number":46,"context_line":"        except ironic_exc.Unauthorized:"},{"line_number":47,"context_line":"            LOG.error(\u0027Failure to authenticate to ironic API endpoint.\u0027)"},{"line_number":48,"context_line":"        except ironic_exc.MethodNotAllowed:"},{"line_number":49,"context_line":"            LOG.error(\u0027The ironic API appears to not support posting events. \u0027"},{"line_number":50,"context_line":"                      \u0027The API likely needs to be upgraded.\u0027)"},{"line_number":51,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_771c326a","line":48,"in_reply_to":"9fdfeff1_6803fe43","updated":"2019-01-22 19:53:36.000000000","message":"Done","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fbbac2cc3466438f6538a3cf1ad6ec51d1fbacd8","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        elif (original_port_status \u003d\u003d n_const.PORT_STATUS_DOWN and"},{"line_number":71,"context_line":"                current_port_status in [n_const.PORT_STATUS_ACTIVE,"},{"line_number":72,"context_line":"                                        n_const.PORT_STATUS_ERROR]):"},{"line_number":73,"context_line":"            port_event \u003d \u0027bind_port\u0027"},{"line_number":74,"context_line":"        LOG.debug(\u0027Queing event for {event_type} for port {port} \u0027"},{"line_number":75,"context_line":"                  \u0027for status {status}.\u0027.format("},{"line_number":76,"context_line":"                      event_type\u003dport_event,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_8800a236","line":73,"updated":"2019-01-22 12:04:47.000000000","message":"btw, do we have an event for updating DHCP options? as we just learned, this can also silently fail..","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9b75b0ba600113bf80733e6b9dde625d33b1fd3e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        elif (original_port_status \u003d\u003d n_const.PORT_STATUS_DOWN and"},{"line_number":71,"context_line":"                current_port_status in [n_const.PORT_STATUS_ACTIVE,"},{"line_number":72,"context_line":"                                        n_const.PORT_STATUS_ERROR]):"},{"line_number":73,"context_line":"            port_event \u003d \u0027bind_port\u0027"},{"line_number":74,"context_line":"        LOG.debug(\u0027Queing event for {event_type} for port {port} \u0027"},{"line_number":75,"context_line":"                  \u0027for status {status}.\u0027.format("},{"line_number":76,"context_line":"                      event_type\u003dport_event,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_52525c15","line":73,"in_reply_to":"9fdfeff1_8800a236","updated":"2019-01-22 19:53:36.000000000","message":"If it fails the way we saw it did in bug[1] I think not. Not even neutron itself understood that it messed up in that case. So I guess we would have gotten a nice AFTER_UPDATE event with PORT_STATUS_ACTIVE and continued on to fail misserably.\n\nWe could check the fixed-ips field of the port here. And report an error to ironic if its not set? \n\n[1] https://launchpad.net/bugs/1811905","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fbbac2cc3466438f6538a3cf1ad6ec51d1fbacd8","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                \u0027mac_address\u0027: port[\u0027mac_address\u0027],"},{"line_number":85,"context_line":"                \u0027status\u0027: current_port_status,"},{"line_number":86,"context_line":"                \u0027device_id\u0027: port[\u0027device_id\u0027],"},{"line_number":87,"context_line":"                \u0027binding:host_id\u0027: port[\u0027binding:host_id\u0027],"},{"line_number":88,"context_line":"                \u0027binding:vnic_type\u0027: port[\u0027binding:vnic_type\u0027]"},{"line_number":89,"context_line":"            }"},{"line_number":90,"context_line":"            # Filter keys with empty string as value. In case a type UUID field"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_28fdf639","line":87,"updated":"2019-01-22 12:04:47.000000000","message":"cannot we avoid this weird colon and replace it with an underscore? or do you want to strictly map the neutron API? then you probably need \"id\", not \"port_id\"... I\u0027d actually drop \"binding\" completely, just leave \"host_id\" and \"vnic_type\".","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9b75b0ba600113bf80733e6b9dde625d33b1fd3e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                \u0027mac_address\u0027: port[\u0027mac_address\u0027],"},{"line_number":85,"context_line":"                \u0027status\u0027: current_port_status,"},{"line_number":86,"context_line":"                \u0027device_id\u0027: port[\u0027device_id\u0027],"},{"line_number":87,"context_line":"                \u0027binding:host_id\u0027: port[\u0027binding:host_id\u0027],"},{"line_number":88,"context_line":"                \u0027binding:vnic_type\u0027: port[\u0027binding:vnic_type\u0027]"},{"line_number":89,"context_line":"            }"},{"line_number":90,"context_line":"            # Filter keys with empty string as value. In case a type UUID field"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_d79f1e4e","line":87,"in_reply_to":"9fdfeff1_28fdf639","updated":"2019-01-22 19:53:36.000000000","message":"I\u0027m just following what was agreed in the spec:\nhttps://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/synchronize-events-with-neutron.html#rest-api-impact\n\nI kind of like having the binding part in there. It\u0027s easier to get that this is a neutron integration in that case. (Iff the person looking at the code have previous experience with neutron atleast.)","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"3cfd685047f6a00adfd2ee3e19979c2da72f5e4e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                current_port_status in [n_const.PORT_STATUS_ACTIVE,"},{"line_number":72,"context_line":"                                        n_const.PORT_STATUS_ERROR]):"},{"line_number":73,"context_line":"            port_event \u003d \u0027bind_port\u0027"},{"line_number":74,"context_line":"        LOG.debug(\u0027Queing event for {event_type} for port {port} \u0027"},{"line_number":75,"context_line":"                  \u0027for status {status}.\u0027.format(event_type\u003dport_event,"},{"line_number":76,"context_line":"                                                port\u003dport[\u0027id\u0027],"},{"line_number":77,"context_line":"                                                status\u003dcurrent_port_status))"}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_01031611","line":74,"range":{"start_line":74,"start_character":19,"end_line":74,"end_character":25},"updated":"2019-01-23 14:03:12.000000000","message":"nit: Queuing","commit_id":"927fc8fda8ffcc1c8a9d861f5cdbb2420fccf628"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"931987e15ca40936a697ba8de1d637d28bf4a5a1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                current_port_status in [n_const.PORT_STATUS_ACTIVE,"},{"line_number":72,"context_line":"                                        n_const.PORT_STATUS_ERROR]):"},{"line_number":73,"context_line":"            port_event \u003d \u0027bind_port\u0027"},{"line_number":74,"context_line":"        LOG.debug(\u0027Queing event for {event_type} for port {port} \u0027"},{"line_number":75,"context_line":"                  \u0027for status {status}.\u0027.format(event_type\u003dport_event,"},{"line_number":76,"context_line":"                                                port\u003dport[\u0027id\u0027],"},{"line_number":77,"context_line":"                                                status\u003dcurrent_port_status))"}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_6c499bce","line":74,"range":{"start_line":74,"start_character":19,"end_line":74,"end_character":25},"in_reply_to":"9fdfeff1_01031611","updated":"2019-01-24 20:09:26.000000000","message":"Done","commit_id":"927fc8fda8ffcc1c8a9d861f5cdbb2420fccf628"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"3cfd685047f6a00adfd2ee3e19979c2da72f5e4e","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            return"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        port_event \u003d \u0027delete_port\u0027"},{"line_number":103,"context_line":"        LOG.debug(\u0027Queing event for {event_type} for port {port} \u0027"},{"line_number":104,"context_line":"                  \u0027for status {status}.\u0027.format(event_type\u003dport_event,"},{"line_number":105,"context_line":"                                                port\u003dport[\u0027id\u0027],"},{"line_number":106,"context_line":"                                                status\u003d\u0027DELETED\u0027))"}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_1c13795e","line":103,"range":{"start_line":103,"start_character":19,"end_line":103,"end_character":25},"updated":"2019-01-23 14:03:12.000000000","message":"as above","commit_id":"927fc8fda8ffcc1c8a9d861f5cdbb2420fccf628"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"931987e15ca40936a697ba8de1d637d28bf4a5a1","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            return"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        port_event \u003d \u0027delete_port\u0027"},{"line_number":103,"context_line":"        LOG.debug(\u0027Queing event for {event_type} for port {port} \u0027"},{"line_number":104,"context_line":"                  \u0027for status {status}.\u0027.format(event_type\u003dport_event,"},{"line_number":105,"context_line":"                                                port\u003dport[\u0027id\u0027],"},{"line_number":106,"context_line":"                                                status\u003d\u0027DELETED\u0027))"}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_8c44ffb8","line":103,"range":{"start_line":103,"start_character":19,"end_line":103,"end_character":25},"in_reply_to":"9fdfeff1_1c13795e","updated":"2019-01-24 20:09:26.000000000","message":"Done","commit_id":"927fc8fda8ffcc1c8a9d861f5cdbb2420fccf628"}],"networking_baremetal/plugins/ml2/baremetal_mech.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"3cfd685047f6a00adfd2ee3e19979c2da72f5e4e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            portbindings.VIF_TYPE_OTHER,"},{"line_number":38,"context_line":"            {},"},{"line_number":39,"context_line":"            supported_vnic_types\u003d[portbindings.VNIC_BAREMETAL])"},{"line_number":40,"context_line":"        notifier.Notifier()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def get_allowed_network_types(self, agent):"},{"line_number":43,"context_line":"        \"\"\"Return the agent\u0027s or driver\u0027s allowed network types."}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_9c7689a4","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":27},"updated":"2019-01-23 14:03:12.000000000","message":"Do we not need to assign this to something to stop it going out of scope? Or does the registry stuff make that unnecessary. If so, a comment might help.","commit_id":"927fc8fda8ffcc1c8a9d861f5cdbb2420fccf628"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"931987e15ca40936a697ba8de1d637d28bf4a5a1","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            portbindings.VIF_TYPE_OTHER,"},{"line_number":38,"context_line":"            {},"},{"line_number":39,"context_line":"            supported_vnic_types\u003d[portbindings.VNIC_BAREMETAL])"},{"line_number":40,"context_line":"        notifier.Notifier()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def get_allowed_network_types(self, agent):"},{"line_number":43,"context_line":"        \"\"\"Return the agent\u0027s or driver\u0027s allowed network types."}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_d7aa90d0","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":27},"in_reply_to":"9fdfeff1_9c7689a4","updated":"2019-01-24 20:09:26.000000000","message":"tbh I have no idea.\nLooking at notifier code for nova notifications[1], they do assign it. We probably should as well.\n\nDone.\n\n[1] https://github.com/openstack/neutron/blob/83eb3e16138cbf3cd2df723020c07ac2f65c88ce/neutron/db/db_base_plugin_v2.py#L167","commit_id":"927fc8fda8ffcc1c8a9d861f5cdbb2420fccf628"}],"zuul.d/networking-baremetal-jobs.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"fbbac2cc3466438f6538a3cf1ad6ec51d1fbacd8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"      - openstack/networking-generic-switch"},{"line_number":17,"context_line":"      - openstack/networking-baremetal"},{"line_number":18,"context_line":"      - openstack/pyghmi"},{"line_number":19,"context_line":"      - openstack/python-ironicclient"},{"line_number":20,"context_line":"      - openstack/virtualbmc"},{"line_number":21,"context_line":"    vars:"},{"line_number":22,"context_line":"      devstack_plugins:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"9fdfeff1_a8e9e680","line":19,"updated":"2019-01-22 12:04:47.000000000","message":"This is not needed in the final version of this patch.","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9b75b0ba600113bf80733e6b9dde625d33b1fd3e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"      - openstack/networking-generic-switch"},{"line_number":17,"context_line":"      - openstack/networking-baremetal"},{"line_number":18,"context_line":"      - openstack/pyghmi"},{"line_number":19,"context_line":"      - openstack/python-ironicclient"},{"line_number":20,"context_line":"      - openstack/virtualbmc"},{"line_number":21,"context_line":"    vars:"},{"line_number":22,"context_line":"      devstack_plugins:"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"9fdfeff1_235439ca","line":19,"in_reply_to":"9fdfeff1_a8e9e680","updated":"2019-01-22 19:53:36.000000000","message":"Done","commit_id":"233d9a0e30820e1abc8f1d9ee5d18ec0b4356884"}]}
