)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"1. 400 for unknown param for query param and for request body."},{"line_number":13,"context_line":" - This does not need any changes in client side as you cannot"},{"line_number":14,"context_line":"pass the unknown parameters in APIs."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"2. Making server representation always consistent among all APIs"},{"line_number":17,"context_line":"   returning the complete server representation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7faddb67_c16fcc8f","line":14,"updated":"2019-08-19 17:06:07.000000000","message":"Probably not from the CLI but you could from the python API binding, but the CLI is what we care most about here.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"1. 400 for unknown param for query param and for request body."},{"line_number":13,"context_line":" - This does not need any changes in client side as you cannot"},{"line_number":14,"context_line":"pass the unknown parameters in APIs."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"2. Making server representation always consistent among all APIs"},{"line_number":17,"context_line":"   returning the complete server representation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7faddb67_9b14dc42","line":14,"in_reply_to":"7faddb67_c16fcc8f","updated":"2019-08-20 00:36:43.000000000","message":"Done","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"2. Making server representation always consistent among all APIs"},{"line_number":17,"context_line":"   returning the complete server representation."},{"line_number":18,"context_line":" - Test cases added."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"3. Change the default return value of ``swap`` field from the empty string"},{"line_number":21,"context_line":"   to 0 (integer) in flavor APIs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7faddb67_e10be8d1","line":18,"updated":"2019-08-19 17:06:07.000000000","message":"For rebuild specifically, correct? What was the reason for not implementing a test for \u0027nova update\u0027? I guess because it doesn\u0027t output the server from the response in the CLI.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"2. Making server representation always consistent among all APIs"},{"line_number":17,"context_line":"   returning the complete server representation."},{"line_number":18,"context_line":" - Test cases added."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"3. Change the default return value of ``swap`` field from the empty string"},{"line_number":21,"context_line":"   to 0 (integer) in flavor APIs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7faddb67_fb1e305d","line":18,"in_reply_to":"7faddb67_e10be8d1","updated":"2019-08-20 00:36:43.000000000","message":"yeah, I am not sure why CLI restrict the update response not to show but yes tests are not added for update for that reason.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"4. Return ``servers`` field always in the response of GET"},{"line_number":25,"context_line":"   hypervisors API even there are no servers on hypervisor"},{"line_number":26,"context_line":" - No changes needed as empty table is shown when no servers."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Nova side path: https://review.opendev.org/#/c/666889/"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7faddb67_e1a768bb","line":26,"updated":"2019-08-19 17:06:07.000000000","message":"I\u0027m assuming you mean because this handles pre-2.75 behavior when the \u0027servers\u0027 key is not in the response:\n\nhttps://github.com/openstack/python-novaclient/blob/e281368c9679b385ecfb05737e614a05a9bab291/novaclient/v2/shell.py#L3856\n\nand:\n\nhttps://github.com/openstack/python-novaclient/blob/e281368c9679b385ecfb05737e614a05a9bab291/novaclient/v2/shell.py#L3861\n\nhandles the 2.75+ case where hypervisor.servers is there but it\u0027s empty.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"4. Return ``servers`` field always in the response of GET"},{"line_number":25,"context_line":"   hypervisors API even there are no servers on hypervisor"},{"line_number":26,"context_line":" - No changes needed as empty table is shown when no servers."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Nova side path: https://review.opendev.org/#/c/666889/"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7faddb67_7b3240f4","line":26,"in_reply_to":"7faddb67_e1a768bb","updated":"2019-08-20 00:36:43.000000000","message":"yes","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"}],"novaclient/tests/functional/v2/test_flavor.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"673a62a76182420600761b1fabf93121684a37d9","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from novaclient.tests.functional import base"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class TestFlavorNovaClientV275(base.TenantTestBase):"},{"line_number":17,"context_line":"    \"\"\"Functional tests for flavors\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_37039044","line":14,"updated":"2019-08-19 00:30:51.000000000","message":"Should we add tests for microversion 2.74?","commit_id":"191bc149a0a3351876f746a39d7161179de7c6cc"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f2f27a5c2f39958f38993b552b553f13e645a778","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from novaclient.tests.functional import base"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class TestFlavorNovaClientV275(base.TenantTestBase):"},{"line_number":17,"context_line":"    \"\"\"Functional tests for flavors\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_e22c549a","line":14,"in_reply_to":"7faddb67_37039044","updated":"2019-08-19 01:39:37.000000000","message":"I thought functional tests is ok to capture the changed Microvision behaviour only and unit test is more doing top, bottom and changed microversion. \n\nBut I can add functional tests also for 2.74 if that is much required.","commit_id":"191bc149a0a3351876f746a39d7161179de7c6cc"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d1100ac8d064a5506953094b7ad207da6c433fd5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from novaclient.tests.functional import base"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class TestFlavorNovaClientV275(base.TenantTestBase):"},{"line_number":17,"context_line":"    \"\"\"Functional tests for flavors\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_8f41080d","line":14,"in_reply_to":"7faddb67_e22c549a","updated":"2019-08-19 08:22:55.000000000","message":"Done","commit_id":"191bc149a0a3351876f746a39d7161179de7c6cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    \"\"\"Functional tests for flavors\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    COMPUTE_API_VERSION \u003d \"2.74\""},{"line_number":20,"context_line":"    SWAP_DEFAULT \u003d \"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def test_create_flavor_default_swap_as_integrer(self):"},{"line_number":23,"context_line":"        flv_name \u003d self.name_generate()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_81bd54b2","line":20,"updated":"2019-08-19 17:06:07.000000000","message":"A comment might be nice here, e.g. \"Before 2.75 the default swap value is the empty string even if it\u0027s 0 in the database.\"","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    \"\"\"Functional tests for flavors\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    COMPUTE_API_VERSION \u003d \"2.74\""},{"line_number":20,"context_line":"    SWAP_DEFAULT \u003d \"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def test_create_flavor_default_swap_as_integrer(self):"},{"line_number":23,"context_line":"        flv_name \u003d self.name_generate()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_9b2dbc90","line":20,"in_reply_to":"7faddb67_81bd54b2","updated":"2019-08-20 00:36:43.000000000","message":"Done","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    COMPUTE_API_VERSION \u003d \"2.74\""},{"line_number":20,"context_line":"    SWAP_DEFAULT \u003d \"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def test_create_flavor_default_swap_as_integrer(self):"},{"line_number":23,"context_line":"        flv_name \u003d self.name_generate()"},{"line_number":24,"context_line":"        out \u003d self.nova(\u0027flavor-create %s auto 512 1 1\u0027 % flv_name)"},{"line_number":25,"context_line":"        self.addCleanup(self.nova, \u0027flavor-delete %s\u0027 % flv_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_01b2c4e5","line":22,"range":{"start_line":22,"start_character":43,"end_line":22,"end_character":51},"updated":"2019-08-19 17:06:07.000000000","message":"integer\n\nAlso, \"as_integer\" seems kind of confusing since these tests are not setting the swap value on the created flavor and are asserting it\u0027s an empty string. Maybe just remove the \"as_integer\" part?","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    COMPUTE_API_VERSION \u003d \"2.74\""},{"line_number":20,"context_line":"    SWAP_DEFAULT \u003d \"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def test_create_flavor_default_swap_as_integrer(self):"},{"line_number":23,"context_line":"        flv_name \u003d self.name_generate()"},{"line_number":24,"context_line":"        out \u003d self.nova(\u0027flavor-create %s auto 512 1 1\u0027 % flv_name)"},{"line_number":25,"context_line":"        self.addCleanup(self.nova, \u0027flavor-delete %s\u0027 % flv_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_5b51840d","line":22,"range":{"start_line":22,"start_character":43,"end_line":22,"end_character":51},"in_reply_to":"7faddb67_01b2c4e5","updated":"2019-08-20 00:36:43.000000000","message":"Done","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def test_create_flavor_default_swap_as_integrer(self):"},{"line_number":23,"context_line":"        flv_name \u003d self.name_generate()"},{"line_number":24,"context_line":"        out \u003d self.nova(\u0027flavor-create %s auto 512 1 1\u0027 % flv_name)"},{"line_number":25,"context_line":"        self.addCleanup(self.nova, \u0027flavor-delete %s\u0027 % flv_name)"},{"line_number":26,"context_line":"        self.assertEqual("},{"line_number":27,"context_line":"            self.SWAP_DEFAULT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_816f945e","line":24,"range":{"start_line":24,"start_character":39,"end_line":24,"end_character":54},"updated":"2019-08-19 17:06:07.000000000","message":"note to self: \u003cname\u003e \u003cid\u003e \u003cram\u003e \u003cdisk\u003e \u003cvcpus\u003e","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.assertEqual(self.SWAP_DEFAULT,"},{"line_number":45,"context_line":"                         self._get_value_from_the_table(out, \"swap\"))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_list_flavor_default_swap_as_integrer(self):"},{"line_number":48,"context_line":"        flv_name \u003d self.name_generate()"},{"line_number":49,"context_line":"        self.nova(\u0027flavor-create %s auto 512 1 1\u0027 % flv_name)"},{"line_number":50,"context_line":"        self.addCleanup(self.nova, \u0027flavor-delete %s\u0027 % flv_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_a1a3b09d","line":47,"range":{"start_line":47,"start_character":41,"end_line":47,"end_character":49},"updated":"2019-08-19 17:06:07.000000000","message":"integer","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self.assertEqual(self.SWAP_DEFAULT,"},{"line_number":45,"context_line":"                         self._get_value_from_the_table(out, \"swap\"))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_list_flavor_default_swap_as_integrer(self):"},{"line_number":48,"context_line":"        flv_name \u003d self.name_generate()"},{"line_number":49,"context_line":"        self.nova(\u0027flavor-create %s auto 512 1 1\u0027 % flv_name)"},{"line_number":50,"context_line":"        self.addCleanup(self.nova, \u0027flavor-delete %s\u0027 % flv_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_bb41983b","line":47,"range":{"start_line":47,"start_character":41,"end_line":47,"end_character":49},"in_reply_to":"7faddb67_a1a3b09d","updated":"2019-08-20 00:36:43.000000000","message":"Done","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                         self._get_value_from_the_table(out, \"swap\"))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_list_flavor_default_swap_as_integrer(self):"},{"line_number":48,"context_line":"        flv_name \u003d self.name_generate()"},{"line_number":49,"context_line":"        self.nova(\u0027flavor-create %s auto 512 1 1\u0027 % flv_name)"},{"line_number":50,"context_line":"        self.addCleanup(self.nova, \u0027flavor-delete %s\u0027 % flv_name)"},{"line_number":51,"context_line":"        out \u003d self.nova(\u0027flavor-list\u0027)"},{"line_number":52,"context_line":"        self.assertEqual("},{"line_number":53,"context_line":"            self.SWAP_DEFAULT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_e1e3e8d6","line":50,"range":{"start_line":48,"start_character":8,"end_line":50,"end_character":65},"updated":"2019-08-19 17:06:07.000000000","message":"nit: you could move this into a private helper method to avoid the copy/paste.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                         self._get_value_from_the_table(out, \"swap\"))"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def test_list_flavor_default_swap_as_integrer(self):"},{"line_number":48,"context_line":"        flv_name \u003d self.name_generate()"},{"line_number":49,"context_line":"        self.nova(\u0027flavor-create %s auto 512 1 1\u0027 % flv_name)"},{"line_number":50,"context_line":"        self.addCleanup(self.nova, \u0027flavor-delete %s\u0027 % flv_name)"},{"line_number":51,"context_line":"        out \u003d self.nova(\u0027flavor-list\u0027)"},{"line_number":52,"context_line":"        self.assertEqual("},{"line_number":53,"context_line":"            self.SWAP_DEFAULT,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_db3c94c0","line":50,"range":{"start_line":48,"start_character":8,"end_line":50,"end_character":65},"in_reply_to":"7faddb67_e1e3e8d6","updated":"2019-08-20 00:36:43.000000000","message":"Done","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertEqual("},{"line_number":53,"context_line":"            self.SWAP_DEFAULT,"},{"line_number":54,"context_line":"            self._get_column_value_from_single_row_table(out, \"Swap\"))"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class TestFlavorNovaClientV275(TestFlavorNovaClientV274):"},{"line_number":58,"context_line":"    \"\"\"Functional tests for flavors\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_2107c084","line":55,"updated":"2019-08-19 17:06:07.000000000","message":"How about a test that creates a flavor with an actual swap value of 1 and assert that you get 1 back for \u003c2.75 and 2.75+?","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertEqual("},{"line_number":53,"context_line":"            self.SWAP_DEFAULT,"},{"line_number":54,"context_line":"            self._get_column_value_from_single_row_table(out, \"Swap\"))"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class TestFlavorNovaClientV275(TestFlavorNovaClientV274):"},{"line_number":58,"context_line":"    \"\"\"Functional tests for flavors\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_7b47a04d","line":55,"in_reply_to":"7faddb67_2107c084","updated":"2019-08-20 00:36:43.000000000","message":"Done","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b72b95f9fb7f5d58a7e9c8349b507a5c5dbaf4d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    \"\"\"Functional tests for flavors\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    COMPUTE_API_VERSION \u003d \"2.74\""},{"line_number":20,"context_line":"    # NOTE(gmann): Till microversion 2.74, default value of \u0027swap\u0027 field is"},{"line_number":21,"context_line":"    # return as empty string."},{"line_number":22,"context_line":"    SWAP_DEFAULT \u003d \"\""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_752564c1","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":41},"updated":"2019-08-20 13:07:51.000000000","message":"This is wrong - until 2.75 the swap field default is the empty string. That\u0027s why I suggested just saying \"Before 2.75 the default....\".","commit_id":"caaf05d0634caba7adf32493f196b3819bd1ed35"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b72b95f9fb7f5d58a7e9c8349b507a5c5dbaf4d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    COMPUTE_API_VERSION \u003d \"2.74\""},{"line_number":20,"context_line":"    # NOTE(gmann): Till microversion 2.74, default value of \u0027swap\u0027 field is"},{"line_number":21,"context_line":"    # return as empty string."},{"line_number":22,"context_line":"    SWAP_DEFAULT \u003d \"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def _create_flavor(self, swap\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_352b6c95","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":12},"updated":"2019-08-20 13:07:51.000000000","message":"returned","commit_id":"caaf05d0634caba7adf32493f196b3819bd1ed35"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7b72b95f9fb7f5d58a7e9c8349b507a5c5dbaf4d","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    COMPUTE_API_VERSION \u003d \"2.75\""},{"line_number":70,"context_line":"    # NOTE(gmann): Since microversion 2.75, default value of \u0027swap\u0027 field is"},{"line_number":71,"context_line":"    # return as 0."},{"line_number":72,"context_line":"    SWAP_DEFAULT \u003d \u00270\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_f51ab47a","line":71,"range":{"start_line":71,"start_character":6,"end_line":71,"end_character":12},"updated":"2019-08-20 13:07:51.000000000","message":"returned","commit_id":"caaf05d0634caba7adf32493f196b3819bd1ed35"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"529b500be3057f55ed24e14de98deacc390c0b45","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from novaclient.tests.functional import base"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class TestFlavorNovaClientV274(base.TenantTestBase):"},{"line_number":17,"context_line":"    \"\"\"Functional tests for flavors\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    COMPUTE_API_VERSION \u003d \"2.74\""}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_1b730118","line":16,"range":{"start_line":16,"start_character":31,"end_line":16,"end_character":50},"updated":"2019-08-20 14:30:34.000000000","message":"nit:\nWhy is this class used? Why isn\u0027t base.ClientTestBase used?","commit_id":"0e873a2d5a69d559299da4c403a5c17cf8a70462"}],"novaclient/tests/functional/v2/test_servers.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"673a62a76182420600761b1fabf93121684a37d9","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        self.assertEqual("},{"line_number":344,"context_line":"            self.network.id,"},{"line_number":345,"context_line":"            self._get_value_from_the_table(output, \u0027net_id\u0027))"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"class TestServeRebuild(base.ClientTestBase):"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_97ea8471","line":346,"updated":"2019-08-19 00:30:51.000000000","message":"Tests for updating a server (PUT /servers/{server_id}) are missing.","commit_id":"191bc149a0a3351876f746a39d7161179de7c6cc"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f2f27a5c2f39958f38993b552b553f13e645a778","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        self.assertEqual("},{"line_number":344,"context_line":"            self.network.id,"},{"line_number":345,"context_line":"            self._get_value_from_the_table(output, \u0027net_id\u0027))"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"class TestServeRebuild(base.ClientTestBase):"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_02189073","line":346,"in_reply_to":"7faddb67_97ea8471","updated":"2019-08-19 01:39:37.000000000","message":"There is no change in PUT request from client side as nova update conmmand does not show any response.","commit_id":"191bc149a0a3351876f746a39d7161179de7c6cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":348,"context_line":"class TestServeRebuild(base.ClientTestBase):"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.74\u0027"},{"line_number":351,"context_line":"    GET_ONLY_FIELDS_v275 \u003d [\u0027OS-EXT-AZ:availability_zone\u0027, \u0027config_drive\u0027,"},{"line_number":352,"context_line":"                            \u0027OS-EXT-SRV-ATTR:host\u0027,"},{"line_number":353,"context_line":"                            \u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027,"},{"line_number":354,"context_line":"                            \u0027OS-EXT-SRV-ATTR:instance_name\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_e13768fd","line":351,"range":{"start_line":351,"start_character":4,"end_line":351,"end_character":24},"updated":"2019-08-19 17:06:07.000000000","message":"This seems kind of weird in a 2.74 test. Why not have something like a list of fields that we expect to see before 2.75, and then the TestServeRebuildV275 test expands that list with the additional fields that are shown after 2.75.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"21a19b506b51196ce4263cc4ca12ce2a40d31a20","unresolved":false,"context_lines":[{"line_number":348,"context_line":"class TestServeRebuild(base.ClientTestBase):"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.74\u0027"},{"line_number":351,"context_line":"    GET_ONLY_FIELDS_v275 \u003d [\u0027OS-EXT-AZ:availability_zone\u0027, \u0027config_drive\u0027,"},{"line_number":352,"context_line":"                            \u0027OS-EXT-SRV-ATTR:host\u0027,"},{"line_number":353,"context_line":"                            \u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027,"},{"line_number":354,"context_line":"                            \u0027OS-EXT-SRV-ATTR:instance_name\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_045ad2f0","line":351,"range":{"start_line":351,"start_character":60,"end_line":351,"end_character":72},"updated":"2019-08-19 17:21:36.000000000","message":"config_drive is missing from the API reference:\n\nhttps://docs.openstack.org/api-ref/compute/?expanded\u003drebuild-server-rebuild-action-detail#id70","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13baf362e5a645ec916262881b91304c68bd028b","unresolved":false,"context_lines":[{"line_number":348,"context_line":"class TestServeRebuild(base.ClientTestBase):"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.74\u0027"},{"line_number":351,"context_line":"    GET_ONLY_FIELDS_v275 \u003d [\u0027OS-EXT-AZ:availability_zone\u0027, \u0027config_drive\u0027,"},{"line_number":352,"context_line":"                            \u0027OS-EXT-SRV-ATTR:host\u0027,"},{"line_number":353,"context_line":"                            \u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027,"},{"line_number":354,"context_line":"                            \u0027OS-EXT-SRV-ATTR:instance_name\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_67a9487a","line":351,"range":{"start_line":351,"start_character":60,"end_line":351,"end_character":72},"in_reply_to":"7faddb67_045ad2f0","updated":"2019-08-19 18:16:09.000000000","message":"\u003e config_drive is missing from the API reference:\n \u003e \n \u003e https://docs.openstack.org/api-ref/compute/?expanded\u003drebuild-server-rebuild-action-detail#id70\n\nhttps://review.opendev.org/#/c/677267/","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":348,"context_line":"class TestServeRebuild(base.ClientTestBase):"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.74\u0027"},{"line_number":351,"context_line":"    GET_ONLY_FIELDS_v275 \u003d [\u0027OS-EXT-AZ:availability_zone\u0027, \u0027config_drive\u0027,"},{"line_number":352,"context_line":"                            \u0027OS-EXT-SRV-ATTR:host\u0027,"},{"line_number":353,"context_line":"                            \u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027,"},{"line_number":354,"context_line":"                            \u0027OS-EXT-SRV-ATTR:instance_name\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_3b77e8a2","line":351,"range":{"start_line":351,"start_character":60,"end_line":351,"end_character":72},"in_reply_to":"7faddb67_67a9487a","updated":"2019-08-20 00:36:43.000000000","message":"Thanks for fixing that.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":348,"context_line":"class TestServeRebuild(base.ClientTestBase):"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.74\u0027"},{"line_number":351,"context_line":"    GET_ONLY_FIELDS_v275 \u003d [\u0027OS-EXT-AZ:availability_zone\u0027, \u0027config_drive\u0027,"},{"line_number":352,"context_line":"                            \u0027OS-EXT-SRV-ATTR:host\u0027,"},{"line_number":353,"context_line":"                            \u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027,"},{"line_number":354,"context_line":"                            \u0027OS-EXT-SRV-ATTR:instance_name\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_7b6000d0","line":351,"range":{"start_line":351,"start_character":4,"end_line":351,"end_character":24},"in_reply_to":"7faddb67_e13768fd","updated":"2019-08-20 00:36:43.000000000","message":"Done","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31ef89d669a0ced66db98320306844f88e39160b","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def _assert_rebuild_fields(self, output):"},{"line_number":383,"context_line":"        for field in self.GET_ONLY_FIELDS_v275:"},{"line_number":384,"context_line":"            if field \u003d\u003d \u0027OS-EXT-SRV-ATTR:user_data\u0027:"},{"line_number":385,"context_line":"                self.assertNotIn(field, output)"},{"line_number":386,"context_line":"                field \u003d \u0027user_data\u0027"},{"line_number":387,"context_line":"            self.assertIn(field, output)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_c1090c31","line":386,"range":{"start_line":384,"start_character":12,"end_line":386,"end_character":35},"updated":"2019-08-19 17:06:07.000000000","message":"What\u0027s with this? Does the CLI drop the prefix or is this something different in the 2.75 microversion where the prefix isn\u0027t there in the rebuild response but is there in the GET /servers/{server_id} response, thus creating an incompatibility which was the point of the microversion.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"ab0298c9c93241d8d55ca437aac7d9b2464ea3d9","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def _assert_rebuild_fields(self, output):"},{"line_number":383,"context_line":"        for field in self.GET_ONLY_FIELDS_v275:"},{"line_number":384,"context_line":"            if field \u003d\u003d \u0027OS-EXT-SRV-ATTR:user_data\u0027:"},{"line_number":385,"context_line":"                self.assertNotIn(field, output)"},{"line_number":386,"context_line":"                field \u003d \u0027user_data\u0027"},{"line_number":387,"context_line":"            self.assertIn(field, output)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_9b5b7c20","line":386,"range":{"start_line":384,"start_character":12,"end_line":386,"end_character":35},"in_reply_to":"7faddb67_84dec267","updated":"2019-08-20 00:36:43.000000000","message":"Done","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b9388e1609611126909c66a250e340b143e6c82a","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def _assert_rebuild_fields(self, output):"},{"line_number":383,"context_line":"        for field in self.GET_ONLY_FIELDS_v275:"},{"line_number":384,"context_line":"            if field \u003d\u003d \u0027OS-EXT-SRV-ATTR:user_data\u0027:"},{"line_number":385,"context_line":"                self.assertNotIn(field, output)"},{"line_number":386,"context_line":"                field \u003d \u0027user_data\u0027"},{"line_number":387,"context_line":"            self.assertIn(field, output)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7faddb67_84dec267","line":386,"range":{"start_line":384,"start_character":12,"end_line":386,"end_character":35},"in_reply_to":"7faddb67_c1090c31","updated":"2019-08-19 17:14:50.000000000","message":"Oh I guess this is because 2.57 added user_data which was not using the prefix. A comment would be helpful, or if you just go with my suggestion above you\u0027d avoid this confusion.","commit_id":"d1bae7e415341aea03a32f3a3d447496eba567f1"}],"novaclient/tests/unit/v2/fakes.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ff29464e0f41cd6c723502f6a48c2d0bbf8cc545","unresolved":false,"context_lines":[{"line_number":959,"context_line":""},{"line_number":960,"context_line":"    def get_flavors_detail(self, **kw):"},{"line_number":961,"context_line":"        flavors \u003d {\u0027flavors\u0027: ["},{"line_number":962,"context_line":"            {\u0027id\u0027: 1, \u0027name\u0027: \u0027256 MiB Server\u0027, \u0027ram\u0027: 256, \u0027disk\u0027: 10,"},{"line_number":963,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 10,"},{"line_number":964,"context_line":"             \u0027os-flavor-access:is_public\u0027: True,"},{"line_number":965,"context_line":"             \u0027swap\u0027: \u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_86cff855","line":962,"updated":"2019-08-14 00:31:57.000000000","message":"\u0027vcpus\u0027 and \u0027rxtx_factor\u0027 should be added.","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e633bb1df303857bbd9e56fe2042c51f797cc5dd","unresolved":false,"context_lines":[{"line_number":959,"context_line":""},{"line_number":960,"context_line":"    def get_flavors_detail(self, **kw):"},{"line_number":961,"context_line":"        flavors \u003d {\u0027flavors\u0027: ["},{"line_number":962,"context_line":"            {\u0027id\u0027: 1, \u0027name\u0027: \u0027256 MiB Server\u0027, \u0027ram\u0027: 256, \u0027disk\u0027: 10,"},{"line_number":963,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 10,"},{"line_number":964,"context_line":"             \u0027os-flavor-access:is_public\u0027: True,"},{"line_number":965,"context_line":"             \u0027swap\u0027: \u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_c76e47ff","line":962,"in_reply_to":"7faddb67_86cff855","updated":"2019-08-14 10:32:54.000000000","message":"Done","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ff29464e0f41cd6c723502f6a48c2d0bbf8cc545","unresolved":false,"context_lines":[{"line_number":966,"context_line":"             \u0027links\u0027: {}},"},{"line_number":967,"context_line":"            {\u0027id\u0027: 2, \u0027name\u0027: \u0027512 MiB Server\u0027, \u0027ram\u0027: 512, \u0027disk\u0027: 20,"},{"line_number":968,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 20,"},{"line_number":969,"context_line":"             \u0027os-flavor-access:is_public\u0027: False,"},{"line_number":970,"context_line":"             \u0027links\u0027: {}},"},{"line_number":971,"context_line":"            {\u0027id\u0027: 4, \u0027name\u0027: \u00271024 MiB Server\u0027, \u0027ram\u0027: 1024, \u0027disk\u0027: 10,"},{"line_number":972,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_46d90020","line":969,"updated":"2019-08-14 00:31:57.000000000","message":"Why isn\u0027t \u0027swap\u0027 added here?\nIt is always included in the response.","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e633bb1df303857bbd9e56fe2042c51f797cc5dd","unresolved":false,"context_lines":[{"line_number":966,"context_line":"             \u0027links\u0027: {}},"},{"line_number":967,"context_line":"            {\u0027id\u0027: 2, \u0027name\u0027: \u0027512 MiB Server\u0027, \u0027ram\u0027: 512, \u0027disk\u0027: 20,"},{"line_number":968,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 20,"},{"line_number":969,"context_line":"             \u0027os-flavor-access:is_public\u0027: False,"},{"line_number":970,"context_line":"             \u0027links\u0027: {}},"},{"line_number":971,"context_line":"            {\u0027id\u0027: 4, \u0027name\u0027: \u00271024 MiB Server\u0027, \u0027ram\u0027: 1024, \u0027disk\u0027: 10,"},{"line_number":972,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_677513cc","line":969,"in_reply_to":"7faddb67_46d90020","updated":"2019-08-14 10:32:54.000000000","message":"Done","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ff29464e0f41cd6c723502f6a48c2d0bbf8cc545","unresolved":false,"context_lines":[{"line_number":970,"context_line":"             \u0027links\u0027: {}},"},{"line_number":971,"context_line":"            {\u0027id\u0027: 4, \u0027name\u0027: \u00271024 MiB Server\u0027, \u0027ram\u0027: 1024, \u0027disk\u0027: 10,"},{"line_number":972,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 10,"},{"line_number":973,"context_line":"             \u0027os-flavor-access:is_public\u0027: True,"},{"line_number":974,"context_line":"             \u0027links\u0027: {}},"},{"line_number":975,"context_line":"            {\u0027id\u0027: \u0027aa1\u0027, \u0027name\u0027: \u0027128 MiB Server\u0027, \u0027ram\u0027: 128, \u0027disk\u0027: 0,"},{"line_number":976,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_66d43cea","line":973,"updated":"2019-08-14 00:31:57.000000000","message":"ditto","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e633bb1df303857bbd9e56fe2042c51f797cc5dd","unresolved":false,"context_lines":[{"line_number":970,"context_line":"             \u0027links\u0027: {}},"},{"line_number":971,"context_line":"            {\u0027id\u0027: 4, \u0027name\u0027: \u00271024 MiB Server\u0027, \u0027ram\u0027: 1024, \u0027disk\u0027: 10,"},{"line_number":972,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 10,"},{"line_number":973,"context_line":"             \u0027os-flavor-access:is_public\u0027: True,"},{"line_number":974,"context_line":"             \u0027links\u0027: {}},"},{"line_number":975,"context_line":"            {\u0027id\u0027: \u0027aa1\u0027, \u0027name\u0027: \u0027128 MiB Server\u0027, \u0027ram\u0027: 128, \u0027disk\u0027: 0,"},{"line_number":976,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_87704fdc","line":973,"in_reply_to":"7faddb67_66d43cea","updated":"2019-08-14 10:32:54.000000000","message":"Done","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ff29464e0f41cd6c723502f6a48c2d0bbf8cc545","unresolved":false,"context_lines":[{"line_number":974,"context_line":"             \u0027links\u0027: {}},"},{"line_number":975,"context_line":"            {\u0027id\u0027: \u0027aa1\u0027, \u0027name\u0027: \u0027128 MiB Server\u0027, \u0027ram\u0027: 128, \u0027disk\u0027: 0,"},{"line_number":976,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 0,"},{"line_number":977,"context_line":"             \u0027os-flavor-access:is_public\u0027: True,"},{"line_number":978,"context_line":"             \u0027links\u0027: {}}"},{"line_number":979,"context_line":"        ]}"},{"line_number":980,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_0605487a","line":977,"updated":"2019-08-14 00:31:57.000000000","message":"ditto","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e633bb1df303857bbd9e56fe2042c51f797cc5dd","unresolved":false,"context_lines":[{"line_number":974,"context_line":"             \u0027links\u0027: {}},"},{"line_number":975,"context_line":"            {\u0027id\u0027: \u0027aa1\u0027, \u0027name\u0027: \u0027128 MiB Server\u0027, \u0027ram\u0027: 128, \u0027disk\u0027: 0,"},{"line_number":976,"context_line":"             \u0027OS-FLV-EXT-DATA:ephemeral\u0027: 0,"},{"line_number":977,"context_line":"             \u0027os-flavor-access:is_public\u0027: True,"},{"line_number":978,"context_line":"             \u0027links\u0027: {}}"},{"line_number":979,"context_line":"        ]}"},{"line_number":980,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_477a57ba","line":977,"in_reply_to":"7faddb67_0605487a","updated":"2019-08-14 10:32:54.000000000","message":"Done","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"}],"novaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ff29464e0f41cd6c723502f6a48c2d0bbf8cc545","unresolved":false,"context_lines":[{"line_number":1473,"context_line":"        self.assert_called_anytime(\u0027GET\u0027, \u0027/flavors/detail\u0027)"},{"line_number":1474,"context_line":"        self.assertNotIn(\u0027Description\u0027, out)"},{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"    def test_flavor_list_default_swap_as_integer(self):"},{"line_number":1477,"context_line":"        out, _ \u003d self.run_command(\u0027flavor-list\u0027, api_version\u003d\u00272.75\u0027)"},{"line_number":1478,"context_line":"        self.assert_called_anytime(\u0027GET\u0027, \u0027/flavors/detail\u0027)"},{"line_number":1479,"context_line":"        self.assertEqual(\u0027\u0027\u0027\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_464ee0c1","line":1476,"updated":"2019-08-14 00:31:57.000000000","message":"I am wondering that it is worth adding these output check tests...","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e633bb1df303857bbd9e56fe2042c51f797cc5dd","unresolved":false,"context_lines":[{"line_number":1473,"context_line":"        self.assert_called_anytime(\u0027GET\u0027, \u0027/flavors/detail\u0027)"},{"line_number":1474,"context_line":"        self.assertNotIn(\u0027Description\u0027, out)"},{"line_number":1475,"context_line":""},{"line_number":1476,"context_line":"    def test_flavor_list_default_swap_as_integer(self):"},{"line_number":1477,"context_line":"        out, _ \u003d self.run_command(\u0027flavor-list\u0027, api_version\u003d\u00272.75\u0027)"},{"line_number":1478,"context_line":"        self.assert_called_anytime(\u0027GET\u0027, \u0027/flavors/detail\u0027)"},{"line_number":1479,"context_line":"        self.assertEqual(\u0027\u0027\u0027\\"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_2a1b6273","line":1476,"in_reply_to":"7faddb67_464ee0c1","updated":"2019-08-14 10:32:54.000000000","message":"ok it\u0027s up to you guys. I can add functional tests instead if direct output verification is not so worthy in unit tests.","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ff29464e0f41cd6c723502f6a48c2d0bbf8cc545","unresolved":false,"context_lines":[{"line_number":1480,"context_line":"+------------------+------------------+------------+------+-----------+------+-------+-------------+-----------+------------------+"},{"line_number":1481,"context_line":"| ID               | Name             | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description      |"},{"line_number":1482,"context_line":"+------------------+------------------+------------+------+-----------+------+-------+-------------+-----------+------------------+"},{"line_number":1483,"context_line":"| 1                | 256 MiB Server   | 256        | 10   | 10        | 0    |       |             | True      | -                |"},{"line_number":1484,"context_line":"| 4                | 1024 MiB Server  | 1024       | 10   | 10        | 0    |       |             | True      | -                |"},{"line_number":1485,"context_line":"| aa1              | 128 MiB Server   | 128        | 0    | 0         | 0    |       |             | True      | -                |"},{"line_number":1486,"context_line":"| with-description | with-description | 256        | 10   | 10        | 0    |       |             | True      | test description |"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_262de4fc","line":1483,"range":{"start_line":1483,"start_character":80,"end_line":1483,"end_character":83},"updated":"2019-08-14 00:31:57.000000000","message":"It is strange that \u0027VCPUs\u0027 is blank.\n\nThe following is output of \u0027nova flavor-list\u0027 in my local environment.\n\n  stack@devstack-master:/opt/devstack$ nova flavor-list\n  +----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+\n  | ID | Name      | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description |\n  +----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+\n  | 1  | m1.tiny   | 512        | 1    | 0         |      | 1     | 1.0         | True      | -           |\n  | 2  | m1.small  | 2048       | 20   | 0         |      | 1     | 1.0         | True      | -           |\n  | 3  | m1.medium | 4096       | 40   | 0         |      | 2     | 1.0         | True      | -           |\n  | 4  | m1.large  | 8192       | 80   | 0         |      | 4     | 1.0         | True      | -           |\n  | 5  | m1.xlarge | 16384      | 160  | 0         |      | 8     | 1.0         | True      | -           |\n  | c1 | cirros256 | 256        | 1    | 0         |      | 1     | 1.0         | True      | -           |\n  | d1 | ds512M    | 512        | 5    | 0         |      | 1     | 1.0         | True      | -           |\n  | d2 | ds1G      | 1024       | 10   | 0         |      | 1     | 1.0         | True      | -           |\n  | d3 | ds2G      | 2048       | 10   | 0         |      | 2     | 1.0         | True      | -           |\n  | d4 | ds4G      | 4096       | 20   | 0         |      | 4     | 1.0         | True      | -           |\n  +----+-----------+------------+------+-----------+------+-------+-------------+-----------+-------------+\n\nThe \u0027vcpus\u0027 is required in creating a flavor.","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ff29464e0f41cd6c723502f6a48c2d0bbf8cc545","unresolved":false,"context_lines":[{"line_number":1480,"context_line":"+------------------+------------------+------------+------+-----------+------+-------+-------------+-----------+------------------+"},{"line_number":1481,"context_line":"| ID               | Name             | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description      |"},{"line_number":1482,"context_line":"+------------------+------------------+------------+------+-----------+------+-------+-------------+-----------+------------------+"},{"line_number":1483,"context_line":"| 1                | 256 MiB Server   | 256        | 10   | 10        | 0    |       |             | True      | -                |"},{"line_number":1484,"context_line":"| 4                | 1024 MiB Server  | 1024       | 10   | 10        | 0    |       |             | True      | -                |"},{"line_number":1485,"context_line":"| aa1              | 128 MiB Server   | 128        | 0    | 0         | 0    |       |             | True      | -                |"},{"line_number":1486,"context_line":"| with-description | with-description | 256        | 10   | 10        | 0    |       |             | True      | test description |"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_6670bc09","line":1483,"range":{"start_line":1483,"start_character":90,"end_line":1483,"end_character":95},"updated":"2019-08-14 00:31:57.000000000","message":"The default value of RTXT_Factor is 1.0. So it cannot be an empty string.\n\nhttps://github.com/openstack/nova/blob/0b290050b2f2e72c5555d3c969d4120d836298a9/nova/api/openstack/compute/flavor_manage.py#L68","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d7c51bb18a23a042b6ea3ffe6f8e655122ec67d3","unresolved":false,"context_lines":[{"line_number":1480,"context_line":"+------------------+------------------+------------+------+-----------+------+-------+-------------+-----------+------------------+"},{"line_number":1481,"context_line":"| ID               | Name             | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description      |"},{"line_number":1482,"context_line":"+------------------+------------------+------------+------+-----------+------+-------+-------------+-----------+------------------+"},{"line_number":1483,"context_line":"| 1                | 256 MiB Server   | 256        | 10   | 10        | 0    |       |             | True      | -                |"},{"line_number":1484,"context_line":"| 4                | 1024 MiB Server  | 1024       | 10   | 10        | 0    |       |             | True      | -                |"},{"line_number":1485,"context_line":"| aa1              | 128 MiB Server   | 128        | 0    | 0         | 0    |       |             | True      | -                |"},{"line_number":1486,"context_line":"| with-description | with-description | 256        | 10   | 10        | 0    |       |             | True      | test description |"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_cd696f25","line":1483,"range":{"start_line":1483,"start_character":90,"end_line":1483,"end_character":95},"in_reply_to":"7faddb67_4701f705","updated":"2019-08-15 14:39:13.000000000","message":"\u003e yeah it was missing in stub, now it will include.\n\nThis is why I asked about functional tests because the stubs could be wrong and then we\u0027re just having false positive tests against broken stubs. If we\u0027re going to test this microversion at all in novaclient I think it\u0027s really only worthwhile with functional tests.","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e633bb1df303857bbd9e56fe2042c51f797cc5dd","unresolved":false,"context_lines":[{"line_number":1480,"context_line":"+------------------+------------------+------------+------+-----------+------+-------+-------------+-----------+------------------+"},{"line_number":1481,"context_line":"| ID               | Name             | Memory_MiB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | Description      |"},{"line_number":1482,"context_line":"+------------------+------------------+------------+------+-----------+------+-------+-------------+-----------+------------------+"},{"line_number":1483,"context_line":"| 1                | 256 MiB Server   | 256        | 10   | 10        | 0    |       |             | True      | -                |"},{"line_number":1484,"context_line":"| 4                | 1024 MiB Server  | 1024       | 10   | 10        | 0    |       |             | True      | -                |"},{"line_number":1485,"context_line":"| aa1              | 128 MiB Server   | 128        | 0    | 0         | 0    |       |             | True      | -                |"},{"line_number":1486,"context_line":"| with-description | with-description | 256        | 10   | 10        | 0    |       |             | True      | test description |"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_4701f705","line":1483,"range":{"start_line":1483,"start_character":90,"end_line":1483,"end_character":95},"in_reply_to":"7faddb67_6670bc09","updated":"2019-08-14 10:32:54.000000000","message":"yeah it was missing in stub, now it will include.","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"16bf556ebcfe9ab24427eacf975d1a43e5c4ad2e","unresolved":false,"context_lines":[{"line_number":2180,"context_line":"        self.assertNotIn(\u0027server_groups\u0027, out)"},{"line_number":2181,"context_line":"        self.assertNotIn(\u0027a67359fb-d397-4697-88f1-f55e3ee7c499\u0027, out)"},{"line_number":2182,"context_line":""},{"line_number":2183,"context_line":"    def test_rebuild_response_has_show_server_all_attributes(self):"},{"line_number":2184,"context_line":"        out \u003d self.run_command(\u0027rebuild sample-server %s\u0027 % FAKE_UUID_1,"},{"line_number":2185,"context_line":"                               api_version\u003d\u00272.75\u0027)[0]"},{"line_number":2186,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234\u0027, pos\u003d1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_b80f932c","line":2183,"updated":"2019-08-15 14:52:20.000000000","message":"These don\u0027t seem particularly useful to me since they are just testing the stub. Can\u0027t we have a simple rebuild functional test that asserts fields which aren\u0027t shown before 2.75 are now shown with a rebuild response using 2.75?","commit_id":"4c6eb2b74913dd35192505d028f83d404080541a"}],"releasenotes/notes/microversion-v2_75-ea7fa3ba1396edea.yaml":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ff29464e0f41cd6c723502f6a48c2d0bbf8cc545","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7faddb67_e6b7ccf4","line":17,"updated":"2019-08-14 00:31:57.000000000","message":".. _microversion 2.75: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e633bb1df303857bbd9e56fe2042c51f797cc5dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7faddb67_0a2a267d","line":17,"in_reply_to":"7faddb67_e6b7ccf4","updated":"2019-08-14 10:32:54.000000000","message":"Done","commit_id":"61a58b057f69e005ff1b6d794640988306b8ea87"}]}
