)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"cb505a2ba563e9a091364ea5a8541b04c8d21e8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a99ffc24_9902d99f","updated":"2021-11-30 03:26:20.000000000","message":"CI failing bc of a few things inline. Also note that there is one CI failure in the patch under this one.","commit_id":"1c1078a6365384f544bd06dce8f78f2e9fdf98a9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"47a497c42bbc58e8aca2363b0a57cab4d3a2734f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"98516f62_62365988","updated":"2021-11-30 16:22:36.000000000","message":"This looks reasonable to me now, and we need to get something merged. If you can add a release note then I\u0027m +2","commit_id":"5ebbdfc6f4db1bd484d0c335a9b212107d023716"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"c7f7852ed56314d56070070139b18b3d6bf777d9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"e6706513_66a5c556","in_reply_to":"98516f62_62365988","updated":"2021-11-30 16:25:47.000000000","message":"For a bugfix?","commit_id":"5ebbdfc6f4db1bd484d0c335a9b212107d023716"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"02bdab3360b28db6a941564ac7def532d7dc347c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"20462a01_7d8dba31","in_reply_to":"b4423fba_0a5f7c34","updated":"2021-11-30 16:50:18.000000000","message":"It\u0027s not a bugfix - it\u0027s full support for a new (to OSC) microversion","commit_id":"5ebbdfc6f4db1bd484d0c335a9b212107d023716"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"cf429e7f1a54033da7e0ea421bad106cbd190829","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"b4423fba_0a5f7c34","in_reply_to":"e6706513_66a5c556","updated":"2021-11-30 16:30:22.000000000","message":"Done","commit_id":"5ebbdfc6f4db1bd484d0c335a9b212107d023716"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae1075ea11a990e1ccd1614eaa0e9d7e64d538b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"65312c36_359e3bbd","updated":"2021-11-30 16:54:04.000000000","message":"Fixed the typo in the release note and tweaked it slightly to indicate this is a feature, rather than a bugfix (the line is very blurry, but this is how we\u0027ve done it in the past so 🤷‍♂️). Hopefully it\u0027ll finally merge now 😄","commit_id":"8e362402dee07744668bcf7f6774af4fbe9a07e3"}],"openstackclient/compute/v2/server.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"df31973cc96713096bbe2689104aeef3af1b831a","unresolved":false,"context_lines":[{"line_number":1800,"context_line":"                if flavor:"},{"line_number":1801,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            elif \u0027original_name\u0027 in s.flavor:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_8f1fe8b5","line":1803,"updated":"2020-11-07 09:22:08.000000000","message":"I think we should base this on the API version. It should also replace the else block below, which seems to handle the same situation, just in a different way.\n\nThough I\u0027m also not really sure how nova behaves here, does it really only store the name a server was created with and not the id? Why does then the server-create API call for a flavorRef with an id?","commit_id":"2a698073cf471d207b4ebb403901a6138a0d850c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8931e406ee38c79acea691edbbefd055ef2c8105","unresolved":false,"context_lines":[{"line_number":1800,"context_line":"                if flavor:"},{"line_number":1801,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            elif \u0027original_name\u0027 in s.flavor:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_6f4a4cac","line":1803,"in_reply_to":"1f621f24_8f1fe8b5","updated":"2020-11-07 09:57:40.000000000","message":"\u003e I think we should base this on the API version. It should also\n \u003e replace the else block below, which seems to handle the same\n \u003e situation, just in a different way.\n\nI tend to agree. If it is easy to check the microversion (I don\u0027t know) here then from 2.47 the client can assume that original_name is always a key in the response due to the API contract. \n\nAnd yes, if we are strictly following microversions then the below else branch will never be hit.\n\n \u003e \n \u003e Though I\u0027m also not really sure how nova behaves here, does it\n \u003e really only store the name a server was created with and not the\n \u003e id? Why does then the server-create API call for a flavorRef with\n \u003e an id?\n\nNova only returns the name of the flavor but not the id of the flavor since 2.47. The API ref states:\n\n  flavor.id body string\n\t\n  The ID of the flavor. While people often make \n  this look like an int, this is really a string.\n\n  Available until version 2.46\n\n\nWhen the server is created nova copies the flavor information into the instance object. This way the lifetime of the flavor is disconnected from the lifetime of the server. The server can potentially outlive the flavor and nova still know what resources was requested originally for the server.\n\nNova does not store the flavor id as it has no use in nova as nova will never look up that flavor any more as the flavor information is copied into the instance.","commit_id":"2a698073cf471d207b4ebb403901a6138a0d850c"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"ea52eb407a5ce5b3dbd9c28c1dd0d502a53a63f5","unresolved":false,"context_lines":[{"line_number":1795,"context_line":"                # able to grep for boot-from-volume servers when using the CLI."},{"line_number":1796,"context_line":"                s.image_name \u003d IMAGE_STRING_FOR_BFV"},{"line_number":1797,"context_line":"                s.image_id \u003d IMAGE_STRING_FOR_BFV"},{"line_number":1798,"context_line":"            if compute_client.api_version \u003c\u003d api_versions.APIVersion(\u00272.46\u0027):"},{"line_number":1799,"context_line":"                flavor \u003d flavors.get(s.flavor[\u0027id\u0027])"},{"line_number":1800,"context_line":"                if flavor:"},{"line_number":1801,"context_line":"                    s.flavor_name \u003d flavor.name"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_e2e953b7","line":1798,"updated":"2020-11-07 14:53:50.000000000","message":"I would make this comparison \"\u003c 2.47\", except using one character less, it also shows the version that changed this behaviour.","commit_id":"a4912fed85da7aa16b55d71e3c8dafd1e7d925bb"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"48d15a48481e8ce759ca0813aea8d79ee9c17071","unresolved":false,"context_lines":[{"line_number":1801,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            else:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fffc6b78_9488f61f","line":1804,"updated":"2020-11-19 23:13:54.000000000","message":"Re: the unit test failures, you will need to update the FakeServer method [1] to populate a sample \u0027original_name\u0027 attribute for flavors so that it reflects reality for \u003e\u003d 2.47 [2].\n\nYou will want to add something like this in FakeServer. create_one_server:\n\n version \u003d self.app.client_manager.compute.api_version\n if version \u003e\u003d api_versions.APIVersion(\u00272.47\u0027):\n      server_info[\u0027flavor\u0027][\u0027original_name\u0027] \u003d \u0027flavor-name-\u0027 + uuid.uuid4().hex\n\nOn the functional test front, it looks like we\u0027re already covered as some tests run with microversion \u003e\u003d 2.47 for example [3].\n\n[1] https://github.com/openstack/python-openstackclient/blob/8387b114e38f21922967ba982bb1a25289fdb3ab/openstackclient/tests/unit/compute/v2/fakes.py#L607-L609\n[2] https://docs.openstack.org/api-ref/compute/?expanded\u003dlist-servers-detailed-detail#list-servers\n[3] https://github.com/openstack/python-openstackclient/blob/8387b114e38f21922967ba982bb1a25289fdb3ab/openstackclient/tests/functional/compute/v2/test_server.py#L127","commit_id":"a4912fed85da7aa16b55d71e3c8dafd1e7d925bb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9b12ae7873559d3474a2ad4835db339fed1b7d1e","unresolved":false,"context_lines":[{"line_number":1801,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            else:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1deab560_f6f49b4a","line":1804,"in_reply_to":"12da0992_6faf8709","updated":"2020-12-07 17:59:58.000000000","message":"I tackled this by just splitting the test class in two - pre- and post-v2.47 - and modifying self.attrs. Hopefully that works for people","commit_id":"a4912fed85da7aa16b55d71e3c8dafd1e7d925bb"},{"author":{"_account_id":29307,"name":"Khomesh Thakre","email":"kthakre@redhat.com","username":"khomesh24"},"change_message_id":"792c1da0f767332ff7d8dd7e3c9e49fbc52e4feb","unresolved":false,"context_lines":[{"line_number":1801,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            else:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"aa479497_db95b863","line":1804,"in_reply_to":"6e54f723_690c92f3","updated":"2020-12-01 12:25:02.000000000","message":"Hey Melanie,\nAs per your suggestion i tried to add the if condition top check the api_version in FakeServer.create_one_server,\nbut i am not able to get the app.client_manager.compute.api_version.\n\nCan you point me to any doc or example to get the compute.api_version in FakeServer.","commit_id":"a4912fed85da7aa16b55d71e3c8dafd1e7d925bb"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"78195f808ccb8bfd722b11cfdba570c221023bf2","unresolved":false,"context_lines":[{"line_number":1801,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            else:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"12da0992_6faf8709","line":1804,"in_reply_to":"aa479497_db95b863","updated":"2020-12-03 05:50:23.000000000","message":"Hi Khomesh,\n\nI\u0027m sorry I did not dig into enough detail about it before. Looking at it again, I  see now that there is not actually a way you can add an attribute to FakeServer conditionally based on api_version.\n\nI looked around in the code and I\u0027m not yet sure what\u0027s the best way to handle this, so I am going to try some things out.","commit_id":"a4912fed85da7aa16b55d71e3c8dafd1e7d925bb"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"e7475e98a499e2ad8d8f9dbab242dfe546047deb","unresolved":false,"context_lines":[{"line_number":1801,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            else:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":2,"id":"6e54f723_690c92f3","line":1804,"in_reply_to":"fffc6b78_9488f61f","updated":"2020-11-30 18:27:29.000000000","message":"Hi Komesh,\n\nIf you have any questions, please post them here on the review since I expect we are in different time zones.","commit_id":"a4912fed85da7aa16b55d71e3c8dafd1e7d925bb"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"4f6a8e56a85b654b9deaa24952cc1bab6d22d703","unresolved":true,"context_lines":[{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            else:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        table \u003d (column_headers,"},{"line_number":1808,"context_line":"                 (utils.get_item_properties("}],"source_content_type":"text/x-python","patch_set":2,"id":"d8443445_3d905e73","line":1805,"range":{"start_line":1805,"start_character":16,"end_line":1805,"end_character":32},"updated":"2020-12-03 12:05:07.000000000","message":"since we may have the \u0027flavors\u0027 dict populated at lines 1760:1773 above, would it make sense at least to attempt a reverse lookup in this dict to get the flavor id?\n\nthe only downside would be that it may return misleading entries if e.g. a flavor was deleted and then re-created with the same name but different properties, but so would any automation that would try itself to resolve the id of the flavor from flavor_name, and I bet this is not that frequently occurring situation...\n\nWDYT?","commit_id":"a4912fed85da7aa16b55d71e3c8dafd1e7d925bb"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2580673e2a003bee3b57bcea6ba317c844913f3f","unresolved":true,"context_lines":[{"line_number":1802,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1803,"context_line":"            else:"},{"line_number":1804,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1805,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1806,"context_line":""},{"line_number":1807,"context_line":"        table \u003d (column_headers,"},{"line_number":1808,"context_line":"                 (utils.get_item_properties("}],"source_content_type":"text/x-python","patch_set":2,"id":"3e97f1fc_4d71b555","line":1805,"range":{"start_line":1805,"start_character":16,"end_line":1805,"end_character":32},"in_reply_to":"d8443445_3d905e73","updated":"2020-12-03 21:44:15.000000000","message":"MHO is it\u0027s better to omit the ID than to have cases where it is present but incorrect.","commit_id":"a4912fed85da7aa16b55d71e3c8dafd1e7d925bb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"41a157e9f6d71f3339705e3e0b63175d5e65d770","unresolved":true,"context_lines":[{"line_number":1829,"context_line":"            else:"},{"line_number":1830,"context_line":"                # TODO(mriedem): Fix this for microversion \u003e\u003d 2.47 where the"},{"line_number":1831,"context_line":"                # flavor is embedded in the server response without the id."},{"line_number":1832,"context_line":"                # We likely need to drop the Flavor ID column in that case if"},{"line_number":1833,"context_line":"                # --long is specified."},{"line_number":1834,"context_line":"                s.flavor_name \u003d \u0027\u0027"},{"line_number":1835,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1836,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"469589ed_4dc9ceb3","side":"PARENT","line":1833,"range":{"start_line":1832,"start_character":16,"end_line":1833,"end_character":38},"updated":"2020-12-09 07:13:28.000000000","message":"I wonder if this part would still need to be addressed. Is having an empty column in the output worse than dropping the column completely?","commit_id":"20769cd7b27d51da84a324a17922427eba5c6eac"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"55a61f968cb7a11d4e3d19bff2955a400b501569","unresolved":true,"context_lines":[{"line_number":1829,"context_line":"            else:"},{"line_number":1830,"context_line":"                # TODO(mriedem): Fix this for microversion \u003e\u003d 2.47 where the"},{"line_number":1831,"context_line":"                # flavor is embedded in the server response without the id."},{"line_number":1832,"context_line":"                # We likely need to drop the Flavor ID column in that case if"},{"line_number":1833,"context_line":"                # --long is specified."},{"line_number":1834,"context_line":"                s.flavor_name \u003d \u0027\u0027"},{"line_number":1835,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1836,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"39dedd89_567e0856","side":"PARENT","line":1833,"range":{"start_line":1832,"start_character":16,"end_line":1833,"end_character":38},"in_reply_to":"469589ed_4dc9ceb3","updated":"2021-01-05 03:22:02.000000000","message":"+1. At least we should leave TODO for Flavor ID column because it is not yet addressed.","commit_id":"20769cd7b27d51da84a324a17922427eba5c6eac"},{"author":{"_account_id":29307,"name":"Khomesh Thakre","email":"kthakre@redhat.com","username":"khomesh24"},"change_message_id":"ad520722f1fa9210ea9a6c74a4def07d212f9a34","unresolved":true,"context_lines":[{"line_number":1821,"context_line":"                # able to grep for boot-from-volume servers when using the CLI."},{"line_number":1822,"context_line":"                s.image_name \u003d IMAGE_STRING_FOR_BFV"},{"line_number":1823,"context_line":"                s.image_id \u003d IMAGE_STRING_FOR_BFV"},{"line_number":1824,"context_line":"            if compute_client.api_version \u003c api_versions.APIVersion(\u00272.47\u0027):"},{"line_number":1825,"context_line":"                flavor \u003d flavors.get(s.flavor[\u0027id\u0027])"},{"line_number":1826,"context_line":"                if flavor:"},{"line_number":1827,"context_line":"                    s.flavor_name \u003d flavor.name"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f66ca4c_4fc598e7","line":1824,"range":{"start_line":1824,"start_character":42,"end_line":1824,"end_character":75},"updated":"2020-12-09 03:23:02.000000000","message":"i have change the condition from \u003c\u003d 2.46 to \u003c 2.47","commit_id":"46eda42c12064a3a72abbee027a49357a6b20ed3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2326b24e95259f92ab6924e54624567b8ac4a7cd","unresolved":false,"context_lines":[{"line_number":1821,"context_line":"                # able to grep for boot-from-volume servers when using the CLI."},{"line_number":1822,"context_line":"                s.image_name \u003d IMAGE_STRING_FOR_BFV"},{"line_number":1823,"context_line":"                s.image_id \u003d IMAGE_STRING_FOR_BFV"},{"line_number":1824,"context_line":"            if compute_client.api_version \u003c api_versions.APIVersion(\u00272.47\u0027):"},{"line_number":1825,"context_line":"                flavor \u003d flavors.get(s.flavor[\u0027id\u0027])"},{"line_number":1826,"context_line":"                if flavor:"},{"line_number":1827,"context_line":"                    s.flavor_name \u003d flavor.name"}],"source_content_type":"text/x-python","patch_set":5,"id":"fedd0e8c_c8d1eba1","line":1824,"range":{"start_line":1824,"start_character":42,"end_line":1824,"end_character":75},"in_reply_to":"9f66ca4c_4fc598e7","updated":"2021-01-27 09:41:02.000000000","message":"Ack","commit_id":"46eda42c12064a3a72abbee027a49357a6b20ed3"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"41a157e9f6d71f3339705e3e0b63175d5e65d770","unresolved":true,"context_lines":[{"line_number":1827,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1828,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1829,"context_line":"            else:"},{"line_number":1830,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1831,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1832,"context_line":""},{"line_number":1833,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":5,"id":"cc16a153_139d2542","line":1830,"updated":"2020-12-09 07:13:28.000000000","message":"Or would even adding a new column like \"original_flavor_name\" be better than overloading the \"flavor_name\" column with two completely different contents?","commit_id":"46eda42c12064a3a72abbee027a49357a6b20ed3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"55a61f968cb7a11d4e3d19bff2955a400b501569","unresolved":true,"context_lines":[{"line_number":1827,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1828,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1829,"context_line":"            else:"},{"line_number":1830,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1831,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1832,"context_line":""},{"line_number":1833,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":5,"id":"f50f807d_48745c62","line":1830,"in_reply_to":"043a8efe_5b07fdad","updated":"2021-01-05 03:22:02.000000000","message":"We should keep that option to preserve the behavior with old API versions but maybe make it raise error if v2.47 or later is used.","commit_id":"46eda42c12064a3a72abbee027a49357a6b20ed3"},{"author":{"_account_id":29307,"name":"Khomesh Thakre","email":"kthakre@redhat.com","username":"khomesh24"},"change_message_id":"eec09e95d160c024096d73571a3d721658bd9b94","unresolved":true,"context_lines":[{"line_number":1827,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1828,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1829,"context_line":"            else:"},{"line_number":1830,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1831,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1832,"context_line":""},{"line_number":1833,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":5,"id":"043a8efe_5b07fdad","line":1830,"in_reply_to":"77d7368c_8459520c","updated":"2020-12-13 07:30:19.000000000","message":"do we need to drop the flavor ID from the \"--no-name-lookup\" options as well Or drop the entire no-name-lookup options.","commit_id":"46eda42c12064a3a72abbee027a49357a6b20ed3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e4e9a24be9fd3f099738ffc8f5e46a89e16a00e7","unresolved":true,"context_lines":[{"line_number":1827,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":1828,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":1829,"context_line":"            else:"},{"line_number":1830,"context_line":"                s.flavor_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":1831,"context_line":"                s.flavor_id \u003d \u0027\u0027"},{"line_number":1832,"context_line":""},{"line_number":1833,"context_line":"        table \u003d (column_headers,"}],"source_content_type":"text/x-python","patch_set":5,"id":"77d7368c_8459520c","line":1830,"in_reply_to":"cc16a153_139d2542","updated":"2020-12-09 13:45:22.000000000","message":"That\u0027s a fair point. Quite possibly. If we do this, we should definitely drop the Flavor ID column as you\u0027ve noted","commit_id":"46eda42c12064a3a72abbee027a49357a6b20ed3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2326b24e95259f92ab6924e54624567b8ac4a7cd","unresolved":true,"context_lines":[{"line_number":1977,"context_line":""},{"line_number":1978,"context_line":"            # convert back to tuple"},{"line_number":1979,"context_line":"            column_headers \u003d tuple(column_headers)"},{"line_number":1980,"context_line":"            columns \u003d tuple(columns)"},{"line_number":1981,"context_line":""},{"line_number":1982,"context_line":"        if parsed_args.marker:"},{"line_number":1983,"context_line":"            # Check if both \"--marker\" and \"--deleted\" are used."}],"source_content_type":"text/x-python","patch_set":8,"id":"7eae5b07_8b8c18ea","line":1980,"updated":"2021-01-27 09:41:02.000000000","message":"This is logically quite far from where we initially create the \u0027columns\u0027 and \u0027column_headers\u0027 variables. I wonder could we do so inline?\n\nAlso, I\u0027d rather we called the column \u0027Original Flavor Name\u0027 or similar, to distinguish it from the actual flavor since things could be different now.","commit_id":"840dbebdf628bf1e245952285732a8cf61c14e1d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"234f11dfec9df5425a8b998d8c67861af93dbe7f","unresolved":true,"context_lines":[{"line_number":1921,"context_line":"        # flavor name in the output"},{"line_number":1922,"context_line":"        if compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.47\u0027):"},{"line_number":1923,"context_line":"            columns +\u003d (\u0027flavor_original_name\u0027,)"},{"line_number":1924,"context_line":"            column_headers +\u003d (\u0027Original Flavor\u0027,)"},{"line_number":1925,"context_line":"        else:"},{"line_number":1926,"context_line":"            if parsed_args.long:"},{"line_number":1927,"context_line":"                columns +\u003d ("}],"source_content_type":"text/x-python","patch_set":9,"id":"a940519d_98743717","line":1924,"range":{"start_line":1924,"start_character":32,"end_line":1924,"end_character":47},"updated":"2021-03-17 23:02:11.000000000","message":"I think this should just be \"Flavor Name\" like it is for \u003c 2.47. Why change the name of the column?\n\nAh, comment on PS8: \"Also, I\u0027d rather we called the column \u0027Original Flavor Name\u0027 or similar, to distinguish it from the actual flavor since things could be different now.\"\n\nI don\u0027t really agree with this ^, it seems confusing IMHO to not just say it\u0027s the \"Flavor Name\". \"Original Flavor\" to me implies that this is the first flavor the instance was ever created with and if it\u0027s been resized since, this value isn\u0027t reflecting the current flavor when the instance flavor is in fact updated after a resize finishes.\n\nBesides that, I think since all of the flavor details are embedded in the instance anyway, we need not be as concerned about whether the flavor name still maps to a specific combo of vcpus/memory_mb/disk_gb/extra_specs because all of data is available independently on the instance.","commit_id":"f517a9af7a3c59a53fa4a8cb38ea87e4f39bfc53"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3ecf29ebb85cd755dbdb8a194432651d612aee43","unresolved":true,"context_lines":[{"line_number":1921,"context_line":"        # flavor name in the output"},{"line_number":1922,"context_line":"        if compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.47\u0027):"},{"line_number":1923,"context_line":"            columns +\u003d (\u0027flavor_original_name\u0027,)"},{"line_number":1924,"context_line":"            column_headers +\u003d (\u0027Original Flavor\u0027,)"},{"line_number":1925,"context_line":"        else:"},{"line_number":1926,"context_line":"            if parsed_args.long:"},{"line_number":1927,"context_line":"                columns +\u003d ("}],"source_content_type":"text/x-python","patch_set":9,"id":"ac1706d2_758c31d0","line":1924,"range":{"start_line":1924,"start_character":32,"end_line":1924,"end_character":47},"in_reply_to":"a940519d_98743717","updated":"2021-11-29 17:03:50.000000000","message":"FWIW, I agree with the fact we shouldn\u0027t change the name itself from what we had before.\n\nChanging the column title would also let the microversion bubbling up to the client, while we prefer to be conservative in case we don\u0027t need to change the behaviour.","commit_id":"f517a9af7a3c59a53fa4a8cb38ea87e4f39bfc53"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"12d85103b41431a1e661b3197c3dc9e2f4cd2510","unresolved":true,"context_lines":[{"line_number":1921,"context_line":"        # flavor name in the output"},{"line_number":1922,"context_line":"        if compute_client.api_version \u003e\u003d api_versions.APIVersion(\u00272.47\u0027):"},{"line_number":1923,"context_line":"            columns +\u003d (\u0027flavor_original_name\u0027,)"},{"line_number":1924,"context_line":"            column_headers +\u003d (\u0027Original Flavor\u0027,)"},{"line_number":1925,"context_line":"        else:"},{"line_number":1926,"context_line":"            if parsed_args.long:"},{"line_number":1927,"context_line":"                columns +\u003d ("}],"source_content_type":"text/x-python","patch_set":9,"id":"91fa8f06_0d6ebfbf","line":1924,"range":{"start_line":1924,"start_character":32,"end_line":1924,"end_character":47},"in_reply_to":"ac1706d2_758c31d0","updated":"2021-11-29 18:39:47.000000000","message":"I agree with Sylvain and Mel here - the embedded flavor information that we\u0027re displaying here is what\u0027s currently true for the instance. If we introduce the \"original\" wording in there, it could lead to confusion by, for example, implying that there\u0027s been a resize or something.\n\nI took the liberty of rebasing the patch to fix the merge conflicts, and addressing this feedback.","commit_id":"f517a9af7a3c59a53fa4a8cb38ea87e4f39bfc53"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"cb505a2ba563e9a091364ea5a8541b04c8d21e8b","unresolved":true,"context_lines":[{"line_number":2520,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":2521,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":2522,"context_line":"            else:"},{"line_number":2523,"context_line":"                s.flavor_original_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":2524,"context_line":""},{"line_number":2525,"context_line":"        table \u003d ("},{"line_number":2526,"context_line":"            column_headers,"}],"source_content_type":"text/x-python","patch_set":10,"id":"b98a684a_9b11a78f","line":2523,"range":{"start_line":2523,"start_character":51,"end_line":2523,"end_character":64},"updated":"2021-11-30 03:26:20.000000000","message":"Aside: I see in the API this is called original_name when it was added:\n\nhttps://review.opendev.org/c/openstack/nova/+/434514/16/nova/api/openstack/compute/views/servers.py#255\n\nbut TBH I don\u0027t understand why \"original_name\" was chosen rather than \"name\". I would guess the idea was that what\u0027s stored in the server represented the flavor\u0027s \"original\" name in the case that the flavor name was changed later. But, our API doesn\u0027t allow a flavor\u0027s name to be changed ... you can only update a flavor\u0027s \"description\", else you have to delete and recreate the flavor, which makes it a different flavor. So again the term \"original name\" is confusing, at least to me.","commit_id":"1c1078a6365384f544bd06dce8f78f2e9fdf98a9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"cb505a2ba563e9a091364ea5a8541b04c8d21e8b","unresolved":true,"context_lines":[{"line_number":2520,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":2521,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":2522,"context_line":"            else:"},{"line_number":2523,"context_line":"                s.flavor_original_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":2524,"context_line":""},{"line_number":2525,"context_line":"        table \u003d ("},{"line_number":2526,"context_line":"            column_headers,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ac48d97a_040a37fa","line":2523,"range":{"start_line":2523,"start_character":18,"end_line":2523,"end_character":38},"updated":"2021-11-30 03:26:20.000000000","message":"This needs to be s/flavor_original_name/flavor_name/ to match what\u0027s in the columns variable.","commit_id":"1c1078a6365384f544bd06dce8f78f2e9fdf98a9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"d95376d1d7fb1cfc0eb5f6efde5b78edafc63eb6","unresolved":false,"context_lines":[{"line_number":2520,"context_line":"                    s.flavor_name \u003d flavor.name"},{"line_number":2521,"context_line":"                s.flavor_id \u003d s.flavor[\u0027id\u0027]"},{"line_number":2522,"context_line":"            else:"},{"line_number":2523,"context_line":"                s.flavor_original_name \u003d s.flavor[\u0027original_name\u0027]"},{"line_number":2524,"context_line":""},{"line_number":2525,"context_line":"        table \u003d ("},{"line_number":2526,"context_line":"            column_headers,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ed7413c8_d1ecdbd1","line":2523,"range":{"start_line":2523,"start_character":18,"end_line":2523,"end_character":38},"in_reply_to":"ac48d97a_040a37fa","updated":"2021-11-30 14:36:11.000000000","message":"Done","commit_id":"1c1078a6365384f544bd06dce8f78f2e9fdf98a9"}],"openstackclient/tests/unit/compute/v2/test_server.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"55a61f968cb7a11d4e3d19bff2955a400b501569","unresolved":true,"context_lines":[{"line_number":2959,"context_line":"    )"},{"line_number":2960,"context_line":""},{"line_number":2961,"context_line":"    def setUp(self):"},{"line_number":2962,"context_line":"        super().setUp()"},{"line_number":2963,"context_line":""},{"line_number":2964,"context_line":"        self.search_opts \u003d {"},{"line_number":2965,"context_line":"            \u0027reservation_id\u0027: None,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5189ee25_f4b3b4bc","line":2962,"range":{"start_line":2962,"start_character":8,"end_line":2962,"end_character":23},"updated":"2021-01-05 03:22:02.000000000","message":"I understand this is supported in Python 3 but I tend to stick on the legacy usage to be consistent with existing implementations.","commit_id":"46eda42c12064a3a72abbee027a49357a6b20ed3"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"55a61f968cb7a11d4e3d19bff2955a400b501569","unresolved":true,"context_lines":[{"line_number":3392,"context_line":"            str(ex))"},{"line_number":3393,"context_line":""},{"line_number":3394,"context_line":""},{"line_number":3395,"context_line":"class TestServerListV247(_TestServerList):"},{"line_number":3396,"context_line":""},{"line_number":3397,"context_line":"    def setUp(self):"},{"line_number":3398,"context_line":"        super().setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"4cf3a781_c143c236","line":3395,"range":{"start_line":3395,"start_character":6,"end_line":3395,"end_character":24},"updated":"2021-01-05 03:22:02.000000000","message":"For me it looks a bit confusing to test v2.73 in this class. If you need this independent class, I think you should implement only that specific test in this class.","commit_id":"46eda42c12064a3a72abbee027a49357a6b20ed3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"cb505a2ba563e9a091364ea5a8541b04c8d21e8b","unresolved":true,"context_lines":[{"line_number":4685,"context_line":"        \u0027Status\u0027,"},{"line_number":4686,"context_line":"        \u0027Networks\u0027,"},{"line_number":4687,"context_line":"        \u0027Image\u0027,"},{"line_number":4688,"context_line":"        \u0027Original Flavor\u0027,"},{"line_number":4689,"context_line":"    )"},{"line_number":4690,"context_line":"    columns_long \u003d ("},{"line_number":4691,"context_line":"        \u0027ID\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"8f063400_8500a950","line":4688,"range":{"start_line":4688,"start_character":9,"end_line":4688,"end_character":24},"updated":"2021-11-30 03:26:20.000000000","message":"This needs to be s/Original Flavor/Flavor/","commit_id":"1c1078a6365384f544bd06dce8f78f2e9fdf98a9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"d95376d1d7fb1cfc0eb5f6efde5b78edafc63eb6","unresolved":false,"context_lines":[{"line_number":4685,"context_line":"        \u0027Status\u0027,"},{"line_number":4686,"context_line":"        \u0027Networks\u0027,"},{"line_number":4687,"context_line":"        \u0027Image\u0027,"},{"line_number":4688,"context_line":"        \u0027Original Flavor\u0027,"},{"line_number":4689,"context_line":"    )"},{"line_number":4690,"context_line":"    columns_long \u003d ("},{"line_number":4691,"context_line":"        \u0027ID\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"d5608efd_0113cd56","line":4688,"range":{"start_line":4688,"start_character":9,"end_line":4688,"end_character":24},"in_reply_to":"8f063400_8500a950","updated":"2021-11-30 14:36:11.000000000","message":"Done","commit_id":"1c1078a6365384f544bd06dce8f78f2e9fdf98a9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"cb505a2ba563e9a091364ea5a8541b04c8d21e8b","unresolved":true,"context_lines":[{"line_number":4696,"context_line":"        \u0027Networks\u0027,"},{"line_number":4697,"context_line":"        \u0027Image Name\u0027,"},{"line_number":4698,"context_line":"        \u0027Image ID\u0027,"},{"line_number":4699,"context_line":"        \u0027Original Flavor\u0027,"},{"line_number":4700,"context_line":"        \u0027Availability Zone\u0027,"},{"line_number":4701,"context_line":"        \u0027Host\u0027,"},{"line_number":4702,"context_line":"        \u0027Properties\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"42c9f094_8a5d143e","line":4699,"range":{"start_line":4699,"start_character":9,"end_line":4699,"end_character":24},"updated":"2021-11-30 03:26:20.000000000","message":"This needs to be s/Original Flavor/Flavor/","commit_id":"1c1078a6365384f544bd06dce8f78f2e9fdf98a9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"d95376d1d7fb1cfc0eb5f6efde5b78edafc63eb6","unresolved":false,"context_lines":[{"line_number":4696,"context_line":"        \u0027Networks\u0027,"},{"line_number":4697,"context_line":"        \u0027Image Name\u0027,"},{"line_number":4698,"context_line":"        \u0027Image ID\u0027,"},{"line_number":4699,"context_line":"        \u0027Original Flavor\u0027,"},{"line_number":4700,"context_line":"        \u0027Availability Zone\u0027,"},{"line_number":4701,"context_line":"        \u0027Host\u0027,"},{"line_number":4702,"context_line":"        \u0027Properties\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"f00f3acb_a87f0d72","line":4699,"range":{"start_line":4699,"start_character":9,"end_line":4699,"end_character":24},"in_reply_to":"42c9f094_8a5d143e","updated":"2021-11-30 14:36:11.000000000","message":"Done","commit_id":"1c1078a6365384f544bd06dce8f78f2e9fdf98a9"}],"releasenotes/notes/fix-flavor-in-server-list-microversion-2.47-af200e9bb4747e2d.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"02bdab3360b28db6a941564ac7def532d7dc347c","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes an issue with flavor display when using compute microversion 2.47 and"},{"line_number":5,"context_line":"    later. In 2.46 and below, only the flavor ID was showin in the server"},{"line_number":6,"context_line":"    detail response. Starting in 2.47 and up, flavor information became"},{"line_number":7,"context_line":"    embedded in the server response. Only the legacy behavior was previously"},{"line_number":8,"context_line":"    supported, leaving the flavor information blank when using 2.47 and up."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"08422a9f_a1e1974d","line":5,"range":{"start_line":5,"start_character":53,"end_line":5,"end_character":59},"updated":"2021-11-30 16:50:18.000000000","message":"showing","commit_id":"314df77bc452ccf5dd88714418d41a13279bc228"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8daf58c9001c188f286736833fa844cd627b3528","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes an issue with flavor display when using compute microversion 2.47 and"},{"line_number":5,"context_line":"    later. In 2.46 and below, only the flavor ID was showin in the server"},{"line_number":6,"context_line":"    detail response. Starting in 2.47 and up, flavor information became"},{"line_number":7,"context_line":"    embedded in the server response. Only the legacy behavior was previously"},{"line_number":8,"context_line":"    supported, leaving the flavor information blank when using 2.47 and up."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"3c8b83bd_2f0ed2e8","line":5,"range":{"start_line":5,"start_character":53,"end_line":5,"end_character":59},"in_reply_to":"08422a9f_a1e1974d","updated":"2021-11-30 16:54:30.000000000","message":"or shown, rather","commit_id":"314df77bc452ccf5dd88714418d41a13279bc228"}]}
