)]}'
{"ironic/openstack/common/db/sqlalchemy/models.py":[{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"d969a3640db9d233a341271e03a9bce69625851f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        return local.iteritems()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class TimestampMixin(object):"},{"line_number":98,"context_line":"    created_at \u003d Column(DateTime, default\u003dtimeutils.utcnow)"},{"line_number":99,"context_line":"    updated_at \u003d Column(DateTime, onupdate\u003dtimeutils.utcnow)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B5Ho%3D","side":"PARENT","line":97,"updated":"2014-01-21 01:14:58.000000000","message":"The code from oslo must not be directly edited. https://review.openstack.org/#/c/67484/ has merged so it should be updated to ironic in a separate patch.","commit_id":"dde3e6f615f36a218afd8a0ea520011d11598bd5"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"ec14a2e315548c2a84eb034aedb2e065a63ec296","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        return local.iteritems()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"class TimestampMixin(object):"},{"line_number":98,"context_line":"    created_at \u003d Column(DateTime, default\u003dtimeutils.utcnow)"},{"line_number":99,"context_line":"    updated_at \u003d Column(DateTime, onupdate\u003dtimeutils.utcnow)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B2jc%3D","side":"PARENT","line":97,"in_reply_to":"AAAAUH%2F%2B5Ho%3D","updated":"2014-01-21 14:01:39.000000000","message":"Done","commit_id":"dde3e6f615f36a218afd8a0ea520011d11598bd5"}],"ironic/tests/api/test_chassis.py":[{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        super(TestPatch, self).setUp()"},{"line_number":151,"context_line":"        cdict \u003d dbutils.get_test_chassis()"},{"line_number":152,"context_line":"        self.post_json(\u0027/chassis\u0027, cdict)"},{"line_number":153,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def test_update_not_found(self):"},{"line_number":156,"context_line":"        uuid \u003d utils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B86M%3D","line":153,"updated":"2014-01-20 13:51:34.000000000","message":"A commented line needs to be removed","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        super(TestPatch, self).setUp()"},{"line_number":151,"context_line":"        cdict \u003d dbutils.get_test_chassis()"},{"line_number":152,"context_line":"        self.post_json(\u0027/chassis\u0027, cdict)"},{"line_number":153,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def test_update_not_found(self):"},{"line_number":156,"context_line":"        uuid \u003d utils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B78g%3D","line":153,"in_reply_to":"AAAAUH%2F%2B86M%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    def test_replace_singular(self, mock_utcnow):"},{"line_number":167,"context_line":"        cdict \u003d dbutils.get_test_chassis()"},{"line_number":168,"context_line":"        description \u003d \u0027chassis-new-description\u0027"},{"line_number":169,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        mock_utcnow.return_value \u003d t1"},{"line_number":172,"context_line":"        response \u003d self.patch_json(\u0027/chassis/%s\u0027 % cdict[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B85s%3D","line":169,"updated":"2014-01-20 13:51:34.000000000","message":"I would recumbent giving this variable a more sensible name.","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    def test_replace_singular(self, mock_utcnow):"},{"line_number":167,"context_line":"        cdict \u003d dbutils.get_test_chassis()"},{"line_number":168,"context_line":"        description \u003d \u0027chassis-new-description\u0027"},{"line_number":169,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        mock_utcnow.return_value \u003d t1"},{"line_number":172,"context_line":"        response \u003d self.patch_json(\u0027/chassis/%s\u0027 % cdict[\u0027uuid\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B78Y%3D","line":169,"in_reply_to":"AAAAUH%2F%2B85s%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def setUp(self):"},{"line_number":281,"context_line":"        super(TestPost, self).setUp()"},{"line_number":282,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":285,"context_line":"    def test_create_chassis(self, mock_utcnow):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B86A%3D","line":282,"updated":"2014-01-20 13:51:34.000000000","message":"ditto","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def setUp(self):"},{"line_number":281,"context_line":"        super(TestPost, self).setUp()"},{"line_number":282,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":285,"context_line":"    def test_create_chassis(self, mock_utcnow):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B78Q%3D","line":282,"in_reply_to":"AAAAUH%2F%2B86A%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":284,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":285,"context_line":"    def test_create_chassis(self, mock_utcnow):"},{"line_number":286,"context_line":"        cdict \u003d dbutils.get_test_chassis()"},{"line_number":287,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":288,"context_line":"        mock_utcnow.return_value \u003d t1"},{"line_number":289,"context_line":"        self.post_json(\u0027/chassis\u0027, cdict)"},{"line_number":290,"context_line":"        result \u003d self.get_json(\u0027/chassis/%s\u0027 % cdict[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B85g%3D","line":287,"updated":"2014-01-20 13:51:34.000000000","message":"ditto","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":284,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":285,"context_line":"    def test_create_chassis(self, mock_utcnow):"},{"line_number":286,"context_line":"        cdict \u003d dbutils.get_test_chassis()"},{"line_number":287,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":288,"context_line":"        mock_utcnow.return_value \u003d t1"},{"line_number":289,"context_line":"        self.post_json(\u0027/chassis\u0027, cdict)"},{"line_number":290,"context_line":"        result \u003d self.get_json(\u0027/chassis/%s\u0027 % cdict[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B78E%3D","line":287,"in_reply_to":"AAAAUH%2F%2B85g%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"3d64aa2f0b6899229cfcfd08c9c6f8de5f53a781","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        self.assertTrue(response.json[\u0027error_message\u0027])"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"class TestPost(base.FunctionalTest):"},{"line_number":289,"context_line":"    @mock.patch.object(timeutils, \u0027utcnow\u0027)"},{"line_number":290,"context_line":"    def test_create_chassis(self, mock_utcnow):"},{"line_number":291,"context_line":"        cdict \u003d dbutils.get_test_chassis()"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2Fm2c%3D","line":288,"updated":"2014-02-12 02:19:46.000000000","message":"PEP8 - please keep the blank line here.","commit_id":"a91c85f4986019f9234a0bded1143e1805f01292"}],"ironic/tests/api/test_nodes.py":[{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        super(TestPost, self).setUp()"},{"line_number":508,"context_line":"        cdict \u003d dbutils.get_test_chassis()"},{"line_number":509,"context_line":"        self.chassis \u003d self.dbapi.create_chassis(cdict)"},{"line_number":510,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":511,"context_line":"        p \u003d mock.patch.object(rpcapi.ConductorAPI, \u0027get_topic_for\u0027)"},{"line_number":512,"context_line":"        self.mock_gtf \u003d p.start()"},{"line_number":513,"context_line":"        self.mock_gtf.return_value \u003d \u0027test-topic\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B85Y%3D","line":510,"updated":"2014-01-20 13:51:34.000000000","message":"This commented line should be removed","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        super(TestPost, self).setUp()"},{"line_number":508,"context_line":"        cdict \u003d dbutils.get_test_chassis()"},{"line_number":509,"context_line":"        self.chassis \u003d self.dbapi.create_chassis(cdict)"},{"line_number":510,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":511,"context_line":"        p \u003d mock.patch.object(rpcapi.ConductorAPI, \u0027get_topic_for\u0027)"},{"line_number":512,"context_line":"        self.mock_gtf \u003d p.start()"},{"line_number":513,"context_line":"        self.mock_gtf.return_value \u003d \u0027test-topic\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B778%3D","line":510,"in_reply_to":"AAAAUH%2F%2B85Y%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":517,"context_line":"    def test_create_node(self, mock_utcnow):"},{"line_number":518,"context_line":"        ndict \u003d post_get_test_node()"},{"line_number":519,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":520,"context_line":"        mock_utcnow.return_value \u003d t1"},{"line_number":521,"context_line":"        self.post_json(\u0027/nodes\u0027, ndict)"},{"line_number":522,"context_line":"        result \u003d self.get_json(\u0027/nodes/%s\u0027 % ndict[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B85Q%3D","line":519,"updated":"2014-01-20 13:51:34.000000000","message":"ditto as in test_chassis.py","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":516,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":517,"context_line":"    def test_create_node(self, mock_utcnow):"},{"line_number":518,"context_line":"        ndict \u003d post_get_test_node()"},{"line_number":519,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":520,"context_line":"        mock_utcnow.return_value \u003d t1"},{"line_number":521,"context_line":"        self.post_json(\u0027/nodes\u0027, ndict)"},{"line_number":522,"context_line":"        result \u003d self.get_json(\u0027/nodes/%s\u0027 % ndict[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B774%3D","line":519,"in_reply_to":"AAAAUH%2F%2B85Q%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"}],"ironic/tests/api/test_ports.py":[{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        self.node \u003d self.dbapi.create_node(ndict)"},{"line_number":140,"context_line":"        self.pdict \u003d post_get_test_port()"},{"line_number":141,"context_line":"        self.post_json(\u0027/ports\u0027, self.pdict)"},{"line_number":142,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def test_update_byid(self):"},{"line_number":145,"context_line":"        extra \u003d {\u0027foo\u0027: \u0027bar\u0027}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B85I%3D","line":142,"updated":"2014-01-20 13:51:34.000000000","message":"Commented line.","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        self.node \u003d self.dbapi.create_node(ndict)"},{"line_number":140,"context_line":"        self.pdict \u003d post_get_test_port()"},{"line_number":141,"context_line":"        self.post_json(\u0027/ports\u0027, self.pdict)"},{"line_number":142,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def test_update_byid(self):"},{"line_number":145,"context_line":"        extra \u003d {\u0027foo\u0027: \u0027bar\u0027}"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B77w%3D","line":142,"in_reply_to":"AAAAUH%2F%2B85I%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def test_update_byid(self):"},{"line_number":145,"context_line":"        extra \u003d {\u0027foo\u0027: \u0027bar\u0027}"},{"line_number":146,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":147,"context_line":"        timeutils_utcnow \u003d \u0027ironic.openstack.common.timeutils.utcnow\u0027"},{"line_number":148,"context_line":"        with mock.patch(timeutils_utcnow) as mock_utcnow:"},{"line_number":149,"context_line":"            mock_utcnow.return_value \u003d t1"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B844%3D","line":146,"updated":"2014-01-20 13:51:34.000000000","message":"ditto as in test_chassis.py","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def test_update_byid(self):"},{"line_number":145,"context_line":"        extra \u003d {\u0027foo\u0027: \u0027bar\u0027}"},{"line_number":146,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":147,"context_line":"        timeutils_utcnow \u003d \u0027ironic.openstack.common.timeutils.utcnow\u0027"},{"line_number":148,"context_line":"        with mock.patch(timeutils_utcnow) as mock_utcnow:"},{"line_number":149,"context_line":"            mock_utcnow.return_value \u003d t1"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B77o%3D","line":146,"in_reply_to":"AAAAUH%2F%2B844%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":326,"context_line":"    def setUp(self):"},{"line_number":327,"context_line":"        super(TestPost, self).setUp()"},{"line_number":328,"context_line":"        ndict \u003d dbutils.get_test_node()"},{"line_number":329,"context_line":"        self.node \u003d self.dbapi.create_node(ndict)"},{"line_number":330,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B84o%3D","line":329,"updated":"2014-01-20 13:51:34.000000000","message":"Commented line.","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":326,"context_line":"    def setUp(self):"},{"line_number":327,"context_line":"        super(TestPost, self).setUp()"},{"line_number":328,"context_line":"        ndict \u003d dbutils.get_test_node()"},{"line_number":329,"context_line":"        self.node \u003d self.dbapi.create_node(ndict)"},{"line_number":330,"context_line":"        #self.addCleanup(timeutils.clear_time_override)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B77k%3D","line":329,"in_reply_to":"AAAAUH%2F%2B84o%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":333,"context_line":"    def test_create_port(self, mock_utcnow):"},{"line_number":334,"context_line":"        pdict \u003d post_get_test_port()"},{"line_number":335,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":336,"context_line":"        mock_utcnow.return_value \u003d t1"},{"line_number":337,"context_line":"        self.post_json(\u0027/ports\u0027, pdict)"},{"line_number":338,"context_line":"        result \u003d self.get_json(\u0027/ports/%s\u0027 % pdict[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B84k%3D","line":335,"updated":"2014-01-20 13:51:34.000000000","message":"ditto as in test_chassis.py","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":333,"context_line":"    def test_create_port(self, mock_utcnow):"},{"line_number":334,"context_line":"        pdict \u003d post_get_test_port()"},{"line_number":335,"context_line":"        t1 \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":336,"context_line":"        mock_utcnow.return_value \u003d t1"},{"line_number":337,"context_line":"        self.post_json(\u0027/ports\u0027, pdict)"},{"line_number":338,"context_line":"        result \u003d self.get_json(\u0027/ports/%s\u0027 % pdict[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B77g%3D","line":335,"in_reply_to":"AAAAUH%2F%2B84k%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"519f578a357ddb1be960ef22be6ca0d25bb4b776","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        test_time \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":146,"context_line":"        timeutils_utcnow \u003d \u0027ironic.openstack.common.timeutils.utcnow\u0027"},{"line_number":147,"context_line":"        with mock.patch(timeutils_utcnow) as mock_utcnow:"},{"line_number":148,"context_line":"            mock_utcnow.return_value \u003d test_time"},{"line_number":149,"context_line":"            response \u003d self.patch_json(\u0027/ports/%s\u0027 % self.pdict[\u0027uuid\u0027],"},{"line_number":150,"context_line":"                                       [{\u0027path\u0027: \u0027/extra/foo\u0027,"},{"line_number":151,"context_line":"                                         \u0027value\u0027: \u0027bar\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9%2B7o%3D","line":148,"updated":"2014-01-31 11:38:05.000000000","message":"Maybe to use decorator here too, to be consistent with other tests?","commit_id":"034eb9312eb8d4dce1a60018a6460c7c55284155"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"6ddd1b667e68a3db23bee6c5b5a02d4036c3cbb8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        test_time \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":146,"context_line":"        timeutils_utcnow \u003d \u0027ironic.openstack.common.timeutils.utcnow\u0027"},{"line_number":147,"context_line":"        with mock.patch(timeutils_utcnow) as mock_utcnow:"},{"line_number":148,"context_line":"            mock_utcnow.return_value \u003d test_time"},{"line_number":149,"context_line":"            response \u003d self.patch_json(\u0027/ports/%s\u0027 % self.pdict[\u0027uuid\u0027],"},{"line_number":150,"context_line":"                                       [{\u0027path\u0027: \u0027/extra/foo\u0027,"},{"line_number":151,"context_line":"                                         \u0027value\u0027: \u0027bar\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9%2B0I%3D","line":148,"in_reply_to":"AAAAUH%2F9%2B7o%3D","updated":"2014-01-31 13:29:40.000000000","message":"Done","commit_id":"034eb9312eb8d4dce1a60018a6460c7c55284155"}],"ironic/tests/db/test_conductor.py":[{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d6c74b3b829d41ab4bf50235852dd1a251be87bb","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":69,"context_line":"    def test_touch_conductor(self, mock_utcnow):"},{"line_number":70,"context_line":"        t \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":71,"context_line":"        mock_utcnow.return_value \u003d t"},{"line_number":72,"context_line":"        c \u003d self._create_test_cdr(updated_at\u003dt)"},{"line_number":73,"context_line":"        self.assertEqual(t, timeutils.normalize_time(c[\u0027updated_at\u0027]))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B84g%3D","line":70,"updated":"2014-01-20 13:51:34.000000000","message":"Please consider giving this variable a more sensible name.","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"aa161a324c9e0123448079be9827678ca8e86169","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":69,"context_line":"    def test_touch_conductor(self, mock_utcnow):"},{"line_number":70,"context_line":"        t \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":71,"context_line":"        mock_utcnow.return_value \u003d t"},{"line_number":72,"context_line":"        c \u003d self._create_test_cdr(updated_at\u003dt)"},{"line_number":73,"context_line":"        self.assertEqual(t, timeutils.normalize_time(c[\u0027updated_at\u0027]))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2B77Y%3D","line":70,"in_reply_to":"AAAAUH%2F%2B84g%3D","updated":"2014-01-20 16:04:30.000000000","message":"Done","commit_id":"3b0ea97e08a064180050a12bca8869c4445b91be"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b9ea1117ac380f4ebb7c47bcd38b4697728ebbf0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                self.dbapi.touch_conductor,"},{"line_number":86,"context_line":"                \u0027bad-hostname\u0027)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":89,"context_line":"    def test_get_active_driver_dict_one_host_no_driver(self, mock_utcnow):"},{"line_number":90,"context_line":"        h \u003d \u0027fake-host\u0027"},{"line_number":91,"context_line":"        expected \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B5dU%3D","line":88,"updated":"2014-01-20 23:20:51.000000000","message":"time is not being tested in this method. no need to mock this.","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"ec14a2e315548c2a84eb034aedb2e065a63ec296","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                self.dbapi.touch_conductor,"},{"line_number":86,"context_line":"                \u0027bad-hostname\u0027)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":89,"context_line":"    def test_get_active_driver_dict_one_host_no_driver(self, mock_utcnow):"},{"line_number":90,"context_line":"        h \u003d \u0027fake-host\u0027"},{"line_number":91,"context_line":"        expected \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B3eQ%3D","line":88,"in_reply_to":"AAAAUH%2F%2B5dU%3D","updated":"2014-01-21 14:01:39.000000000","message":"Done","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b9ea1117ac380f4ebb7c47bcd38b4697728ebbf0","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        mock_utcnow.return_value \u003d datetime.datetime.utcnow()"},{"line_number":94,"context_line":"        self._create_test_cdr(hostname\u003dh, drivers\u003d[])"},{"line_number":95,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":96,"context_line":"        self.assertEqual(expected, result)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B5dM%3D","line":95,"updated":"2014-01-20 23:20:51.000000000","message":"we actually don\u0027t need the explicit \"interval\u003d1\" here...","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"ec14a2e315548c2a84eb034aedb2e065a63ec296","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        mock_utcnow.return_value \u003d datetime.datetime.utcnow()"},{"line_number":94,"context_line":"        self._create_test_cdr(hostname\u003dh, drivers\u003d[])"},{"line_number":95,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":96,"context_line":"        self.assertEqual(expected, result)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B3eE%3D","line":95,"in_reply_to":"AAAAUH%2F%2B5dM%3D","updated":"2014-01-21 14:01:39.000000000","message":"Done","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b9ea1117ac380f4ebb7c47bcd38b4697728ebbf0","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":96,"context_line":"        self.assertEqual(expected, result)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":99,"context_line":"    def test_get_active_driver_dict_one_host_one_driver(self, mock_utcnow):"},{"line_number":100,"context_line":"        h \u003d \u0027fake-host\u0027"},{"line_number":101,"context_line":"        d \u003d \u0027fake-driver\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B5dI%3D","line":98,"updated":"2014-01-20 23:20:51.000000000","message":"ditto","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"ec14a2e315548c2a84eb034aedb2e065a63ec296","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":96,"context_line":"        self.assertEqual(expected, result)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":99,"context_line":"    def test_get_active_driver_dict_one_host_one_driver(self, mock_utcnow):"},{"line_number":100,"context_line":"        h \u003d \u0027fake-host\u0027"},{"line_number":101,"context_line":"        d \u003d \u0027fake-driver\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B3d0%3D","line":98,"in_reply_to":"AAAAUH%2F%2B5dI%3D","updated":"2014-01-21 14:01:39.000000000","message":"Done","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b9ea1117ac380f4ebb7c47bcd38b4697728ebbf0","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":107,"context_line":"        self.assertEqual(expected, result)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":110,"context_line":"    def test_get_active_driver_dict_one_host_many_drivers(self, mock_utcnow):"},{"line_number":111,"context_line":"        h \u003d \u0027fake-host\u0027"},{"line_number":112,"context_line":"        d1 \u003d \u0027driver-one\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B5dE%3D","line":109,"updated":"2014-01-20 23:20:51.000000000","message":"ditto","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"ec14a2e315548c2a84eb034aedb2e065a63ec296","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":107,"context_line":"        self.assertEqual(expected, result)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":110,"context_line":"    def test_get_active_driver_dict_one_host_many_drivers(self, mock_utcnow):"},{"line_number":111,"context_line":"        h \u003d \u0027fake-host\u0027"},{"line_number":112,"context_line":"        d1 \u003d \u0027driver-one\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B3do%3D","line":109,"in_reply_to":"AAAAUH%2F%2B5dE%3D","updated":"2014-01-21 14:01:39.000000000","message":"Done","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b9ea1117ac380f4ebb7c47bcd38b4697728ebbf0","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":119,"context_line":"        self.assertEqual(expected, result)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":122,"context_line":"    def test_get_active_driver_dict_many_hosts_one_driver(self, mock_utcnow):"},{"line_number":123,"context_line":"        h1 \u003d \u0027host-one\u0027"},{"line_number":124,"context_line":"        h2 \u003d \u0027host-two\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B5dA%3D","line":121,"updated":"2014-01-20 23:20:51.000000000","message":"ditto","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"ec14a2e315548c2a84eb034aedb2e065a63ec296","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":119,"context_line":"        self.assertEqual(expected, result)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":122,"context_line":"    def test_get_active_driver_dict_many_hosts_one_driver(self, mock_utcnow):"},{"line_number":123,"context_line":"        h1 \u003d \u0027host-one\u0027"},{"line_number":124,"context_line":"        h2 \u003d \u0027host-two\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B3dk%3D","line":121,"in_reply_to":"AAAAUH%2F%2B5dA%3D","updated":"2014-01-21 14:01:39.000000000","message":"Done","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"b9ea1117ac380f4ebb7c47bcd38b4697728ebbf0","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":132,"context_line":"        self.assertEqual(expected, result)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":135,"context_line":"    def test_get_active_driver_dict_many_hosts_and_drivers(self, mock_utcnow):"},{"line_number":136,"context_line":"        h1 \u003d \u0027host-one\u0027"},{"line_number":137,"context_line":"        h2 \u003d \u0027host-two\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B5c8%3D","line":134,"updated":"2014-01-20 23:20:51.000000000","message":"ditto","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"ec14a2e315548c2a84eb034aedb2e065a63ec296","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        result \u003d self.dbapi.get_active_driver_dict(interval\u003d1)"},{"line_number":132,"context_line":"        self.assertEqual(expected, result)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    @mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)"},{"line_number":135,"context_line":"    def test_get_active_driver_dict_many_hosts_and_drivers(self, mock_utcnow):"},{"line_number":136,"context_line":"        h1 \u003d \u0027host-one\u0027"},{"line_number":137,"context_line":"        h2 \u003d \u0027host-two\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B3dg%3D","line":134,"in_reply_to":"AAAAUH%2F%2B5c8%3D","updated":"2014-01-21 14:01:39.000000000","message":"Done","commit_id":"07405916e56c24c01db6abc1c4d606b08d17424b"},{"author":{"_account_id":8968,"name":"Max Lobur","email":"max_lobur@outlook.com","username":"max_lobur"},"change_message_id":"519f578a357ddb1be960ef22be6ca0d25bb4b776","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        expected \u003d {}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        self._create_test_cdr(hostname\u003dh, drivers\u003d[])"},{"line_number":93,"context_line":"        result \u003d self.dbapi.get_active_driver_dict()"},{"line_number":94,"context_line":"        self.assertEqual(expected, result)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_get_active_driver_dict_one_host_one_driver(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9%2B6U%3D","line":93,"updated":"2014-01-31 11:38:05.000000000","message":"It seems we can\u0027t safely remove timeutils.set_time_override() call from the code. Those method freezes time: \nhttps://github.com/openstack/oslo-incubator/blob/d815087d675587fac2c93a480980c0c0f76e76d4/openstack/common/timeutils.py#L124-L132\n\nSo if we remove, the test will become time dependent. E.g. if the code will stop for 60 seconds (https://github.com/openstack/ironic/blob/4d3abebada84b2616e30c5a4619b424d2b829c17/ironic/conductor/manager.py#L73-L75) at this line for some reason, the test will fail. I know it\u0027s not likely happen, but still, to be sure I would add \n\n@mock.patch(\u0027ironic.openstack.common.timeutils.utcnow\u0027)\nmock_utcnow.return_value \u003d test_time\n\nThis related to all subsequent tests too","commit_id":"034eb9312eb8d4dce1a60018a6460c7c55284155"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"6ddd1b667e68a3db23bee6c5b5a02d4036c3cbb8","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        expected \u003d {}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        self._create_test_cdr(hostname\u003dh, drivers\u003d[])"},{"line_number":93,"context_line":"        result \u003d self.dbapi.get_active_driver_dict()"},{"line_number":94,"context_line":"        self.assertEqual(expected, result)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_get_active_driver_dict_one_host_one_driver(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9%2Bgk%3D","line":93,"in_reply_to":"AAAAUH%2F9%2B6U%3D","updated":"2014-01-31 13:29:40.000000000","message":"I agree with you! Thanks!!!","commit_id":"034eb9312eb8d4dce1a60018a6460c7c55284155"}]}
