)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"403f388d93c7f6b9e42054f0fa96ca298cb42ce5","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This method must check instance existence in CURRENT token."},{"line_number":10,"context_line":"But now it checks instance existence in ANY token. It happens"},{"line_number":11,"context_line":"because parameter token_only\u003dTrue in sqlalchemy query was missed."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Also tests for _check_instance_exists were added."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a41bdd9_25681fba","line":11,"updated":"2015-07-17 14:31:25.000000000","message":"a littit bit confused, changes are on project_id and project_only\nwhy token_only are talked here?","commit_id":"eb6c2a525e06e80bc39d9f804529f3e9794360c1"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"af1786e759d26d598faa8f8f041010ecb05f9678","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This method must check instance existence in CURRENT token."},{"line_number":10,"context_line":"But now it checks instance existence in ANY token. It happens"},{"line_number":11,"context_line":"because parameter token_only\u003dTrue in sqlalchemy query was missed."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Also tests for _check_instance_exists were added."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a41bdd9_c593734e","line":11,"in_reply_to":"9a41bdd9_25681fba","updated":"2015-07-17 14:35:59.000000000","message":"I missed it. Thank you!","commit_id":"eb6c2a525e06e80bc39d9f804529f3e9794360c1"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a05a7e49436d512ba72c973ef16663ae3c545c2f","unresolved":false,"context_lines":[{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"def _check_instance_exists(context, session, instance_uuid):"},{"line_number":1589,"context_line":"    if not model_query(context, models.Instance, session\u003dsession,"},{"line_number":1590,"context_line":"                       read_deleted\u003d\"no\", project_only\u003dTrue).filter_by("},{"line_number":1591,"context_line":"                       uuid\u003dinstance_uuid).first():"},{"line_number":1592,"context_line":"        raise exception.InstanceNotFound(instance_id\u003dinstance_uuid)"},{"line_number":1593,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_317f0aac","line":1590,"updated":"2015-08-04 10:14:23.000000000","message":"Sorry, I still don\u0027t understand why this is a good idea.\n\nThe uuid needs to be unique across the whole world.\n\nI think this should be _check_instance_exists_in_project, if you want to force this behaviour.","commit_id":"f7cb148ecc7375a8bf8bc8283fe15dba1d4d627e"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"51d3da09206d83e04c79c5a903e7de919414c31c","unresolved":false,"context_lines":[{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"def _check_instance_exists(context, session, instance_uuid):"},{"line_number":1589,"context_line":"    if not model_query(context, models.Instance, session\u003dsession,"},{"line_number":1590,"context_line":"                       read_deleted\u003d\"no\", project_only\u003dTrue).filter_by("},{"line_number":1591,"context_line":"                       uuid\u003dinstance_uuid).first():"},{"line_number":1592,"context_line":"        raise exception.InstanceNotFound(instance_id\u003dinstance_uuid)"},{"line_number":1593,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_57140643","line":1590,"in_reply_to":"1a4dcd0f_317f0aac","updated":"2015-08-04 10:30:56.000000000","message":"Hi, John. This method is needed to check if user can create/delete/update tags on specified instance. For that we should check instances only in current tenant, because otherwise user be able to delete/create/update tags on instance, which does not belongs him.\n\nTo not confused anyone I\u0027ll rename method","commit_id":"f7cb148ecc7375a8bf8bc8283fe15dba1d4d627e"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"14eaacbeea6ed51fea463b0ab751e020a9cd6eb0","unresolved":false,"context_lines":[{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"def _check_instance_exists_in_project(context, session, instance_uuid):"},{"line_number":1589,"context_line":"    if not model_query(context, models.Instance, session\u003dsession,"},{"line_number":1590,"context_line":"                       read_deleted\u003d\"no\", project_only\u003dTrue).filter_by("},{"line_number":1591,"context_line":"                       uuid\u003dinstance_uuid).first():"},{"line_number":1592,"context_line":"        raise exception.InstanceNotFound(instance_id\u003dinstance_uuid)"},{"line_number":1593,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_c08fee21","line":1590,"updated":"2015-08-04 11:25:38.000000000","message":"do we have a case that the project_only is False?\ne.g admin user to delete a tag?","commit_id":"10c57224957e828bac6ab5302ed42e12ac827e18"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"ba1a9422724abc9ae01cb82c41e3806308788b59","unresolved":false,"context_lines":[{"line_number":1587,"context_line":""},{"line_number":1588,"context_line":"def _check_instance_exists_in_project(context, session, instance_uuid):"},{"line_number":1589,"context_line":"    if not model_query(context, models.Instance, session\u003dsession,"},{"line_number":1590,"context_line":"                       read_deleted\u003d\"no\", project_only\u003dTrue).filter_by("},{"line_number":1591,"context_line":"                       uuid\u003dinstance_uuid).first():"},{"line_number":1592,"context_line":"        raise exception.InstanceNotFound(instance_id\u003dinstance_uuid)"},{"line_number":1593,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_c7cdb65e","line":1590,"in_reply_to":"1a4dcd0f_c08fee21","updated":"2015-08-04 14:40:59.000000000","message":"We haven\u0027t this case. But when admin user will try to delete tag, tag will be deleted. We need not project_only\u003dFalse for that.\n\ntest_check_instance_exists_admin_context tests this behaviour.\nIn this test admin user trying to check instance existence from non admin context.","commit_id":"10c57224957e828bac6ab5302ed42e12ac827e18"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"4386a95ca0798245e571aed3c569f0a4e8e81603","unresolved":false,"context_lines":[{"line_number":2744,"context_line":"        context1 \u003d context.RequestContext(\u0027user1\u0027, \u0027project1\u0027)"},{"line_number":2745,"context_line":"        context2 \u003d context.RequestContext(\u0027user2\u0027, \u0027project2\u0027)"},{"line_number":2746,"context_line":"        session \u003d get_session()"},{"line_number":2747,"context_line":"        instance \u003d self.create_instance_with_args(context\u003dcontext1)"},{"line_number":2748,"context_line":"        self.assertRaises(exception.InstanceNotFound,"},{"line_number":2749,"context_line":"                          sqlalchemy_api._check_instance_exists,"},{"line_number":2750,"context_line":"                          context2, session, instance[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_8e14a7e9","line":2747,"updated":"2015-07-31 08:39:03.000000000","message":"here we can also check that instance1 exists, but it is not important and maybe redundant","commit_id":"d443a64970388c5fcd563f5c914f28c75ed348ee"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"2a934e0df437504138e102c579ebab93a1f9d558","unresolved":false,"context_lines":[{"line_number":2748,"context_line":"        self.assertRaises(exception.InstanceNotFound,"},{"line_number":2749,"context_line":"                          sqlalchemy_api._check_instance_exists,"},{"line_number":2750,"context_line":"                          context2, session, instance[\u0027uuid\u0027])"},{"line_number":2751,"context_line":""},{"line_number":2752,"context_line":""},{"line_number":2753,"context_line":"class InstanceMetadataTestCase(test.TestCase):"},{"line_number":2754,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_dbd2b334","line":2751,"updated":"2015-08-03 13:45:35.000000000","message":"Can you add test with admin context related to ensure we will broke nothing on this area.\n\nSo an instance created with context1:\n\n  self.assertIsNone(sqlalchemy_api._check_instance_exists(\n                            self.ctxt, session, instance[\u0027uuid\u0027]))","commit_id":"eeef690be04d6551213630b32a699387697f76e7"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"f78ab0eb529454ea9d5b000384402779d0756693","unresolved":false,"context_lines":[{"line_number":2748,"context_line":"        self.assertRaises(exception.InstanceNotFound,"},{"line_number":2749,"context_line":"                          sqlalchemy_api._check_instance_exists,"},{"line_number":2750,"context_line":"                          context2, session, instance[\u0027uuid\u0027])"},{"line_number":2751,"context_line":""},{"line_number":2752,"context_line":""},{"line_number":2753,"context_line":"class InstanceMetadataTestCase(test.TestCase):"},{"line_number":2754,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_4173164e","line":2751,"in_reply_to":"1a4dcd0f_dbd2b334","updated":"2015-08-03 14:11:58.000000000","message":"good idea!","commit_id":"eeef690be04d6551213630b32a699387697f76e7"}]}
