)]}'
{"trove/db/sqlalchemy/migrate_repo/versions/013_add_security_group_artifacts.py":[{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"edf8e50d59c11489af04045fd9bd0fb0db3d7285","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"def upgrade(migrate_engine):"},{"line_number":85,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":86,"context_line":"    Table("},{"line_number":87,"context_line":"        \u0027instances\u0027,"},{"line_number":88,"context_line":"        meta,"},{"line_number":89,"context_line":"        autoload\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FC4Q%3D","line":86,"updated":"2013-09-13 00:19:09.000000000","message":"Do we need this at _all_ ?? Seems like we can just remove it instead of just removing the local variable","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"09960abaaed95b57547a902a0e5b353de6ebf1c4","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"def upgrade(migrate_engine):"},{"line_number":85,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":86,"context_line":"    Table("},{"line_number":87,"context_line":"        \u0027instances\u0027,"},{"line_number":88,"context_line":"        meta,"},{"line_number":89,"context_line":"        autoload\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FBrw%3D","line":86,"in_reply_to":"AAAASn%2F%2FC4Q%3D","updated":"2013-09-13 08:58:26.000000000","message":"If we remove it, tests will fail !","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"}],"trove/extensions/mgmt/instances/service.py":[{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"7dc9a8f2f31dadccb36a1bd6719f721e8825a345","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            LOG.error(e)"},{"line_number":158,"context_line":"            return wsgi.Result(str(e), 404)"},{"line_number":159,"context_line":"        reh \u003d mysql_models.RootHistory.load(context\u003dcontext, instance_id\u003did)"},{"line_number":160,"context_line":"        if reh:"},{"line_number":161,"context_line":"            rhv \u003d views.RootHistoryView(reh.id, enabled\u003dreh.created,"},{"line_number":162,"context_line":"                                        user_id\u003dreh.user)"},{"line_number":163,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F9FY%3D","line":160,"updated":"2013-09-16 16:30:50.000000000","message":"I don\u0027t like that rhv is defined in a scope deeper than the return on 166.\nI think I\u0027d prefer to rearrange these lines thusly:\n\nrhv \u003d views.RootHistoryView(id)\nreh \u003d mysql_models.RootHistory.load(context\u003dcontext, instance_id\u003dinstance_id)\nif reh:\n    rhv \u003d views.RootHistoryView(reh.id, enabled\u003dreh.created, user_id\u003dreh.user)\nreturn wsgi.Result(rhv.data(), 200)","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"277cfff0b4ee48a8d6ec350f3463124e652c2122","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            LOG.error(e)"},{"line_number":158,"context_line":"            return wsgi.Result(str(e), 404)"},{"line_number":159,"context_line":"        reh \u003d mysql_models.RootHistory.load(context\u003dcontext, instance_id\u003did)"},{"line_number":160,"context_line":"        if reh:"},{"line_number":161,"context_line":"            rhv \u003d views.RootHistoryView(reh.id, enabled\u003dreh.created,"},{"line_number":162,"context_line":"                                        user_id\u003dreh.user)"},{"line_number":163,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F8T0%3D","line":160,"in_reply_to":"AAAAS3%2F%2F9FY%3D","updated":"2013-09-16 20:22:04.000000000","message":"Fair enough !","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"}],"trove/extensions/mysql/service.py":[{"author":{"_account_id":7850,"name":"Kevin Conway","email":"kevinjacobconway@gmail.com","username":"kevinconway"},"change_message_id":"f3499d7dd9b6dc7fbb15fe274939e65f432e8d55","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            return wsgi.Result(view.data(), 200)"},{"line_number":211,"context_line":"        else:"},{"line_number":212,"context_line":"            return wsgi.Result([], 404)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def update(self, req, body, tenant_id, instance_id, user_id):"},{"line_number":215,"context_line":"        \"\"\"Grant access for a user to one or more databases.\"\"\""},{"line_number":216,"context_line":"        LOG.info(_(\"Granting user access for instance \u0027%s\u0027\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FEpg%3D","line":213,"updated":"2013-09-12 15:06:59.000000000","message":"If this change needs to be made you should consider another commit. This seems like a behaviour change, not a PEP8 or PyFlakes issue.","commit_id":"1ceba03f456714d8625a5eb89b2b1648e011093f"},{"author":{"_account_id":7850,"name":"Kevin Conway","email":"kevinjacobconway@gmail.com","username":"kevinconway"},"change_message_id":"cc4cbd62cb1933cf4f92581a6406c493b2d1d4b5","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            return wsgi.Result(view.data(), 200)"},{"line_number":211,"context_line":"        else:"},{"line_number":212,"context_line":"            return wsgi.Result([], 404)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def update(self, req, body, tenant_id, instance_id, user_id):"},{"line_number":215,"context_line":"        \"\"\"Grant access for a user to one or more databases.\"\"\""},{"line_number":216,"context_line":"        LOG.info(_(\"Granting user access for instance \u0027%s\u0027\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FEes%3D","line":213,"in_reply_to":"AAAASn%2F%2FEgA%3D","updated":"2013-09-12 15:33:43.000000000","message":"I see. Why not remove \"user \u003d\"? What does \"if/else\" have to do with F841?","commit_id":"1ceba03f456714d8625a5eb89b2b1648e011093f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"425618e92f3e146bfb4c2cd74a77555a6baef8cc","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            return wsgi.Result(view.data(), 200)"},{"line_number":211,"context_line":"        else:"},{"line_number":212,"context_line":"            return wsgi.Result([], 404)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def update(self, req, body, tenant_id, instance_id, user_id):"},{"line_number":215,"context_line":"        \"\"\"Grant access for a user to one or more databases.\"\"\""},{"line_number":216,"context_line":"        LOG.info(_(\"Granting user access for instance \u0027%s\u0027\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FEgA%3D","line":213,"in_reply_to":"AAAASn%2F%2FEpg%3D","updated":"2013-09-12 15:26:44.000000000","message":"Yes, this change was made because of F841 - unused variable. Unused variable was at L#205 - named \u0027user\u0027 and it was never used.","commit_id":"1ceba03f456714d8625a5eb89b2b1648e011093f"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"06df4e0bc1c391cb981d4c2a8e2dc64b130a9717","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        context \u003d req.environ[wsgi.CONTEXT_KEY]"},{"line_number":204,"context_line":"        # Make sure this user exists."},{"line_number":205,"context_line":"        if self._get_user(context, instance_id, user_id):"},{"line_number":206,"context_line":"            pass"},{"line_number":207,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":208,"context_line":"        access \u003d models.User.access(context, instance_id,"},{"line_number":209,"context_line":"                                    username, hostname)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FEUk%3D","line":206,"updated":"2013-09-12 16:12:11.000000000","message":"no need for an if statement here.","commit_id":"67822af54a78a76e6058515f305d3a4d984012c9"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"06df4e0bc1c391cb981d4c2a8e2dc64b130a9717","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        LOG.info(_(\"req : \u0027%s\u0027\\n\\n\") % req)"},{"line_number":218,"context_line":"        context \u003d req.environ[wsgi.CONTEXT_KEY]"},{"line_number":219,"context_line":"        if self._get_user(context, instance_id, user_id):"},{"line_number":220,"context_line":"            pass"},{"line_number":221,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":222,"context_line":"        databases \u003d [db[\u0027name\u0027] for db in body[\u0027databases\u0027]]"},{"line_number":223,"context_line":"        models.User.grant(context, instance_id, username,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FEUc%3D","line":220,"updated":"2013-09-12 16:12:11.000000000","message":"ditto","commit_id":"67822af54a78a76e6058515f305d3a4d984012c9"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"06df4e0bc1c391cb981d4c2a8e2dc64b130a9717","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        LOG.info(_(\"req : \u0027%s\u0027\\n\\n\") % req)"},{"line_number":232,"context_line":"        context \u003d req.environ[wsgi.CONTEXT_KEY]"},{"line_number":233,"context_line":"        if self._get_user(context, instance_id, user_id):"},{"line_number":234,"context_line":"            pass"},{"line_number":235,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":236,"context_line":"        access \u003d models.User.access(context, instance_id,"},{"line_number":237,"context_line":"                                    username, hostname)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FEUA%3D","line":234,"updated":"2013-09-12 16:12:11.000000000","message":"here as well","commit_id":"67822af54a78a76e6058515f305d3a4d984012c9"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0208ae9fafb006a1d8c21890a25f8987203238cd","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        self._get_user(context, instance_id, user_id)"},{"line_number":206,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":207,"context_line":"        access \u003d models.User.access(context, instance_id,"},{"line_number":208,"context_line":"                                    username, hostname)"},{"line_number":209,"context_line":"        view \u003d views.UserAccessView(access.databases)"},{"line_number":210,"context_line":"        return wsgi.Result(view.data(), 200)"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FDPQ%3D","line":208,"updated":"2013-09-13 01:30:04.000000000","message":"Any reason to split the line up into 2?","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"3fcc7be1c630235c3c313c132572e3e1a973f428","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        self._get_user(context, instance_id, user_id)"},{"line_number":206,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":207,"context_line":"        access \u003d models.User.access(context, instance_id,"},{"line_number":208,"context_line":"                                    username, hostname)"},{"line_number":209,"context_line":"        view \u003d views.UserAccessView(access.databases)"},{"line_number":210,"context_line":"        return wsgi.Result(view.data(), 200)"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FCWM%3D","line":208,"in_reply_to":"AAAASn%2F%2FDPQ%3D","updated":"2013-09-13 07:06:47.000000000","message":"lenght of line","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0208ae9fafb006a1d8c21890a25f8987203238cd","unresolved":false,"context_lines":[{"line_number":219,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":220,"context_line":"        databases \u003d [db[\u0027name\u0027] for db in body[\u0027databases\u0027]]"},{"line_number":221,"context_line":"        models.User.grant(context, instance_id, username,"},{"line_number":222,"context_line":"                          hostname, databases)"},{"line_number":223,"context_line":"        return wsgi.Result(None, 202)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def delete(self, req, tenant_id, instance_id, user_id, id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FDO8%3D","line":222,"updated":"2013-09-13 01:30:04.000000000","message":"Same as above.","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0208ae9fafb006a1d8c21890a25f8987203238cd","unresolved":false,"context_lines":[{"line_number":225,"context_line":"    def delete(self, req, tenant_id, instance_id, user_id, id):"},{"line_number":226,"context_line":"        \"\"\"Revoke access for a user.\"\"\""},{"line_number":227,"context_line":"        LOG.info(_(\"Revoking user access for instance \u0027%s\u0027\")"},{"line_number":228,"context_line":"                 % instance_id)"},{"line_number":229,"context_line":"        LOG.info(_(\"req : \u0027%s\u0027\\n\\n\") % req)"},{"line_number":230,"context_line":"        context \u003d req.environ[wsgi.CONTEXT_KEY]"},{"line_number":231,"context_line":"        self._get_user(context, instance_id, user_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FDOk%3D","line":228,"updated":"2013-09-13 01:30:04.000000000","message":"Same as above.","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0208ae9fafb006a1d8c21890a25f8987203238cd","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        self._get_user(context, instance_id, user_id)"},{"line_number":232,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":233,"context_line":"        access \u003d models.User.access(context, instance_id,"},{"line_number":234,"context_line":"                                    username, hostname)"},{"line_number":235,"context_line":"        databases \u003d [db.name for db in access.databases]"},{"line_number":236,"context_line":"        if id not in databases:"},{"line_number":237,"context_line":"            raise exception.DatabaseNotFound(uuid\u003did)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FDOg%3D","line":234,"updated":"2013-09-13 01:30:04.000000000","message":"Same as above.","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"0208ae9fafb006a1d8c21890a25f8987203238cd","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        if id not in databases:"},{"line_number":237,"context_line":"            raise exception.DatabaseNotFound(uuid\u003did)"},{"line_number":238,"context_line":"        models.User.revoke(context, instance_id,"},{"line_number":239,"context_line":"                           username, hostname, id)"},{"line_number":240,"context_line":"        return wsgi.Result(None, 202)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FDOc%3D","line":239,"updated":"2013-09-13 01:30:04.000000000","message":"Same as above.","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"7dc9a8f2f31dadccb36a1bd6719f721e8825a345","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        LOG.info(_(\"req : \u0027%s\u0027\\n\\n\") % req)"},{"line_number":203,"context_line":"        context \u003d req.environ[wsgi.CONTEXT_KEY]"},{"line_number":204,"context_line":"        # Make sure this user exists."},{"line_number":205,"context_line":"        self._get_user(context, instance_id, user_id)"},{"line_number":206,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":207,"context_line":"        access \u003d models.User.access(context, instance_id, username, hostname)"},{"line_number":208,"context_line":"        view \u003d views.UserAccessView(access.databases)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F9G8%3D","line":205,"updated":"2013-09-16 16:30:50.000000000","message":"I think we can remove this call, and the two others you\u0027ve changed, if their output isn\u0027t being stored and there are no side effects.","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"277cfff0b4ee48a8d6ec350f3463124e652c2122","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        LOG.info(_(\"req : \u0027%s\u0027\\n\\n\") % req)"},{"line_number":203,"context_line":"        context \u003d req.environ[wsgi.CONTEXT_KEY]"},{"line_number":204,"context_line":"        # Make sure this user exists."},{"line_number":205,"context_line":"        self._get_user(context, instance_id, user_id)"},{"line_number":206,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":207,"context_line":"        access \u003d models.User.access(context, instance_id, username, hostname)"},{"line_number":208,"context_line":"        view \u003d views.UserAccessView(access.databases)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F8To%3D","line":205,"in_reply_to":"AAAAS3%2F%2F9G8%3D","updated":"2013-09-16 20:22:04.000000000","message":"Ok. Thanks for helping me.","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"},{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"b3567947a61c0ab897725e3ce4429b36798a645b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        if not user:"},{"line_number":207,"context_line":"            LOG.error(_(\"No such user: %(user)s \" % {\u0027user\u0027: user}))"},{"line_number":208,"context_line":"            raise exception.UserNotFound("},{"line_number":209,"context_line":"                _(\"User doesnt exists or invalid name\"))"},{"line_number":210,"context_line":"        username, hostname \u003d unquote_user_host(user_id)"},{"line_number":211,"context_line":"        access \u003d models.User.access(context, instance_id, username, hostname)"},{"line_number":212,"context_line":"        view \u003d views.UserAccessView(access.databases)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAS3%2F%2FcjU%3D","line":209,"updated":"2013-09-26 15:22:04.000000000","message":"use\n\nraise exception.UserNotFound(uuid\u003duser)\n\nto produce \"User \u003cuuid\u003e cannot be found on the instance.\"\nDon\u0027t worry that uuid in this case is a username and not a uuid4, it doesn\u0027t matter.\n\nhttps://github.com/openstack/trove/blob/master/trove/common/exception.py#L76","commit_id":"d90e57aa33933067dd70e114c8402d869c8a209d"}],"trove/taskmanager/api.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"06df4e0bc1c391cb981d4c2a8e2dc64b130a9717","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                type_, value, tb \u003d sys.exc_info()"},{"line_number":61,"context_line":"                LOG.error(\"Error running async task:\")"},{"line_number":62,"context_line":"                LOG.error((traceback.format_exception(type_, value, tb)))"},{"line_number":63,"context_line":"                raise type_(*value.args), None, tb"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        get_event_spawer()(0, func)"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FETY%3D","line":63,"updated":"2013-09-12 16:12:11.000000000","message":"this should just be \u0027raise\u0027","commit_id":"67822af54a78a76e6058515f305d3a4d984012c9"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"5dc92f288a081d0ac5ddfd771db6b5b418433ef1","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            try:"},{"line_number":58,"context_line":"                method(self.context, **kwargs)"},{"line_number":59,"context_line":"            except Exception:"},{"line_number":60,"context_line":"                type_, value, tb \u003d sys.exc_info()"},{"line_number":61,"context_line":"                LOG.error(\"Error running async task:\")"},{"line_number":62,"context_line":"                LOG.error((traceback.format_exception(type_, value, tb)))"},{"line_number":63,"context_line":"                raise type_(*value.args), None, tb"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FEQc%3D","line":60,"updated":"2013-09-12 16:21:35.000000000","message":"Switch this to:\n\nLOG.exception(\"Error running async task\")\nraise","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d1b13eb1097fc8df9627f193a643b07a516fb731","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            try:"},{"line_number":58,"context_line":"                method(self.context, **kwargs)"},{"line_number":59,"context_line":"            except Exception:"},{"line_number":60,"context_line":"                type_, value, tb \u003d sys.exc_info()"},{"line_number":61,"context_line":"                LOG.error(\"Error running async task:\")"},{"line_number":62,"context_line":"                LOG.error((traceback.format_exception(type_, value, tb)))"},{"line_number":63,"context_line":"                raise type_(*value.args), None, tb"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FEPE%3D","line":60,"in_reply_to":"AAAASn%2F%2FEQc%3D","updated":"2013-09-12 16:23:09.000000000","message":"this comment is not in scope of current review, sorry","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"}],"trove/taskmanager/models.py":[{"author":{"_account_id":7850,"name":"Kevin Conway","email":"kevinjacobconway@gmail.com","username":"kevinconway"},"change_message_id":"f3499d7dd9b6dc7fbb15fe274939e65f432e8d55","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        try:"},{"line_number":555,"context_line":"            volume \u003d self.volume_client.volumes.get(self.volume_id)"},{"line_number":556,"context_line":"            if volume:"},{"line_number":557,"context_line":"                pass"},{"line_number":558,"context_line":"            utils.poll_until("},{"line_number":559,"context_line":"                lambda: self.volume_client.volumes.get(self.volume_id),"},{"line_number":560,"context_line":"                lambda volume: volume.size \u003d\u003d int(new_size),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FEpQ%3D","line":557,"updated":"2013-09-12 15:06:59.000000000","message":"I understand why you are doing this, but why not just remove the \"volume\" variable? This seems like the wrong way to fix the validation error.","commit_id":"1ceba03f456714d8625a5eb89b2b1648e011093f"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"425618e92f3e146bfb4c2cd74a77555a6baef8cc","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        try:"},{"line_number":555,"context_line":"            volume \u003d self.volume_client.volumes.get(self.volume_id)"},{"line_number":556,"context_line":"            if volume:"},{"line_number":557,"context_line":"                pass"},{"line_number":558,"context_line":"            utils.poll_until("},{"line_number":559,"context_line":"                lambda: self.volume_client.volumes.get(self.volume_id),"},{"line_number":560,"context_line":"                lambda volume: volume.size \u003d\u003d int(new_size),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAASn%2F%2FEfs%3D","line":557,"in_reply_to":"AAAASn%2F%2FEpQ%3D","updated":"2013-09-12 15:26:44.000000000","message":"ok, you are right","commit_id":"1ceba03f456714d8625a5eb89b2b1648e011093f"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"06df4e0bc1c391cb981d4c2a8e2dc64b130a9717","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            raise"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"        try:"},{"line_number":555,"context_line":"            self.volume_client.volumes.get(self.volume_id)"},{"line_number":556,"context_line":"            utils.poll_until("},{"line_number":557,"context_line":"                lambda: self.volume_client.volumes.get(self.volume_id),"},{"line_number":558,"context_line":"                lambda volume: volume.size \u003d\u003d int(new_size),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FEVg%3D","line":555,"updated":"2013-09-12 16:12:11.000000000","message":"This line is not needed at all it seems. The poll_until will call it each time in the loop.","commit_id":"67822af54a78a76e6058515f305d3a4d984012c9"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"b521bd5af4bc7aa29ffbea69329d69607d651e02","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            raise"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"        try:"},{"line_number":555,"context_line":"            self.volume_client.volumes.get(self.volume_id)"},{"line_number":556,"context_line":"            utils.poll_until("},{"line_number":557,"context_line":"                lambda: self.volume_client.volumes.get(self.volume_id),"},{"line_number":558,"context_line":"                lambda volume: volume.size \u003d\u003d int(new_size),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FEL8%3D","line":555,"updated":"2013-09-12 16:36:44.000000000","message":"just remove this line entirely as it is not needed.","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"edf8e50d59c11489af04045fd9bd0fb0db3d7285","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            raise"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":"        try:"},{"line_number":555,"context_line":"            self.volume_client.volumes.get(self.volume_id)"},{"line_number":556,"context_line":"            utils.poll_until("},{"line_number":557,"context_line":"                lambda: self.volume_client.volumes.get(self.volume_id),"},{"line_number":558,"context_line":"                lambda volume: volume.size \u003d\u003d int(new_size),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FC38%3D","line":555,"in_reply_to":"AAAASn%2F%2FEL8%3D","updated":"2013-09-13 00:19:09.000000000","message":"Agreed","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"}],"trove/tests/api/instances.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"06df4e0bc1c391cb981d4c2a8e2dc64b130a9717","unresolved":false,"context_lines":[{"line_number":1111,"context_line":"        # Test that the management API returns all the values we expect it to."},{"line_number":1112,"context_line":"        info \u003d instance_info"},{"line_number":1113,"context_line":"        ir \u003d info.initial_result"},{"line_number":1114,"context_line":"        cid \u003d ir.id"},{"line_number":1115,"context_line":"        if cid:"},{"line_number":1116,"context_line":"            pass"},{"line_number":1117,"context_line":"        instance_id \u003d instance_info.local_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FESo%3D","line":1114,"updated":"2013-09-12 16:12:11.000000000","message":"all three of these lines can just be removed","commit_id":"67822af54a78a76e6058515f305d3a4d984012c9"},{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"edf8e50d59c11489af04045fd9bd0fb0db3d7285","unresolved":false,"context_lines":[{"line_number":677,"context_line":"                return False"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        poll_until(result_is_active)"},{"line_number":680,"context_line":"        dbaas.instances.get(instance_info.id)"},{"line_number":681,"context_line":"        report \u003d CONFIG.get_report()"},{"line_number":682,"context_line":"        report.log(\"Created an instance, ID \u003d %s.\" % instance_info.id)"},{"line_number":683,"context_line":"        report.log(\"TIP:\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FC34%3D","line":680,"updated":"2013-09-13 00:19:09.000000000","message":"Do we need this here?","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"3fcc7be1c630235c3c313c132572e3e1a973f428","unresolved":false,"context_lines":[{"line_number":677,"context_line":"                return False"},{"line_number":678,"context_line":""},{"line_number":679,"context_line":"        poll_until(result_is_active)"},{"line_number":680,"context_line":"        dbaas.instances.get(instance_info.id)"},{"line_number":681,"context_line":"        report \u003d CONFIG.get_report()"},{"line_number":682,"context_line":"        report.log(\"Created an instance, ID \u003d %s.\" % instance_info.id)"},{"line_number":683,"context_line":"        report.log(\"TIP:\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FCV8%3D","line":680,"in_reply_to":"AAAASn%2F%2FC34%3D","updated":"2013-09-13 07:06:47.000000000","message":"I think not","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"}],"trove/tests/api/instances_actions.py":[{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"7dc9a8f2f31dadccb36a1bd6719f721e8825a345","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        poll_until(is_active, time_out\u003dTIME_OUT_TIME)"},{"line_number":431,"context_line":"        assert_equal(self.instance.status, \u0027ACTIVE\u0027)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        self.get_flavor_href(flavor_id\u003dself.expected_old_flavor_id)"},{"line_number":434,"context_line":"        assert_raises(HTTPNotImplemented, self.dbaas.instances.resize_instance,"},{"line_number":435,"context_line":"                      self.instance_id, flavors[0].id)"},{"line_number":436,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F9Hg%3D","line":433,"updated":"2013-09-16 16:30:50.000000000","message":"Is this needed if its output isn\u0027t being stored?","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"277cfff0b4ee48a8d6ec350f3463124e652c2122","unresolved":false,"context_lines":[{"line_number":430,"context_line":"        poll_until(is_active, time_out\u003dTIME_OUT_TIME)"},{"line_number":431,"context_line":"        assert_equal(self.instance.status, \u0027ACTIVE\u0027)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        self.get_flavor_href(flavor_id\u003dself.expected_old_flavor_id)"},{"line_number":434,"context_line":"        assert_raises(HTTPNotImplemented, self.dbaas.instances.resize_instance,"},{"line_number":435,"context_line":"                      self.instance_id, flavors[0].id)"},{"line_number":436,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F8Tg%3D","line":433,"in_reply_to":"AAAAS3%2F%2F9Hg%3D","updated":"2013-09-16 20:22:04.000000000","message":"i think not","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"}],"trove/tests/api/instances_mysql_down.py":[{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"7dc9a8f2f31dadccb36a1bd6719f721e8825a345","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self._wait_for_active()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def _shutdown_instance(self):"},{"line_number":80,"context_line":"        self.client.instances.get(self.id)"},{"line_number":81,"context_line":"        self.mgmt_client.management.stop(self.id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @test(depends_on\u003d[create_instance])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F9Hs%3D","line":80,"updated":"2013-09-16 16:30:50.000000000","message":"Is this call even needed if its result isn\u0027t being stored anywhere?","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"277cfff0b4ee48a8d6ec350f3463124e652c2122","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self._wait_for_active()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def _shutdown_instance(self):"},{"line_number":80,"context_line":"        self.client.instances.get(self.id)"},{"line_number":81,"context_line":"        self.mgmt_client.management.stop(self.id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @test(depends_on\u003d[create_instance])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F8TY%3D","line":80,"in_reply_to":"AAAAS3%2F%2F9Hs%3D","updated":"2013-09-16 20:22:04.000000000","message":"Yes. You are right.","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"}],"trove/tests/api/root.py":[{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"7dc9a8f2f31dadccb36a1bd6719f721e8825a345","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _root(self):"},{"line_number":72,"context_line":"        global root_password"},{"line_number":73,"context_line":"        self.dbaas.root.create(instance_info.id)"},{"line_number":74,"context_line":"        assert_equal(200, self.dbaas.last_http_code)"},{"line_number":75,"context_line":"        reh \u003d self.dbaas_admin.management.root_enabled_history"},{"line_number":76,"context_line":"        self.root_enabled_timestamp \u003d reh(instance_info.id).enabled"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F9H0%3D","line":73,"updated":"2013-09-16 16:30:50.000000000","message":"I think it\u0027s worthwhile to capture the output of this call if it does indeed return a username and password.\n\nI think fixing the \"defined but never used\" warning for user and password should be done by writing a test to assert that the output of the call is indeed valid.","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"277cfff0b4ee48a8d6ec350f3463124e652c2122","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _root(self):"},{"line_number":72,"context_line":"        global root_password"},{"line_number":73,"context_line":"        self.dbaas.root.create(instance_info.id)"},{"line_number":74,"context_line":"        assert_equal(200, self.dbaas.last_http_code)"},{"line_number":75,"context_line":"        reh \u003d self.dbaas_admin.management.root_enabled_history"},{"line_number":76,"context_line":"        self.root_enabled_timestamp \u003d reh(instance_info.id).enabled"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F8TM%3D","line":73,"in_reply_to":"AAAAS3%2F%2F9H0%3D","updated":"2013-09-16 20:22:04.000000000","message":"Again, yes, i\u0027ll do 2 assertation methods for user and password.","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"}],"trove/tests/api/user_access.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"06df4e0bc1c391cb981d4c2a8e2dc64b130a9717","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    def test_change_password_nonexistent_user(self):"},{"line_number":160,"context_line":"        user \u003d self._pick_a_user()"},{"line_number":161,"context_line":"        user[\"name\"] \u003d \"thisuserDNE\""},{"line_number":162,"context_line":"        password \u003d user[\"password\"]"},{"line_number":163,"context_line":"        if password:"},{"line_number":164,"context_line":"            pass"},{"line_number":165,"context_line":"        assert_raises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FESI%3D","line":162,"updated":"2013-09-12 16:12:11.000000000","message":"just remove these lines","commit_id":"67822af54a78a76e6058515f305d3a4d984012c9"}],"trove/tests/api/versions.py":[{"author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"change_message_id":"edf8e50d59c11489af04045fd9bd0fb0db3d7285","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @test"},{"line_number":64,"context_line":"    def test_no_slash_no_version(self):"},{"line_number":65,"context_line":"        body \u003d self._request(\u0027\u0027)"},{"line_number":66,"context_line":"        if body:"},{"line_number":67,"context_line":"            pass"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FC3Y%3D","line":65,"updated":"2013-09-13 00:19:09.000000000","message":"I think we can just remove \u0027body \u003d \u0027 to be consistent with the other tests.","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"3fcc7be1c630235c3c313c132572e3e1a973f428","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @test"},{"line_number":64,"context_line":"    def test_no_slash_no_version(self):"},{"line_number":65,"context_line":"        body \u003d self._request(\u0027\u0027)"},{"line_number":66,"context_line":"        if body:"},{"line_number":67,"context_line":"            pass"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FCVw%3D","line":65,"in_reply_to":"AAAASn%2F%2FC3Y%3D","updated":"2013-09-13 07:06:47.000000000","message":"yes","commit_id":"08bdd159a5d0df822b740105f59f6ffa381ca8df"}],"trove/tests/fakes/guestagent.py":[{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"7dc9a8f2f31dadccb36a1bd6719f721e8825a345","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        if (username, hostname) not in self.users:"},{"line_number":279,"context_line":"            raise rd_exception.UserNotFound("},{"line_number":280,"context_line":"                \"User %s cannot be found on the instance.\" % username)"},{"line_number":281,"context_line":"        self.grants.get((username, hostname), set())"},{"line_number":282,"context_line":"        if database not in self.grants.get((username, hostname), set()):"},{"line_number":283,"context_line":"            raise rd_exception.DatabaseNotFound("},{"line_number":284,"context_line":"                \"Database %s cannot be found on the instance.\" % database)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F9I4%3D","line":281,"updated":"2013-09-16 16:30:50.000000000","message":"This line can be removed outright.","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"277cfff0b4ee48a8d6ec350f3463124e652c2122","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        if (username, hostname) not in self.users:"},{"line_number":279,"context_line":"            raise rd_exception.UserNotFound("},{"line_number":280,"context_line":"                \"User %s cannot be found on the instance.\" % username)"},{"line_number":281,"context_line":"        self.grants.get((username, hostname), set())"},{"line_number":282,"context_line":"        if database not in self.grants.get((username, hostname), set()):"},{"line_number":283,"context_line":"            raise rd_exception.DatabaseNotFound("},{"line_number":284,"context_line":"                \"Database %s cannot be found on the instance.\" % database)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAS3%2F%2F8TE%3D","line":281,"in_reply_to":"AAAAS3%2F%2F9I4%3D","updated":"2013-09-16 20:22:04.000000000","message":"Ok.","commit_id":"2ea7c97de21019a78c42ff26ab1d7689496e0cec"}],"trove/tests/unittests/guestagent/test_volume.py":[{"author":{"_account_id":1375,"name":"Ed Cranford","email":"ed.cranford@gmail.com","username":"ed--cranford"},"change_message_id":"b3567947a61c0ab897725e3ce4429b36798a645b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        origin_execute \u003d utils.execute"},{"line_number":176,"context_line":"        utils.execute \u003d Mock()"},{"line_number":177,"context_line":"        open \u003d MagicMock()"},{"line_number":178,"context_line":"        if open:"},{"line_number":179,"context_line":"            pass"},{"line_number":180,"context_line":"        self.volumeMountPoint.write_to_fstab()"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAS3%2F%2FcgM%3D","line":178,"updated":"2013-09-26 15:22:04.000000000","message":"I\u0027m guessing that this is to avoid what looks like an F841, but in reality write_to_fstab() is expected to call open(), so we mock it.\n\nIf that\u0027s the case, I think that at least warrants a comment here to explain this noop. I\u0027d hate to come back in six months and not remember why this is here.","commit_id":"d90e57aa33933067dd70e114c8402d869c8a209d"}]}
