)]}'
{"tempest/api/baremetal/base.py":[{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"5044d55e5d088dbbdfd544b26ce5c6ea747130ef","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import functools"},{"line_number":14,"context_line":"import urllib2"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest import clients"},{"line_number":17,"context_line":"from tempest.common.utils import data_utils"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F2GE%3D","line":14,"updated":"2014-02-10 13:28:09.000000000","message":"this one not needed","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"}],"tempest/api/baremetal/test_chassis.py":[{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"bbc64fffd700afd08ae885417869a75da0d457fd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        resp, body \u003d self.client.list_chassis()"},{"line_number":28,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        self.assertEquals(200, int(resp[\u0027status\u0027]))"},{"line_number":31,"context_line":"        for created_id in created_ids:"},{"line_number":32,"context_line":"            self.assertIn(created_id, loaded_ids)"},{"line_number":33,"context_line":"        # Verify self links."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F3KU%3D","line":30,"updated":"2014-02-10 11:12:16.000000000","message":"You can use here assertEquals(200, resp.status)).\nOther status verifying same.","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"5044d55e5d088dbbdfd544b26ce5c6ea747130ef","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        resp, body \u003d self.client.list_chassis()"},{"line_number":28,"context_line":"        loaded_ids \u003d [ch[\u0027uuid\u0027] for ch in body[\u0027chassis\u0027]]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        self.assertEquals(200, int(resp[\u0027status\u0027]))"},{"line_number":31,"context_line":"        for created_id in created_ids:"},{"line_number":32,"context_line":"            self.assertIn(created_id, loaded_ids)"},{"line_number":33,"context_line":"        # Verify self links."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F2FY%3D","line":30,"in_reply_to":"AAAAUX%2F%2F3KU%3D","updated":"2014-02-10 13:28:09.000000000","message":"Thanks, will change","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"bbc64fffd700afd08ae885417869a75da0d457fd","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        node1_id \u003d self.create_node(chassis_id)[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":96,"context_line":"        node2_id \u003d self.create_node(chassis_id)[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":97,"context_line":"        node3_id \u003d self.create_node(chassis_id)[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":98,"context_line":"        expected_node_ids \u003d [node1_id, node2_id, node3_id]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        resp, chassis \u003d self.client.show_chassis(chassis_id)"},{"line_number":101,"context_line":"        subresource_link \u003d chassis[\u0027nodes\u0027][0][\u0027href\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F3F0%3D","line":98,"updated":"2014-02-10 11:12:16.000000000","message":"Maybe here you can create nodes and collect node ids like you created chassis and collected chassis ids in test_list_chassis_details (lines 42-43).","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"5044d55e5d088dbbdfd544b26ce5c6ea747130ef","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        node1_id \u003d self.create_node(chassis_id)[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":96,"context_line":"        node2_id \u003d self.create_node(chassis_id)[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":97,"context_line":"        node3_id \u003d self.create_node(chassis_id)[\u0027node\u0027][\u0027uuid\u0027]"},{"line_number":98,"context_line":"        expected_node_ids \u003d [node1_id, node2_id, node3_id]"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        resp, chassis \u003d self.client.show_chassis(chassis_id)"},{"line_number":101,"context_line":"        subresource_link \u003d chassis[\u0027nodes\u0027][0][\u0027href\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F2E0%3D","line":98,"in_reply_to":"AAAAUX%2F%2F3F0%3D","updated":"2014-02-10 13:28:09.000000000","message":"Indeed, thanks","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"bbc64fffd700afd08ae885417869a75da0d457fd","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        ch \u003d self.create_chassis(description\u003ddescr)[\u0027chassis\u0027]"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self.assertEqual(descr, ch[\u0027description\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":132,"context_line":"    def test_create_chassis_specifying_uuid(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F3D8%3D","line":129,"updated":"2014-02-10 11:12:16.000000000","message":"Maybe you should check response status?","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"5044d55e5d088dbbdfd544b26ce5c6ea747130ef","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        ch \u003d self.create_chassis(description\u003ddescr)[\u0027chassis\u0027]"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self.assertEqual(descr, ch[\u0027description\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":132,"context_line":"    def test_create_chassis_specifying_uuid(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F2Eo%3D","line":129,"in_reply_to":"AAAAUX%2F%2F3D8%3D","updated":"2014-02-10 13:28:09.000000000","message":"Yep, would be good","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"}],"tempest/api/baremetal/test_chassis_negative.py":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b910463cbc75c919d3d23320174f241e1c0cee81","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":62,"context_line":"    def test_create_chassis_invalid_extra(self):"},{"line_number":63,"context_line":"        extra \u003d dict(foo1\u003d0.123)"},{"line_number":64,"context_line":"        self.assertRaises(exc.BadRequest,"},{"line_number":65,"context_line":"                          self.create_chassis,"},{"line_number":66,"context_line":"                          extra\u003dextra)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F%2FUU%3D","line":63,"updated":"2014-02-07 22:21:55.000000000","message":"what makes this an invalid value?\n\nPerhaps this would be better to test by sending a literal value or a list, instead of a dict with a decimal.","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"5044d55e5d088dbbdfd544b26ce5c6ea747130ef","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":62,"context_line":"    def test_create_chassis_invalid_extra(self):"},{"line_number":63,"context_line":"        extra \u003d dict(foo1\u003d0.123)"},{"line_number":64,"context_line":"        self.assertRaises(exc.BadRequest,"},{"line_number":65,"context_line":"                          self.create_chassis,"},{"line_number":66,"context_line":"                          extra\u003dextra)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F1%2F8%3D","line":63,"in_reply_to":"AAAAUX%2F%2F%2FUU%3D","updated":"2014-02-10 13:28:09.000000000","message":"This considered invalid because of \n\nhttps://github.com/openstack/ironic/blob/master/ironic/api/controllers/v1/chassis.py#L61\n\nOnly integers or strings are allowed.\n\nI agree, we might change that in future, I\u0027ll replace to list","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"d330d438e53ad83b06d9515e5f454f22afbde7cc","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        self.assertRaises(exc.BadRequest,"},{"line_number":118,"context_line":"                          self.client.update_chassis,"},{"line_number":119,"context_line":"                          chassis_id,"},{"line_number":120,"context_line":"                          patch)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":123,"context_line":"    def test_update_chassis_add_duplicated_extra_member(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F1yk%3D","line":120,"updated":"2014-02-10 13:42:36.000000000","message":"Also need to create\n\ntest_update_chassis_add_duplicate_property\n\nwhich should replace existing property value as per https://bugs.launchpad.net/ironic/+bug/1278441","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"d330d438e53ad83b06d9515e5f454f22afbde7cc","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        self.assertRaises(exc.BadRequest,"},{"line_number":131,"context_line":"                          self.client.update_chassis,"},{"line_number":132,"context_line":"                          chassis_id,"},{"line_number":133,"context_line":"                          patch)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":136,"context_line":"    def test_update_chassis_replace_uuid_not_allowed(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F1zY%3D","line":133,"updated":"2014-02-10 13:42:36.000000000","message":"This test is invalid, FYI https://bugs.launchpad.net/ironic/+bug/1278441\n\nThe value should be silently replaced","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"bbc64fffd700afd08ae885417869a75da0d457fd","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        self.assertRaises(exc.BadRequest,"},{"line_number":237,"context_line":"                          self.client.update_chassis,"},{"line_number":238,"context_line":"                          chassis[\u0027uuid\u0027], patch)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":241,"context_line":"    def test_update_chassis_mixed_ops_integrity_via_not_allowed_op(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F3Ak%3D","line":238,"updated":"2014-02-10 11:12:16.000000000","message":"+1","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b910463cbc75c919d3d23320174f241e1c0cee81","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        self.assertRaises(exc.BadRequest,"},{"line_number":237,"context_line":"                          self.client.update_chassis,"},{"line_number":238,"context_line":"                          chassis[\u0027uuid\u0027], patch)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":241,"context_line":"    def test_update_chassis_mixed_ops_integrity_via_not_allowed_op(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F%2FSo%3D","line":238,"updated":"2014-02-07 22:21:55.000000000","message":"should GET the resource and validate that none of the patch ops were applied, even those before the invalid op.","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"5044d55e5d088dbbdfd544b26ce5c6ea747130ef","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        self.assertRaises(exc.BadRequest,"},{"line_number":237,"context_line":"                          self.client.update_chassis,"},{"line_number":238,"context_line":"                          chassis[\u0027uuid\u0027], patch)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":241,"context_line":"    def test_update_chassis_mixed_ops_integrity_via_not_allowed_op(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F18I%3D","line":238,"in_reply_to":"AAAAUX%2F%2F3Ak%3D","updated":"2014-02-10 13:28:09.000000000","message":"Yep, forgot about this, will do","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b910463cbc75c919d3d23320174f241e1c0cee81","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                      value\u003d0.111),"},{"line_number":252,"context_line":"                 dict(path\u003d\"/extra/foo4\","},{"line_number":253,"context_line":"                      op\u003d\"add\","},{"line_number":254,"context_line":"                      value\u003d\"one more\")]"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        self.assertRaises(exc.BadRequest,"},{"line_number":257,"context_line":"                          self.client.update_chassis,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F%2FSk%3D","line":254,"updated":"2014-02-07 22:21:55.000000000","message":"ditto","commit_id":"1f866e990caf85eef129433dc40b397a96d64871"}]}
