)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7d6ced9c0b6536e6abfa29600a0344e22f5e2ee7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Hamdy Khader \u003chamdyk@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-05 15:41:55 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keep port\u0027s binding profile when unbinding in case of SmartNIC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_2745b015","line":7,"range":{"start_line":7,"start_character":54,"end_line":7,"end_character":62},"updated":"2019-12-08 12:05:10.000000000","message":"SmartNIC port","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7d6ced9c0b6536e6abfa29600a0344e22f5e2ee7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Hamdy Khader \u003chamdyk@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-05 15:41:55 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keep port\u0027s binding profile when unbinding in case of SmartNIC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_673f2886","line":7,"updated":"2019-12-08 12:05:10.000000000","message":"nit:\nKeep Neutron port\u0027s ...","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Hamdy Khader \u003chamdyk@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-05 15:41:55 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keep port\u0027s binding profile when unbinding in case of SmartNIC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_a7d5201d","line":7,"range":{"start_line":7,"start_character":54,"end_line":7,"end_character":62},"in_reply_to":"3fa7e38b_2745b015","updated":"2019-12-08 13:04:14.000000000","message":"Done","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Hamdy Khader \u003chamdyk@mellanox.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-12-05 15:41:55 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keep port\u0027s binding profile when unbinding in case of SmartNIC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_47d6ac28","line":7,"in_reply_to":"3fa7e38b_673f2886","updated":"2019-12-08 13:04:14.000000000","message":"Done","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7d6ced9c0b6536e6abfa29600a0344e22f5e2ee7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keep port\u0027s binding profile when unbinding in case of SmartNIC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."},{"line_number":11,"context_line":"In case of SmartNIC, Neutron port must have binding profile object that"},{"line_number":12,"context_line":"containes the required information in it\u0027s local_link_information."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_0748b42b","line":9,"updated":"2019-12-08 12:05:10.000000000","message":"nit: Neutron OVS agent","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Keep port\u0027s binding profile when unbinding in case of SmartNIC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."},{"line_number":11,"context_line":"In case of SmartNIC, Neutron port must have binding profile object that"},{"line_number":12,"context_line":"containes the required information in it\u0027s local_link_information."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_67dba84d","line":9,"in_reply_to":"3fa7e38b_0748b42b","updated":"2019-12-08 13:04:14.000000000","message":"Done","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7d6ced9c0b6536e6abfa29600a0344e22f5e2ee7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Keep port\u0027s binding profile when unbinding in case of SmartNIC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."},{"line_number":11,"context_line":"In case of SmartNIC, Neutron port must have binding profile object that"},{"line_number":12,"context_line":"containes the required information in it\u0027s local_link_information."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_c74dbc3c","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":3},"updated":"2019-12-08 12:05:10.000000000","message":"nit: remove","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Keep port\u0027s binding profile when unbinding in case of SmartNIC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."},{"line_number":11,"context_line":"In case of SmartNIC, Neutron port must have binding profile object that"},{"line_number":12,"context_line":"containes the required information in it\u0027s local_link_information."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_07e4340d","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":3},"in_reply_to":"3fa7e38b_c74dbc3c","updated":"2019-12-08 13:04:14.000000000","message":"Done","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7d6ced9c0b6536e6abfa29600a0344e22f5e2ee7","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."},{"line_number":11,"context_line":"In case of SmartNIC, Neutron port must have binding profile object that"},{"line_number":12,"context_line":"containes the required information in it\u0027s local_link_information."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I17e2d7ecebdb961e3e0ba0bcfa249567ebb1835f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_e74a3822","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":19},"updated":"2019-12-08 12:05:10.000000000","message":"SmartNIC port","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."},{"line_number":11,"context_line":"In case of SmartNIC, Neutron port must have binding profile object that"},{"line_number":12,"context_line":"containes the required information in it\u0027s local_link_information."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I17e2d7ecebdb961e3e0ba0bcfa249567ebb1835f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_67b408f2","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":19},"in_reply_to":"3fa7e38b_e74a3822","updated":"2019-12-08 13:04:14.000000000","message":"Done","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"7d6ced9c0b6536e6abfa29600a0344e22f5e2ee7","unresolved":false,"context_lines":[{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."},{"line_number":11,"context_line":"In case of SmartNIC, Neutron port must have binding profile object that"},{"line_number":12,"context_line":"containes the required information in it\u0027s local_link_information."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I17e2d7ecebdb961e3e0ba0bcfa249567ebb1835f"},{"line_number":15,"context_line":"Closes-Bug: #1855260"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_875d84ed","line":12,"range":{"start_line":12,"start_character":14,"end_line":12,"end_character":34},"updated":"2019-12-08 12:05:10.000000000","message":"what is the required information ? (port representor identifier on smartNIC ?)","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":9,"context_line":"OVS agent needs SmartNIC representor name in order to remove it from"},{"line_number":10,"context_line":"the OVS db."},{"line_number":11,"context_line":"In case of SmartNIC, Neutron port must have binding profile object that"},{"line_number":12,"context_line":"containes the required information in it\u0027s local_link_information."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I17e2d7ecebdb961e3e0ba0bcfa249567ebb1835f"},{"line_number":15,"context_line":"Closes-Bug: #1855260"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_47af8c9c","line":12,"range":{"start_line":12,"start_character":14,"end_line":12,"end_character":34},"in_reply_to":"3fa7e38b_875d84ed","updated":"2019-12-08 13:04:14.000000000","message":"Done","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"}],"ironic/common/neutron.py":[{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"cc7210f2177e988cbcd38ee45a9e20c1411f6f93","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                            timeout\u003dCONF.neutron.request_timeout)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def unbind_neutron_port(port_id, client\u003dNone, context\u003dNone, ironic_port\u003dNone):"},{"line_number":82,"context_line":"    \"\"\"Unbind a neutron port"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    Remove a neutron port\u0027s binding profile and host ID so that it returns to"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_87810450","line":81,"updated":"2019-12-08 11:26:42.000000000","message":"A unit test checking the new behaviour of unbind_neutron_port() would be great.","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                            timeout\u003dCONF.neutron.request_timeout)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def unbind_neutron_port(port_id, client\u003dNone, context\u003dNone, ironic_port\u003dNone):"},{"line_number":82,"context_line":"    \"\"\"Unbind a neutron port"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    Remove a neutron port\u0027s binding profile and host ID so that it returns to"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_07cd1485","line":81,"in_reply_to":"3fa7e38b_87810450","updated":"2019-12-08 13:04:14.000000000","message":"Done","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":28714,"name":"Adrian Chiris","email":"adrianc@nvidia.com","username":"adrianc"},"change_message_id":"cc7210f2177e988cbcd38ee45a9e20c1411f6f93","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    :param client: Optional a Neutron client object."},{"line_number":89,"context_line":"    :param context: request context"},{"line_number":90,"context_line":"    :type context: ironic.common.context.RequestContext"},{"line_number":91,"context_line":"    :param ironic_port: Optional an instance of ironic.objects.port.Port."},{"line_number":92,"context_line":"    :raises: NetworkError"},{"line_number":93,"context_line":"    \"\"\""},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_e7aeb8e2","line":91,"range":{"start_line":91,"start_character":4,"end_line":91,"end_character":23},"updated":"2019-12-08 11:26:42.000000000","message":"To make things clearer i would have defined this parameter as : \"keep_binding_profile\u003dFalse\" when set to True , binding profile will be preserved when unbinding the port.\n\nThen pass it as true for smart-NIC case where needed e.g in network/neutron.py","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    :param client: Optional a Neutron client object."},{"line_number":89,"context_line":"    :param context: request context"},{"line_number":90,"context_line":"    :type context: ironic.common.context.RequestContext"},{"line_number":91,"context_line":"    :param ironic_port: Optional an instance of ironic.objects.port.Port."},{"line_number":92,"context_line":"    :raises: NetworkError"},{"line_number":93,"context_line":"    \"\"\""},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_27ca906d","line":91,"range":{"start_line":91,"start_character":4,"end_line":91,"end_character":23},"in_reply_to":"3fa7e38b_e7aeb8e2","updated":"2019-12-08 13:04:14.000000000","message":"That\u0027s a good idea, will use it.","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8c6cc7f87c6afbb6cf146abfbf6782b9e720a90a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        client \u003d get_client(context\u003dcontext)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    body_unbind \u003d {\u0027port\u0027: {\u0027binding:host_id\u0027: \u0027\u0027}}"},{"line_number":99,"context_line":"    if not ironic_port or not is_smartnic_port(ironic_port):"},{"line_number":100,"context_line":"        body_unbind[\u0027port\u0027][\u0027binding:profile\u0027] \u003d {}"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    body_reset_mac \u003d {\u0027port\u0027: {\u0027mac_address\u0027: None}}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_66018007","line":99,"range":{"start_line":99,"start_character":7,"end_line":99,"end_character":22},"updated":"2019-12-06 05:33:52.000000000","message":"In which case, this ironic_port will be None?\nWhy is it required to check ironic_port? Is it not sufficient to check if the port is a smartnic port?","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"},{"author":{"_account_id":22948,"name":"Hamdy Khader","email":"hamdyk@mellanox.com","username":"hamdyk"},"change_message_id":"1076a05c0396844b7071cd71fd3cb3c715025011","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        client \u003d get_client(context\u003dcontext)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    body_unbind \u003d {\u0027port\u0027: {\u0027binding:host_id\u0027: \u0027\u0027}}"},{"line_number":99,"context_line":"    if not ironic_port or not is_smartnic_port(ironic_port):"},{"line_number":100,"context_line":"        body_unbind[\u0027port\u0027][\u0027binding:profile\u0027] \u003d {}"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    body_reset_mac \u003d {\u0027port\u0027: {\u0027mac_address\u0027: None}}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_879ee466","line":99,"range":{"start_line":99,"start_character":7,"end_line":99,"end_character":22},"in_reply_to":"3fa7e38b_66018007","updated":"2019-12-08 13:04:14.000000000","message":"Will use \"keep_binding_profile\" that is defaults to False.\nkeep_binding_profile\u003dTrue: In case of Ironic SmartNIC port.\n\nThe binding profile is needed for SmartNIC port in order to be removed by Neutron OVS agent, see: https://review.opendev.org/#/c/697473","commit_id":"ce68928d3950bb1b7c7e9420967da9dcf47c362b"}]}
