)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"49b5ea8cb135c2d1323af5392f4387668aeb0108","unresolved":false,"context_lines":[{"line_number":6226,"context_line":""},{"line_number":6227,"context_line":"def instance_group_member_delete(context, group_uuid, instance_id):"},{"line_number":6228,"context_line":"    id \u003d _instance_group_id(context, group_uuid)"},{"line_number":6229,"context_line":"    count \u003d _instance_group_model_get_query(context,"},{"line_number":6230,"context_line":"                                            models.InstanceGroupMember,"},{"line_number":6231,"context_line":"                                            id).\\"},{"line_number":6232,"context_line":"                            filter_by(instance_id\u003dinstance_id).\\"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_e13519da","line":6229,"updated":"2015-07-14 08:03:24.000000000","message":"just question, why we need change this?","commit_id":"75505891d4d444a1a95ac083120dba49691bed32"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"f10ffee454618570c8bcc1eb575a362e90dadce6","unresolved":false,"context_lines":[{"line_number":6226,"context_line":""},{"line_number":6227,"context_line":"def instance_group_member_delete(context, group_uuid, instance_id):"},{"line_number":6228,"context_line":"    id \u003d _instance_group_id(context, group_uuid)"},{"line_number":6229,"context_line":"    count \u003d _instance_group_model_get_query(context,"},{"line_number":6230,"context_line":"                                            models.InstanceGroupMember,"},{"line_number":6231,"context_line":"                                            id).\\"},{"line_number":6232,"context_line":"                            filter_by(instance_id\u003dinstance_id).\\"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_c9710546","line":6229,"in_reply_to":"9a41bdd9_1d589031","updated":"2015-07-14 15:28:51.000000000","message":"I want to keep simple, model_query() support project_only, so I think we don\u0027t need to add filter again in _instance_group_get_query()","commit_id":"75505891d4d444a1a95ac083120dba49691bed32"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"be9184e6c629ea3bca287ecd82ac03ba8dbcfd0e","unresolved":false,"context_lines":[{"line_number":6226,"context_line":""},{"line_number":6227,"context_line":"def instance_group_member_delete(context, group_uuid, instance_id):"},{"line_number":6228,"context_line":"    id \u003d _instance_group_id(context, group_uuid)"},{"line_number":6229,"context_line":"    count \u003d _instance_group_model_get_query(context,"},{"line_number":6230,"context_line":"                                            models.InstanceGroupMember,"},{"line_number":6231,"context_line":"                                            id).\\"},{"line_number":6232,"context_line":"                            filter_by(instance_id\u003dinstance_id).\\"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_1d589031","line":6229,"in_reply_to":"9a41bdd9_e13519da","updated":"2015-07-14 12:51:38.000000000","message":"In other words, how about adding a filter in _instance_group_get_query itself to get the functionality you need..is that what you were implying Alex?","commit_id":"75505891d4d444a1a95ac083120dba49691bed32"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"f10ffee454618570c8bcc1eb575a362e90dadce6","unresolved":false,"context_lines":[{"line_number":6226,"context_line":""},{"line_number":6227,"context_line":"def instance_group_member_delete(context, group_uuid, instance_id):"},{"line_number":6228,"context_line":"    id \u003d _instance_group_id(context, group_uuid)"},{"line_number":6229,"context_line":"    count \u003d _instance_group_model_get_query(context,"},{"line_number":6230,"context_line":"                                            models.InstanceGroupMember,"},{"line_number":6231,"context_line":"                                            id).\\"},{"line_number":6232,"context_line":"                            filter_by(instance_id\u003dinstance_id).\\"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_587b81f5","line":6229,"in_reply_to":"9a41bdd9_e13519da","updated":"2015-07-14 15:28:51.000000000","message":"models.InstanceGroupMember don\u0027t have \u0027project_id\u0027 attribute, so the model query can\u0027t take effect when project_only\u003dTrue, if we use  _instance_group_get_query(). And I think that the function _instance_group_model_get_query() is more suitable for handling group member, see it in _instance_group_members_add()","commit_id":"75505891d4d444a1a95ac083120dba49691bed32"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3da6b4b790bca083d60b3a1324bb24da01c6eeda","unresolved":false,"context_lines":[{"line_number":6253,"context_line":"                                       set_delete\u003dset_delete)"},{"line_number":6254,"context_line":""},{"line_number":6255,"context_line":""},{"line_number":6256,"context_line":"def instance_group_member_delete(context, group_uuid, instance_id):"},{"line_number":6257,"context_line":"    id \u003d _instance_group_id(context, group_uuid)"},{"line_number":6258,"context_line":"    count \u003d _instance_group_model_get_query(context,"},{"line_number":6259,"context_line":"                                            models.InstanceGroupMember,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_f222a951","line":6256,"updated":"2015-08-28 19:55:37.000000000","message":"I don\u0027t see this tested in the test_db_api module anywhere.","commit_id":"e301e6bf50cb989eb6d035bfe7a002f9dce59e86"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"e2267c5bd1d847bf74e81efb81a894fbc11bf4a6","unresolved":false,"context_lines":[{"line_number":6253,"context_line":"                                       set_delete\u003dset_delete)"},{"line_number":6254,"context_line":""},{"line_number":6255,"context_line":""},{"line_number":6256,"context_line":"def instance_group_member_delete(context, group_uuid, instance_id):"},{"line_number":6257,"context_line":"    id \u003d _instance_group_id(context, group_uuid)"},{"line_number":6258,"context_line":"    count \u003d _instance_group_model_get_query(context,"},{"line_number":6259,"context_line":"                                            models.InstanceGroupMember,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_13002865","line":6256,"in_reply_to":"da20952f_77bf1561","updated":"2015-09-01 06:18:32.000000000","message":"models.InstanceGroupMember don\u0027t have \u0027project_id\u0027 attribute, so the model query can\u0027t take effect when project_only\u003dTrue, if we use _instance_group_get_query(). And I think that the function _instance_group_model_get_query() is more suitable for handling group member, see it in _instance_group_members_add()","commit_id":"e301e6bf50cb989eb6d035bfe7a002f9dce59e86"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c102643b873bda59c4511cd5e4ed85b7f2e55e83","unresolved":false,"context_lines":[{"line_number":6253,"context_line":"                                       set_delete\u003dset_delete)"},{"line_number":6254,"context_line":""},{"line_number":6255,"context_line":""},{"line_number":6256,"context_line":"def instance_group_member_delete(context, group_uuid, instance_id):"},{"line_number":6257,"context_line":"    id \u003d _instance_group_id(context, group_uuid)"},{"line_number":6258,"context_line":"    count \u003d _instance_group_model_get_query(context,"},{"line_number":6259,"context_line":"                                            models.InstanceGroupMember,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_77bf1561","line":6256,"in_reply_to":"da20952f_d17f56a9","updated":"2015-08-31 22:36:52.000000000","message":"If this runs the same way, then why was it changed?","commit_id":"e301e6bf50cb989eb6d035bfe7a002f9dce59e86"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"fa07209545d81ea7ea0c2ff02a6341f8460ef247","unresolved":false,"context_lines":[{"line_number":6253,"context_line":"                                       set_delete\u003dset_delete)"},{"line_number":6254,"context_line":""},{"line_number":6255,"context_line":""},{"line_number":6256,"context_line":"def instance_group_member_delete(context, group_uuid, instance_id):"},{"line_number":6257,"context_line":"    id \u003d _instance_group_id(context, group_uuid)"},{"line_number":6258,"context_line":"    count \u003d _instance_group_model_get_query(context,"},{"line_number":6259,"context_line":"                                            models.InstanceGroupMember,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_d17f56a9","line":6256,"in_reply_to":"da20952f_f222a951","updated":"2015-08-29 07:19:48.000000000","message":"This function run as its original way.\n\ntest_instance_group_members_delete() and test_instance_group_members_invalid_ids() in test_db_api had cover the logic, so I think I don\u0027t need to add new test cases.","commit_id":"e301e6bf50cb989eb6d035bfe7a002f9dce59e86"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"96c69f133798f1ce0c85f66d16a36c60ea63fc74","unresolved":false,"context_lines":[{"line_number":8397,"context_line":""},{"line_number":8398,"context_line":"        self.assertEqual(group2.uuid, group1.uuid)"},{"line_number":8399,"context_line":""},{"line_number":8400,"context_line":"    def test_instance_group_get_by_other_project_user(self):"},{"line_number":8401,"context_line":"        values \u003d self._get_default_values()"},{"line_number":8402,"context_line":"        result1 \u003d self._create_instance_group(self.context, values)"},{"line_number":8403,"context_line":"        self.assertRaises(exception.InstanceGroupNotFound,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_2e2f88f7","line":8400,"updated":"2015-08-28 02:39:43.000000000","message":"Similar to these, I\u0027d like to see tests that show a server group created by a non-admin context and then an admin context can list (get) it and delete it.","commit_id":"acb7edd17ae225cea3eb02d8ed40bd6b26266729"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"bd2f0ca7d9f38395217e3f542ad4bb1994416a0d","unresolved":false,"context_lines":[{"line_number":8397,"context_line":""},{"line_number":8398,"context_line":"        self.assertEqual(group2.uuid, group1.uuid)"},{"line_number":8399,"context_line":""},{"line_number":8400,"context_line":"    def test_instance_group_get_by_other_project_user(self):"},{"line_number":8401,"context_line":"        values \u003d self._get_default_values()"},{"line_number":8402,"context_line":"        result1 \u003d self._create_instance_group(self.context, values)"},{"line_number":8403,"context_line":"        self.assertRaises(exception.InstanceGroupNotFound,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_8c6edc2d","line":8400,"in_reply_to":"da20952f_2e2f88f7","updated":"2015-08-28 03:57:16.000000000","message":"Done","commit_id":"acb7edd17ae225cea3eb02d8ed40bd6b26266729"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"7beeafcbfbffc21a776f2e520783383dce788fb8","unresolved":false,"context_lines":[{"line_number":8442,"context_line":""},{"line_number":8443,"context_line":"    def test_instance_group_get_by_other_project_user(self):"},{"line_number":8444,"context_line":"        values \u003d self._get_default_values()"},{"line_number":8445,"context_line":"        result1 \u003d self._create_instance_group(self.context, values)"},{"line_number":8446,"context_line":"        self.assertRaises(exception.InstanceGroupNotFound,"},{"line_number":8447,"context_line":"                          db.instance_group_get,"},{"line_number":8448,"context_line":"                          self.new_context, result1[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_94757099","line":8445,"updated":"2015-08-28 12:56:57.000000000","message":"maybe change result1 to result?","commit_id":"e301e6bf50cb989eb6d035bfe7a002f9dce59e86"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"fa07209545d81ea7ea0c2ff02a6341f8460ef247","unresolved":false,"context_lines":[{"line_number":8442,"context_line":""},{"line_number":8443,"context_line":"    def test_instance_group_get_by_other_project_user(self):"},{"line_number":8444,"context_line":"        values \u003d self._get_default_values()"},{"line_number":8445,"context_line":"        result1 \u003d self._create_instance_group(self.context, values)"},{"line_number":8446,"context_line":"        self.assertRaises(exception.InstanceGroupNotFound,"},{"line_number":8447,"context_line":"                          db.instance_group_get,"},{"line_number":8448,"context_line":"                          self.new_context, result1[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_cbc24334","line":8445,"in_reply_to":"da20952f_94757099","updated":"2015-08-29 07:19:48.000000000","message":"Done","commit_id":"e301e6bf50cb989eb6d035bfe7a002f9dce59e86"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"43429a7f76dd843b194dd08631a798b2254827cf","unresolved":false,"context_lines":[{"line_number":8470,"context_line":"            db.instance_group_delete(context.get_admin_context(),"},{"line_number":8471,"context_line":"                                     result1[\u0027uuid\u0027])"},{"line_number":8472,"context_line":"        except exception.InstanceGroupNotFound:"},{"line_number":8473,"context_line":"            self.fail(\"InstanceGroupNotFound was raised\")"},{"line_number":8474,"context_line":""},{"line_number":8475,"context_line":""},{"line_number":8476,"context_line":"class InstanceGroupMembersDBApiTestCase(InstanceGroupDBApiTestCase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_32a34102","line":8473,"updated":"2015-08-28 19:49:50.000000000","message":"Huh?  Do you expect this to happen?  It doesn\u0027t make sense to catch an exception in the test and then just fail on it - if you\u0027re OK with it failing, then just let the exception that\u0027s raised fail the test.  But this shouldn\u0027t fail.","commit_id":"e301e6bf50cb989eb6d035bfe7a002f9dce59e86"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"fa07209545d81ea7ea0c2ff02a6341f8460ef247","unresolved":false,"context_lines":[{"line_number":8470,"context_line":"            db.instance_group_delete(context.get_admin_context(),"},{"line_number":8471,"context_line":"                                     result1[\u0027uuid\u0027])"},{"line_number":8472,"context_line":"        except exception.InstanceGroupNotFound:"},{"line_number":8473,"context_line":"            self.fail(\"InstanceGroupNotFound was raised\")"},{"line_number":8474,"context_line":""},{"line_number":8475,"context_line":""},{"line_number":8476,"context_line":"class InstanceGroupMembersDBApiTestCase(InstanceGroupDBApiTestCase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"da20952f_f11b7ac8","line":8473,"in_reply_to":"da20952f_32a34102","updated":"2015-08-29 07:19:48.000000000","message":"Done","commit_id":"e301e6bf50cb989eb6d035bfe7a002f9dce59e86"}]}
