)]}'
{"cinder/api/v3/attachments.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"c1964d73515b5bcae3ad786742323899a5127b98","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                    \"os_type\": \"linux2\","},{"line_number":148,"context_line":"                    \"multipath\": false,"},{"line_number":149,"context_line":"                    \"mountpoint\": \"/dev/vdb\","},{"line_number":150,"context_line":"                    \"mode\": \"null|rw|ro\"  # deprecated use mode argument"},{"line_number":151,"context_line":"                }"},{"line_number":152,"context_line":"            }"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_0c04bc14","line":150,"range":{"start_line":150,"start_character":42,"end_line":150,"end_character":72},"updated":"2018-01-11 22:32:15.000000000","message":"This causes the docs build to fail. I\u0027m not sure whether there\u0027s a mode to add comments to a json structure.","commit_id":"e6a9c3192ade9939dd5bcfad63bfe9214912b1c9"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"8d8c3d75c5f025ca8e4b77e290ca996b4e2adf12","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            volume_uuid)"},{"line_number":166,"context_line":"        connector \u003d body[\u0027attachment\u0027].get(\u0027connector\u0027, None)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # We check for attach_mode here and default to `null`"},{"line_number":169,"context_line":"        # if nothing\u0027s provided.  This seems odd to not just"},{"line_number":170,"context_line":"        # set `rw`, BUT we want to keep compatability with"},{"line_number":171,"context_line":"        # setting the mode via the connector for now, so we"},{"line_number":172,"context_line":"        # use `null` as an identifier to distinguish that case"},{"line_number":173,"context_line":"        attach_mode \u003d body[\u0027attachment\u0027].get(\u0027mode\u0027, \u0027null\u0027)"},{"line_number":174,"context_line":"        err_msg \u003d None"},{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            attachment_ref \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_6358db55","line":173,"range":{"start_line":168,"start_character":7,"end_line":173,"end_character":60},"updated":"2018-04-07 02:15:10.000000000","message":"Do we need to consider the microversion here?","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"c1ae0919a6d8327733c73fa7b3323f41e91d358d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            volume_uuid)"},{"line_number":166,"context_line":"        connector \u003d body[\u0027attachment\u0027].get(\u0027connector\u0027, None)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # We check for attach_mode here and default to `null`"},{"line_number":169,"context_line":"        # if nothing\u0027s provided.  This seems odd to not just"},{"line_number":170,"context_line":"        # set `rw`, BUT we want to keep compatability with"},{"line_number":171,"context_line":"        # setting the mode via the connector for now, so we"},{"line_number":172,"context_line":"        # use `null` as an identifier to distinguish that case"},{"line_number":173,"context_line":"        attach_mode \u003d body[\u0027attachment\u0027].get(\u0027mode\u0027, \u0027null\u0027)"},{"line_number":174,"context_line":"        err_msg \u003d None"},{"line_number":175,"context_line":"        try:"},{"line_number":176,"context_line":"            attachment_ref \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_47434614","line":173,"range":{"start_line":168,"start_character":7,"end_line":173,"end_character":60},"in_reply_to":"bf659307_6358db55","updated":"2018-04-09 15:26:47.000000000","message":"Ahh, yeah you\u0027re correct, nice catch!","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"}],"cinder/volume/api.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b1718ca6cf2375c6bbe1a483b062f61fbcb29a8","unresolved":false,"context_lines":[{"line_number":2116,"context_line":"                          ctxt,"},{"line_number":2117,"context_line":"                          volume_ref,"},{"line_number":2118,"context_line":"                          instance_uuid,"},{"line_number":2119,"context_line":"                          attach_mode,"},{"line_number":2120,"context_line":"                          connector\u003dNone):"},{"line_number":2121,"context_line":"        \"\"\"Create an attachment record for the specified volume.\"\"\""},{"line_number":2122,"context_line":"        ctxt.authorize(attachment_policy.CREATE_POLICY, target_obj\u003dvolume_ref)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_9a4477b9","line":2119,"updated":"2018-04-06 18:03:20.000000000","message":"Should we just default this to \u0027null\u0027 so all of those explicit updates in the tests are not needed?","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"c1ae0919a6d8327733c73fa7b3323f41e91d358d","unresolved":false,"context_lines":[{"line_number":2116,"context_line":"                          ctxt,"},{"line_number":2117,"context_line":"                          volume_ref,"},{"line_number":2118,"context_line":"                          instance_uuid,"},{"line_number":2119,"context_line":"                          attach_mode,"},{"line_number":2120,"context_line":"                          connector\u003dNone):"},{"line_number":2121,"context_line":"        \"\"\"Create an attachment record for the specified volume.\"\"\""},{"line_number":2122,"context_line":"        ctxt.authorize(attachment_policy.CREATE_POLICY, target_obj\u003dvolume_ref)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_472a662c","line":2119,"in_reply_to":"bf659307_9a4477b9","updated":"2018-04-09 15:26:47.000000000","message":"hmm... well now you suggest that :)\n\nYeah, it would have simplified this a bit if it were just another named argument tacked on to the signature.\n\nI\u0027ll rework that when I add the mv check, thanks!","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b1718ca6cf2375c6bbe1a483b062f61fbcb29a8","unresolved":false,"context_lines":[{"line_number":2134,"context_line":""},{"line_number":2135,"context_line":"        # Use of admin_metadata for RO settings is deprecated"},{"line_number":2136,"context_line":"        # switch to using mode argument to attachment-create"},{"line_number":2137,"context_line":"        if self.db.volume_admin_metadata_get("},{"line_number":2138,"context_line":"                ctxt.elevated(),"},{"line_number":2139,"context_line":"                volume_ref[\u0027id\u0027]).get(\u0027readonly\u0027, False):"},{"line_number":2140,"context_line":"            LOG.warning(\"Using volume_admin_metadata to set \""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_fa6b33ee","line":2137,"updated":"2018-04-06 18:03:20.000000000","message":"Should we have a microversion check on this too?","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a30e3532aaabfc9bdc5e0848a63ce5d152103410","unresolved":false,"context_lines":[{"line_number":2134,"context_line":""},{"line_number":2135,"context_line":"        # Use of admin_metadata for RO settings is deprecated"},{"line_number":2136,"context_line":"        # switch to using mode argument to attachment-create"},{"line_number":2137,"context_line":"        if self.db.volume_admin_metadata_get("},{"line_number":2138,"context_line":"                ctxt.elevated(),"},{"line_number":2139,"context_line":"                volume_ref[\u0027id\u0027]).get(\u0027readonly\u0027, False):"},{"line_number":2140,"context_line":"            LOG.warning(\"Using volume_admin_metadata to set \""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_078f8e2e","line":2137,"in_reply_to":"bf659307_270e52e5","updated":"2018-04-09 15:29:59.000000000","message":"Ah, good point. Fair enough.","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"c1ae0919a6d8327733c73fa7b3323f41e91d358d","unresolved":false,"context_lines":[{"line_number":2134,"context_line":""},{"line_number":2135,"context_line":"        # Use of admin_metadata for RO settings is deprecated"},{"line_number":2136,"context_line":"        # switch to using mode argument to attachment-create"},{"line_number":2137,"context_line":"        if self.db.volume_admin_metadata_get("},{"line_number":2138,"context_line":"                ctxt.elevated(),"},{"line_number":2139,"context_line":"                volume_ref[\u0027id\u0027]).get(\u0027readonly\u0027, False):"},{"line_number":2140,"context_line":"            LOG.warning(\"Using volume_admin_metadata to set \""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_270e52e5","line":2137,"in_reply_to":"bf659307_fa6b33ee","updated":"2018-04-09 15:26:47.000000000","message":"since this is \"internal\" only stuff I thought it better to keep all the mv juggling in the cinder/api/xxx layer, and the client of course.\n\nI\u0027d hate to see us start juggling mv\u0027s in this layer as well, but if that\u0027s what folks want I can certainly change it.  The idea here was that everything from this point on should be consistent regardless of what I do or don\u0027t expose to the end user.","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b1718ca6cf2375c6bbe1a483b062f61fbcb29a8","unresolved":false,"context_lines":[{"line_number":2138,"context_line":"                ctxt.elevated(),"},{"line_number":2139,"context_line":"                volume_ref[\u0027id\u0027]).get(\u0027readonly\u0027, False):"},{"line_number":2140,"context_line":"            LOG.warning(\"Using volume_admin_metadata to set \""},{"line_number":2141,"context_line":"                        \"Read Only mode id deprecated!  Please \""},{"line_number":2142,"context_line":"                        \"use the mode argument in attachment-create.\")"},{"line_number":2143,"context_line":"            attachment_ref.attach_mode \u003d \u0027ro\u0027"},{"line_number":2144,"context_line":"            # for now we have to let the admin_metadata override"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_3a13ebba","line":2141,"range":{"start_line":2141,"start_character":40,"end_line":2141,"end_character":42},"updated":"2018-04-06 18:03:20.000000000","message":"is","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"c1ae0919a6d8327733c73fa7b3323f41e91d358d","unresolved":false,"context_lines":[{"line_number":2138,"context_line":"                ctxt.elevated(),"},{"line_number":2139,"context_line":"                volume_ref[\u0027id\u0027]).get(\u0027readonly\u0027, False):"},{"line_number":2140,"context_line":"            LOG.warning(\"Using volume_admin_metadata to set \""},{"line_number":2141,"context_line":"                        \"Read Only mode id deprecated!  Please \""},{"line_number":2142,"context_line":"                        \"use the mode argument in attachment-create.\")"},{"line_number":2143,"context_line":"            attachment_ref.attach_mode \u003d \u0027ro\u0027"},{"line_number":2144,"context_line":"            # for now we have to let the admin_metadata override"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_c71516e7","line":2141,"range":{"start_line":2141,"start_character":40,"end_line":2141,"end_character":42},"in_reply_to":"bf659307_3a13ebba","updated":"2018-04-09 15:26:47.000000000","message":"well sure, but TBF you knew what I meant :)","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a30e3532aaabfc9bdc5e0848a63ce5d152103410","unresolved":false,"context_lines":[{"line_number":2138,"context_line":"                ctxt.elevated(),"},{"line_number":2139,"context_line":"                volume_ref[\u0027id\u0027]).get(\u0027readonly\u0027, False):"},{"line_number":2140,"context_line":"            LOG.warning(\"Using volume_admin_metadata to set \""},{"line_number":2141,"context_line":"                        \"Read Only mode id deprecated!  Please \""},{"line_number":2142,"context_line":"                        \"use the mode argument in attachment-create.\")"},{"line_number":2143,"context_line":"            attachment_ref.attach_mode \u003d \u0027ro\u0027"},{"line_number":2144,"context_line":"            # for now we have to let the admin_metadata override"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_c798b676","line":2141,"range":{"start_line":2141,"start_character":40,"end_line":2141,"end_character":42},"in_reply_to":"bf659307_c71516e7","updated":"2018-04-09 15:29:59.000000000","message":"Yeah, id\u0027s pretty clear.","commit_id":"566cdd42c7bce3408b5d5f39a070eed7c16b9a96"}]}
