)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"e06d347b2239df25ea5c3cbf11f2d45e43a49f28","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This passes the configdrive URL to the agent, to be downloaded"},{"line_number":10,"context_line":"and written to a partition during deployment."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint expose-configdrive"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I3d142acb76a87d92a3f7b0be039c157cda4a7aa8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"baa201ad_e802cc0a","line":12,"updated":"2014-10-16 07:01:33.000000000","message":"I can not find such blueprint \"expose-configdrive\" with the url [1].\n\n[1]  https://blueprints.launchpad.net/openstack/?searchtext\u003dexpose-configdrive","commit_id":"c56295b89aef4091adc4ca5074c56dd55851f0ee"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"28764ec5372862c731d689f73cef4f7fc026d3d5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This passes the configdrive URL to the agent, to be downloaded"},{"line_number":10,"context_line":"and written to a partition during deployment."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Implements: blueprint expose-configdrive"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I3d142acb76a87d92a3f7b0be039c157cda4a7aa8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"baa201ad_f820d04a","line":12,"in_reply_to":"baa201ad_e802cc0a","updated":"2014-10-16 13:25:30.000000000","message":"Oops, it\u0027s now there. :)","commit_id":"c56295b89aef4091adc4ca5074c56dd55851f0ee"}],"ironic/drivers/modules/agent_client.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ce60fdbe690e6a88ac438dd4625d9f3801519ccc","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                   \u0027node\u0027: node.uuid})"},{"line_number":100,"context_line":"        params \u003d {\u0027image_info\u0027: image_info}"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # this should be a swift temp URL"},{"line_number":103,"context_line":"        configdrive \u003d node.instance_info.get(\u0027configdrive\u0027)"},{"line_number":104,"context_line":"        if configdrive is not None:"},{"line_number":105,"context_line":"            params[\u0027configdrive\u0027] \u003d configdrive"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_fa903598","line":102,"updated":"2014-11-20 10:39:00.000000000","message":"This could be any URL right?","commit_id":"c25431c483efb7bf570807e1d8685811908fe60b"}],"ironic/tests/drivers/test_agent_client.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"08cd703b460c8c417797c12d8aa7462485c47d8e","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class MockNode(object):"},{"line_number":35,"context_line":"    def __init__(self):"},{"line_number":36,"context_line":"        self.uuid \u003d \u0027uuid\u0027"},{"line_number":37,"context_line":"        self.driver_info \u003d {"},{"line_number":38,"context_line":"            \u0027agent_url\u0027: \"http://127.0.0.1:9999\""},{"line_number":39,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_adc82776","line":36,"updated":"2014-11-20 16:34:34.000000000","message":"nit: I\u0027d rather see a fake UUID, than this string, because it can also serve as an example of what the value might be. In this case, I suppose folks know what a UUID is.","commit_id":"520032981def9e3452855a81f2da6e5e67515213"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"958799a6c1e1c9281d2f1b778e88ca683fa8989d","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class MockNode(object):"},{"line_number":35,"context_line":"    def __init__(self):"},{"line_number":36,"context_line":"        self.uuid \u003d \u0027uuid\u0027"},{"line_number":37,"context_line":"        self.driver_info \u003d {"},{"line_number":38,"context_line":"            \u0027agent_url\u0027: \"http://127.0.0.1:9999\""},{"line_number":39,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_720ffbe1","line":36,"in_reply_to":"5a890539_adc82776","updated":"2014-11-20 17:58:44.000000000","message":"Yeah, I\u0027ll fix this if I push another patch, but otherwise I think it\u0027s fine.","commit_id":"520032981def9e3452855a81f2da6e5e67515213"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"08cd703b460c8c417797c12d8aa7462485c47d8e","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            self.assertFalse(self.client.deploy_is_done(self.node))"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @mock.patch(\u0027uuid.uuid4\u0027, mock.MagicMock(return_value\u003d\u0027uuid\u0027))"},{"line_number":122,"context_line":"    def test_prepare_image(self):"},{"line_number":123,"context_line":"        self.client._command \u003d mock.Mock()"},{"line_number":124,"context_line":"        image_info \u003d {\u0027image_id\u0027: \u0027image\u0027}"},{"line_number":125,"context_line":"        params \u003d {\u0027image_info\u0027: image_info}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_0db69bdc","line":122,"updated":"2014-11-20 16:34:34.000000000","message":"dumb question. What does it mean to have a mock.patch decorator, but not have the mock as an argument to the test?","commit_id":"520032981def9e3452855a81f2da6e5e67515213"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"958799a6c1e1c9281d2f1b778e88ca683fa8989d","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            self.assertFalse(self.client.deploy_is_done(self.node))"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @mock.patch(\u0027uuid.uuid4\u0027, mock.MagicMock(return_value\u003d\u0027uuid\u0027))"},{"line_number":122,"context_line":"    def test_prepare_image(self):"},{"line_number":123,"context_line":"        self.client._command \u003d mock.Mock()"},{"line_number":124,"context_line":"        image_info \u003d {\u0027image_id\u0027: \u0027image\u0027}"},{"line_number":125,"context_line":"        params \u003d {\u0027image_info\u0027: image_info}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a890539_12feb7ae","line":122,"in_reply_to":"5a890539_0db69bdc","updated":"2014-11-20 17:58:44.000000000","message":"It just means you can\u0027t access it in the test method. Since we set up the mock in the decorator, we don\u0027t need it below.","commit_id":"520032981def9e3452855a81f2da6e5e67515213"}]}
