)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"8a3858435f9999146f0821661efa6a23c443cdb5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"creation. So, emulate it correctly providing all requried keys."},{"line_number":11,"context_line":"Also add \u0027provider_location\u0027 attribute to share group snapshot"},{"line_number":12,"context_line":"members model, because it is required for some drivers and was absent."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: If120d85ef3dd3ba90e2dc12a5b81b69feecb31ea"},{"line_number":15,"context_line":"Closes-Bug; #1660321"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a461143_eb02c6b3","line":13,"updated":"2017-02-02 12:33:37.000000000","message":"APIImpact","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d8d410d5bfaeeb006c9254d78ea5391446040aec","unresolved":false,"context_lines":[{"line_number":10,"context_line":"creation. So, emulate it correctly providing all requried keys."},{"line_number":11,"context_line":"Also add \u0027provider_location\u0027 attribute to share group snapshot"},{"line_number":12,"context_line":"members model, because it is required for some drivers and was absent."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: If120d85ef3dd3ba90e2dc12a5b81b69feecb31ea"},{"line_number":15,"context_line":"Closes-Bug; #1660321"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a461143_46082f92","line":13,"in_reply_to":"3a461143_eb02c6b3","updated":"2017-02-02 13:10:52.000000000","message":"Where do you see impact to API?","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"8a3858435f9999146f0821661efa6a23c443cdb5","unresolved":false,"context_lines":[{"line_number":12,"context_line":"members model, because it is required for some drivers and was absent."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: If120d85ef3dd3ba90e2dc12a5b81b69feecb31ea"},{"line_number":15,"context_line":"Closes-Bug; #1660321"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a461143_0b1712ee","line":15,"range":{"start_line":15,"start_character":10,"end_line":15,"end_character":11},"updated":"2017-02-02 12:33:37.000000000","message":":","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d8d410d5bfaeeb006c9254d78ea5391446040aec","unresolved":false,"context_lines":[{"line_number":12,"context_line":"members model, because it is required for some drivers and was absent."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: If120d85ef3dd3ba90e2dc12a5b81b69feecb31ea"},{"line_number":15,"context_line":"Closes-Bug; #1660321"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a461143_66fd2b6e","line":15,"range":{"start_line":15,"start_character":10,"end_line":15,"end_character":11},"in_reply_to":"3a461143_0b1712ee","updated":"2017-02-02 13:10:52.000000000","message":"Done","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"4210ed3693a3e23681cbad36342807de8615c603","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix default approach for share group snapshot creation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Default approach uses common driver interface of single snapshot"},{"line_number":10,"context_line":"creation. So, emulate it correctly providing all requried keys."},{"line_number":11,"context_line":"Also add \u0027provider_location\u0027 attribute to share group snapshot"},{"line_number":12,"context_line":"members DB model, because it is required for some drivers and"},{"line_number":13,"context_line":"was absent."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a461143_b3d581ba","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":57},"updated":"2017-02-02 19:28:31.000000000","message":"typo \"required\"","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ebf1dac764180bcc22a972fd774a03563cf1ed37","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix default approach for share group snapshot creation"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Default approach uses common driver interface of single snapshot"},{"line_number":10,"context_line":"creation. So, emulate it correctly providing all requried keys."},{"line_number":11,"context_line":"Also add \u0027provider_location\u0027 attribute to share group snapshot"},{"line_number":12,"context_line":"members DB model, because it is required for some drivers and"},{"line_number":13,"context_line":"was absent."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a430d35_5d41f938","line":10,"range":{"start_line":10,"start_character":49,"end_line":10,"end_character":57},"in_reply_to":"3a461143_b3d581ba","updated":"2017-02-03 13:28:36.000000000","message":"Done","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"}],"manila/api/views/share_group_snapshots.py":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"8a3858435f9999146f0821661efa6a23c443cdb5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                \u0027share_group_snapshot_id\u0027: member.get("},{"line_number":42,"context_line":"                    \u0027share_group_snapshot_id\u0027),"},{"line_number":43,"context_line":"                \u0027share_id\u0027: member.get(\u0027share_id\u0027),"},{"line_number":44,"context_line":"                # TODO(vponomaryov): add \u0027provider_location\u0027 key in Pike."},{"line_number":45,"context_line":"            }"},{"line_number":46,"context_line":"            members_list.append(member_dict)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_cbf50acc","line":44,"range":{"start_line":44,"start_character":16,"end_line":44,"end_character":73},"updated":"2017-02-02 12:33:37.000000000","message":"doesn\u0027t commit message say you\u0027re adding this right now?","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d8d410d5bfaeeb006c9254d78ea5391446040aec","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                \u0027share_group_snapshot_id\u0027: member.get("},{"line_number":42,"context_line":"                    \u0027share_group_snapshot_id\u0027),"},{"line_number":43,"context_line":"                \u0027share_id\u0027: member.get(\u0027share_id\u0027),"},{"line_number":44,"context_line":"                # TODO(vponomaryov): add \u0027provider_location\u0027 key in Pike."},{"line_number":45,"context_line":"            }"},{"line_number":46,"context_line":"            members_list.append(member_dict)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_e6f11b97","line":44,"range":{"start_line":44,"start_character":16,"end_line":44,"end_character":73},"in_reply_to":"3a461143_cbf50acc","updated":"2017-02-02 13:10:52.000000000","message":"To DataBase only.","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d06ede2ff0dc913910ee1447577e343f11e21c5b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                \u0027share_group_snapshot_id\u0027: member.get("},{"line_number":42,"context_line":"                    \u0027share_group_snapshot_id\u0027),"},{"line_number":43,"context_line":"                \u0027share_id\u0027: member.get(\u0027share_id\u0027),"},{"line_number":44,"context_line":"                # TODO(vponomaryov): add \u0027provider_location\u0027 key in Pike."},{"line_number":45,"context_line":"            }"},{"line_number":46,"context_line":"            members_list.append(member_dict)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_f87368e5","line":44,"range":{"start_line":44,"start_character":15,"end_line":44,"end_character":73},"updated":"2017-02-02 19:25:26.000000000","message":"Why not add it now? It\u0027s an experimental feature..","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"4210ed3693a3e23681cbad36342807de8615c603","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                \u0027share_group_snapshot_id\u0027: member.get("},{"line_number":42,"context_line":"                    \u0027share_group_snapshot_id\u0027),"},{"line_number":43,"context_line":"                \u0027share_id\u0027: member.get(\u0027share_id\u0027),"},{"line_number":44,"context_line":"                # TODO(vponomaryov): add \u0027provider_location\u0027 key in Pike."},{"line_number":45,"context_line":"            }"},{"line_number":46,"context_line":"            members_list.append(member_dict)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_8e6dbece","line":44,"updated":"2017-02-02 19:28:31.000000000","message":"why aren\u0027t you adding this here? you add it in other places","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ebf1dac764180bcc22a972fd774a03563cf1ed37","unresolved":false,"context_lines":[{"line_number":41,"context_line":"                \u0027share_group_snapshot_id\u0027: member.get("},{"line_number":42,"context_line":"                    \u0027share_group_snapshot_id\u0027),"},{"line_number":43,"context_line":"                \u0027share_id\u0027: member.get(\u0027share_id\u0027),"},{"line_number":44,"context_line":"                # TODO(vponomaryov): add \u0027provider_location\u0027 key in Pike."},{"line_number":45,"context_line":"            }"},{"line_number":46,"context_line":"            members_list.append(member_dict)"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a430d35_1d6e91c9","line":44,"in_reply_to":"3a461143_8e6dbece","updated":"2017-02-03 13:28:36.000000000","message":"It will require API bump. It is not really needed for bugfix.","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"}],"manila/db/migrations/alembic/versions/927920b37453_add_provider_location_for_share_group_snapshot_members_model.py":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"8a3858435f9999146f0821661efa6a23c443cdb5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def upgrade():"},{"line_number":34,"context_line":"    op.add_column("},{"line_number":35,"context_line":"        SGSM_TABLE_NAME,"},{"line_number":36,"context_line":"        sa.Column(PROVIDER_LOCATION_NAME, sa.String(255), nullable\u003dTrue),"},{"line_number":37,"context_line":"    )"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_cbca6a6e","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":73},"updated":"2017-02-02 12:33:37.000000000","message":"how about adding export locations as well? any snapshot created by a driver for shares in a group will return export locations when mount_snapshot_support\u003dTrue, but it will not be displayed","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d8d410d5bfaeeb006c9254d78ea5391446040aec","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def upgrade():"},{"line_number":34,"context_line":"    op.add_column("},{"line_number":35,"context_line":"        SGSM_TABLE_NAME,"},{"line_number":36,"context_line":"        sa.Column(PROVIDER_LOCATION_NAME, sa.String(255), nullable\u003dTrue),"},{"line_number":37,"context_line":"    )"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_261163b0","line":36,"range":{"start_line":36,"start_character":8,"end_line":36,"end_character":73},"in_reply_to":"3a461143_cbca6a6e","updated":"2017-02-02 13:10:52.000000000","message":"Read TODO in models.py file. It will be added in Pike.","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d06ede2ff0dc913910ee1447577e343f11e21c5b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3a461143_24122a0a","updated":"2017-02-02 19:25:26.000000000","message":"Can we take this opportunity to introduce \"consistent_snapshot_support\" to make the group-snapshot API meaningful when using the extra-spec \"consistent_snapshots\u003dTrue\"?","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ebf1dac764180bcc22a972fd774a03563cf1ed37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1a430d35_a61d6911","in_reply_to":"3a461143_24122a0a","updated":"2017-02-03 13:28:36.000000000","message":"This commit fixes \"default approach for share group snapshot creation\". Your request is about separate thing.","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8b0e27c363004e0b80d30949f33bc7081c229530","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_3288ca22","line":1,"updated":"2017-02-03 18:06:32.000000000","message":"fyi - no copyright","commit_id":"89e443ea09dad77d76a54ae574aedc8538b01c9e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a7c7e5f366bccbf694a4e12cd6fc28e0eb94cd94","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_18012daf","line":1,"in_reply_to":"1a430d35_3288ca22","updated":"2017-02-03 18:10:06.000000000","message":"It is ok.","commit_id":"89e443ea09dad77d76a54ae574aedc8538b01c9e"}],"manila/db/sqlalchemy/models.py":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"8a3858435f9999146f0821661efa6a23c443cdb5","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"                     \u0027ShareGroupShareTypeMapping.deleted \u003d\u003d \"False\")\u0027)"},{"line_number":1148,"context_line":"    )"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"# TODO(vponomaryov): add \u0027share_group_snapshot_member_export_locations\u0027 model"},{"line_number":1151,"context_line":"# to support mountable share group snapshots and add its relationship to"},{"line_number":1152,"context_line":"# \u0027share_group_snapshot_members\u0027 table."},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"class ShareGroupSnapshotMember(BASE, ManilaBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_4ba59ab3","line":1152,"range":{"start_line":1150,"start_character":1,"end_line":1152,"end_character":39},"updated":"2017-02-02 12:33:37.000000000","message":"in Pike or in next patch?","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d8d410d5bfaeeb006c9254d78ea5391446040aec","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"                     \u0027ShareGroupShareTypeMapping.deleted \u003d\u003d \"False\")\u0027)"},{"line_number":1148,"context_line":"    )"},{"line_number":1149,"context_line":""},{"line_number":1150,"context_line":"# TODO(vponomaryov): add \u0027share_group_snapshot_member_export_locations\u0027 model"},{"line_number":1151,"context_line":"# to support mountable share group snapshots and add its relationship to"},{"line_number":1152,"context_line":"# \u0027share_group_snapshot_members\u0027 table."},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"class ShareGroupSnapshotMember(BASE, ManilaBase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_c6697f27","line":1152,"range":{"start_line":1150,"start_character":1,"end_line":1152,"end_character":39},"in_reply_to":"3a461143_4ba59ab3","updated":"2017-02-02 13:10:52.000000000","message":"In another commit starting with Pike timeframe.","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d06ede2ff0dc913910ee1447577e343f11e21c5b","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"    \"\"\"Represents the share snapshots in a share group snapshot.\"\"\""},{"line_number":1157,"context_line":"    __tablename__ \u003d \u0027share_group_snapshot_members\u0027"},{"line_number":1158,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue)"},{"line_number":1159,"context_line":"    # TODO(vponomaryov): make \u0027share_group_snapshot_id\u0027 not nullable."},{"line_number":1160,"context_line":"    share_group_snapshot_id \u003d Column("},{"line_number":1161,"context_line":"        String(36), ForeignKey(\u0027share_group_snapshots.id\u0027))"},{"line_number":1162,"context_line":"    share_id \u003d Column(String(36), ForeignKey(\u0027shares.id\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_24294a38","line":1159,"range":{"start_line":1159,"start_character":4,"end_line":1159,"end_character":69},"updated":"2017-02-02 19:25:26.000000000","message":"do it now?","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ebf1dac764180bcc22a972fd774a03563cf1ed37","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"    \"\"\"Represents the share snapshots in a share group snapshot.\"\"\""},{"line_number":1157,"context_line":"    __tablename__ \u003d \u0027share_group_snapshot_members\u0027"},{"line_number":1158,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue)"},{"line_number":1159,"context_line":"    # TODO(vponomaryov): make \u0027share_group_snapshot_id\u0027 not nullable."},{"line_number":1160,"context_line":"    share_group_snapshot_id \u003d Column("},{"line_number":1161,"context_line":"        String(36), ForeignKey(\u0027share_group_snapshots.id\u0027))"},{"line_number":1162,"context_line":"    share_id \u003d Column(String(36), ForeignKey(\u0027shares.id\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a430d35_bd5f3d0d","line":1159,"range":{"start_line":1159,"start_character":4,"end_line":1159,"end_character":69},"in_reply_to":"3a461143_24294a38","updated":"2017-02-03 13:28:36.000000000","message":"Not needed for bugfix.","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d06ede2ff0dc913910ee1447577e343f11e21c5b","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"    share_group_snapshot_id \u003d Column("},{"line_number":1161,"context_line":"        String(36), ForeignKey(\u0027share_group_snapshots.id\u0027))"},{"line_number":1162,"context_line":"    share_id \u003d Column(String(36), ForeignKey(\u0027shares.id\u0027))"},{"line_number":1163,"context_line":"    # TODO(vponomaryov): make \u0027share_instance_id\u0027 not nullable."},{"line_number":1164,"context_line":"    share_instance_id \u003d Column(String(36), ForeignKey(\u0027share_instances.id\u0027))"},{"line_number":1165,"context_line":"    size \u003d Column(Integer)"},{"line_number":1166,"context_line":"    status \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_44e73612","line":1163,"range":{"start_line":1163,"start_character":4,"end_line":1163,"end_character":63},"updated":"2017-02-02 19:25:26.000000000","message":"same","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ebf1dac764180bcc22a972fd774a03563cf1ed37","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"    share_group_snapshot_id \u003d Column("},{"line_number":1161,"context_line":"        String(36), ForeignKey(\u0027share_group_snapshots.id\u0027))"},{"line_number":1162,"context_line":"    share_id \u003d Column(String(36), ForeignKey(\u0027shares.id\u0027))"},{"line_number":1163,"context_line":"    # TODO(vponomaryov): make \u0027share_instance_id\u0027 not nullable."},{"line_number":1164,"context_line":"    share_instance_id \u003d Column(String(36), ForeignKey(\u0027share_instances.id\u0027))"},{"line_number":1165,"context_line":"    size \u003d Column(Integer)"},{"line_number":1166,"context_line":"    status \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a430d35_dd9a49c5","line":1163,"range":{"start_line":1163,"start_character":4,"end_line":1163,"end_character":63},"in_reply_to":"3a461143_44e73612","updated":"2017-02-03 13:28:36.000000000","message":"Not needed for bugfix.","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8b0e27c363004e0b80d30949f33bc7081c229530","unresolved":false,"context_lines":[{"line_number":1179,"context_line":"        foreign_keys\u003dshare_group_snapshot_id,"},{"line_number":1180,"context_line":"        primaryjoin\u003d\u0027ShareGroupSnapshot.id \u003d\u003d \u0027"},{"line_number":1181,"context_line":"                    \u0027ShareGroupSnapshotMember.share_group_snapshot_id\u0027)"},{"line_number":1182,"context_line":""},{"line_number":1183,"context_line":""},{"line_number":1184,"context_line":"def register_models():"},{"line_number":1185,"context_line":"    \"\"\"Register Models and create metadata."}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_92b5fece","line":1182,"updated":"2017-02-03 18:06:32.000000000","message":"# TODO(vponomaryov): remove all todos asap in Pike  ;)","commit_id":"89e443ea09dad77d76a54ae574aedc8538b01c9e"}],"manila/share/driver.py":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"8a3858435f9999146f0821661efa6a23c443cdb5","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"                     \u0027share_id\u0027: \u0027some_fake_uuid\u0027,"},{"line_number":1305,"context_line":"                     \u0027id\u0027: \u0027some_fake_uuid\u0027,"},{"line_number":1306,"context_line":"                     \u0027size\u0027: 1,"},{"line_number":1307,"context_line":"                     \u0027provider_location\u0027: None,"},{"line_number":1308,"context_line":"                    }"},{"line_number":1309,"context_line":"                ],"},{"line_number":1310,"context_line":"                \u0027deleted_at\u0027: None,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_6b8176fb","line":1307,"range":{"start_line":1307,"start_character":21,"end_line":1307,"end_character":47},"updated":"2017-02-02 12:33:37.000000000","message":"don\u0027t forget to add export_locations here later","commit_id":"a309bf82c111fc2fbbc096a6e3631f2ddaaa82db"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8b0e27c363004e0b80d30949f33bc7081c229530","unresolved":false,"context_lines":[{"line_number":1433,"context_line":"                \u0027share_proto\u0027: member[\u0027share\u0027][\u0027share_proto\u0027],"},{"line_number":1434,"context_line":"                \u0027provider_location\u0027: member[\u0027provider_location\u0027],"},{"line_number":1435,"context_line":"            }"},{"line_number":1436,"context_line":"            self.delete_snapshot("},{"line_number":1437,"context_line":"                context, share_snapshot, share_server\u003dshare_server)"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"        LOG.debug(\u0027Deleted share group snapshot %s.\u0027 % snap_dict[\u0027id\u0027])"},{"line_number":1440,"context_line":"        return None, None"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_f5db8c19","line":1437,"range":{"start_line":1436,"start_character":0,"end_line":1437,"end_character":67},"updated":"2017-02-03 18:06:32.000000000","message":"if one of these fails, then what? Share group error on delete. State is questionable. Should this return a share_group_snapshot_update to indicate that the delete failed (set error status) and return member updates to indicate which ones were deleted before the fail?","commit_id":"89e443ea09dad77d76a54ae574aedc8538b01c9e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a7c7e5f366bccbf694a4e12cd6fc28e0eb94cd94","unresolved":false,"context_lines":[{"line_number":1433,"context_line":"                \u0027share_proto\u0027: member[\u0027share\u0027][\u0027share_proto\u0027],"},{"line_number":1434,"context_line":"                \u0027provider_location\u0027: member[\u0027provider_location\u0027],"},{"line_number":1435,"context_line":"            }"},{"line_number":1436,"context_line":"            self.delete_snapshot("},{"line_number":1437,"context_line":"                context, share_snapshot, share_server\u003dshare_server)"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"        LOG.debug(\u0027Deleted share group snapshot %s.\u0027 % snap_dict[\u0027id\u0027])"},{"line_number":1440,"context_line":"        return None, None"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_d8f6c5d6","line":1437,"range":{"start_line":1436,"start_character":0,"end_line":1437,"end_character":67},"in_reply_to":"1a430d35_f5db8c19","updated":"2017-02-03 18:10:06.000000000","message":"Normal drivers just ignore absence of resources on \"delete\" call and just return.","commit_id":"89e443ea09dad77d76a54ae574aedc8538b01c9e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7d05011da8a98929fe7dbe988d760d8aad436d00","unresolved":false,"context_lines":[{"line_number":1346,"context_line":"                    \u0027provider_location\u0027: None,"},{"line_number":1347,"context_line":"                }"},{"line_number":1348,"context_line":"                try:"},{"line_number":1349,"context_line":"                    member_update \u003d self.create_snapshot("},{"line_number":1350,"context_line":"                        context, share_snapshot, share_server\u003dshare_server)"},{"line_number":1351,"context_line":"                    if member_update:"},{"line_number":1352,"context_line":"                        member_update[\u0027id\u0027] \u003d member[\u0027id\u0027]"},{"line_number":1353,"context_line":"                        snapshot_members_updates.append(member_update)"},{"line_number":1354,"context_line":"                    share_snapshots.append(share_snapshot)"},{"line_number":1355,"context_line":"                except exception.ManilaException as e:"},{"line_number":1356,"context_line":"                    msg \u003d _LE(\u0027Could not create share group snapshot. Failed \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_ca57bd00","line":1353,"range":{"start_line":1349,"start_character":0,"end_line":1353,"end_character":70},"updated":"2017-02-04 02:51:49.000000000","message":"Related question:\nThere is no \"status\" field for individual members?\nHow do you know which ones created fine and which ones aren\u0027t?","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"5a91dd4c49e80f9dc46084c762fa0aa5fa9ec91c","unresolved":false,"context_lines":[{"line_number":1346,"context_line":"                    \u0027provider_location\u0027: None,"},{"line_number":1347,"context_line":"                }"},{"line_number":1348,"context_line":"                try:"},{"line_number":1349,"context_line":"                    member_update \u003d self.create_snapshot("},{"line_number":1350,"context_line":"                        context, share_snapshot, share_server\u003dshare_server)"},{"line_number":1351,"context_line":"                    if member_update:"},{"line_number":1352,"context_line":"                        member_update[\u0027id\u0027] \u003d member[\u0027id\u0027]"},{"line_number":1353,"context_line":"                        snapshot_members_updates.append(member_update)"},{"line_number":1354,"context_line":"                    share_snapshots.append(share_snapshot)"},{"line_number":1355,"context_line":"                except exception.ManilaException as e:"},{"line_number":1356,"context_line":"                    msg \u003d _LE(\u0027Could not create share group snapshot. Failed \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_2873c081","line":1353,"range":{"start_line":1349,"start_character":0,"end_line":1353,"end_character":70},"in_reply_to":"1a430d35_ca57bd00","updated":"2017-02-06 13:47:30.000000000","message":"Why \"there is no\"? We just add ID if absent, all included data we provide further. But yes, would be good to consider this key in \"manager\" part, I guess.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"38bd253553745cb3b8aeda86f47b2e9868168ff6","unresolved":false,"context_lines":[{"line_number":1433,"context_line":"                \u0027share_proto\u0027: member[\u0027share\u0027][\u0027share_proto\u0027],"},{"line_number":1434,"context_line":"                \u0027provider_location\u0027: member[\u0027provider_location\u0027],"},{"line_number":1435,"context_line":"            }"},{"line_number":1436,"context_line":"            self.delete_snapshot("},{"line_number":1437,"context_line":"                context, share_snapshot, share_server\u003dshare_server)"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"        LOG.debug(\u0027Deleted share group snapshot %s.\u0027 % snap_dict[\u0027id\u0027])"},{"line_number":1440,"context_line":"        return None, None"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_0378e2f1","line":1437,"range":{"start_line":1436,"start_character":12,"end_line":1437,"end_character":67},"updated":"2017-02-03 18:41:00.000000000","message":"same question. Normal drivers should return OK if snapshot is already gone, but if there is a connection error or something like that, an exception will be thrown here and a partial delete may have happened.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"5f1601f342e6862f9e95df2417f957bb1779c749","unresolved":false,"context_lines":[{"line_number":1433,"context_line":"                \u0027share_proto\u0027: member[\u0027share\u0027][\u0027share_proto\u0027],"},{"line_number":1434,"context_line":"                \u0027provider_location\u0027: member[\u0027provider_location\u0027],"},{"line_number":1435,"context_line":"            }"},{"line_number":1436,"context_line":"            self.delete_snapshot("},{"line_number":1437,"context_line":"                context, share_snapshot, share_server\u003dshare_server)"},{"line_number":1438,"context_line":""},{"line_number":1439,"context_line":"        LOG.debug(\u0027Deleted share group snapshot %s.\u0027 % snap_dict[\u0027id\u0027])"},{"line_number":1440,"context_line":"        return None, None"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_f100f7ac","line":1437,"range":{"start_line":1436,"start_character":12,"end_line":1437,"end_character":67},"in_reply_to":"1a430d35_0378e2f1","updated":"2017-02-03 21:21:58.000000000","message":"Mark, how is it related to the fix? This commits fixes absence of required data. It is first. Second is that \"connection\" error is not directly related to \"delete\" command. Everything can go wrong in unpredictable way when sudden connetion breakage appears.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"}],"manila/share/manager.py":[{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"4210ed3693a3e23681cbad36342807de8615c603","unresolved":false,"context_lines":[{"line_number":3581,"context_line":"                # to have here also \u0027export_locations\u0027 when it is supported."},{"line_number":3582,"context_line":"                member_id \u003d update.pop(\u0027id\u0027, None)"},{"line_number":3583,"context_line":"                if not member_id:"},{"line_number":3584,"context_line":"                    LOG.warning(_LW("},{"line_number":3585,"context_line":"                        \"One of share group snapshot \u0027%s\u0027 members does not \""},{"line_number":3586,"context_line":"                        \"have reference ID. Its update was skipped.\"),"},{"line_number":3587,"context_line":"                        share_group_snapshot_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_133495dc","line":3584,"range":{"start_line":3584,"start_character":19,"end_line":3584,"end_character":36},"updated":"2017-02-02 19:28:31.000000000","message":"Isn\u0027t this really a bug if this happens?","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ebf1dac764180bcc22a972fd774a03563cf1ed37","unresolved":false,"context_lines":[{"line_number":3581,"context_line":"                # to have here also \u0027export_locations\u0027 when it is supported."},{"line_number":3582,"context_line":"                member_id \u003d update.pop(\u0027id\u0027, None)"},{"line_number":3583,"context_line":"                if not member_id:"},{"line_number":3584,"context_line":"                    LOG.warning(_LW("},{"line_number":3585,"context_line":"                        \"One of share group snapshot \u0027%s\u0027 members does not \""},{"line_number":3586,"context_line":"                        \"have reference ID. Its update was skipped.\"),"},{"line_number":3587,"context_line":"                        share_group_snapshot_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a430d35_e69cd16b","line":3584,"range":{"start_line":3584,"start_character":19,"end_line":3584,"end_character":36},"in_reply_to":"3a461143_133495dc","updated":"2017-02-03 13:28:36.000000000","message":"There could be just useless data in response returned by mistake. So, it is bug, but not critical. Also, it is possible that ID is just lost, but data valueable. So, not knowing for sure which is the case we state explicitly where is the problem and if someone looks at logs he will see it.","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"4210ed3693a3e23681cbad36342807de8615c603","unresolved":false,"context_lines":[{"line_number":3589,"context_line":"                # TODO(vponomaryov): remove following condition when"},{"line_number":3590,"context_line":"                # sgs members start supporting export locations."},{"line_number":3591,"context_line":"                if \u0027export_locations\u0027 in update:"},{"line_number":3592,"context_line":"                    LOG.warning(_LW("},{"line_number":3593,"context_line":"                        \"Removing \u0027export_locations\u0027 data from \""},{"line_number":3594,"context_line":"                        \"share group snapshot member \u0027%s\u0027 update because \""},{"line_number":3595,"context_line":"                        \"export locations are not supported yet.\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_7386b966","line":3592,"range":{"start_line":3592,"start_character":20,"end_line":3592,"end_character":36},"updated":"2017-02-02 19:28:31.000000000","message":"warning? what action should be taken here? maybe this one is just info?","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ebf1dac764180bcc22a972fd774a03563cf1ed37","unresolved":false,"context_lines":[{"line_number":3589,"context_line":"                # TODO(vponomaryov): remove following condition when"},{"line_number":3590,"context_line":"                # sgs members start supporting export locations."},{"line_number":3591,"context_line":"                if \u0027export_locations\u0027 in update:"},{"line_number":3592,"context_line":"                    LOG.warning(_LW("},{"line_number":3593,"context_line":"                        \"Removing \u0027export_locations\u0027 data from \""},{"line_number":3594,"context_line":"                        \"share group snapshot member \u0027%s\u0027 update because \""},{"line_number":3595,"context_line":"                        \"export locations are not supported yet.\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a430d35_c676f53d","line":3592,"range":{"start_line":3592,"start_character":20,"end_line":3592,"end_character":36},"in_reply_to":"3a461143_7386b966","updated":"2017-02-03 13:28:36.000000000","message":"We notify that \"valid\" info is not written indeed. It is done for case someone expects it to be written.","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"4210ed3693a3e23681cbad36342807de8615c603","unresolved":false,"context_lines":[{"line_number":3604,"context_line":"                    db_update[\u0027size\u0027] \u003d int(update.pop(\u0027size\u0027))"},{"line_number":3605,"context_line":"                if db_update:"},{"line_number":3606,"context_line":"                    if update:"},{"line_number":3607,"context_line":"                        LOG.warning(_LW("},{"line_number":3608,"context_line":"                            \"Share group snapshot ID\u003d\u0027%(sgs_id)s\u0027, \""},{"line_number":3609,"context_line":"                            \"share group snapshot member ID\u003d\u0027%(sgsm_id)s\u0027. \""},{"line_number":3610,"context_line":"                            \"Following keys of sgs member were not updated \""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a461143_4e303608","line":3607,"range":{"start_line":3607,"start_character":37,"end_line":3607,"end_character":40},"updated":"2017-02-02 19:28:31.000000000","message":"not sure about this one. probably also INFO?  Do you want to use LW to say the driver has a bug?","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ebf1dac764180bcc22a972fd774a03563cf1ed37","unresolved":false,"context_lines":[{"line_number":3604,"context_line":"                    db_update[\u0027size\u0027] \u003d int(update.pop(\u0027size\u0027))"},{"line_number":3605,"context_line":"                if db_update:"},{"line_number":3606,"context_line":"                    if update:"},{"line_number":3607,"context_line":"                        LOG.warning(_LW("},{"line_number":3608,"context_line":"                            \"Share group snapshot ID\u003d\u0027%(sgs_id)s\u0027, \""},{"line_number":3609,"context_line":"                            \"share group snapshot member ID\u003d\u0027%(sgsm_id)s\u0027. \""},{"line_number":3610,"context_line":"                            \"Following keys of sgs member were not updated \""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a430d35_a6a00992","line":3607,"range":{"start_line":3607,"start_character":37,"end_line":3607,"end_character":40},"in_reply_to":"3a461143_4e303608","updated":"2017-02-03 13:28:36.000000000","message":"Yes, all of these warnings say that driver behaved in unexpected way and it is better to fix it.","commit_id":"11cc5615075b40ec0662c9d17c28211438190ce1"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8b0e27c363004e0b80d30949f33bc7081c229530","unresolved":false,"context_lines":[{"line_number":3584,"context_line":"                    LOG.warning(_LW("},{"line_number":3585,"context_line":"                        \"One of share group snapshot \u0027%s\u0027 members does not \""},{"line_number":3586,"context_line":"                        \"have reference ID. Its update was skipped.\"),"},{"line_number":3587,"context_line":"                        share_group_snapshot_id)"},{"line_number":3588,"context_line":"                    continue"},{"line_number":3589,"context_line":"                # TODO(vponomaryov): remove following condition when"},{"line_number":3590,"context_line":"                # sgs members start supporting export locations."}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_d5d850f2","line":3587,"updated":"2017-02-03 18:06:32.000000000","message":"would log update for admin to look into, but since this is probably just a warning that a driver has a but, I\u0027m not sure if I\u0027d go that far","commit_id":"89e443ea09dad77d76a54ae574aedc8538b01c9e"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"8b0e27c363004e0b80d30949f33bc7081c229530","unresolved":false,"context_lines":[{"line_number":3603,"context_line":"                if \u0027size\u0027 in update:"},{"line_number":3604,"context_line":"                    db_update[\u0027size\u0027] \u003d int(update.pop(\u0027size\u0027))"},{"line_number":3605,"context_line":"                if db_update:"},{"line_number":3606,"context_line":"                    if update:"},{"line_number":3607,"context_line":"                        LOG.warning(_LW("},{"line_number":3608,"context_line":"                            \"Share group snapshot ID\u003d\u0027%(sgs_id)s\u0027, \""},{"line_number":3609,"context_line":"                            \"share group snapshot member ID\u003d\u0027%(sgsm_id)s\u0027. \""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_d8108551","line":3606,"range":{"start_line":3606,"start_character":20,"end_line":3606,"end_character":30},"updated":"2017-02-03 18:06:32.000000000","message":"this ignored keys warning should be outside of the \"if db_update\" so it still logs ignored keys when all of them are ignored.","commit_id":"89e443ea09dad77d76a54ae574aedc8538b01c9e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"8a3565588ba559b3c5c5958108cea403ec683d4f","unresolved":false,"context_lines":[{"line_number":3603,"context_line":"                if \u0027size\u0027 in update:"},{"line_number":3604,"context_line":"                    db_update[\u0027size\u0027] \u003d int(update.pop(\u0027size\u0027))"},{"line_number":3605,"context_line":"                if db_update:"},{"line_number":3606,"context_line":"                    if update:"},{"line_number":3607,"context_line":"                        LOG.warning(_LW("},{"line_number":3608,"context_line":"                            \"Share group snapshot ID\u003d\u0027%(sgs_id)s\u0027, \""},{"line_number":3609,"context_line":"                            \"share group snapshot member ID\u003d\u0027%(sgsm_id)s\u0027. \""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_1875adf8","line":3606,"range":{"start_line":3606,"start_character":20,"end_line":3606,"end_character":30},"in_reply_to":"1a430d35_d8108551","updated":"2017-02-03 18:20:21.000000000","message":"Done","commit_id":"89e443ea09dad77d76a54ae574aedc8538b01c9e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7d05011da8a98929fe7dbe988d760d8aad436d00","unresolved":false,"context_lines":[{"line_number":3597,"context_line":"                    LOG.warning(_LW("},{"line_number":3598,"context_line":"                        \"Removing \u0027export_locations\u0027 data from \""},{"line_number":3599,"context_line":"                        \"share group snapshot member \u0027%s\u0027 update because \""},{"line_number":3600,"context_line":"                        \"export locations are not supported yet.\"),"},{"line_number":3601,"context_line":"                        member_id)"},{"line_number":3602,"context_line":"                    update.pop(\u0027export_locations\u0027)"},{"line_number":3603,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_8a9bf5c8","line":3600,"range":{"start_line":3600,"start_character":60,"end_line":3600,"end_character":63},"updated":"2017-02-04 02:51:49.000000000","message":"for group snapshot members.\n\n\"yet\" is unnecessary in the logs. \n\nWhy do we need this at a \"warning\" level?? Who cares about it?\n\nThe main consumers of these logs are deployers/manila administrators, not us developers.. I think you should just include a NOTE/TODO above if you want.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ac7186f0c92c7d42403ca537ebda562bc5cc5b59","unresolved":false,"context_lines":[{"line_number":3597,"context_line":"                    LOG.warning(_LW("},{"line_number":3598,"context_line":"                        \"Removing \u0027export_locations\u0027 data from \""},{"line_number":3599,"context_line":"                        \"share group snapshot member \u0027%s\u0027 update because \""},{"line_number":3600,"context_line":"                        \"export locations are not supported yet.\"),"},{"line_number":3601,"context_line":"                        member_id)"},{"line_number":3602,"context_line":"                    update.pop(\u0027export_locations\u0027)"},{"line_number":3603,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_238a03c0","line":3600,"range":{"start_line":3600,"start_character":60,"end_line":3600,"end_character":63},"in_reply_to":"1a430d35_8a9bf5c8","updated":"2017-02-06 14:04:59.000000000","message":"Ok, set \"debug\" level.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7d05011da8a98929fe7dbe988d760d8aad436d00","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"                    self.db.share_group_snapshot_member_update("},{"line_number":3612,"context_line":"                        context, member_id, db_update)"},{"line_number":3613,"context_line":"                if update:"},{"line_number":3614,"context_line":"                    LOG.warning(_LW("},{"line_number":3615,"context_line":"                        \"Share group snapshot ID\u003d\u0027%(sgs_id)s\u0027, \""},{"line_number":3616,"context_line":"                        \"share group snapshot member ID\u003d\u0027%(sgsm_id)s\u0027. \""},{"line_number":3617,"context_line":"                        \"Following keys of sgs member were not updated \""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_4a910d99","line":3614,"range":{"start_line":3614,"start_character":24,"end_line":3614,"end_character":31},"updated":"2017-02-04 02:51:49.000000000","message":"same. Warning is a wrong logging level here. Deployers can\u0027t do anything about the limitation of our features until they help us fix these deficiencies.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ac7186f0c92c7d42403ca537ebda562bc5cc5b59","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"                    self.db.share_group_snapshot_member_update("},{"line_number":3612,"context_line":"                        context, member_id, db_update)"},{"line_number":3613,"context_line":"                if update:"},{"line_number":3614,"context_line":"                    LOG.warning(_LW("},{"line_number":3615,"context_line":"                        \"Share group snapshot ID\u003d\u0027%(sgs_id)s\u0027, \""},{"line_number":3616,"context_line":"                        \"share group snapshot member ID\u003d\u0027%(sgsm_id)s\u0027. \""},{"line_number":3617,"context_line":"                        \"Following keys of sgs member were not updated \""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_a39513e5","line":3614,"range":{"start_line":3614,"start_character":24,"end_line":3614,"end_character":31},"in_reply_to":"1a430d35_4a910d99","updated":"2017-02-06 14:04:59.000000000","message":"Ok, set \"debug\" level.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"02e6f48dd2774ef859db0f4a8886536736eaab6e","unresolved":false,"context_lines":[{"line_number":3628,"context_line":"                    db_update[\u0027provider_location\u0027] \u003d ("},{"line_number":3629,"context_line":"                        update.pop(\u0027provider_location\u0027))"},{"line_number":3630,"context_line":"                if \u0027status\u0027 in update:"},{"line_number":3631,"context_line":"                    db_update[\u0027status\u0027] \u003d update.pop(\u0027status\u0027)"},{"line_number":3632,"context_line":"                if \u0027size\u0027 in update:"},{"line_number":3633,"context_line":"                    db_update[\u0027size\u0027] \u003d int(update.pop(\u0027size\u0027))"},{"line_number":3634,"context_line":"                if db_update:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a430d35_9a3ce8e3","line":3631,"range":{"start_line":3631,"start_character":19,"end_line":3631,"end_character":62},"updated":"2017-02-06 18:31:24.000000000","message":"doesn\u0027t this status get clobbered by L3663","commit_id":"33de8fc5c791c37f808ad0f912d3a3cdc46ac675"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a014570f8d3e41e3d54187bc9439a9ba068bda1d","unresolved":false,"context_lines":[{"line_number":3628,"context_line":"                    db_update[\u0027provider_location\u0027] \u003d ("},{"line_number":3629,"context_line":"                        update.pop(\u0027provider_location\u0027))"},{"line_number":3630,"context_line":"                if \u0027status\u0027 in update:"},{"line_number":3631,"context_line":"                    db_update[\u0027status\u0027] \u003d update.pop(\u0027status\u0027)"},{"line_number":3632,"context_line":"                if \u0027size\u0027 in update:"},{"line_number":3633,"context_line":"                    db_update[\u0027size\u0027] \u003d int(update.pop(\u0027size\u0027))"},{"line_number":3634,"context_line":"                if db_update:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a430d35_9b4ce043","line":3631,"range":{"start_line":3631,"start_character":19,"end_line":3631,"end_character":62},"in_reply_to":"1a430d35_9a3ce8e3","updated":"2017-02-07 01:04:22.000000000","message":"+1. Instead of two separate updates, if a group snapshot member is updated by the driver, its \"created_at\" column needs to be updated here. \n\nAlso, I don\u0027t see why we\u0027re updating \"created_at\" -\u003e That\u0027s inconsistent with the rest of our resources. The base model updates created_at correctly, at the time of creation of the resource at the API layer.","commit_id":"33de8fc5c791c37f808ad0f912d3a3cdc46ac675"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a552012685be6840c4e60066b0b1990156448543","unresolved":false,"context_lines":[{"line_number":3628,"context_line":"                    db_update[\u0027provider_location\u0027] \u003d ("},{"line_number":3629,"context_line":"                        update.pop(\u0027provider_location\u0027))"},{"line_number":3630,"context_line":"                if \u0027status\u0027 in update:"},{"line_number":3631,"context_line":"                    db_update[\u0027status\u0027] \u003d update.pop(\u0027status\u0027)"},{"line_number":3632,"context_line":"                if \u0027size\u0027 in update:"},{"line_number":3633,"context_line":"                    db_update[\u0027size\u0027] \u003d int(update.pop(\u0027size\u0027))"},{"line_number":3634,"context_line":"                if db_update:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a430d35_f34a5b25","line":3631,"range":{"start_line":3631,"start_character":19,"end_line":3631,"end_character":62},"in_reply_to":"1a430d35_9b4ce043","updated":"2017-02-07 11:22:18.000000000","message":"Done","commit_id":"33de8fc5c791c37f808ad0f912d3a3cdc46ac675"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a014570f8d3e41e3d54187bc9439a9ba068bda1d","unresolved":false,"context_lines":[{"line_number":3642,"context_line":"                        \"as not allowed: %(keys)s.\","},{"line_number":3643,"context_line":"                        {\u0027sgs_id\u0027: share_group_snapshot_id,"},{"line_number":3644,"context_line":"                         \u0027sgsm_id\u0027: member_id,"},{"line_number":3645,"context_line":"                         \u0027keys\u0027: \u0027,\u0027.join(update)})"},{"line_number":3646,"context_line":""},{"line_number":3647,"context_line":"            if snapshot_update:"},{"line_number":3648,"context_line":"                snap_ref \u003d self.db.share_group_snapshot_update("}],"source_content_type":"text/x-python","patch_set":10,"id":"1a430d35_7ba9f4de","line":3645,"range":{"start_line":3645,"start_character":34,"end_line":3645,"end_character":35},"updated":"2017-02-07 01:04:22.000000000","message":"\u0027, \u0027","commit_id":"33de8fc5c791c37f808ad0f912d3a3cdc46ac675"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a552012685be6840c4e60066b0b1990156448543","unresolved":false,"context_lines":[{"line_number":3642,"context_line":"                        \"as not allowed: %(keys)s.\","},{"line_number":3643,"context_line":"                        {\u0027sgs_id\u0027: share_group_snapshot_id,"},{"line_number":3644,"context_line":"                         \u0027sgsm_id\u0027: member_id,"},{"line_number":3645,"context_line":"                         \u0027keys\u0027: \u0027,\u0027.join(update)})"},{"line_number":3646,"context_line":""},{"line_number":3647,"context_line":"            if snapshot_update:"},{"line_number":3648,"context_line":"                snap_ref \u003d self.db.share_group_snapshot_update("}],"source_content_type":"text/x-python","patch_set":10,"id":"1a430d35_fde5ca37","line":3645,"range":{"start_line":3645,"start_character":34,"end_line":3645,"end_character":35},"in_reply_to":"1a430d35_7ba9f4de","updated":"2017-02-07 11:22:18.000000000","message":"Done","commit_id":"33de8fc5c791c37f808ad0f912d3a3cdc46ac675"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a014570f8d3e41e3d54187bc9439a9ba068bda1d","unresolved":false,"context_lines":[{"line_number":3643,"context_line":"                        {\u0027sgs_id\u0027: share_group_snapshot_id,"},{"line_number":3644,"context_line":"                         \u0027sgsm_id\u0027: member_id,"},{"line_number":3645,"context_line":"                         \u0027keys\u0027: \u0027,\u0027.join(update)})"},{"line_number":3646,"context_line":""},{"line_number":3647,"context_line":"            if snapshot_update:"},{"line_number":3648,"context_line":"                snap_ref \u003d self.db.share_group_snapshot_update("},{"line_number":3649,"context_line":"                    context, snap_ref[\u0027id\u0027], snapshot_update)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a430d35_5b7d186d","line":3646,"range":{"start_line":3646,"start_character":0,"end_line":3646,"end_character":0},"updated":"2017-02-07 01:04:22.000000000","message":"unnecessary optimization... The contract between the share manager and the share drivers isn\u0027t like the share/api layer... You may safely ignore any keys that you don\u0027t want to update.. and not worry about doing 3637-3645.","commit_id":"33de8fc5c791c37f808ad0f912d3a3cdc46ac675"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a552012685be6840c4e60066b0b1990156448543","unresolved":false,"context_lines":[{"line_number":3643,"context_line":"                        {\u0027sgs_id\u0027: share_group_snapshot_id,"},{"line_number":3644,"context_line":"                         \u0027sgsm_id\u0027: member_id,"},{"line_number":3645,"context_line":"                         \u0027keys\u0027: \u0027,\u0027.join(update)})"},{"line_number":3646,"context_line":""},{"line_number":3647,"context_line":"            if snapshot_update:"},{"line_number":3648,"context_line":"                snap_ref \u003d self.db.share_group_snapshot_update("},{"line_number":3649,"context_line":"                    context, snap_ref[\u0027id\u0027], snapshot_update)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a430d35_bd4d0240","line":3646,"range":{"start_line":3646,"start_character":0,"end_line":3646,"end_character":0},"in_reply_to":"1a430d35_5b7d186d","updated":"2017-02-07 11:22:18.000000000","message":"I will leave it as is. It has \"debug\" level of logging anyway.","commit_id":"33de8fc5c791c37f808ad0f912d3a3cdc46ac675"}],"manila/tests/db/migrations/alembic/migrations_data_checks.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7d05011da8a98929fe7dbe988d760d8aad436d00","unresolved":false,"context_lines":[{"line_number":2106,"context_line":"        sgsm_table \u003d utils.load_table(self.table_name, engine)"},{"line_number":2107,"context_line":"        db_result \u003d engine.execute(sgsm_table.select().where("},{"line_number":2108,"context_line":"            sgsm_table.c.id \u003d\u003d self.share_group_snapshot_member_id))"},{"line_number":2109,"context_line":"        self.test_case.assertGreater(db_result.rowcount, 0)"},{"line_number":2110,"context_line":"        for sgsm in db_result:"},{"line_number":2111,"context_line":"            self.test_case.assertFalse(hasattr(sgsm, \u0027provider_location\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_4ae82d11","line":2109,"range":{"start_line":2109,"start_character":8,"end_line":2109,"end_character":59},"updated":"2017-02-04 02:51:49.000000000","message":"Shouldn\u0027t there be exactly one?","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"5a91dd4c49e80f9dc46084c762fa0aa5fa9ec91c","unresolved":false,"context_lines":[{"line_number":2106,"context_line":"        sgsm_table \u003d utils.load_table(self.table_name, engine)"},{"line_number":2107,"context_line":"        db_result \u003d engine.execute(sgsm_table.select().where("},{"line_number":2108,"context_line":"            sgsm_table.c.id \u003d\u003d self.share_group_snapshot_member_id))"},{"line_number":2109,"context_line":"        self.test_case.assertGreater(db_result.rowcount, 0)"},{"line_number":2110,"context_line":"        for sgsm in db_result:"},{"line_number":2111,"context_line":"            self.test_case.assertFalse(hasattr(sgsm, \u0027provider_location\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_8dc4c65f","line":2109,"range":{"start_line":2109,"start_character":8,"end_line":2109,"end_character":59},"in_reply_to":"1a430d35_4ae82d11","updated":"2017-02-06 13:47:30.000000000","message":"No, each of tests here uses shared DB. And we should not care whether other tests create some records or not.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8fb9cb8c21de4741056a9c37fc5bbb45dde128f1","unresolved":false,"context_lines":[{"line_number":2106,"context_line":"        sgsm_table \u003d utils.load_table(self.table_name, engine)"},{"line_number":2107,"context_line":"        db_result \u003d engine.execute(sgsm_table.select().where("},{"line_number":2108,"context_line":"            sgsm_table.c.id \u003d\u003d self.share_group_snapshot_member_id))"},{"line_number":2109,"context_line":"        self.test_case.assertGreater(db_result.rowcount, 0)"},{"line_number":2110,"context_line":"        for sgsm in db_result:"},{"line_number":2111,"context_line":"            self.test_case.assertFalse(hasattr(sgsm, \u0027provider_location\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_a7a6fe0d","line":2109,"range":{"start_line":2109,"start_character":8,"end_line":2109,"end_character":59},"in_reply_to":"1a430d35_8dc4c65f","updated":"2017-02-06 13:59:19.000000000","message":"Yes, in line 2108, you\u0027re getting the exact share group you need. So, this should be exactly one.","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ac7186f0c92c7d42403ca537ebda562bc5cc5b59","unresolved":false,"context_lines":[{"line_number":2106,"context_line":"        sgsm_table \u003d utils.load_table(self.table_name, engine)"},{"line_number":2107,"context_line":"        db_result \u003d engine.execute(sgsm_table.select().where("},{"line_number":2108,"context_line":"            sgsm_table.c.id \u003d\u003d self.share_group_snapshot_member_id))"},{"line_number":2109,"context_line":"        self.test_case.assertGreater(db_result.rowcount, 0)"},{"line_number":2110,"context_line":"        for sgsm in db_result:"},{"line_number":2111,"context_line":"            self.test_case.assertFalse(hasattr(sgsm, \u0027provider_location\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a430d35_67d17657","line":2109,"range":{"start_line":2109,"start_character":8,"end_line":2109,"end_character":59},"in_reply_to":"1a430d35_a7a6fe0d","updated":"2017-02-06 14:04:59.000000000","message":"Done","commit_id":"157f3cc679813b4454c7729f99109bd0334fc8a8"}]}
