)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ee896c0e8d90f6b0a299ec4fdec67898235caf7a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve the performance of filtering instances by IP."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The performance of filtering instance by IP is poor, this is due to that"},{"line_number":10,"context_line":"IP address is one part of the instance.network_info JSON, we have to"},{"line_number":11,"context_line":"iterate one by one to find the instance that matches the request."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec propose to get filtered ports according to the provided IP"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f4b6375_059b6972","line":10,"range":{"start_line":9,"start_character":53,"end_line":10,"end_character":56},"updated":"2017-10-19 11:26:38.000000000","message":"this is due to the IP address being one part of the instance.network_info JSON;\n\n(just a nit)","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"}],"specs/queens/approved/improve-filter-instances-by-ip-performance.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"92363e5af92ef66f3abb4be3ac97a5009665ab1c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"As discussed in Queens PTG [1]_, one possible solution is to"},{"line_number":36,"context_line":"get filtered ports according to the provided IP addresses"},{"line_number":37,"context_line":"from Neutron and retrieve the instance uuid from the"},{"line_number":38,"context_line":"port.device_id and then merge to the other filters."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_b88c9e35","line":38,"range":{"start_line":35,"start_character":0,"end_line":38,"end_character":51},"updated":"2017-10-05 15:03:52.000000000","message":"Two issues here:\n\n1. The neutron team said you can\u0027t filter ports by a regex - is that true? If so, what would it take to add that support to neutron?\n\n2. Neutron doesn\u0027t have a concept of \"soft deleted\" resources, so if you do \"nova list --deleted --ip 192.168.159.128\" and that instance is deleted, then it\u0027s not going to come back because neutron won\u0027t return a port with a device_id for it.\n\n#2 is arguably something we could live with since we don\u0027t guarantee that you can list or show details on deleted instances at any time, since they can be purged or archived from the nova database at the will of the operator.\n\n--\n\nWe should at least discuss these wrinkles in this spec.","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"c3dcd4f8949d1b5ba1292d9fc7b2fadd600a5ea3","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"As discussed in Queens PTG [1]_, one possible solution is to"},{"line_number":36,"context_line":"get filtered ports according to the provided IP addresses"},{"line_number":37,"context_line":"from Neutron and retrieve the instance uuid from the"},{"line_number":38,"context_line":"port.device_id and then merge to the other filters."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_5ade6c11","line":38,"range":{"start_line":35,"start_character":0,"end_line":38,"end_character":51},"in_reply_to":"7f515b1d_b88c9e35","updated":"2017-10-09 12:41:48.000000000","message":"Yes, metion these should be resonable, as for problem 1, I have registered a Neutron RFE(reference 2) below, and it has some good progress according to the launchpad description, and we will try to get more progress on the design this week.","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"92363e5af92ef66f3abb4be3ac97a5009665ab1c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"None"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Data model impact"},{"line_number":46,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_58cb6a52","line":43,"updated":"2017-10-05 15:03:52.000000000","message":"An alternative discussed at the PTG was storing the IPs in a mapping table in the nova database on which we can query. The issues with this is we already store the IPs in the instance_info_caches.network_info column and we have to work on keeping that accurate, so storing the data in yet another place could lead to more bugs since we\u0027re trying to manage state in 3 different locations (neutron - the source of truth, the instance info cache, and then this new mapping table).","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"c3dcd4f8949d1b5ba1292d9fc7b2fadd600a5ea3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"None"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Data model impact"},{"line_number":46,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_bacd6086","line":43,"in_reply_to":"7f515b1d_58cb6a52","updated":"2017-10-09 12:41:48.000000000","message":"Yes, I remember this, I will update this part","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"92363e5af92ef66f3abb4be3ac97a5009665ab1c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"REST API impact"},{"line_number":51,"context_line":"---------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Security impact"},{"line_number":56,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_78e986b5","line":53,"updated":"2017-10-05 15:03:52.000000000","message":"There would be impacts as noted above if we can\u0027t list deleted instances with the ip filter. This is maybe acceptable. We\u0027d probably want to get operator feedback.","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"c3dcd4f8949d1b5ba1292d9fc7b2fadd600a5ea3","unresolved":false,"context_lines":[{"line_number":50,"context_line":"REST API impact"},{"line_number":51,"context_line":"---------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Security impact"},{"line_number":56,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_fa01986b","line":53,"in_reply_to":"7f515b1d_78e986b5","updated":"2017-10-09 12:41:48.000000000","message":"OK, I didn\u0027t thought about this part and thought it was a internal change so no API change is visible to users :)","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"92363e5af92ef66f3abb4be3ac97a5009665ab1c","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Performance Impact"},{"line_number":71,"context_line":"------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"This change will improve the performance when filtering instances"},{"line_number":74,"context_line":"by IP addresses."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other deployer impact"},{"line_number":77,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_d82abae5","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":16},"updated":"2017-10-05 15:03:52.000000000","message":"If/when you get a POC for this, we should really start with a benchmark of say listing 1000 instances and filtering by an IP regex for some subnet range, and then compare that to the same scenario with the change applied. If we\u0027re going to do this, we need to be sure it\u0027s actually improving performance at scale.","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"11541ebd9081bd3a7edb3c77491d7e205fe3ae19","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Performance Impact"},{"line_number":71,"context_line":"------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"This change will improve the performance when filtering instances"},{"line_number":74,"context_line":"by IP addresses."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other deployer impact"},{"line_number":77,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f4e5783_3d02670b","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":16},"in_reply_to":"7f515b1d_7aeda8b5","updated":"2017-10-16 22:25:23.000000000","message":"Either here or the testing section would be fine.","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"c3dcd4f8949d1b5ba1292d9fc7b2fadd600a5ea3","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Performance Impact"},{"line_number":71,"context_line":"------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"This change will improve the performance when filtering instances"},{"line_number":74,"context_line":"by IP addresses."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other deployer impact"},{"line_number":77,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f515b1d_7aeda8b5","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":16},"in_reply_to":"7f515b1d_d82abae5","updated":"2017-10-09 12:41:48.000000000","message":"That\u0027s a really good idea, should I write something here?","commit_id":"c14703c36c561373f21a8adabb4797829e3485ae"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2edb8339f4b231df9f07f7a86934bf9f606d6046","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Nova currently support filtering instances by IP address"},{"line_number":41,"context_line":"using regex matching manner. But the Neutron port list API does"},{"line_number":42,"context_line":"not support regex matching filtering. A RFE has been submitted"},{"line_number":43,"context_line":"in Neutron [2]_ to support this. The changes in Nova side will"},{"line_number":44,"context_line":"depend on the enhancement in Neutron side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":47,"context_line":"by IP address, after this change, user will not able to filter"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_5d2f6387","line":44,"range":{"start_line":43,"start_character":33,"end_line":44,"end_character":42},"updated":"2017-10-16 22:31:36.000000000","message":"Since neutron doesn\u0027t use microversions, how will nova, as the client neutron API user, know if we can reliably filter ports by a regex? Will there be a new extension registered in Neutron?\n\nMy thinking is, we don\u0027t want to erroneously filter out all instances because the ip filter regex didn\u0027t match anything in neutron because it\u0027s an older neutron installation that doesn\u0027t support filtering by regex.","commit_id":"53275571c4933f04757ade316079d5ed948a6189"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"026909dba4e59deca2edc4006a8f1aa4a6ca33d9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Nova currently support filtering instances by IP address"},{"line_number":41,"context_line":"using regex matching manner. But the Neutron port list API does"},{"line_number":42,"context_line":"not support regex matching filtering. A RFE has been submitted"},{"line_number":43,"context_line":"in Neutron [2]_ to support this. The changes in Nova side will"},{"line_number":44,"context_line":"depend on the enhancement in Neutron side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":47,"context_line":"by IP address, after this change, user will not able to filter"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_06407806","line":44,"range":{"start_line":43,"start_character":33,"end_line":44,"end_character":42},"in_reply_to":"5f4e5783_5d2f6387","updated":"2017-10-17 02:09:04.000000000","message":"Hmm, reading again and I think I got it :)","commit_id":"53275571c4933f04757ade316079d5ed948a6189"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"ddad9893cfbb09b9c8167277fc97541cdc0500ee","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Nova currently support filtering instances by IP address"},{"line_number":41,"context_line":"using regex matching manner. But the Neutron port list API does"},{"line_number":42,"context_line":"not support regex matching filtering. A RFE has been submitted"},{"line_number":43,"context_line":"in Neutron [2]_ to support this. The changes in Nova side will"},{"line_number":44,"context_line":"depend on the enhancement in Neutron side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":47,"context_line":"by IP address, after this change, user will not able to filter"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_267c9481","line":44,"range":{"start_line":43,"start_character":33,"end_line":44,"end_character":42},"in_reply_to":"5f4e5783_5d2f6387","updated":"2017-10-17 02:00:04.000000000","message":"I understand your concern here, but not sure about your idea here( start from \"My thinking ...\") could you explain more?","commit_id":"53275571c4933f04757ade316079d5ed948a6189"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2edb8339f4b231df9f07f7a86934bf9f606d6046","unresolved":false,"context_lines":[{"line_number":43,"context_line":"in Neutron [2]_ to support this. The changes in Nova side will"},{"line_number":44,"context_line":"depend on the enhancement in Neutron side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":47,"context_line":"by IP address, after this change, user will not able to filter"},{"line_number":48,"context_line":"deleted instances with IP address since Neutron cannot provide"},{"line_number":49,"context_line":"such data."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_bd43f741","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":10},"updated":"2017-10-16 22:31:36.000000000","message":"Might want to mention that we think this is an acceptable limitation since there are no guarantees that users can list deleted instances today since an operator can archive/purge (soft) deleted instances at any point.","commit_id":"53275571c4933f04757ade316079d5ed948a6189"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"97877246671fe9dc3fadff89f28d2ee9db606b0d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"in Neutron [2]_ to support this. The changes in Nova side will"},{"line_number":44,"context_line":"depend on the enhancement in Neutron side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":47,"context_line":"by IP address, after this change, user will not able to filter"},{"line_number":48,"context_line":"deleted instances with IP address since Neutron cannot provide"},{"line_number":49,"context_line":"such data."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_66160c4c","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":10},"in_reply_to":"5f4e5783_bd43f741","updated":"2017-10-17 01:57:48.000000000","message":"Done","commit_id":"53275571c4933f04757ade316079d5ed948a6189"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2edb8339f4b231df9f07f7a86934bf9f606d6046","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"None"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Performance Impact"},{"line_number":89,"context_line":"------------------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"This change will improve the performance when filtering instances"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_7db7bf3b","line":88,"updated":"2017-10-16 22:31:36.000000000","message":"From PS3, either add something in this section or in the Testing section about the need to do some performance benchmarking and comparison testing of this change at scale (at least 1000 instances). To be clear, I don\u0027t expect that to be something we automate or store in the nova repo, it could be manual testing which is what we do for a lot of scale testing right now.","commit_id":"53275571c4933f04757ade316079d5ed948a6189"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"97877246671fe9dc3fadff89f28d2ee9db606b0d","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"None"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Performance Impact"},{"line_number":89,"context_line":"------------------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"This change will improve the performance when filtering instances"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f4e5783_a639a4d7","line":88,"in_reply_to":"5f4e5783_7db7bf3b","updated":"2017-10-17 01:57:48.000000000","message":"Done","commit_id":"53275571c4933f04757ade316079d5ed948a6189"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9de9d56f6121de45660c1827d47c4735591ef6b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"in Neutron [2]_ to support this. The changes in Nova side will"},{"line_number":44,"context_line":"depend on the enhancement in Neutron side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"We can also add a new config option for operators to choice whether"},{"line_number":47,"context_line":"use this new filtering logic or not, if we are using this new workflow,"},{"line_number":48,"context_line":"as a newer version of Nova may talk to older version of Neutron,"},{"line_number":49,"context_line":"we will also add logic that check whether regex matching is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f4e5783_de820e00","line":46,"range":{"start_line":46,"start_character":22,"end_line":46,"end_character":35},"updated":"2017-10-17 19:49:53.000000000","message":"I wasn\u0027t actually thinking we\u0027d use a config option.\n\nThe networking API doesn\u0027t use microversions, so when there are new capabilities available, Neutron adds a new extension:\n\nhttps://developer.openstack.org/api-ref/network/v2/index.html#list-extensions\n\nFor example, the auto-allocated-topology extension was added for the get me a network feature which nova used in the 2.37 microversion of the compute API.\n\nSo I think the logic in nova-api would be:\n\nif is_neutron() and network_api.is_ip_filter_regex_available():\n   list ports with the ip filter from neutron\n   gather the device IDs and pass those down to the cell DB API for filtering\nelse:\n   do what we do today","commit_id":"1a8beb829049e0d505cee4fad42231d43db67838"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9de9d56f6121de45660c1827d47c4735591ef6b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"in Neutron [2]_ to support this. The changes in Nova side will"},{"line_number":44,"context_line":"depend on the enhancement in Neutron side."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"We can also add a new config option for operators to choice whether"},{"line_number":47,"context_line":"use this new filtering logic or not, if we are using this new workflow,"},{"line_number":48,"context_line":"as a newer version of Nova may talk to older version of Neutron,"},{"line_number":49,"context_line":"we will also add logic that check whether regex matching is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f4e5783_1eec2628","line":46,"range":{"start_line":46,"start_character":53,"end_line":46,"end_character":59},"updated":"2017-10-17 19:49:53.000000000","message":"choose","commit_id":"1a8beb829049e0d505cee4fad42231d43db67838"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b67f05e3c5782350c6d4e1642a02ac3db84bd1f6","unresolved":false,"context_lines":[{"line_number":143,"context_line":"Add the following tests."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* Unit tests"},{"line_number":146,"context_line":"* Functional tests"},{"line_number":147,"context_line":"* Tempest tests"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f4e5783_3ef7e25b","line":146,"updated":"2017-10-17 20:00:48.000000000","message":"I don\u0027t think functional tests probably make sense, we don\u0027t have a live neutron in those tests, just a fixture, and we can test the logic with unit tests.","commit_id":"1a8beb829049e0d505cee4fad42231d43db67838"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b67f05e3c5782350c6d4e1642a02ac3db84bd1f6","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* Unit tests"},{"line_number":146,"context_line":"* Functional tests"},{"line_number":147,"context_line":"* Tempest tests"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f4e5783_dee8ce7c","line":147,"updated":"2017-10-17 20:00:48.000000000","message":"There is no microversion so I don\u0027t think we\u0027d actually add any tests in Tempest for this, it\u0027s all based on how the cloud is configured.","commit_id":"1a8beb829049e0d505cee4fad42231d43db67838"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"12ca09df0247a82781341a45f947a63f81b4b115","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Nova allows filtering instances by IP address when list instances."},{"line_number":20,"context_line":"But the performance of such fitering is poor, this is due to that"},{"line_number":21,"context_line":"IP address is one part of the instance.network_info JSON, we have"},{"line_number":22,"context_line":"to iterate one by one to find the instance that matches the request."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_e8d14459","line":19,"range":{"start_line":19,"start_character":51,"end_line":19,"end_character":55},"updated":"2017-10-19 12:03:07.000000000","message":"nit: listing?","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ee896c0e8d90f6b0a299ec4fdec67898235caf7a","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Nova allows filtering instances by IP address when list instances."},{"line_number":20,"context_line":"But the performance of such fitering is poor, this is due to that"},{"line_number":21,"context_line":"IP address is one part of the instance.network_info JSON, we have"},{"line_number":22,"context_line":"to iterate one by one to find the instance that matches the request."},{"line_number":23,"context_line":"Which makes this filter un-usable in large scale deployment."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_2577853d","line":21,"updated":"2017-10-19 11:26:38.000000000","message":"see nit on commit message","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"12ca09df0247a82781341a45f947a63f81b4b115","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"As an operator, I want to efficiently filter instances by IP so that"},{"line_number":29,"context_line":"I can locate the instances that have abnormal network activities on"},{"line_number":30,"context_line":"the provided IP address(es)."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_68c5548e","line":30,"updated":"2017-10-19 12:03:07.000000000","message":"Not really sure it\u0027s a use case, but meh.","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a2962b1ffc319b0dedbf0e36ab263f681e3217b0","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"As an operator, I want to efficiently filter instances by IP so that"},{"line_number":29,"context_line":"I can locate the instances that have abnormal network activities on"},{"line_number":30,"context_line":"the provided IP address(es)."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_e8a024a8","line":30,"in_reply_to":"3f4b6375_68c5548e","updated":"2017-10-19 12:36:51.000000000","message":"When I add to the end of the sentence that \u0027in timely manner\u0027 in my head then for me it sounds a use case.","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"12ca09df0247a82781341a45f947a63f81b4b115","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"As a newer version of Nova may talk to older version of Neutron,"},{"line_number":47,"context_line":"we will also add logic that check whether regex matching is"},{"line_number":48,"context_line":"supported in Neutron side via a new networking API extension."},{"line_number":49,"context_line":"If the extension is not available, we will fallback to the existing"},{"line_number":50,"context_line":"behavior and avoid erroneously filter out all instances."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_e85f04e3","line":48,"range":{"start_line":48,"start_character":10,"end_line":48,"end_character":61},"updated":"2017-10-19 12:03:07.000000000","message":"because Neutron doesn\u0027t have yet API microversions unfortunately :(","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a2962b1ffc319b0dedbf0e36ab263f681e3217b0","unresolved":false,"context_lines":[{"line_number":46,"context_line":"As a newer version of Nova may talk to older version of Neutron,"},{"line_number":47,"context_line":"we will also add logic that check whether regex matching is"},{"line_number":48,"context_line":"supported in Neutron side via a new networking API extension."},{"line_number":49,"context_line":"If the extension is not available, we will fallback to the existing"},{"line_number":50,"context_line":"behavior and avoid erroneously filter out all instances."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":53,"context_line":"by IP address, after this change, user will not able to filter"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_480a9826","line":50,"range":{"start_line":49,"start_character":35,"end_line":50,"end_character":8},"updated":"2017-10-19 12:36:51.000000000","message":"OK, so it means that this nova spec can be implemented before the neutron RFE is merged. I would mention that the dependency stated in L44 does not mean a hard ordering between the implementations","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"12ca09df0247a82781341a45f947a63f81b4b115","unresolved":false,"context_lines":[{"line_number":50,"context_line":"behavior and avoid erroneously filter out all instances."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":53,"context_line":"by IP address, after this change, user will not able to filter"},{"line_number":54,"context_line":"deleted instances with IP address since Neutron cannot provide"},{"line_number":55,"context_line":"such data. This is considered to be acceptable as there are no"},{"line_number":56,"context_line":"guarantees that users can list deleted instances today since an"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_e804a4c8","line":53,"range":{"start_line":53,"start_character":26,"end_line":53,"end_character":33},"updated":"2017-10-19 12:03:07.000000000","message":"not after this \"change\", rather after the new Nova API microversion...\nI mean, you can still get the deleted instances by IP addresses in Queens if you use a previous microversion.","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"caf314955df3e40b13b74bb773388b2471b3b6ac","unresolved":false,"context_lines":[{"line_number":50,"context_line":"behavior and avoid erroneously filter out all instances."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":53,"context_line":"by IP address, after this change, user will not able to filter"},{"line_number":54,"context_line":"deleted instances with IP address since Neutron cannot provide"},{"line_number":55,"context_line":"such data. This is considered to be acceptable as there are no"},{"line_number":56,"context_line":"guarantees that users can list deleted instances today since an"},{"line_number":57,"context_line":"operator can archive/purge deleted instances at any point."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_cedc5b48","line":55,"range":{"start_line":53,"start_character":15,"end_line":55,"end_character":10},"updated":"2017-10-19 06:04:51.000000000","message":"why we didn\u0027t fallback to the existed behaviour?","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"12ca09df0247a82781341a45f947a63f81b4b115","unresolved":false,"context_lines":[{"line_number":50,"context_line":"behavior and avoid erroneously filter out all instances."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":53,"context_line":"by IP address, after this change, user will not able to filter"},{"line_number":54,"context_line":"deleted instances with IP address since Neutron cannot provide"},{"line_number":55,"context_line":"such data. This is considered to be acceptable as there are no"},{"line_number":56,"context_line":"guarantees that users can list deleted instances today since an"},{"line_number":57,"context_line":"operator can archive/purge deleted instances at any point."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_c83208a8","line":55,"range":{"start_line":53,"start_character":15,"end_line":55,"end_character":10},"in_reply_to":"3f4b6375_a5e6d5e7","updated":"2017-10-19 12:03:07.000000000","message":"You can get the old behaviour if you ask for a previous microversion, so IMHO it\u0027s fine to not fallback.","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2c4ec34baf476a200f6b2e145ed2b9a6b59a5e7d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"behavior and avoid erroneously filter out all instances."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":53,"context_line":"by IP address, after this change, user will not able to filter"},{"line_number":54,"context_line":"deleted instances with IP address since Neutron cannot provide"},{"line_number":55,"context_line":"such data. This is considered to be acceptable as there are no"},{"line_number":56,"context_line":"guarantees that users can list deleted instances today since an"},{"line_number":57,"context_line":"operator can archive/purge deleted instances at any point."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_236add7f","line":55,"range":{"start_line":53,"start_character":15,"end_line":55,"end_character":10},"in_reply_to":"3f4b6375_c83208a8","updated":"2017-10-19 12:47:09.000000000","message":"There is no mention of a new microversion in here. I wasn\u0027t thinking we needed one. This isn\u0027t new feature behavior, this is really fixing a long-standing performance bug, but it\u0027s complicated enough that it warranted a spec.","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"835df9717f7e41b5493183f11cc500a9ff791d5c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"behavior and avoid erroneously filter out all instances."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":53,"context_line":"by IP address, after this change, user will not able to filter"},{"line_number":54,"context_line":"deleted instances with IP address since Neutron cannot provide"},{"line_number":55,"context_line":"such data. This is considered to be acceptable as there are no"},{"line_number":56,"context_line":"guarantees that users can list deleted instances today since an"},{"line_number":57,"context_line":"operator can archive/purge deleted instances at any point."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_ee2f17f4","line":55,"range":{"start_line":53,"start_character":15,"end_line":55,"end_character":10},"in_reply_to":"3f4b6375_cedc5b48","updated":"2017-10-19 06:21:36.000000000","message":"Hmm, that seems also doable. We are just thinking that there are no such use cases and the existed behaviour is also not guaranteed so just putted like this.","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ee896c0e8d90f6b0a299ec4fdec67898235caf7a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"behavior and avoid erroneously filter out all instances."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Nova currently also support list and filter deleted instances"},{"line_number":53,"context_line":"by IP address, after this change, user will not able to filter"},{"line_number":54,"context_line":"deleted instances with IP address since Neutron cannot provide"},{"line_number":55,"context_line":"such data. This is considered to be acceptable as there are no"},{"line_number":56,"context_line":"guarantees that users can list deleted instances today since an"},{"line_number":57,"context_line":"operator can archive/purge deleted instances at any point."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_a5e6d5e7","line":55,"range":{"start_line":53,"start_character":15,"end_line":55,"end_character":10},"in_reply_to":"3f4b6375_ee2f17f4","updated":"2017-10-19 11:26:38.000000000","message":"I think if listing deleted stuff is not guaranteed we should not bother falling back to it.","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a2962b1ffc319b0dedbf0e36ab263f681e3217b0","unresolved":false,"context_lines":[{"line_number":100,"context_line":"by IP addresses."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Benchmarking and comparision test at scale (at least 1000 instances)"},{"line_number":103,"context_line":"will be performed with the POC and test result will be provided."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Other deployer impact"},{"line_number":106,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f4b6375_a326cdb6","line":103,"updated":"2017-10-19 12:36:51.000000000","message":"+1","commit_id":"2e2e2ae56b917d9fb840fbd6fbf5270e6109bba4"}]}
