)]}'
{"Dockerfile":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"528d5c3eec4ea9a5081bbbc1d135f411db42e2ea","unresolved":false,"context_lines":[{"line_number":24,"context_line":"RUN rm -rf /tmp/ironic-python-agent"},{"line_number":25,"context_line":"RUN rm -rf /var/lib/apt/lists/*"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"RUN apt-get -y purge perl gcc-4.6 gcc python2.7-dev git python3 \\"},{"line_number":28,"context_line":"                     python3-minimal python3.4 python3.4-minimal \u0026\u0026 \\"},{"line_number":29,"context_line":"    apt-get -y autoremove \u0026\u0026 \\"},{"line_number":30,"context_line":"    apt-get clean"}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"ba7be1f8_5d7da2e6","side":"PARENT","line":27,"updated":"2015-02-23 17:19:16.000000000","message":"Does tgt require perl on the system for runtime?","commit_id":"ee93744b9a22df2f500b77567587177f12fbbf9c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"38da29f973a533c6944587436967cf50b1848625","unresolved":false,"context_lines":[{"line_number":24,"context_line":"RUN rm -rf /tmp/ironic-python-agent"},{"line_number":25,"context_line":"RUN rm -rf /var/lib/apt/lists/*"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"RUN apt-get -y purge perl gcc-4.6 gcc python2.7-dev git python3 \\"},{"line_number":28,"context_line":"                     python3-minimal python3.4 python3.4-minimal \u0026\u0026 \\"},{"line_number":29,"context_line":"    apt-get -y autoremove \u0026\u0026 \\"},{"line_number":30,"context_line":"    apt-get clean"}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"ba7be1f8_735b7587","side":"PARENT","line":27,"in_reply_to":"ba7be1f8_5d7da2e6","updated":"2015-02-23 18:00:53.000000000","message":"I know it\u0027s sad, but yeah it does :(\n\ntgt depends on libconfig-general-perl[1], that depends on perl[2]\n\n [1] http://packages.ubuntu.com/trusty/tgt\n [2] http://packages.ubuntu.com/trusty/libconfig-general-perl","commit_id":"ee93744b9a22df2f500b77567587177f12fbbf9c"}],"ironic_python_agent/errors.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90dd629a9b1982f95445346fd28121b6977d77a0","unresolved":false,"context_lines":[{"line_number":287,"context_line":"class ISCSIError(RESTError):"},{"line_number":288,"context_line":"    \"\"\"Error raised when an image cannot be written to a device.\"\"\""},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    message \u003d \u0027Error starting ISCSI target.\u0027"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def __init__(self, error_msg, exit_code, stdout, stderr):"},{"line_number":293,"context_line":"        details \u003d (\u0027Error starting ISCSI target: {0}. Failed with exit code \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_311987d7","line":290,"updated":"2015-02-25 20:38:57.000000000","message":"nit: s/ISCSI/iSCSI/","commit_id":"b3b50991baf8d9e543402354730d4e5fec2214fe"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"90dd629a9b1982f95445346fd28121b6977d77a0","unresolved":false,"context_lines":[{"line_number":290,"context_line":"    message \u003d \u0027Error starting ISCSI target.\u0027"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def __init__(self, error_msg, exit_code, stdout, stderr):"},{"line_number":293,"context_line":"        details \u003d (\u0027Error starting ISCSI target: {0}. Failed with exit code \u0027"},{"line_number":294,"context_line":"                   \u0027{1}. stdout: {2}. stderr: {3}\u0027)"},{"line_number":295,"context_line":"        details \u003d details.format(error_msg, exit_code, stdout, stderr)"},{"line_number":296,"context_line":"        super(ISCSIError, self).__init__(details)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_912953e8","line":293,"updated":"2015-02-25 20:38:57.000000000","message":"ditto","commit_id":"b3b50991baf8d9e543402354730d4e5fec2214fe"}],"ironic_python_agent/extensions/iscsi.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"528d5c3eec4ea9a5081bbbc1d135f411db42e2ea","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            break"},{"line_number":50,"context_line":"        time.sleep(interval)"},{"line_number":51,"context_line":"    else:"},{"line_number":52,"context_line":"        error_msg \u003d \"ISCSI daemon didn\u0027t initialized\""},{"line_number":53,"context_line":"        LOG.error(error_msg)"},{"line_number":54,"context_line":"        raise errors.ISCSIError(error_msg, 1, \u0027\u0027, error_msg)"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_9da39a4e","line":52,"updated":"2015-02-23 17:19:16.000000000","message":"Nit: s/initialized/initialize/","commit_id":"429a1a3c4a83fc9796ecec09da026ac7105293df"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"38da29f973a533c6944587436967cf50b1848625","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            break"},{"line_number":50,"context_line":"        time.sleep(interval)"},{"line_number":51,"context_line":"    else:"},{"line_number":52,"context_line":"        error_msg \u003d \"ISCSI daemon didn\u0027t initialized\""},{"line_number":53,"context_line":"        LOG.error(error_msg)"},{"line_number":54,"context_line":"        raise errors.ISCSIError(error_msg, 1, \u0027\u0027, error_msg)"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_d34fc1bc","line":52,"in_reply_to":"ba7be1f8_9da39a4e","updated":"2015-02-23 18:00:53.000000000","message":"Done","commit_id":"429a1a3c4a83fc9796ecec09da026ac7105293df"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"bae072f29386721c870984b37bbe4f5dabb06458","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Red Hat, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_d6564805","line":1,"updated":"2015-02-26 09:52:12.000000000","message":"are we using these coding lines?","commit_id":"b3b50991baf8d9e543402354730d4e5fec2214fe"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"48babecaba996124e44256e2aab3023320735430","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2015 Red Hat, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_311ece0c","line":1,"in_reply_to":"ba7be1f8_d6564805","updated":"2015-02-26 10:22:11.000000000","message":"+1 I always add it this is a python thing[1]. And the reason is because I don\u0027t want to get an import error if a string/comment/docstring in the code contains a non-ascii character.\n\nFor e.g company names which are non-english could add it to the copyright line. Or people\u0027s name.\n\nutf-8 ftw :)\n\n[1] https://www.python.org/dev/peps/pep-0263/","commit_id":"b3b50991baf8d9e543402354730d4e5fec2214fe"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"58a1b341b576f3ebf39642a7dcbee1849c18c624","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import time"},{"line_number":20,"context_line":"import uuid"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo_concurrency import processutils"},{"line_number":23,"context_line":"import six"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_675a692b","line":20,"updated":"2015-02-25 17:50:13.000000000","message":"maybe use oslo_utils.uuidutils here?","commit_id":"b3b50991baf8d9e543402354730d4e5fec2214fe"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"bae072f29386721c870984b37bbe4f5dabb06458","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import time"},{"line_number":20,"context_line":"import uuid"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo_concurrency import processutils"},{"line_number":23,"context_line":"import six"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_9650500c","line":20,"in_reply_to":"ba7be1f8_675a692b","updated":"2015-02-26 09:52:12.000000000","message":"+1","commit_id":"b3b50991baf8d9e543402354730d4e5fec2214fe"}],"ironic_python_agent/tests/extensions/iscsi.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"3f6c48d0e1d689c66cca3dc7ba185bbaf0e25c37","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @mock.patch.object(iscsi, \u0027_wait_for_iscsi_daemon\u0027)"},{"line_number":42,"context_line":"    def test_start_iscsi_target(self, mock_wait_iscsi, mock_execute,"},{"line_number":43,"context_line":"                                mock_dispatch):"},{"line_number":44,"context_line":"        mock_dispatch.return_value \u003d self.fake_dev"},{"line_number":45,"context_line":"        mock_execute.return_value \u003d (\u0027\u0027, \u0027\u0027)"},{"line_number":46,"context_line":"        result \u003d self.agent_extension.start_iscsi_target(iqn\u003dself.fake_iqn)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_f67377e4","line":43,"updated":"2015-02-18 23:34:02.000000000","message":"Is argument value for @mock.patch.object(time, \u0027sleep\u0027, lambda *_: None) missing?","commit_id":"2593bd383be466a3139a7e2adc8b6340c18ecbea"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"698f8589919fa201001b3af378ff3a9bcbd9c72c","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @mock.patch.object(iscsi, \u0027_wait_for_iscsi_daemon\u0027)"},{"line_number":42,"context_line":"    def test_start_iscsi_target(self, mock_wait_iscsi, mock_execute,"},{"line_number":43,"context_line":"                                mock_dispatch):"},{"line_number":44,"context_line":"        mock_dispatch.return_value \u003d self.fake_dev"},{"line_number":45,"context_line":"        mock_execute.return_value \u003d (\u0027\u0027, \u0027\u0027)"},{"line_number":46,"context_line":"        result \u003d self.agent_extension.start_iscsi_target(iqn\u003dself.fake_iqn)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_922cf494","line":43,"in_reply_to":"da86d52c_a173764c","updated":"2015-02-19 11:41:29.000000000","message":"Heh, yeah it\u0027s a bit confusing at first. But the lambda *_: None, is basically to mock it always and not really pass it as part of the argument lists. There\u0027s no reason to have sleep() on tests IMHO.","commit_id":"2593bd383be466a3139a7e2adc8b6340c18ecbea"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"ec8a95534d9a519e7de4bee2c03744c6e27c01b8","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @mock.patch.object(iscsi, \u0027_wait_for_iscsi_daemon\u0027)"},{"line_number":42,"context_line":"    def test_start_iscsi_target(self, mock_wait_iscsi, mock_execute,"},{"line_number":43,"context_line":"                                mock_dispatch):"},{"line_number":44,"context_line":"        mock_dispatch.return_value \u003d self.fake_dev"},{"line_number":45,"context_line":"        mock_execute.return_value \u003d (\u0027\u0027, \u0027\u0027)"},{"line_number":46,"context_line":"        result \u003d self.agent_extension.start_iscsi_target(iqn\u003dself.fake_iqn)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_a173764c","line":43,"in_reply_to":"da86d52c_f67377e4","updated":"2015-02-19 00:12:02.000000000","message":"I figured it out.  Since time has \u0027new\u003d\u0027 argument specified it isn\u0027t added to argument list.","commit_id":"2593bd383be466a3139a7e2adc8b6340c18ecbea"}]}
