)]}'
{"climate/db/migration/alembic_migrations/versions/1fd6c2eded89_add_trust_id_to_comp.py":[{"author":{"_account_id":9225,"name":"Cristian A Sanchez","email":"cabsanchez@gmail.com","username":"casanch1"},"change_message_id":"4ec886034f818311676146d306d8b9acb74086af","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    op.add_column(\u0027computehosts\u0027,"},{"line_number":34,"context_line":"                  sa.Column(\u0027trust_id\u0027,"},{"line_number":35,"context_line":"                            sa.String(length\u003d36),"},{"line_number":36,"context_line":"                            nullable\u003dTrue))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2FPuI%3D","line":36,"updated":"2014-04-15 20:37:33.000000000","message":"This should\u0027t be nullable. As I understand, this field is required, otherwise you won\u0027t be able to create a trust.","commit_id":"344c09ab1c5107b5a2c2a3db9e6309ec316eb4c6"}],"climate/manager/exceptions.py":[{"author":{"_account_id":9225,"name":"Cristian A Sanchez","email":"cabsanchez@gmail.com","username":"casanch1"},"change_message_id":"4ec886034f818311676146d306d8b9acb74086af","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    msg_fmt \u003d _(\"The lease with name: %(name)s already exists\")"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class MissingTrustId(exceptions.ClimateException):"},{"line_number":94,"context_line":"    msg_fmt \u003d _(\"A trust id is required\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2FPiw%3D","line":93,"updated":"2014-04-15 20:37:33.000000000","message":"this is a severe error that should never happen. Unless climate DB was somehow updated. \nExceptions in this file are more related to argument errors, environment errors, etc. But a missing trust id can only happen when the climate DB was updated. Am I wrong?\n\nInstead of managing this kind of situation. The application should exit with a very big error as I don\u0027t see the benefit specifying this exception","commit_id":"344c09ab1c5107b5a2c2a3db9e6309ec316eb4c6"}],"climate/plugins/oshosts/reservation_pool.py":[{"author":{"_account_id":10200,"name":"Christian Martinez","email":"chmartinez35@gmail.com","username":"cmart"},"change_message_id":"a15b8e98d51fe96bbb049c3a8cde571312dc6db9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            ctx \u003d context.current()"},{"line_number":114,"context_line":"            tenant_id \u003d ctx.tenant_id"},{"line_number":115,"context_line":"        except RuntimeError:"},{"line_number":116,"context_line":"            pass"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        meta \u003d {self.config.climate_owner: tenant_id}"},{"line_number":119,"context_line":"        self.nova.aggregates.set_metadata(agg, meta)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9b%2B0%3D","line":116,"updated":"2014-04-04 14:48:58.000000000","message":"Shouldn\u0027t we put a log or smth here? I mean, what side effect we could have if we add an empty  tenant_id into the metadata?","commit_id":"788d68c225511d04b0e27dfff01d62cadff637a9"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"e39058d693768da2ae2a327699951e5f1c0a0283","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            ctx \u003d context.current()"},{"line_number":114,"context_line":"            tenant_id \u003d ctx.tenant_id"},{"line_number":115,"context_line":"        except RuntimeError:"},{"line_number":116,"context_line":"            pass"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        meta \u003d {self.config.climate_owner: tenant_id}"},{"line_number":119,"context_line":"        self.nova.aggregates.set_metadata(agg, meta)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9P2k%3D","line":116,"in_reply_to":"AAAAWH%2F9b%2B0%3D","updated":"2014-04-07 17:34:24.000000000","message":"Done","commit_id":"788d68c225511d04b0e27dfff01d62cadff637a9"},{"author":{"_account_id":10200,"name":"Christian Martinez","email":"chmartinez35@gmail.com","username":"cmart"},"change_message_id":"a4580fa2cd8b02ace7ddecb48d3d7dc195ca3065","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            project_id \u003d ctx.project_id"},{"line_number":115,"context_line":"        except RuntimeError:"},{"line_number":116,"context_line":"            LOG.info(\"No project_id found in current context\")"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        meta \u003d {self.config.climate_owner: project_id}"},{"line_number":119,"context_line":"        self.nova.aggregates.set_metadata(agg, meta)"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_f1275d62","line":117,"updated":"2014-05-05 11:14:23.000000000","message":"nice to have: add the used project_id to the message","commit_id":"3c08ddbd88a977f6ba41d4469041e3531f297479"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"5e20f405c6ad13bba0e2b1934045f2cc81fe56f7","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            project_id \u003d ctx.project_id"},{"line_number":115,"context_line":"        except RuntimeError:"},{"line_number":116,"context_line":"            LOG.info(\"No project_id found in current context\")"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        meta \u003d {self.config.climate_owner: project_id}"},{"line_number":119,"context_line":"        self.nova.aggregates.set_metadata(agg, meta)"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_fd113c5e","line":117,"in_reply_to":"9ad9bd40_80fbfdbf","updated":"2014-05-21 20:51:42.000000000","message":"Done","commit_id":"3c08ddbd88a977f6ba41d4469041e3531f297479"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"5e20f405c6ad13bba0e2b1934045f2cc81fe56f7","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            project_id \u003d ctx.project_id"},{"line_number":115,"context_line":"        except RuntimeError:"},{"line_number":116,"context_line":"            LOG.info(\"No project_id found in current context\")"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        meta \u003d {self.config.climate_owner: project_id}"},{"line_number":119,"context_line":"        self.nova.aggregates.set_metadata(agg, meta)"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_dd1c807a","line":117,"in_reply_to":"9ad9bd40_f1275d62","updated":"2014-05-21 20:51:42.000000000","message":"Done","commit_id":"3c08ddbd88a977f6ba41d4469041e3531f297479"},{"author":{"_account_id":7075,"name":"Swann Croiset","email":"scroiset@mirantis.com","username":"swann"},"change_message_id":"f42c3b7965beecae5902db2bb9a955d4f8ab6769","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            project_id \u003d ctx.project_id"},{"line_number":115,"context_line":"        except RuntimeError:"},{"line_number":116,"context_line":"            LOG.info(\"No project_id found in current context\")"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        meta \u003d {self.config.climate_owner: project_id}"},{"line_number":119,"context_line":"        self.nova.aggregates.set_metadata(agg, meta)"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_80fbfdbf","line":117,"in_reply_to":"9ad9bd40_f1275d62","updated":"2014-05-06 11:49:49.000000000","message":"agree .. and better raise a ManagerException and log the ERROR  We need the owner in any case for the nova filter.","commit_id":"3c08ddbd88a977f6ba41d4469041e3531f297479"}],"climate/tests/db/migration/test_migrations.py":[{"author":{"_account_id":10200,"name":"Christian Martinez","email":"chmartinez35@gmail.com","username":"cmart"},"change_message_id":"a15b8e98d51fe96bbb049c3a8cde571312dc6db9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertTableExists(engine, \u0027computehost_allocations\u0027)"},{"line_number":114,"context_line":"        self.assertTableExists(engine, \u0027computehost_reservations\u0027)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def _check_1fd6c2eded89(self, engine, data):"},{"line_number":117,"context_line":"        self.assertColumnExists(engine, \u0027computehosts\u0027, \u0027trust_id\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9b5s%3D","line":116,"updated":"2014-04-04 14:48:58.000000000","message":"Shouldn\u0027t we used some more representative name for this?","commit_id":"788d68c225511d04b0e27dfff01d62cadff637a9"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"e39058d693768da2ae2a327699951e5f1c0a0283","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertTableExists(engine, \u0027computehost_allocations\u0027)"},{"line_number":114,"context_line":"        self.assertTableExists(engine, \u0027computehost_reservations\u0027)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def _check_1fd6c2eded89(self, engine, data):"},{"line_number":117,"context_line":"        self.assertColumnExists(engine, \u0027computehosts\u0027, \u0027trust_id\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9QLc%3D","line":116,"in_reply_to":"AAAAWH%2F9b5s%3D","updated":"2014-04-07 17:34:24.000000000","message":"Sadly, no. This is the name that the method should have. The hash part is the same that the migration hash, and for that reason this method is run after that migration is executed.","commit_id":"788d68c225511d04b0e27dfff01d62cadff637a9"}],"climate/tests/manager/test_service.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"30397914eadaca103d325bb843f20ac3f74b1cc6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from climate import tests"},{"line_number":34,"context_line":"from climate.utils import trusts"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"from climate.utils.openstack import base as base_utils"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class FakeExtension():"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_bbbf55a9","line":36,"updated":"2014-05-06 08:44:44.000000000","message":"Better to put this import to above section.","commit_id":"3c08ddbd88a977f6ba41d4469041e3531f297479"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"5e20f405c6ad13bba0e2b1934045f2cc81fe56f7","unresolved":false,"context_lines":[{"line_number":33,"context_line":"from climate import tests"},{"line_number":34,"context_line":"from climate.utils import trusts"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"from climate.utils.openstack import base as base_utils"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class FakeExtension():"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_aa5c4e4c","line":36,"in_reply_to":"9ad9bd40_bbbf55a9","updated":"2014-05-21 20:51:42.000000000","message":"Done","commit_id":"3c08ddbd88a977f6ba41d4469041e3531f297479"}],"climate/tests/plugins/instances/test_vm_plugin.py":[{"author":{"_account_id":10200,"name":"Christian Martinez","email":"chmartinez35@gmail.com","username":"cmart"},"change_message_id":"a15b8e98d51fe96bbb049c3a8cde571312dc6db9","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.sys \u003d sys"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.context \u003d context"},{"line_number":38,"context_line":"        self.patch(self.context, \u0027current\u0027)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        self.client \u003d self.patch(self.nova, \u0027ClimateNovaClient\u0027)"},{"line_number":41,"context_line":"        self.fake_id \u003d \u00271\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9b3k%3D","line":38,"updated":"2014-04-04 14:48:58.000000000","message":"Why is this needed?","commit_id":"788d68c225511d04b0e27dfff01d62cadff637a9"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"e39058d693768da2ae2a327699951e5f1c0a0283","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.sys \u003d sys"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.context \u003d context"},{"line_number":38,"context_line":"        self.patch(self.context, \u0027current\u0027)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        self.client \u003d self.patch(self.nova, \u0027ClimateNovaClient\u0027)"},{"line_number":41,"context_line":"        self.fake_id \u003d \u00271\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9P48%3D","line":38,"in_reply_to":"AAAAWH%2F9b3k%3D","updated":"2014-04-07 17:34:24.000000000","message":"Good catch. Some test need this because the mock used isn\u0027t the adequate. I\u0027ll add your patch as a dependency (https://review.openstack.org/#/c/84194)","commit_id":"788d68c225511d04b0e27dfff01d62cadff637a9"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"30397914eadaca103d325bb843f20ac3f74b1cc6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import eventlet"},{"line_number":19,"context_line":"import testtools"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from climate import tests"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from climate import exceptions as climate_exceptions"},{"line_number":24,"context_line":"from climate.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_9bc29132","line":21,"updated":"2014-05-06 08:44:44.000000000","message":"Why did you are changing the import order?","commit_id":"3c08ddbd88a977f6ba41d4469041e3531f297479"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"5e20f405c6ad13bba0e2b1934045f2cc81fe56f7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import eventlet"},{"line_number":19,"context_line":"import testtools"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from climate import tests"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from climate import exceptions as climate_exceptions"},{"line_number":24,"context_line":"from climate.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_0a337a14","line":21,"in_reply_to":"9ad9bd40_9bc29132","updated":"2014-05-21 20:51:42.000000000","message":"Done","commit_id":"3c08ddbd88a977f6ba41d4469041e3531f297479"}],"climate/utils/openstack/nova.py":[{"author":{"_account_id":10200,"name":"Christian Martinez","email":"chmartinez35@gmail.com","username":"cmart"},"change_message_id":"4759cc702499ded48201fe949c888d3f27e968b8","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        nova \u003d ClimateNovaClient(username\u003dctx.user_name,"},{"line_number":138,"context_line":"                                 api_key\u003dNone,"},{"line_number":139,"context_line":"                                 project_id\u003dctx.tenant_id,"},{"line_number":140,"context_line":"                                 ctx\u003dctx)"},{"line_number":141,"context_line":"        return nova"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9QYA%3D","line":140,"updated":"2014-04-07 16:03:01.000000000","message":"Need to ask. Is the indentation correct? Guess that if passed the pep8 check it should be fine, right?","commit_id":"f380229ad8667a24c91ba661b6d20365dec2c659"},{"author":{"_account_id":9331,"name":"Pablo Andres Fuente","email":"pablo.andres.fuente@gmail.com","username":"pafuent"},"change_message_id":"1faeaec8bd4f661aa6b00c8171926eba0cbeabc1","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        nova \u003d ClimateNovaClient(username\u003dctx.user_name,"},{"line_number":138,"context_line":"                                 api_key\u003dNone,"},{"line_number":139,"context_line":"                                 project_id\u003dctx.tenant_id,"},{"line_number":140,"context_line":"                                 ctx\u003dctx)"},{"line_number":141,"context_line":"        return nova"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9Pzo%3D","line":140,"in_reply_to":"AAAAWH%2F9QYA%3D","updated":"2014-04-07 17:34:33.000000000","message":"No idea. But in vim looks GOOD ;)","commit_id":"f380229ad8667a24c91ba661b6d20365dec2c659"},{"author":{"_account_id":9225,"name":"Cristian A Sanchez","email":"cabsanchez@gmail.com","username":"casanch1"},"change_message_id":"4ec886034f818311676146d306d8b9acb74086af","unresolved":false,"context_lines":[{"line_number":133,"context_line":"class NovaClientWrapper(object):"},{"line_number":134,"context_line":"    @property"},{"line_number":135,"context_line":"    def nova(self):"},{"line_number":136,"context_line":"        ctx \u003d context.current()"},{"line_number":137,"context_line":"        nova \u003d ClimateNovaClient(username\u003dctx.user_name,"},{"line_number":138,"context_line":"                                 api_key\u003dNone,"},{"line_number":139,"context_line":"                                 project_id\u003dctx.tenant_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2FPds%3D","line":136,"updated":"2014-04-15 20:37:33.000000000","message":"what if there\u0027s no context?","commit_id":"344c09ab1c5107b5a2c2a3db9e6309ec316eb4c6"}],"climate/utils/trusts.py":[{"author":{"_account_id":9225,"name":"Cristian A Sanchez","email":"cabsanchez@gmail.com","username":"casanch1"},"change_message_id":"4ec886034f818311676146d306d8b9acb74086af","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    )"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"def use_trust_auth():"},{"line_number":76,"context_line":"    def decorator(func):"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        @functools.wraps(func)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2FPlQ%3D","line":75,"updated":"2014-04-15 20:37:33.000000000","message":"some documentation could be nice","commit_id":"344c09ab1c5107b5a2c2a3db9e6309ec316eb4c6"}]}
