)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"827e6139bc613e1abfc79f3f5f1c658091f3fc77","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Snapshot sharing"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Co-Author: Tiantian Gao"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I60251ce673fce0863c5fb6fad8e6529723c2c391"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"da20952f_18e30fa5","line":9,"updated":"2015-08-27 13:33:36.000000000","message":"wrong format","commit_id":"df0bf17dea13197df91b1f649140245c57ba236d"}],"specs/kilo/snapshot-sharing.rst":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"f6d9ffde7c8fd0f45b50c94d5e81181c10966cea","unresolved":false,"context_lines":[{"line_number":41,"context_line":"multiple identical volumes and create a transfer request for all of them."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"For making a snapshot public, one currently has to upload it to Glance, and"},{"line_number":44,"context_line":"then make it public there. Glance is a store for virtual machine images,"},{"line_number":45,"context_line":"and hence it logically is not the place to keep snapshots (say if the"},{"line_number":46,"context_line":"snapshot doesn\u0027t contain any VM image data, but HDFS information). Moreover,"},{"line_number":47,"context_line":"if the Glance backend is different than Cinder backend (e.g. Swift and LVM"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aaa499b_3d556bf9","line":44,"updated":"2015-04-15 14:42:48.000000000","message":"No, glance is not. Glance is very explicitly a store for artifacts, not just images.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"4312849ec781a32f91331649ae4f01e0191ad054","unresolved":false,"context_lines":[{"line_number":41,"context_line":"multiple identical volumes and create a transfer request for all of them."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"For making a snapshot public, one currently has to upload it to Glance, and"},{"line_number":44,"context_line":"then make it public there. Glance is a store for virtual machine images,"},{"line_number":45,"context_line":"and hence it logically is not the place to keep snapshots (say if the"},{"line_number":46,"context_line":"snapshot doesn\u0027t contain any VM image data, but HDFS information). Moreover,"},{"line_number":47,"context_line":"if the Glance backend is different than Cinder backend (e.g. Swift and LVM"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ab451fb_a322eab7","line":44,"in_reply_to":"7aaa499b_3d556bf9","updated":"2015-04-17 12:10:32.000000000","message":"Thanks for pointing this out. I realized that the Glance\u0027s role has changed in the last year or so.. I will remove this statement in the next patch","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"f6d9ffde7c8fd0f45b50c94d5e81181c10966cea","unresolved":false,"context_lines":[{"line_number":48,"context_line":"respectively), this workaround will involve a data-transfer, and potentially"},{"line_number":49,"context_line":"slower as a result. This will also mean additional cost of storage to Glance."},{"line_number":50,"context_line":"In the proposed implementation, it will be just about setting a flag in a"},{"line_number":51,"context_line":"database table."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aaa499b_5d7b978c","line":51,"updated":"2015-04-15 14:42:48.000000000","message":"There are also changes for drivers that store data on tenant-aware back-ends.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"909fcf819d928741fcd99f7f4db936333d34d7b2","unresolved":false,"context_lines":[{"line_number":48,"context_line":"respectively), this workaround will involve a data-transfer, and potentially"},{"line_number":49,"context_line":"slower as a result. This will also mean additional cost of storage to Glance."},{"line_number":50,"context_line":"In the proposed implementation, it will be just about setting a flag in a"},{"line_number":51,"context_line":"database table."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ab451fb_6e8f2624","line":51,"in_reply_to":"3ab451fb_0312be62","updated":"2015-04-17 12:51:59.000000000","message":"For an example, grep sfaccount in the solidfire driver.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"df65f59dce42df3889fb5cfb743e79555c55655a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"respectively), this workaround will involve a data-transfer, and potentially"},{"line_number":49,"context_line":"slower as a result. This will also mean additional cost of storage to Glance."},{"line_number":50,"context_line":"In the proposed implementation, it will be just about setting a flag in a"},{"line_number":51,"context_line":"database table."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_7b691e8b","line":51,"in_reply_to":"3ab451fb_6e8f2624","updated":"2015-04-23 09:55:46.000000000","message":"I think I\u0027ll just write to the spec that all the drivers which are tenant-aware would need an update for this feature to start working. If such drivers require the base snapshot sharing implementation to be altered, they can bring it to my notice and I\u0027ll incorporate the changes.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"4312849ec781a32f91331649ae4f01e0191ad054","unresolved":false,"context_lines":[{"line_number":48,"context_line":"respectively), this workaround will involve a data-transfer, and potentially"},{"line_number":49,"context_line":"slower as a result. This will also mean additional cost of storage to Glance."},{"line_number":50,"context_line":"In the proposed implementation, it will be just about setting a flag in a"},{"line_number":51,"context_line":"database table."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ab451fb_0312be62","line":51,"in_reply_to":"7aaa499b_5d7b978c","updated":"2015-04-17 12:10:32.000000000","message":"Can you point me to a doc where I can read how the tenant-aware ness of backends work? Or a link to source code where I can figure this out?","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d493b42d6b7c66824b33a62ea4b515a10829397b","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  \"shared\" snapshots."},{"line_number":64,"context_line":"* Change cinder.volume.api to support field `is_public`."},{"line_number":65,"context_line":"* Create a new Cinder API to \u0027List shared snapshots\u0027, which will list"},{"line_number":66,"context_line":"  all the snapshots shared with the user (including public snapshots)"},{"line_number":67,"context_line":"* Change cinder.api.v2.snapshots show(), index(), detail() to show `is_public`"},{"line_number":68,"context_line":"  field."},{"line_number":69,"context_line":"* Change cinder.api.v2.snapshots index(), detail() to support search by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_c7d068cc","line":66,"updated":"2015-04-22 19:43:06.000000000","message":"Why the need of a new command? cinder snapshot-list should be enough, just need to show a field in the view show that the snapshot is shared from another tenant.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"7f0b9f8ac4bd63c1a434be5920dbf71ec95d2dff","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  \"shared\" snapshots."},{"line_number":64,"context_line":"* Change cinder.volume.api to support field `is_public`."},{"line_number":65,"context_line":"* Create a new Cinder API to \u0027List shared snapshots\u0027, which will list"},{"line_number":66,"context_line":"  all the snapshots shared with the user (including public snapshots)"},{"line_number":67,"context_line":"* Change cinder.api.v2.snapshots show(), index(), detail() to show `is_public`"},{"line_number":68,"context_line":"  field."},{"line_number":69,"context_line":"* Change cinder.api.v2.snapshots index(), detail() to support search by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab921fb_b1491dd3","line":66,"in_reply_to":"bab921fb_c7d068cc","updated":"2015-04-23 07:22:38.000000000","message":"I wanted to keep it separate, so as the output of \u0027snapshot-list\u0027 is not flooded with public snapshots, the number of which might be very very huge in a public cloud deployment. Another alternative would be to have \u0027--show-shared\u0027 as an optional flag to the \u0027snapshot-list\u0027 API.\n\nI\u0027ll add this information to the next patch set of this spec","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"f6d9ffde7c8fd0f45b50c94d5e81181c10966cea","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"N/A"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aaa499b_686a0ff0","line":83,"updated":"2015-04-15 14:42:48.000000000","message":"Improve the cinder \u003c-\u003e glance interaction. Making cinder a first class glance backend, and then using the exisiing glance catalogue and ACL implementation.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"dfc3056b388492ef72bc6442527c90116296e9c7","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"N/A"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dac4157f_34cc8469","line":83,"in_reply_to":"3ab451fb_4e30ea56","updated":"2015-04-22 08:13:04.000000000","message":"I agree with you on benefits we\u0027ll get if we optimize Cinder-Glance interactions. My bigger argument -- and perhaps I didn\u0027t put enough emphasis on this -- was that uploading something to Glance and getting from there isn\u0027t helping the usability. I want it simple for the end user to be able to share a snapshot. 1 command instead of 2. Also, the end-user also won\u0027t need to tell the other tenant that \u0027this \u003cxyz\u003e image in Glance is a snapshot, and create a volume from it to use it\u0027. It\u0027ll be more like : \u0027check your shared snapshot list, I have a snapshot shared with you\u0027","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"909fcf819d928741fcd99f7f4db936333d34d7b2","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"N/A"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ab451fb_4e30ea56","line":83,"in_reply_to":"3ab451fb_8b3144ef","updated":"2015-04-17 12:51:59.000000000","message":"Galance supports multiple backends at the same time. Sure if the deployer diesn\u0027t bother to configure glance to know about cinder then you loose some optimisations, but that is a general rule in openstack and cinder.\n\nThe advantage of using glance is that the operations are all symetrical - for certain deployments there are optimisations, but the same serious of commands always works, regardless of the deployment.\n\nI realise that creating a cinder backend for glance is not trivial, however I think the downsides of not doing so, and the upsides of doing so (fast boot from volume, fast snapshots of BFV instances) are more than enough to move the ballance towards doing the work in glance.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"4312849ec781a32f91331649ae4f01e0191ad054","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"N/A"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ab451fb_8b3144ef","line":83,"in_reply_to":"7aaa499b_686a0ff0","updated":"2015-04-17 12:10:32.000000000","message":"Can you elaborate?\n\nI think you are saying that the way to share a snapshot would be: 1. upload snapshot to Glance. 2. Make the snapshot share-able in Glance. 3. The different tenant downloads the snapshot from Glance to Cinder (either as a Cinder snapshot, or as a Cinder volume if Cinder has provision for this ).\n\nIn case of different backends for Glance and Cinder, this will be an expensive operation, involving data transfer, whereas in the proposed implementation it is just adding or updating a row in Cinder database.\n\n\nBut regardless, I can and should write this as an alternative. I\u0027ll do it..","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"55ca705b39ec262f8450ebcdb0499b65dbd13f38","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Alternatives"},{"line_number":81,"context_line":"------------"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"N/A"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_75a7e94f","line":83,"in_reply_to":"dac4157f_34cc8469","updated":"2015-04-28 07:59:42.000000000","message":"The problem here is that approach does not scale. It\u0027s fine when you\u0027ve got a couple of tenants sharing a couple of snapshots with each other, but imagine a large scientific research cloud sharing datasets with each other, potentially thousands of public snapshots, and you quickly start to need metadata indexing and searching, RBAC, RBAC queries and groups, snapshots that can be restored to a different volume type/backend to the one the snapshot was created on, etc etc etc. \n\nSolving all of this in cinder is just repeating work. Solving the simple case has shown us again and again that somebody *will* be along with the more complex / larger scale case. When this feature was first proposed, the proposer said in the IRC meeting: \u0027We are only talking about public snapshots, private shared snapshots are out of scope\u0027 and it took mere moments for somebody to say \u0027actually we want private shared snapshots\u0027. The feature creep to the point where we implement a significant chunk of the glance functionality in cinder is inevitable if we go down this route, and at some point somebody will notice that it would be more efficient to boot nova VMs off an iSCSI snapshot (shared or otherwise) and we will complete the circle.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"f6d9ffde7c8fd0f45b50c94d5e81181c10966cea","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Notifications impact"},{"line_number":113,"context_line":"--------------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"None"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7aaa499b_c82da3a9","line":115,"updated":"2015-04-15 14:42:48.000000000","message":"Notifications for share, unshare and acl changes should be generated.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"4312849ec781a32f91331649ae4f01e0191ad054","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Notifications impact"},{"line_number":113,"context_line":"--------------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"None"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ab451fb_a379ca31","line":115,"in_reply_to":"7aaa499b_c82da3a9","updated":"2015-04-17 12:10:32.000000000","message":"Thanks, I completely missed adding it. I\u0027ll do in the next patch.","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"4312849ec781a32f91331649ae4f01e0191ad054","unresolved":false,"context_lines":[{"line_number":145,"context_line":"-----------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Primary assignee:"},{"line_number":148,"context_line":"  Rushi Agrawal (rushiagr) (rushi.agrawal@ril.com)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ab451fb_c3dbb6ec","line":148,"updated":"2015-04-17 12:10:32.000000000","message":"One of my collegue, Rakesh is also working on this. To be added in next patch set..","commit_id":"6331e93ded533a98617e0b028ac1808420fe6b6f"}],"specs/liberty/snapshot-sharing.rst":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5e5681d61e83362607d7e384b1b27bd65711ae2b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* An organization wants to have three separate accounts on the cloud, for"},{"line_number":33,"context_line":"  development, testing and production environments respectively and they want"},{"line_number":34,"context_line":"  to share an HDFS snapshot, or a snapshot of a database residing on a"},{"line_number":35,"context_line":"  volume, efficiently. The team wants to take snapshots periodically, and"},{"line_number":36,"context_line":"  occasionally share it with the other tenants."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa1b9901_d2ac0c8e","line":33,"updated":"2015-08-20 16:03:37.000000000","message":"Suggest: \"...and production environments, respectively, and they want..\"","commit_id":"df0bf17dea13197df91b1f649140245c57ba236d"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5e5681d61e83362607d7e384b1b27bd65711ae2b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"create a volume out of snapshot, and then transfer it, but if one has to"},{"line_number":46,"context_line":"share the snapshot with multiple tenants, the creator will have to create"},{"line_number":47,"context_line":"multiple identical volumes and create a transfer request for all of them."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"For making a snapshot public, one currently has to create a volume out of"},{"line_number":50,"context_line":"that snapshot, and then upload it to Glance, and make public"},{"line_number":51,"context_line":"or share-able there. If the Glance backend is different than Cinder backend"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa1b9901_b57aa286","line":48,"updated":"2015-08-20 16:03:37.000000000","message":"Maybe I\u0027m not understanding, but couldn\u0027t each user that wants to have a copied environment make a volume according to what the original creator specifies and then get the snapshot from the creator? Rather than the creator making a bunch of the same volume and then transferring both those and the snapshots? I could be wrong, but I just thought I\u0027d ask.","commit_id":"df0bf17dea13197df91b1f649140245c57ba236d"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"5e5681d61e83362607d7e384b1b27bd65711ae2b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"In the proposed implementation, it will be just about setting a flag in a"},{"line_number":56,"context_line":"database table."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Note that focussing on snapshot sharing is better than volume sharing"},{"line_number":59,"context_line":"because snapshots are immutable, and hence we don\u0027t have the problem which"},{"line_number":60,"context_line":"we have with volumes being \u0027in use\u0027."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa1b9901_f55c9a1a","line":58,"updated":"2015-08-20 16:03:37.000000000","message":"focussing -\u003e focusing","commit_id":"df0bf17dea13197df91b1f649140245c57ba236d"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"827e6139bc613e1abfc79f3f5f1c658091f3fc77","unresolved":false,"context_lines":[{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"To support making snapshot public, there needs to be an additional column"},{"line_number":70,"context_line":"\u0027is_public\u0027 in the \u0027snapshots\u0027 table. For sharing a snapshot with specifi"},{"line_number":71,"context_line":"tenants, we\u0027ll require an extra table to maintain a list of tenants with"},{"line_number":72,"context_line":"whom a snapshot is shared."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da20952f_78356b44","line":70,"updated":"2015-08-27 13:33:36.000000000","message":"s/specifi/specific/","commit_id":"df0bf17dea13197df91b1f649140245c57ba236d"}]}
