)]}'
{"nova/context.py":[{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6865a9413062d042f6bbbdae8f2a6880ece487b","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        \"\"\"Helper function for finding the authentication"},{"line_number":221,"context_line":"        parameters for communicating with keystone"},{"line_number":222,"context_line":"        :param context: The request context, for access checks"},{"line_number":223,"context_line":"        \"\"\""},{"line_number":224,"context_line":"        auth_url \u003d None"},{"line_number":225,"context_line":"        plugin \u003d _ContextAuthPlugin(context.auth_token,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_75e36e34","line":222,"updated":"2015-11-30 18:24:05.000000000","message":"do we neeed a docstring for this? a private method that\u0027s only called once","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"cadfbf7eef86ea1cd2d296186662996d8a465426","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        \"\"\"Helper function for finding the authentication"},{"line_number":221,"context_line":"        parameters for communicating with keystone"},{"line_number":222,"context_line":"        :param context: The request context, for access checks"},{"line_number":223,"context_line":"        \"\"\""},{"line_number":224,"context_line":"        auth_url \u003d None"},{"line_number":225,"context_line":"        plugin \u003d _ContextAuthPlugin(context.auth_token,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e143f26a","line":222,"in_reply_to":"9a8ffd7b_75e36e34","updated":"2015-12-01 14:22:56.000000000","message":"Done","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6865a9413062d042f6bbbdae8f2a6880ece487b","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def get_project(self, context, project_id, subtree\u003dFalse):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        \"\"\"Helper function for finding the parent_id of a project."},{"line_number":239,"context_line":"        For root project ,parent_id is NULL"},{"line_number":240,"context_line":"        :param context: The request context, for access checks"},{"line_number":241,"context_line":"        :param project_id: The ID of the project whose parent_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_95f852c6","line":238,"updated":"2015-11-30 18:24:05.000000000","message":"name it get_parent_project, then. And, seems like you\u0027re getting the whole project ref, instead of only the parent_id.","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"cadfbf7eef86ea1cd2d296186662996d8a465426","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def get_project(self, context, project_id, subtree\u003dFalse):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        \"\"\"Helper function for finding the parent_id of a project."},{"line_number":239,"context_line":"        For root project ,parent_id is NULL"},{"line_number":240,"context_line":"        :param context: The request context, for access checks"},{"line_number":241,"context_line":"        :param project_id: The ID of the project whose parent_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_214a5a84","line":238,"in_reply_to":"9a8ffd7b_95f852c6","updated":"2015-12-01 14:22:56.000000000","message":"Done","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6865a9413062d042f6bbbdae8f2a6880ece487b","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        :param project_id: The ID of the project whose parent_id"},{"line_number":242,"context_line":"                           needs to be found out."},{"line_number":243,"context_line":"        \"\"\""},{"line_number":244,"context_line":"        auth_param \u003d self._get_auth_parameters(context)"},{"line_number":245,"context_line":"        token \u003d auth_param.get(\"token\")"},{"line_number":246,"context_line":"        auth_url \u003d auth_param.get(\"auth_url\")"},{"line_number":247,"context_line":"        keystone \u003d client.Client(token\u003dtoken, auth_url\u003dauth_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_758cce7f","line":244,"updated":"2015-11-30 18:24:05.000000000","message":"nit: rename it to auth_params","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"cadfbf7eef86ea1cd2d296186662996d8a465426","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        :param project_id: The ID of the project whose parent_id"},{"line_number":242,"context_line":"                           needs to be found out."},{"line_number":243,"context_line":"        \"\"\""},{"line_number":244,"context_line":"        auth_param \u003d self._get_auth_parameters(context)"},{"line_number":245,"context_line":"        token \u003d auth_param.get(\"token\")"},{"line_number":246,"context_line":"        auth_url \u003d auth_param.get(\"auth_url\")"},{"line_number":247,"context_line":"        keystone \u003d client.Client(token\u003dtoken, auth_url\u003dauth_url,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_41bf5e60","line":244,"in_reply_to":"9a8ffd7b_758cce7f","updated":"2015-12-01 14:22:56.000000000","message":"Done","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6865a9413062d042f6bbbdae8f2a6880ece487b","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        token \u003d auth_param.get(\"token\")"},{"line_number":246,"context_line":"        auth_url \u003d auth_param.get(\"auth_url\")"},{"line_number":247,"context_line":"        keystone \u003d client.Client(token\u003dtoken, auth_url\u003dauth_url,"},{"line_number":248,"context_line":"                                 project_id\u003dcontext.project_id)"},{"line_number":249,"context_line":"        project \u003d keystone.projects.get(project_id,"},{"line_number":250,"context_line":"                                        subtree_as_ids\u003dsubtree)"},{"line_number":251,"context_line":"        return project"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_554d0ac3","line":248,"updated":"2015-11-30 18:24:05.000000000","message":"Looks like you\u0027re either getting the project itself or its whole subtree. I don\u0027t see how you get the parent_id in here","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"cadfbf7eef86ea1cd2d296186662996d8a465426","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        token \u003d auth_param.get(\"token\")"},{"line_number":246,"context_line":"        auth_url \u003d auth_param.get(\"auth_url\")"},{"line_number":247,"context_line":"        keystone \u003d client.Client(token\u003dtoken, auth_url\u003dauth_url,"},{"line_number":248,"context_line":"                                 project_id\u003dcontext.project_id)"},{"line_number":249,"context_line":"        project \u003d keystone.projects.get(project_id,"},{"line_number":250,"context_line":"                                        subtree_as_ids\u003dsubtree)"},{"line_number":251,"context_line":"        return project"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_619382fb","line":248,"in_reply_to":"9a8ffd7b_554d0ac3","updated":"2015-12-01 14:22:56.000000000","message":"the project object will contain the parent_id information on it.\n\nSo I will be able to do: \u0027project.parent_id\u0027 to get the parent_id","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f6865a9413062d042f6bbbdae8f2a6880ece487b","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        elif context.quota_class !\u003d class_name:"},{"line_number":311,"context_line":"            raise exception.Forbidden()"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"KEYSTONE \u003d HierarchyInfo()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_b5c0f67d","line":313,"updated":"2015-11-30 18:24:05.000000000","message":"why call it KEYSTONE? it gives the idea that we can parse everything from keystone in here. I\u0027d just call it HIERARCHY.","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"cadfbf7eef86ea1cd2d296186662996d8a465426","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        elif context.quota_class !\u003d class_name:"},{"line_number":311,"context_line":"            raise exception.Forbidden()"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"KEYSTONE \u003d HierarchyInfo()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_81530639","line":313,"in_reply_to":"9a8ffd7b_b5c0f67d","updated":"2015-12-01 14:22:56.000000000","message":"Done","commit_id":"848fb2ab71edb3f20708be4f3b09e8385493329f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6c28d771279d81e9258a45226235ef1e3443b01d","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"\"\"\"RequestContext: context for requests that persist through all of nova.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import copy"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystoneclient import auth"},{"line_number":23,"context_line":"from keystoneclient import service_catalog"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_74d85ef0","side":"PARENT","line":20,"updated":"2015-12-22 15:52:00.000000000","message":"This one should have an own block, it\u0027s part of std.","commit_id":"3f5b512058ff9275f8c43a9a47c350684f006f76"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2844445d4a417fa5a430f891ab15168093ee5a52","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"\"\"\"RequestContext: context for requests that persist through all of nova.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import copy"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystoneclient import auth"},{"line_number":23,"context_line":"from keystoneclient import service_catalog"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_129b18cb","side":"PARENT","line":20,"in_reply_to":"1a7b0d38_74d85ef0","updated":"2015-12-23 01:00:29.000000000","message":"Done","commit_id":"3f5b512058ff9275f8c43a9a47c350684f006f76"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6c28d771279d81e9258a45226235ef1e3443b01d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from keystoneclient import service_catalog"},{"line_number":25,"context_line":"from keystoneclient import session"},{"line_number":26,"context_line":"from keystoneclient.v3 import client"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from oslo_config import cfg"},{"line_number":29,"context_line":"from oslo_context import context"},{"line_number":30,"context_line":"from oslo_db.sqlalchemy import enginefacade"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_d4c6f215","line":27,"updated":"2015-12-22 15:52:00.000000000","message":"imports of keystoneclient and oslo_* should be on same block, there are third part, right ?","commit_id":"e3fae1c3bf0fa3bfa88c43e87920b4a572c19ab1"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"2844445d4a417fa5a430f891ab15168093ee5a52","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from keystoneclient import service_catalog"},{"line_number":25,"context_line":"from keystoneclient import session"},{"line_number":26,"context_line":"from keystoneclient.v3 import client"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from oslo_config import cfg"},{"line_number":29,"context_line":"from oslo_context import context"},{"line_number":30,"context_line":"from oslo_db.sqlalchemy import enginefacade"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_725ffc0e","line":27,"in_reply_to":"1a7b0d38_d4c6f215","updated":"2015-12-23 01:00:29.000000000","message":"PEP-8 order:\nstdlib\nthird party\nlocal\n\nso arranged accordingly. Please check.","commit_id":"e3fae1c3bf0fa3bfa88c43e87920b4a572c19ab1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystoneclient import auth"},{"line_number":23,"context_line":"from keystoneclient import service_catalog"},{"line_number":24,"context_line":"from keystoneclient.v3 import client"},{"line_number":25,"context_line":"from oslo_context import context"},{"line_number":26,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":27,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_558f6474","line":24,"updated":"2016-01-07 03:25:35.000000000","message":"I don\u0027t think clients should be imported via the version path directly, instead:\n\n from keystoneclient import client\n\nand then specify the version kwarg when creating the client object","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"3a7efb4eb92bf99876d7740b81464ad0c0179bf1","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from keystoneclient import auth"},{"line_number":23,"context_line":"from keystoneclient import service_catalog"},{"line_number":24,"context_line":"from keystoneclient.v3 import client"},{"line_number":25,"context_line":"from oslo_context import context"},{"line_number":26,"context_line":"from oslo_db.sqlalchemy import enginefacade"},{"line_number":27,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_512be394","line":24,"in_reply_to":"fa69d971_558f6474","updated":"2016-01-07 13:31:21.000000000","message":"Done","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":219,"context_line":"class HierarchyInfo(context.RequestContext):"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def _get_auth_parameters(self, context):"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        \"\"\"Helper function for finding the authentication"},{"line_number":224,"context_line":"        parameters for communicating with keystone"},{"line_number":225,"context_line":"        :param context: The request context, for access checks"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_f521b89e","line":222,"updated":"2016-01-07 03:25:35.000000000","message":"You don\u0027t need to add a blank line before a docstring","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"3a7efb4eb92bf99876d7740b81464ad0c0179bf1","unresolved":false,"context_lines":[{"line_number":219,"context_line":"class HierarchyInfo(context.RequestContext):"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def _get_auth_parameters(self, context):"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        \"\"\"Helper function for finding the authentication"},{"line_number":224,"context_line":"        parameters for communicating with keystone"},{"line_number":225,"context_line":"        :param context: The request context, for access checks"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_111c8b76","line":222,"in_reply_to":"fa69d971_f521b89e","updated":"2016-01-07 13:31:21.000000000","message":"Done","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        auth_param \u003d {\"token\": token, \"auth_url\": auth_url}"},{"line_number":237,"context_line":"        return auth_param"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def get_project(self, context, project_id, subtree\u003dFalse):"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        \"\"\"Helper function for finding the parent_id of a project."},{"line_number":242,"context_line":"        For root project ,parent_id is NULL"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_b5c26083","line":239,"range":{"start_line":239,"start_character":47,"end_line":239,"end_character":60},"updated":"2016-01-07 03:25:35.000000000","message":"You need a :param in the docstring for this. What does it mean?","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"3a7efb4eb92bf99876d7740b81464ad0c0179bf1","unresolved":false,"context_lines":[{"line_number":236,"context_line":"        auth_param \u003d {\"token\": token, \"auth_url\": auth_url}"},{"line_number":237,"context_line":"        return auth_param"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    def get_project(self, context, project_id, subtree\u003dFalse):"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        \"\"\"Helper function for finding the parent_id of a project."},{"line_number":242,"context_line":"        For root project ,parent_id is NULL"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_d1159349","line":239,"range":{"start_line":239,"start_character":47,"end_line":239,"end_character":60},"in_reply_to":"fa69d971_b5c26083","updated":"2016-01-07 13:31:21.000000000","message":"Done","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    def get_project(self, context, project_id, subtree\u003dFalse):"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        \"\"\"Helper function for finding the parent_id of a project."},{"line_number":242,"context_line":"        For root project ,parent_id is NULL"},{"line_number":243,"context_line":"        :param context: The request context, for access checks"},{"line_number":244,"context_line":"        :param project_id: The ID of the project whose parent_id"},{"line_number":245,"context_line":"                           needs to be found out."}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_75706840","line":242,"range":{"start_line":242,"start_character":24,"end_line":242,"end_character":26},"updated":"2016-01-07 03:25:35.000000000","message":"typo","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"3a7efb4eb92bf99876d7740b81464ad0c0179bf1","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    def get_project(self, context, project_id, subtree\u003dFalse):"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        \"\"\"Helper function for finding the parent_id of a project."},{"line_number":242,"context_line":"        For root project ,parent_id is NULL"},{"line_number":243,"context_line":"        :param context: The request context, for access checks"},{"line_number":244,"context_line":"        :param project_id: The ID of the project whose parent_id"},{"line_number":245,"context_line":"                           needs to be found out."}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_f4fd2509","line":242,"range":{"start_line":242,"start_character":24,"end_line":242,"end_character":26},"in_reply_to":"fa69d971_75706840","updated":"2016-01-07 13:31:21.000000000","message":"Done","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        token \u003d auth_param.get(\"token\")"},{"line_number":249,"context_line":"        auth_url \u003d auth_param.get(\"auth_url\")"},{"line_number":250,"context_line":"        keystone \u003d client.Client(token\u003dtoken, auth_url\u003dauth_url,"},{"line_number":251,"context_line":"                                 project_id\u003dcontext.project_id)"},{"line_number":252,"context_line":"        project \u003d keystone.projects.get(project_id,"},{"line_number":253,"context_line":"                                        subtree_as_ids\u003dsubtree)"},{"line_number":254,"context_line":"        return project"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_b5db407b","line":251,"updated":"2016-01-07 03:25:35.000000000","message":"pass version\u003d(3,) here to get v3","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"3a7efb4eb92bf99876d7740b81464ad0c0179bf1","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        token \u003d auth_param.get(\"token\")"},{"line_number":249,"context_line":"        auth_url \u003d auth_param.get(\"auth_url\")"},{"line_number":250,"context_line":"        keystone \u003d client.Client(token\u003dtoken, auth_url\u003dauth_url,"},{"line_number":251,"context_line":"                                 project_id\u003dcontext.project_id)"},{"line_number":252,"context_line":"        project \u003d keystone.projects.get(project_id,"},{"line_number":253,"context_line":"                                        subtree_as_ids\u003dsubtree)"},{"line_number":254,"context_line":"        return project"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_341c1d6a","line":251,"in_reply_to":"fa69d971_b5db407b","updated":"2016-01-07 13:31:21.000000000","message":"Done","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                                 project_id\u003dcontext.project_id)"},{"line_number":252,"context_line":"        project \u003d keystone.projects.get(project_id,"},{"line_number":253,"context_line":"                                        subtree_as_ids\u003dsubtree)"},{"line_number":254,"context_line":"        return project"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def get_admin_context(read_deleted\u003d\"no\"):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_95707c0c","line":254,"updated":"2016-01-07 03:25:35.000000000","message":"The docstring says this function finds the parent_id of a project. But this line isn\u0027t returning the project.parent_id, it\u0027s returning the entire project object. Either the docstring to be updated or this needs to return the parent_id and function name also communicate it: \"get_project_parent_id\"","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"3a7efb4eb92bf99876d7740b81464ad0c0179bf1","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                                 project_id\u003dcontext.project_id)"},{"line_number":252,"context_line":"        project \u003d keystone.projects.get(project_id,"},{"line_number":253,"context_line":"                                        subtree_as_ids\u003dsubtree)"},{"line_number":254,"context_line":"        return project"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def get_admin_context(read_deleted\u003d\"no\"):"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_548c317f","line":254,"in_reply_to":"fa69d971_95707c0c","updated":"2016-01-07 13:31:21.000000000","message":"In the first moment we had two methods. One to return the parent_id and other to return the subtree. So, we decided mix this methods and return the object project and access this informations  instead of two requests, and I forgot to update the docstring. I\u0027ll fix it.","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        elif context.quota_class !\u003d class_name:"},{"line_number":314,"context_line":"            raise exception.Forbidden()"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"KEYSTONE \u003d HierarchyInfo()"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_550204b5","line":316,"updated":"2016-01-07 03:25:35.000000000","message":"I think globals should go at the top, under LOG","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"5a7c6ec154603070ce6c51ea6994231614e59a01","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        return client.Client(auth_url\u003dCONF.keystone_authtoken.auth_uri,"},{"line_number":243,"context_line":"                             session\u003dclient_session)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def get_project(self, context, project_id, subtree\u003dFalse):"},{"line_number":246,"context_line":"        \"\"\"Helper function for return the entire project project, with the"},{"line_number":247,"context_line":"        parent_id and subtree information."},{"line_number":248,"context_line":"        :param context: The request context, for access checks"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a89bdaa_16b0fc8a","line":245,"updated":"2016-09-09 15:37:58.000000000","message":"What about parents?","commit_id":"9ed8489db28e2b01f90b620e3d1312ee2fbd696f"}],"nova/tests/unit/test_context.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"import uuid"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_context import context as o_context"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_15f1ec6a","line":15,"updated":"2016-01-07 03:25:35.000000000","message":"mock is a third-party import and should go with the olso imports","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"3a7efb4eb92bf99876d7740b81464ad0c0179bf1","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"import uuid"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from oslo_context import context as o_context"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_d4f6e1f8","line":15,"in_reply_to":"fa69d971_15f1ec6a","updated":"2016-01-07 13:31:21.000000000","message":"Done","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7f9c207ad743b544ce8c264479a6cca9a3afced6","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        super(HierarhcyInfoTestCase, self).setUp()"},{"line_number":242,"context_line":"        self.keystone \u003d context.KEYSTONE"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        self.req \u003d self.mox.CreateMockAnything()"},{"line_number":245,"context_line":"        self.req.environ \u003d {\u0027nova.context\u0027: context.get_admin_context()}"},{"line_number":246,"context_line":"        self.req.environ[\u0027nova.context\u0027].is_admin \u003d True"},{"line_number":247,"context_line":"        self.req.environ[\u0027nova.context\u0027].auth_token \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_d5e6f4ae","line":244,"range":{"start_line":244,"start_character":19,"end_line":244,"end_character":48},"updated":"2016-01-07 03:25:35.000000000","message":"We don\u0027t want to use mox going forward. Can this just be a mock.Mock()?","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"3a7efb4eb92bf99876d7740b81464ad0c0179bf1","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        super(HierarhcyInfoTestCase, self).setUp()"},{"line_number":242,"context_line":"        self.keystone \u003d context.KEYSTONE"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        self.req \u003d self.mox.CreateMockAnything()"},{"line_number":245,"context_line":"        self.req.environ \u003d {\u0027nova.context\u0027: context.get_admin_context()}"},{"line_number":246,"context_line":"        self.req.environ[\u0027nova.context\u0027].is_admin \u003d True"},{"line_number":247,"context_line":"        self.req.environ[\u0027nova.context\u0027].auth_token \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa69d971_74c3758b","line":244,"range":{"start_line":244,"start_character":19,"end_line":244,"end_character":48},"in_reply_to":"fa69d971_d5e6f4ae","updated":"2016-01-07 13:31:21.000000000","message":"I believe that I can fix that. Thanks!","commit_id":"f03f9ce96b02b764624ea0284bb0c8dc8eea84d1"}]}
