)]}'
{"tempest/api/baremetal/admin/test_nodes.py":[{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7649fe1eca32eba832bccf4d749215e02b6eb4df","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        next_marker \u003d body[\u0027nodes\u0027][-1][\u0027uuid\u0027]"},{"line_number":83,"context_line":"        self.assertIn(next_marker, body[\u0027next\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_list_nodes_details(self):"},{"line_number":86,"context_line":"        params \u003d {\u0027cpu_arch\u0027: \u0027x86_64\u0027,"},{"line_number":87,"context_line":"                  \u0027cpu_num\u0027: \u002712\u0027,"},{"line_number":88,"context_line":"                  \u0027storage\u0027: \u002710240\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_dc90b650","line":85,"updated":"2015-02-03 09:31:10.000000000","message":"This should be decorated with @test.attr(type\u003d\u0027smoke\u0027)","commit_id":"04040791a37f842be4a4b48d018761bc3aa7f6a6"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7649fe1eca32eba832bccf4d749215e02b6eb4df","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        uuids \u003d ["},{"line_number":92,"context_line":"            self.create_node(self.chassis[\u0027uuid\u0027], **params)"},{"line_number":93,"context_line":"            [1][\u0027uuid\u0027] for i in range(0, 5)]"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        _, body \u003d self.client.list_nodes_detail()"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_d72171fd","line":93,"updated":"2015-02-03 09:31:10.000000000","message":"I\u0027d prefer this be constructed without list compreshension, just to preserve consistency with the other client calls, ie: _, body \u003d self.create_node(...)    In case we need to update client returns, it will be more obvious later.","commit_id":"04040791a37f842be4a4b48d018761bc3aa7f6a6"},{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"83044af51b374b01ce533409ed4285c3d49828ee","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        uuids \u003d ["},{"line_number":92,"context_line":"            self.create_node(self.chassis[\u0027uuid\u0027], **params)"},{"line_number":93,"context_line":"            [1][\u0027uuid\u0027] for i in range(0, 5)]"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        _, body \u003d self.client.list_nodes_detail()"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_e53851f1","line":93,"in_reply_to":"da86d52c_d72171fd","updated":"2015-02-04 03:19:14.000000000","message":"Hi, Adam. Thanks for your comments. Let me explain the list used here. \nThe list will collect the UUID of 5 nodes created by self.create_node(...), and then the UUID list will be used in the \u0027for\u0027 loop below. \nThis might be a little different with the other client calls, ie: _, body \u003d self.create_node(...), which pays more attention to the body.\nDo you agree with me? If I am wrong, please help to correct me. Thanks.","commit_id":"04040791a37f842be4a4b48d018761bc3aa7f6a6"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"7649fe1eca32eba832bccf4d749215e02b6eb4df","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            self.assertIn(\u0027power_state\u0027, node)"},{"line_number":113,"context_line":"            self.assertIn(\u0027provision_state\u0027, node)"},{"line_number":114,"context_line":"            self.assertIn(\u0027instance_info\u0027, node)"},{"line_number":115,"context_line":"            self.assertIn(\u0027ports\u0027, node)"},{"line_number":116,"context_line":"            self.validate_self_link(\u0027nodes\u0027, node[\u0027uuid\u0027],"},{"line_number":117,"context_line":"                                    node[\u0027links\u0027][0][\u0027href\u0027])"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_9c9d5e5c","line":115,"updated":"2015-02-03 09:31:10.000000000","message":"Minor nit: could keep this shorter by putting these keys in a list (ie, expected_keys) and use a nested for loop?","commit_id":"04040791a37f842be4a4b48d018761bc3aa7f6a6"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"92458d1ab9c05f385c6c15349a900b5f19a41fb1","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":79,"context_line":"    def test_list_nodes_with_limit(self):"},{"line_number":80,"context_line":"        _, body \u003d self.client.list_nodes(limit\u003d3)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        next_marker \u003d body[\u0027nodes\u0027][-1][\u0027uuid\u0027]"},{"line_number":83,"context_line":"        self.assertIn(next_marker, body[\u0027next\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_ff97ece9","line":80,"updated":"2015-02-04 14:35:09.000000000","message":"I\u0027d like to know the meaning of this magic number \"3\".\nWhere does this number come from?","commit_id":"111dd0ae2fabd4a992bc1cd25521093443bb8f03"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c0a58bf2e6d94fa30acb00ff9f1d3c651c7ae620","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":79,"context_line":"    def test_list_nodes_with_limit(self):"},{"line_number":80,"context_line":"        _, body \u003d self.client.list_nodes(limit\u003d3)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        next_marker \u003d body[\u0027nodes\u0027][-1][\u0027uuid\u0027]"},{"line_number":83,"context_line":"        self.assertIn(next_marker, body[\u0027next\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_a3c29182","line":80,"in_reply_to":"da86d52c_61d17e22","updated":"2015-02-05 13:59:54.000000000","message":"hmm, I think we should put some comment for this magic number. And this \u0027limit\u0027 parameter restricts the number of resources. So at least, I think it\u0027s better to assert the limitation in this test.","commit_id":"111dd0ae2fabd4a992bc1cd25521093443bb8f03"},{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"bd3e4a8a4ac74e58867ca31086c9230a370acd0a","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":79,"context_line":"    def test_list_nodes_with_limit(self):"},{"line_number":80,"context_line":"        _, body \u003d self.client.list_nodes(limit\u003d3)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        next_marker \u003d body[\u0027nodes\u0027][-1][\u0027uuid\u0027]"},{"line_number":83,"context_line":"        self.assertIn(next_marker, body[\u0027next\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_b6b73639","line":80,"in_reply_to":"da86d52c_a3c29182","updated":"2015-02-12 07:52:58.000000000","message":"Thanks for your great comment, Masayuki. I have uploaded a new patch with assert limitation in it.","commit_id":"111dd0ae2fabd4a992bc1cd25521093443bb8f03"},{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"1ea498a62f25090c9f05edb89d415e8246fcbebe","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":79,"context_line":"    def test_list_nodes_with_limit(self):"},{"line_number":80,"context_line":"        _, body \u003d self.client.list_nodes(limit\u003d3)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        next_marker \u003d body[\u0027nodes\u0027][-1][\u0027uuid\u0027]"},{"line_number":83,"context_line":"        self.assertIn(next_marker, body[\u0027next\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_61d17e22","line":80,"in_reply_to":"da86d52c_ff97ece9","updated":"2015-02-05 09:04:37.000000000","message":"Hi, Masayuki. Thanks for your comment. Before adding this test case, I referred to the test case \u0027test_list_with_limit\u0027 of ironic port list in \u0027test_ports\u0027 file, where used the limit number as 3. So here I use the same number for consistency.","commit_id":"111dd0ae2fabd4a992bc1cd25521093443bb8f03"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"3599cc97d4ab3513938f807b0af3da77c5f69a9d","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        uuids \u003d ["},{"line_number":99,"context_line":"            self.create_node(self.chassis[\u0027uuid\u0027], **params)"},{"line_number":100,"context_line":"            [1][\u0027uuid\u0027] for i in range(0, 5)]"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        _, body \u003d self.client.list_nodes_detail()"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_830f4d36","line":100,"updated":"2015-02-05 14:17:08.000000000","message":"I\u0027d still prefer this be constructed without comprehension in a for loop, to make it obvious we are doing a similar \u0027_, body \u003d self.create_node(...)\u0027 for anyone who might be touching this in the future","commit_id":"111dd0ae2fabd4a992bc1cd25521093443bb8f03"},{"author":{"_account_id":14810,"name":"Kan","email":"sofaopenstack@gmail.com","username":"Kan"},"change_message_id":"bd3e4a8a4ac74e58867ca31086c9230a370acd0a","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        uuids \u003d ["},{"line_number":99,"context_line":"            self.create_node(self.chassis[\u0027uuid\u0027], **params)"},{"line_number":100,"context_line":"            [1][\u0027uuid\u0027] for i in range(0, 5)]"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        _, body \u003d self.client.list_nodes_detail()"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_76df7e69","line":100,"in_reply_to":"da86d52c_830f4d36","updated":"2015-02-12 07:52:58.000000000","message":"Thanks, Adam. I have uploaded a new patch according to your comment. Please check and review.","commit_id":"111dd0ae2fabd4a992bc1cd25521093443bb8f03"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"f2954a45f7b760e456c4975b0938cbd4c2493638","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":79,"context_line":"    def test_list_nodes_with_limit(self):"},{"line_number":80,"context_line":"        for i in range(0, 3):"},{"line_number":81,"context_line":"            self.create_node(self.chassis[\u0027uuid\u0027])"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        _, body \u003d self.client.list_nodes(limit\u003d3)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_d51f7b6a","line":80,"updated":"2015-02-24 15:48:28.000000000","message":"hmm, it seems that this creates only 3 nodes. So I think we can\u0027t confirm the limitation of \"3\" in this code.\n\nI feel we should create 4 nodes at least, and we can check the limitation below.\n\nI\u0027d like to clarify what you want to test here. (Just call the ironic API or confirm the behavior)","commit_id":"cbabf8636cde2bcd46d131794c28e92dd040b282"}]}
