)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521368e3f536ec7f3af5ae6cc0c33c242a5252f0","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Switch compute service list to sdk."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"On implementing this command, the field \u0027Zone\u0027 doesn\u0027t seem to return any value from the SDK. Not sure if this command can be moved forward without that in place."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Switch the compute service list command from novaclient to SDK."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1958a495_0d635d56","line":9,"updated":"2021-11-15 13:26:51.000000000","message":"The field is called \u0027availability_zone\u0027 in openstacksdk [1]. Always look at the source code if you\u0027re confused about whether something is present or not 😊\n\n[1] https://github.com/openstack/openstacksdk/blob/0948ee52dd/openstack/compute/v2/service.py#L34-L35","commit_id":"9a039152fe2143b64e19ce87589c4d39044130e1"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521368e3f536ec7f3af5ae6cc0c33c242a5252f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"18614181_d314a141","updated":"2021-11-15 13:26:51.000000000","message":"This looks pretty good. You\u0027re missing a release note and need to address the availability zone issue but otherwise this is good to go. I\u0027d suggest rebasing this onto master directly and removing the dependency on the previous change, in order to avoid this patch being blocked by that one. You can use \u0027git rebase -i\u0027 for this (use \u0027git rebase -i master\u0027 and then delete the line corresponding to the previous change and save the file)","commit_id":"9a039152fe2143b64e19ce87589c4d39044130e1"}],"openstackclient/compute/v2/service.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521368e3f536ec7f3af5ae6cc0c33c242a5252f0","unresolved":true,"context_lines":[{"line_number":121,"context_line":"        query \u003d {}"},{"line_number":122,"context_line":"        query[\u0027host\u0027] \u003d parsed_args.host"},{"line_number":123,"context_line":"        query[\u0027service\u0027] \u003d parsed_args.service"},{"line_number":124,"context_line":"        data \u003d compute_client.services(**query)"},{"line_number":125,"context_line":"        return (columns,"},{"line_number":126,"context_line":"                (utils.get_item_properties("},{"line_number":127,"context_line":"                    s, columns,"}],"source_content_type":"text/x-python","patch_set":1,"id":"41ae89e5_f25660d2","line":124,"updated":"2021-11-15 13:26:51.000000000","message":"nit:\n\n  data \u003d compute_client.services(\n      host\u003dparsed_args.host, service\u003dparsed_args.service,\n  )\n\ndoes the same thing and is arguably less confusing","commit_id":"9a039152fe2143b64e19ce87589c4d39044130e1"}],"openstackclient/tests/unit/compute/v2/test_service.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521368e3f536ec7f3af5ae6cc0c33c242a5252f0","unresolved":true,"context_lines":[{"line_number":140,"context_line":"    def setUp(self):"},{"line_number":141,"context_line":"        super(TestServiceList, self).setUp()"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        #self.service_mock.list.return_value \u003d [self.service]"},{"line_number":144,"context_line":"        self.sdk_client.services.return_value \u003d [self.service]"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        # Get the command object to test"}],"source_content_type":"text/x-python","patch_set":1,"id":"cf4466a6_1f7bfb46","line":143,"in_reply_to":"81905e83_49740806","updated":"2021-11-15 13:26:51.000000000","message":"Just delete this line. It\u0027s in git history if needed","commit_id":"9a039152fe2143b64e19ce87589c4d39044130e1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521368e3f536ec7f3af5ae6cc0c33c242a5252f0","unresolved":true,"context_lines":[{"line_number":146,"context_line":"        # Get the command object to test"},{"line_number":147,"context_line":"        self.cmd \u003d service.ListService(self.app, None)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    @mock.patch.object(sdk_utils, \u0027supports_microversion\u0027)"},{"line_number":150,"context_line":"    def test_service_list(self, sm_mock):"},{"line_number":151,"context_line":"        arglist \u003d ["},{"line_number":152,"context_line":"            \u0027--host\u0027, self.service.host,"}],"source_content_type":"text/x-python","patch_set":1,"id":"cc12dbad_01f804e2","line":149,"updated":"2021-11-15 13:26:51.000000000","message":"Is this needed? You\u0027re not setting it. I suspect not","commit_id":"9a039152fe2143b64e19ce87589c4d39044130e1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521368e3f536ec7f3af5ae6cc0c33c242a5252f0","unresolved":true,"context_lines":[{"line_number":166,"context_line":"        query \u003d {}"},{"line_number":167,"context_line":"        query[\u0027host\u0027] \u003d self.service.host"},{"line_number":168,"context_line":"        query[\u0027service\u0027] \u003d self.service.binary"},{"line_number":169,"context_line":"        self.sdk_client.services.assert_called_with(**query)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        self.assertEqual(self.columns, columns)"},{"line_number":172,"context_line":"        self.assertEqual(self.data, list(data))"}],"source_content_type":"text/x-python","patch_set":1,"id":"ad5d3cd4_f174cc51","line":169,"updated":"2021-11-15 13:26:51.000000000","message":"nit:\n\n  self.sdk_client.services.assert_called_with(\n      host\u003dself.service.host, service\u003dself.service.host,\n  )","commit_id":"9a039152fe2143b64e19ce87589c4d39044130e1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521368e3f536ec7f3af5ae6cc0c33c242a5252f0","unresolved":true,"context_lines":[{"line_number":184,"context_line":"            (\u0027long\u0027, True)"},{"line_number":185,"context_line":"        ]"},{"line_number":186,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":187,"context_line":"        sm_mock.return_value \u003d False"},{"line_number":188,"context_line":"        # In base command class Lister in cliff, abstract method take_action()"},{"line_number":189,"context_line":"        # returns a tuple containing the column names and an iterable"},{"line_number":190,"context_line":"        # containing the data to be listed."}],"source_content_type":"text/x-python","patch_set":1,"id":"d1e91275_bdf5db12","line":187,"updated":"2021-11-15 13:26:51.000000000","message":"You should typically do this early in the test, e.g. as the first call","commit_id":"9a039152fe2143b64e19ce87589c4d39044130e1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"521368e3f536ec7f3af5ae6cc0c33c242a5252f0","unresolved":true,"context_lines":[{"line_number":211,"context_line":"            (\u0027long\u0027, True)"},{"line_number":212,"context_line":"        ]"},{"line_number":213,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":214,"context_line":"        sm_mock.return_value \u003d True"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        # In base command class Lister in cliff, abstract method take_action()"},{"line_number":217,"context_line":"        # returns a tuple containing the column names and an iterable"}],"source_content_type":"text/x-python","patch_set":1,"id":"85141da1_32bfa3f1","line":214,"updated":"2021-11-15 13:26:51.000000000","message":"Ditto","commit_id":"9a039152fe2143b64e19ce87589c4d39044130e1"}]}
