)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"776baf62a7f7b3a49f3d73ff37b34b98604d7015","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"A follow-up patch of 19ef56cf00a78871e0d30a160b07f280488ddd0c"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add a missing unit test to create node with tags"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I83e7db6a8da014962454e2b1248fe061985d98d8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9abb7d3a_c361e406","line":9,"updated":"2016-06-01 14:46:24.000000000","message":"If you happen to create another patch set, please make this line a commit summary and move the previous commit link to the commit body.","commit_id":"925c76284d57b713c22271feacf5b21166e6a997"}],"ironic/tests/unit/db/test_nodes.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"776baf62a7f7b3a49f3d73ff37b34b98604d7015","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        node \u003d utils.create_test_node(tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        self.assertTrue(mock_log.called)"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_node_already_exists(self):"},{"line_number":45,"context_line":"        utils.create_test_node()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_a35ca04b","line":42,"updated":"2016-06-01 14:46:24.000000000","message":"Sorry, I don\u0027t quite get this test, maybe the commit message needs more background.. We\u0027re creating a node with tags, why do we end up with empty tags list?","commit_id":"925c76284d57b713c22271feacf5b21166e6a997"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"287032eb1df5fbfd83edcc43e58cf1667994404e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        node \u003d utils.create_test_node(tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        self.assertTrue(mock_log.called)"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_node_already_exists(self):"},{"line_number":45,"context_line":"        utils.create_test_node()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_9fb8ad2b","line":42,"in_reply_to":"9abb7d3a_a35ca04b","updated":"2016-06-02 02:11:42.000000000","message":"That\u0027s the point to add this test. Currently, creating node with tags was not supported even the tags are passed.\nhttps://github.com/openstack/ironic/blob/master/ironic/db/sqlalchemy/api.py#L321-L322","commit_id":"925c76284d57b713c22271feacf5b21166e6a997"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"7bb990e8cf97d0de72bfe7d2a4f0f9fe722dc30c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        node \u003d utils.create_test_node(tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        self.assertTrue(mock_log.called)"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_node_already_exists(self):"},{"line_number":45,"context_line":"        utils.create_test_node()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_cff6fdf8","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":38},"updated":"2016-06-02 07:40:39.000000000","message":"maybe add comment to code, expected result - empty list is  not obvious.","commit_id":"fde7a3a76d17071b0e7e8b67f578ac69acff7d9e"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"abf9a7be6ddc5b8a136895a7c7bd9f0c04330c7f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        node \u003d utils.create_test_node(tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        self.assertTrue(mock_log.called)"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_node_already_exists(self):"},{"line_number":45,"context_line":"        utils.create_test_node()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_ec8dc22b","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":38},"in_reply_to":"9abb7d3a_781cf0c1","updated":"2016-06-02 11:11:47.000000000","message":"We ignore tags with warning logging in the current code.","commit_id":"fde7a3a76d17071b0e7e8b67f578ac69acff7d9e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"da970b05f7cce9b0d4266a6edc9255b3bae7de70","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        node \u003d utils.create_test_node(tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        self.assertTrue(mock_log.called)"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_node_already_exists(self):"},{"line_number":45,"context_line":"        utils.create_test_node()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_781cf0c1","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":38},"in_reply_to":"9abb7d3a_cff6fdf8","updated":"2016-06-02 10:07:02.000000000","message":"Wait a second, we should not silently ignore requests.. if we don\u0027t support tags we should not accept tags argument or raise an exception.","commit_id":"fde7a3a76d17071b0e7e8b67f578ac69acff7d9e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"e4670847d824c1878fee53b661963a4b268bbdf3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        node \u003d utils.create_test_node(tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        self.assertTrue(mock_log.called)"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_node_already_exists(self):"},{"line_number":45,"context_line":"        utils.create_test_node()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_a7a91527","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":38},"in_reply_to":"9abb7d3a_ec8dc22b","updated":"2016-06-02 11:37:20.000000000","message":"This is not a good solution IMO.","commit_id":"fde7a3a76d17071b0e7e8b67f578ac69acff7d9e"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b5327ebf0169e3bd9c49bb4a5a61f511447c2558","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":38,"context_line":"                          utils.create_test_node,"},{"line_number":39,"context_line":"                          tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        node \u003d utils.create_test_node()"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_d80ce944","line":40,"updated":"2016-06-06 08:47:55.000000000","message":"Lines 40-43 is not related to this test (\"test_create_node_with_tags\") and should be moved to separate test or removed.","commit_id":"d85fc48ef4d5171c4cc7bed1ef379c2e002cee23"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"50ae475dc2f3b57ab47a16ca389573ce808579d2","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":38,"context_line":"                          utils.create_test_node,"},{"line_number":39,"context_line":"                          tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        node \u003d utils.create_test_node()"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_1c4e5696","line":40,"in_reply_to":"3aaa91ec_d5c26ae8","updated":"2016-06-28 06:04:49.000000000","message":"Done","commit_id":"d85fc48ef4d5171c4cc7bed1ef379c2e002cee23"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"17899824be4e406a36e32c1f00c16226faf5e05e","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":38,"context_line":"                          utils.create_test_node,"},{"line_number":39,"context_line":"                          tags\u003d[\u0027tag1\u0027, \u0027tag2\u0027])"},{"line_number":40,"context_line":"        node \u003d utils.create_test_node()"},{"line_number":41,"context_line":"        res \u003d self.dbapi.get_node_by_id(node.id)"},{"line_number":42,"context_line":"        self.assertEqual([], res.tags)"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_d5c26ae8","line":40,"in_reply_to":"7aa08908_d80ce944","updated":"2016-06-24 06:38:52.000000000","message":"++","commit_id":"d85fc48ef4d5171c4cc7bed1ef379c2e002cee23"}]}
