)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1a4eb8fdc658ade63cb3413e87238d158c65b06c","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-03-09 11:03:33 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify instance_group_member record is not deleted when instance"},{"line_number":8,"context_line":"is deleted"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Add instance_group_member\u0027s delete in instance_destroy db"},{"line_number":11,"context_line":"operation function."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5aef4532_5c836756","line":8,"updated":"2016-03-09 05:29:18.000000000","message":"The title can only be in one line.","commit_id":"e1ddb418f330130fdf187faf7a02dd808bb339a4"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"151439e8290f6d7583d9f168bd305e89cae27163","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zte-hanrong \u003chan.rong3@zte.com.cn\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-03-09 13:35:24 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify instance_group_member record is not deleted when instance is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add instance_group_member\u0027s delete in instance_destroy db"},{"line_number":10,"context_line":"operation function."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5aef4532_d05f5b3f","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":75},"updated":"2016-03-09 06:48:11.000000000","message":"remove \"Modify\" and check the grammar for the rest words","commit_id":"a91a98f44edf7800e8cc322b80a0f878f78aef49"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"151439e8290f6d7583d9f168bd305e89cae27163","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Modify instance_group_member record is not deleted when instance is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add instance_group_member\u0027s delete in instance_destroy db"},{"line_number":10,"context_line":"operation function."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1442098"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5aef4532_b021efb6","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":19},"updated":"2016-03-09 06:48:11.000000000","message":"refactor senstences and check grammar.","commit_id":"a91a98f44edf7800e8cc322b80a0f878f78aef49"}],"nova/api/openstack/compute/server_groups.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"85230cb6606b1599aa000690206a168328587861","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # Since we can\u0027t remove it, just make sure it\u0027s always empty."},{"line_number":61,"context_line":"        server_group[\u0027metadata\u0027] \u003d {}"},{"line_number":62,"context_line":"        members \u003d []"},{"line_number":63,"context_line":"        if group.members:"},{"line_number":64,"context_line":"            # Display the instances that are not deleted."},{"line_number":65,"context_line":"            filters \u003d {\u0027uuid\u0027: group.members, \u0027deleted\u0027: False}"},{"line_number":66,"context_line":"            instances \u003d objects.InstanceList.get_by_filters("},{"line_number":67,"context_line":"                context, filters\u003dfilters)"},{"line_number":68,"context_line":"            members \u003d [instance.uuid for instance in instances]"},{"line_number":69,"context_line":"        server_group[\u0027members\u0027] \u003d members"},{"line_number":70,"context_line":"        # Add project id information to the response data for"},{"line_number":71,"context_line":"        # API version v2.13"},{"line_number":72,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\"2.13\"):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_64c9aa78","side":"PARENT","line":69,"range":{"start_line":63,"start_character":8,"end_line":69,"end_character":41},"updated":"2016-03-08 01:50:24.000000000","message":"We can\u0027t delete those code. As in the old system, the members still include the deleted instance. We only can remove this until we ensure cleanup all those deleted instance in server-group members.\n\nFor cleanup those thing, we can cleanup the members in the runtime, and provide something like flavor migration : https://review.openstack.org/#/c/135067/17\nhttps://review.openstack.org/#/c/174480/","commit_id":"ec38c919257402f4eff70971502691fab2d0bbf0"},{"author":{"_account_id":12813,"name":"Rong Han","email":"han.rong3@zte.com.cn","username":"hanrong-zte"},"change_message_id":"3b475a0a4e7640b236712a2931402075794b8d00","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # Since we can\u0027t remove it, just make sure it\u0027s always empty."},{"line_number":61,"context_line":"        server_group[\u0027metadata\u0027] \u003d {}"},{"line_number":62,"context_line":"        members \u003d []"},{"line_number":63,"context_line":"        if group.members:"},{"line_number":64,"context_line":"            # Display the instances that are not deleted."},{"line_number":65,"context_line":"            filters \u003d {\u0027uuid\u0027: group.members, \u0027deleted\u0027: False}"},{"line_number":66,"context_line":"            instances \u003d objects.InstanceList.get_by_filters("},{"line_number":67,"context_line":"                context, filters\u003dfilters)"},{"line_number":68,"context_line":"            members \u003d [instance.uuid for instance in instances]"},{"line_number":69,"context_line":"        server_group[\u0027members\u0027] \u003d members"},{"line_number":70,"context_line":"        # Add project id information to the response data for"},{"line_number":71,"context_line":"        # API version v2.13"},{"line_number":72,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\"2.13\"):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_7075ac96","side":"PARENT","line":69,"range":{"start_line":63,"start_character":8,"end_line":69,"end_character":41},"in_reply_to":"5aef4532_123bb59d","updated":"2016-03-09 02:43:39.000000000","message":"Done","commit_id":"ec38c919257402f4eff70971502691fab2d0bbf0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48ad7e52ab546751e4bc8911b86724eb99f8b96a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # Since we can\u0027t remove it, just make sure it\u0027s always empty."},{"line_number":61,"context_line":"        server_group[\u0027metadata\u0027] \u003d {}"},{"line_number":62,"context_line":"        members \u003d []"},{"line_number":63,"context_line":"        if group.members:"},{"line_number":64,"context_line":"            # Display the instances that are not deleted."},{"line_number":65,"context_line":"            filters \u003d {\u0027uuid\u0027: group.members, \u0027deleted\u0027: False}"},{"line_number":66,"context_line":"            instances \u003d objects.InstanceList.get_by_filters("},{"line_number":67,"context_line":"                context, filters\u003dfilters)"},{"line_number":68,"context_line":"            members \u003d [instance.uuid for instance in instances]"},{"line_number":69,"context_line":"        server_group[\u0027members\u0027] \u003d members"},{"line_number":70,"context_line":"        # Add project id information to the response data for"},{"line_number":71,"context_line":"        # API version v2.13"},{"line_number":72,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\"2.13\"):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_123bb59d","side":"PARENT","line":69,"range":{"start_line":63,"start_character":8,"end_line":69,"end_character":41},"in_reply_to":"5aef4532_64c9aa78","updated":"2016-03-08 11:58:36.000000000","message":"+1 I think we have to keep this logic.\n\nI am curious how the scheduler deals with this problem, I should go dig.","commit_id":"ec38c919257402f4eff70971502691fab2d0bbf0"},{"author":{"_account_id":12813,"name":"Rong Han","email":"han.rong3@zte.com.cn","username":"hanrong-zte"},"change_message_id":"3b475a0a4e7640b236712a2931402075794b8d00","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        # Since we can\u0027t remove it, just make sure it\u0027s always empty."},{"line_number":61,"context_line":"        server_group[\u0027metadata\u0027] \u003d {}"},{"line_number":62,"context_line":"        members \u003d []"},{"line_number":63,"context_line":"        if group.members:"},{"line_number":64,"context_line":"            # Display the instances that are not deleted."},{"line_number":65,"context_line":"            filters \u003d {\u0027uuid\u0027: group.members, \u0027deleted\u0027: False}"},{"line_number":66,"context_line":"            instances \u003d objects.InstanceList.get_by_filters("},{"line_number":67,"context_line":"                context, filters\u003dfilters)"},{"line_number":68,"context_line":"            members \u003d [instance.uuid for instance in instances]"},{"line_number":69,"context_line":"        server_group[\u0027members\u0027] \u003d members"},{"line_number":70,"context_line":"        # Add project id information to the response data for"},{"line_number":71,"context_line":"        # API version v2.13"},{"line_number":72,"context_line":"        if api_version_request.is_supported(req, min_version\u003d\"2.13\"):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_304de46c","side":"PARENT","line":69,"range":{"start_line":63,"start_character":8,"end_line":69,"end_character":41},"in_reply_to":"5aef4532_64c9aa78","updated":"2016-03-09 02:43:39.000000000","message":"Done","commit_id":"ec38c919257402f4eff70971502691fab2d0bbf0"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48ad7e52ab546751e4bc8911b86724eb99f8b96a","unresolved":false,"context_lines":[{"line_number":1950,"context_line":"            soft_delete()"},{"line_number":1951,"context_line":"    model_query(context, models.InstanceGroupMember).\\"},{"line_number":1952,"context_line":"            filter_by(instance_id\u003dinstance_uuid).\\"},{"line_number":1953,"context_line":"            soft_delete()"},{"line_number":1954,"context_line":"    # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1955,"context_line":"    # column \u0027deleted\u0027 in \u0027tags\u0027 table."},{"line_number":1956,"context_line":"    context.session.query(models.Tag).filter_by("}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_325fd1e6","line":1953,"updated":"2016-03-08 11:58:36.000000000","message":"This seems correct, but I am wondering why we didn\u0027t do this in the first place now, my memory is sketch on this, but this seems a familiar conversation.","commit_id":"a19ea09589fb46e0f72d026a7525c6e5916e234e"},{"author":{"_account_id":12813,"name":"Rong Han","email":"han.rong3@zte.com.cn","username":"hanrong-zte"},"change_message_id":"3b475a0a4e7640b236712a2931402075794b8d00","unresolved":false,"context_lines":[{"line_number":1950,"context_line":"            soft_delete()"},{"line_number":1951,"context_line":"    model_query(context, models.InstanceGroupMember).\\"},{"line_number":1952,"context_line":"            filter_by(instance_id\u003dinstance_uuid).\\"},{"line_number":1953,"context_line":"            soft_delete()"},{"line_number":1954,"context_line":"    # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1955,"context_line":"    # column \u0027deleted\u0027 in \u0027tags\u0027 table."},{"line_number":1956,"context_line":"    context.session.query(models.Tag).filter_by("}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_f021bc4e","line":1953,"in_reply_to":"5aef4532_325fd1e6","updated":"2016-03-09 02:43:39.000000000","message":"Yes, before have a similar bug:https://bugs.launchpad.net/nova/+bug/1298494, \"nova server-group-list\" doesn\u0027t show members of the group.\nUsers through a restful API can not see the deleted instance member.\nThis change is to ensure that the database is the same.","commit_id":"a19ea09589fb46e0f72d026a7525c6e5916e234e"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"151439e8290f6d7583d9f168bd305e89cae27163","unresolved":false,"context_lines":[{"line_number":1948,"context_line":"    model_query(context, models.InstanceSystemMetadata).\\"},{"line_number":1949,"context_line":"            filter_by(instance_uuid\u003dinstance_uuid).\\"},{"line_number":1950,"context_line":"            soft_delete()"},{"line_number":1951,"context_line":"    model_query(context, models.InstanceGroupMember).\\"},{"line_number":1952,"context_line":"            filter_by(instance_id\u003dinstance_uuid).\\"},{"line_number":1953,"context_line":"            soft_delete()"},{"line_number":1954,"context_line":"    # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1955,"context_line":"    # column \u0027deleted\u0027 in \u0027tags\u0027 table."},{"line_number":1956,"context_line":"    context.session.query(models.Tag).filter_by("}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_d3148545","line":1953,"range":{"start_line":1951,"start_character":0,"end_line":1953,"end_character":25},"updated":"2016-03-09 06:48:11.000000000","message":"I\u0027m not quiet sure but I think we are get rid of soft_delete? I mean, newly added query should not use soft_delete?","commit_id":"a91a98f44edf7800e8cc322b80a0f878f78aef49"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"834ebc1398dddcfe9d3e851cabbf6a96da1fae88","unresolved":false,"context_lines":[{"line_number":1948,"context_line":"    model_query(context, models.InstanceSystemMetadata).\\"},{"line_number":1949,"context_line":"            filter_by(instance_uuid\u003dinstance_uuid).\\"},{"line_number":1950,"context_line":"            soft_delete()"},{"line_number":1951,"context_line":"    model_query(context, models.InstanceGroupMember).\\"},{"line_number":1952,"context_line":"            filter_by(instance_id\u003dinstance_uuid).\\"},{"line_number":1953,"context_line":"            soft_delete()"},{"line_number":1954,"context_line":"    # NOTE(snikitin): We can\u0027t use model_query here, because there is no"},{"line_number":1955,"context_line":"    # column \u0027deleted\u0027 in \u0027tags\u0027 table."},{"line_number":1956,"context_line":"    context.session.query(models.Tag).filter_by("}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_3aead60f","line":1953,"range":{"start_line":1951,"start_character":0,"end_line":1953,"end_character":25},"in_reply_to":"5aef4532_d3148545","updated":"2016-03-09 08:49:54.000000000","message":"This is fine, this is the current way of delete instance group member","commit_id":"a91a98f44edf7800e8cc322b80a0f878f78aef49"}]}
