)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"4112e07ba86e8a5ae1ff543d34753c683dd57a68","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch just adds a list of snapshot ID\u0027s to the view builder"},{"line_number":15,"context_line":"for volume detail (show)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I1eddcc4c5d64459e5ac52cacf84bdfe8278ae6db"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a740942_fb0bbf29","line":16,"updated":"2015-12-09 22:18:32.000000000","message":"Should it have APIImpact tag?","commit_id":"0cf7a439defe898f77e0efad97301c2d1c272bbd"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"f1fa21235280b2b76a79d22fcac65e9d67ca2126","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This patch just adds a list of snapshot ID\u0027s to the view builder"},{"line_number":15,"context_line":"for volume detail (show)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"APIImpact: Adds active_snapshots (list of snapshot IDs) to detailed view/response."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I1eddcc4c5d64459e5ac52cacf84bdfe8278ae6db"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bae84128_d861d1d4","line":17,"updated":"2016-02-24 11:20:46.000000000","message":"Usually we write \"APIImpact\" in one line without adding anything after it. For example:\n\nhttps://review.openstack.org/#/c/252250/15//COMMIT_MSG","commit_id":"c14f6cf9ade1689fb5537ef361dc8a86c62d01d1"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"f1fa21235280b2b76a79d22fcac65e9d67ca2126","unresolved":false,"context_lines":[{"line_number":15,"context_line":"for volume detail (show)."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"APIImpact: Adds active_snapshots (list of snapshot IDs) to detailed view/response."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I1eddcc4c5d64459e5ac52cacf84bdfe8278ae6db"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bae84128_b8b32d4c","line":18,"updated":"2016-02-24 11:20:46.000000000","message":"Is there any BP related to this feature change? Also I think an APIImpact is needed.","commit_id":"c14f6cf9ade1689fb5537ef361dc8a86c62d01d1"}],"cinder/api/v2/views/volumes.py":[{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"3d4384ca62c5b88f8613a927abf1bf0ed7107718","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        return volumes_dict"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def _get_snapshots(self, volume):"},{"line_number":148,"context_line":"        snapshots \u003d []"},{"line_number":149,"context_line":"        for snapshot in volume.get(\u0027snapshots\u0027):"},{"line_number":150,"context_line":"            snapshots.append(snapshot.get(\u0027id\u0027))"},{"line_number":151,"context_line":"        return snapshots"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_ba466379","line":148,"updated":"2015-12-10 15:47:30.000000000","message":"Since volume is now a VersionedObject we can access snapshots using \"volume.snapshots\". I know we want to move away from the dict type accessing so we can remove \u0027CinderObjectDictCompat\u0027 from  the volume VO but I don\u0027t know what the current thoughts are about mixing the vol.prop and vol.get(\u0027prop\u0027) in a single file.","commit_id":"651c6cfa66cc47dbd7bbccae573c14a5e5802c6a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"58e25f35c0d2e6a1dcf5efe627ab6fa7868af3bf","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        return volumes_dict"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def _get_snapshots(self, volume):"},{"line_number":148,"context_line":"        snapshots \u003d []"},{"line_number":149,"context_line":"        for snapshot in volume.get(\u0027snapshots\u0027):"},{"line_number":150,"context_line":"            snapshots.append(snapshot.get(\u0027id\u0027))"},{"line_number":151,"context_line":"        return snapshots"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_818d7e7d","line":148,"in_reply_to":"7a740942_ba466379","updated":"2015-12-17 05:14:48.000000000","message":"Great point Ryan, I\u0027ll take a look at transitioning this, thanks!","commit_id":"651c6cfa66cc47dbd7bbccae573c14a5e5802c6a"},{"author":{"_account_id":12410,"name":"Subhadeep De","email":"subhadeep.de@veritas.com","username":"subho"},"change_message_id":"67bdfd0c5369fca08adf4bb20c17d927e73007e2","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    def _get_snapshots(self, volume):"},{"line_number":148,"context_line":"        snapshots \u003d []"},{"line_number":149,"context_line":"        for snapshot in volume.get(\u0027snapshots\u0027):"},{"line_number":150,"context_line":"            snapshots.append(snapshot.get(\u0027id\u0027))"},{"line_number":151,"context_line":"        return snapshots"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_9e05be15","line":150,"updated":"2015-12-10 04:42:09.000000000","message":"Will this also have the snapshot metadata in it? It may be a good idea to have it if not already.","commit_id":"651c6cfa66cc47dbd7bbccae573c14a5e5802c6a"},{"author":{"_account_id":12410,"name":"Subhadeep De","email":"subhadeep.de@veritas.com","username":"subho"},"change_message_id":"7e8724dc22eca1d249479daf886a3fa3187c9636","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    def _get_snapshots(self, volume):"},{"line_number":148,"context_line":"        snapshots \u003d []"},{"line_number":149,"context_line":"        for snapshot in volume.get(\u0027snapshots\u0027):"},{"line_number":150,"context_line":"            snapshots.append(snapshot.get(\u0027id\u0027))"},{"line_number":151,"context_line":"        return snapshots"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_a0397443","line":150,"in_reply_to":"7a740942_60e4ec0c","updated":"2015-12-10 05:08:25.000000000","message":"Sounds good. We can open an enhancement issue for this.","commit_id":"651c6cfa66cc47dbd7bbccae573c14a5e5802c6a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"f620c9129eb9ffdc8a409aa9f1db7fcf60d95e50","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    def _get_snapshots(self, volume):"},{"line_number":148,"context_line":"        snapshots \u003d []"},{"line_number":149,"context_line":"        for snapshot in volume.get(\u0027snapshots\u0027):"},{"line_number":150,"context_line":"            snapshots.append(snapshot.get(\u0027id\u0027))"},{"line_number":151,"context_line":"        return snapshots"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_60e4ec0c","line":150,"in_reply_to":"7a740942_9e05be15","updated":"2015-12-10 04:58:56.000000000","message":"@Subhadeep\nNope, this is just the snapshot.id\u0027s.  I\u0027m not sure I see value in the snap-metadata for a volume-show; we can certainly explore it if you think we should in future work though.","commit_id":"651c6cfa66cc47dbd7bbccae573c14a5e5802c6a"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7385d3fa029c479bd4ddc1eade197fd33bdc2322","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                \u0027replication_status\u0027: volume.get(\u0027replication_status\u0027),"},{"line_number":78,"context_line":"                \u0027consistencygroup_id\u0027: volume.get(\u0027consistencygroup_id\u0027),"},{"line_number":79,"context_line":"                \u0027multiattach\u0027: volume.get(\u0027multiattach\u0027),"},{"line_number":80,"context_line":"                \u0027active_snapshots\u0027: self._get_snapshots(volume),"},{"line_number":81,"context_line":"            }"},{"line_number":82,"context_line":"        }"},{"line_number":83,"context_line":"        if request.environ[\u0027cinder.context\u0027].is_admin:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_d778b1c6","line":80,"updated":"2016-01-04 20:27:47.000000000","message":"\"active\" here sounds like these are a particular set of snapshots, but these are really just all of the snapshots.  We should probably call this \"snapshots\" instead.","commit_id":"c14f6cf9ade1689fb5537ef361dc8a86c62d01d1"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"f1fa21235280b2b76a79d22fcac65e9d67ca2126","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                \u0027replication_status\u0027: volume.get(\u0027replication_status\u0027),"},{"line_number":78,"context_line":"                \u0027consistencygroup_id\u0027: volume.get(\u0027consistencygroup_id\u0027),"},{"line_number":79,"context_line":"                \u0027multiattach\u0027: volume.get(\u0027multiattach\u0027),"},{"line_number":80,"context_line":"                \u0027active_snapshots\u0027: self._get_snapshots(volume),"},{"line_number":81,"context_line":"            }"},{"line_number":82,"context_line":"        }"},{"line_number":83,"context_line":"        if request.environ[\u0027cinder.context\u0027].is_admin:"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_58c941ab","line":80,"in_reply_to":"fa69d971_d778b1c6","updated":"2016-02-24 11:20:46.000000000","message":"Agreed.","commit_id":"c14f6cf9ade1689fb5537ef361dc8a86c62d01d1"}],"cinder/tests/unit/api/v2/test_volumes.py":[{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"f1fa21235280b2b76a79d22fcac65e9d67ca2126","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        attachments \u003d attachments or []"},{"line_number":182,"context_line":"        volume \u003d {\u0027volume\u0027:"},{"line_number":183,"context_line":"                  {\u0027attachments\u0027: attachments,"},{"line_number":184,"context_line":"                   \u0027active_snapshots\u0027: [],"},{"line_number":185,"context_line":"                   \u0027availability_zone\u0027: availability_zone,"},{"line_number":186,"context_line":"                   \u0027bootable\u0027: \u0027false\u0027,"},{"line_number":187,"context_line":"                   \u0027consistencygroup_id\u0027: consistencygroup_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_f8949537","line":184,"updated":"2016-02-24 11:20:46.000000000","message":"Would you add a test case of retrieving a volume whose active_snapshots are not empty?","commit_id":"c14f6cf9ade1689fb5537ef361dc8a86c62d01d1"}]}
