)]}'
{"cinderclient/v2/volume_snapshots.py":[{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e546760f9b471d51b88202740f5b4ddbc80d3242","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"Volume snapshot interface (v2 extension).\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinderclient import api_versions"},{"line_number":19,"context_line":"from cinderclient.v3 import volume_snapshots"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_0a2314be","line":18,"updated":"2016-08-05 16:40:38.000000000","message":"We don\u0027t want to change cinderclient/v2, since the /v2 server api does not support the list_manageable feature.\nWe want these changes in cinderclient/v3/volume_snapshots.py","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"fe881a892e442f3724712f1e4dd748e5e2af3f82","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"Volume snapshot interface (v2 extension).\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinderclient import api_versions"},{"line_number":19,"context_line":"from cinderclient.v3 import volume_snapshots"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_766b7cf1","line":18,"in_reply_to":"bacf61ea_0a2314be","updated":"2016-08-06 19:16:29.000000000","message":"Actually it is supported by v2, I believe that\u0027s what we decided together.  There were 3 Cinder patches - the first added it to api/contrib (accessible via v2), the second was the LVM implementation, and the third added routes for v3.  I added here because the URLs are different in v2 and v3 (os-snapshot-manage vs manageable_snapshots).","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"}],"cinderclient/v2/volumes.py":[{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e546760f9b471d51b88202740f5b4ddbc80d3242","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        return self.manager.upload_to_image(self, force, image_name,"},{"line_number":27,"context_line":"                                            container_format, disk_format)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_manageable(self, host, detailed\u003dTrue, marker\u003dNone, limit\u003dNone,"},{"line_number":30,"context_line":"                        offset\u003dNone, sort\u003dNone):"},{"line_number":31,"context_line":"        return self.manager.list_manageable(host, detailed\u003ddetailed,"},{"line_number":32,"context_line":"                                            marker\u003dmarker, limit\u003dlimit,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_0a0af425","line":29,"updated":"2016-08-05 16:40:38.000000000","message":"This should go in cinderclient/v3/volumes.py","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"fe881a892e442f3724712f1e4dd748e5e2af3f82","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        return self.manager.upload_to_image(self, force, image_name,"},{"line_number":27,"context_line":"                                            container_format, disk_format)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def list_manageable(self, host, detailed\u003dTrue, marker\u003dNone, limit\u003dNone,"},{"line_number":30,"context_line":"                        offset\u003dNone, sort\u003dNone):"},{"line_number":31,"context_line":"        return self.manager.list_manageable(host, detailed\u003ddetailed,"},{"line_number":32,"context_line":"                                            marker\u003dmarker, limit\u003dlimit,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_d67a28b9","line":29,"in_reply_to":"bacf61ea_0a0af425","updated":"2016-08-06 19:16:29.000000000","message":"Same comment as from volume_snapshots.py","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e546760f9b471d51b88202740f5b4ddbc80d3242","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                             \u0027container_format\u0027: container_format,"},{"line_number":51,"context_line":"                             \u0027disk_format\u0027: disk_format})"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @api_versions.wraps(\"2.0\")"},{"line_number":54,"context_line":"    def list_manageable(self, host, detailed\u003dTrue, marker\u003dNone, limit\u003dNone,"},{"line_number":55,"context_line":"                        offset\u003dNone, sort\u003dNone):"},{"line_number":56,"context_line":"        url \u003d self._build_list_url(\"os-volume-manage\", detailed\u003ddetailed,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_bd0a101e","line":53,"updated":"2016-08-05 16:40:38.000000000","message":"This should go in cinderclient/v3/volumes.py\nAnd should have\napi_version.wraps(\"3.8\")\nsince that it the api_version where the feature went in.","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"fe881a892e442f3724712f1e4dd748e5e2af3f82","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                             \u0027container_format\u0027: container_format,"},{"line_number":51,"context_line":"                             \u0027disk_format\u0027: disk_format})"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @api_versions.wraps(\"2.0\")"},{"line_number":54,"context_line":"    def list_manageable(self, host, detailed\u003dTrue, marker\u003dNone, limit\u003dNone,"},{"line_number":55,"context_line":"                        offset\u003dNone, sort\u003dNone):"},{"line_number":56,"context_line":"        url \u003d self._build_list_url(\"os-volume-manage\", detailed\u003ddetailed,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_364c649d","line":53,"in_reply_to":"bacf61ea_bd0a101e","updated":"2016-08-06 19:16:29.000000000","message":"Same comment as from volume_snapshots.py","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"}],"cinderclient/v3/shell.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"4dc8e8601ef53b833ad7349f8d65e60eec08803c","unresolved":false,"context_lines":[{"line_number":2306,"context_line":"                                         offset\u003dargs.offset, sort\u003dargs.sort)"},{"line_number":2307,"context_line":"    columns \u003d [\u0027reference\u0027, \u0027size\u0027, \u0027safe_to_manage\u0027]"},{"line_number":2308,"context_line":"    if detailed:"},{"line_number":2309,"context_line":"        columns.extend([\u0027reason_not_safe\u0027, \u0027cinder_id\u0027, \u0027extra_info\u0027])"},{"line_number":2310,"context_line":"    utils.print_list(volumes, columns, sortby_index\u003dNone)"},{"line_number":2311,"context_line":""},{"line_number":2312,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_04b17c47","line":2309,"range":{"start_line":2309,"start_character":8,"end_line":2309,"end_character":70},"updated":"2016-08-04 19:09:10.000000000","message":"What\u0027s the criteria for this?  How can we possibly tell a user that a resource is/isn\u0027t safe, this seems like just some arbitrary thing.  Are we making an assertion or guarantee here that \"hey, nobody else is doing anything with this volume, it\u0027s just laying around, so go ahead and take it\"?\n\nAlso, I don\u0027t understand the cinder_id column?  If we\u0027re looking for manageable volumes they would be assumed to not have cinder-id\u0027s no?  Unless this is for the case of importing from once Cinder deployment to another, in which case a lot of this falls apart anyway without some export being done first.","commit_id":"97a18e5248dd254694dc056b10a8718646cc1c90"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"418baffbd431d9541d352e0f1819c4686abd9134","unresolved":false,"context_lines":[{"line_number":2306,"context_line":"                                         offset\u003dargs.offset, sort\u003dargs.sort)"},{"line_number":2307,"context_line":"    columns \u003d [\u0027reference\u0027, \u0027size\u0027, \u0027safe_to_manage\u0027]"},{"line_number":2308,"context_line":"    if detailed:"},{"line_number":2309,"context_line":"        columns.extend([\u0027reason_not_safe\u0027, \u0027cinder_id\u0027, \u0027extra_info\u0027])"},{"line_number":2310,"context_line":"    utils.print_list(volumes, columns, sortby_index\u003dNone)"},{"line_number":2311,"context_line":""},{"line_number":2312,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_b431b4a4","line":2309,"range":{"start_line":2309,"start_character":8,"end_line":2309,"end_character":70},"in_reply_to":"bacf61ea_04b17c47","updated":"2016-08-05 00:22:45.000000000","message":"Haha, glad I\u0027m not the only one confused (I\u0027m also looking at this on my drivers). I think it is somewhat arbitrary...\n\nWhat I\u0027ve done is basically made the \"safe\" thing mean whether or not trying to manage it right then would work, but things that could change (I guess?). Seems like maybe nicer than them just not showing up since we can say its not safe and give a reason. For example in my manage volume code I reject any where the volume is already attached to a host. So for those I\u0027m going to say safe_to_manage\u003dFalse, and reason_not_safe\u003d\"Volume attached to host %s\".\n\nThe cinder_id one is kinda weird. My interpretation was that if the thing is already in the cinder_volumes or cinder_snapshots list you can basically match it up with whats on the array and give its reference. I\u0027m marking those as not safe to manage... I\u0027m a little surprised we don\u0027t just ignore them, but going off the lvm drivers impl that seems to be the plan.","commit_id":"97a18e5248dd254694dc056b10a8718646cc1c90"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e546760f9b471d51b88202740f5b4ddbc80d3242","unresolved":false,"context_lines":[{"line_number":2366,"context_line":"    info.pop(\u0027links\u0027, None)"},{"line_number":2367,"context_line":"    utils.print_dict(info)"},{"line_number":2368,"context_line":""},{"line_number":2369,"context_line":""},{"line_number":2370,"context_line":"@utils.arg(\u0027host\u0027,"},{"line_number":2371,"context_line":"           metavar\u003d\u0027\u003chost\u003e\u0027,"},{"line_number":2372,"context_line":"           help\u003d\u0027Cinder host on which to list manageable volumes; \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_9dd58c1d","line":2369,"updated":"2016-08-05 16:40:38.000000000","message":"You should wrap this with:\n@api_version.wraps(\u00273.8\u0027)","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"fe881a892e442f3724712f1e4dd748e5e2af3f82","unresolved":false,"context_lines":[{"line_number":2366,"context_line":"    info.pop(\u0027links\u0027, None)"},{"line_number":2367,"context_line":"    utils.print_dict(info)"},{"line_number":2368,"context_line":""},{"line_number":2369,"context_line":""},{"line_number":2370,"context_line":"@utils.arg(\u0027host\u0027,"},{"line_number":2371,"context_line":"           metavar\u003d\u0027\u003chost\u003e\u0027,"},{"line_number":2372,"context_line":"           help\u003d\u0027Cinder host on which to list manageable volumes; \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_5645986c","line":2369,"in_reply_to":"bacf61ea_9dd58c1d","updated":"2016-08-06 19:16:29.000000000","message":"It\u0027s available as an extension in v2 as well - can I set both?","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"e546760f9b471d51b88202740f5b4ddbc80d3242","unresolved":false,"context_lines":[{"line_number":2790,"context_line":"    info.pop(\u0027links\u0027, None)"},{"line_number":2791,"context_line":"    utils.print_dict(info)"},{"line_number":2792,"context_line":""},{"line_number":2793,"context_line":""},{"line_number":2794,"context_line":"@utils.arg(\u0027host\u0027,"},{"line_number":2795,"context_line":"           metavar\u003d\u0027\u003chost\u003e\u0027,"},{"line_number":2796,"context_line":"           help\u003d\u0027Cinder host on which to list manageable snapshots; \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_fd93e8a0","line":2793,"updated":"2016-08-05 16:40:38.000000000","message":"You should wrap this with:\n@api_version.wraps(\u00273.8\u0027)","commit_id":"1b6114596246663f27e876e4f8a0f86c06a5b37c"}]}
