)]}'
{"cinderclient/v1/shell.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"629477bf9dc57e25f3c4ef47b1dd57cbfc444b47","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"def _find_backup(cs, backup):"},{"line_number":70,"context_line":"    \"\"\"Get a backup by ID.\"\"\""},{"line_number":71,"context_line":"    return utils.find_resource(cs.backups, backup)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"def _print_volume(volume):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2Fx%2Bs%3D","line":71,"updated":"2013-04-23 16:13:42.000000000","message":"Not sure why we need the helper method here rather than just calling utils.fine_resources directly?","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"0f58940714e88b95f60e393c3283e3eee1f9de47","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"def _find_backup(cs, backup):"},{"line_number":70,"context_line":"    \"\"\"Get a backup by ID.\"\"\""},{"line_number":71,"context_line":"    return utils.find_resource(cs.backups, backup)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"def _print_volume(volume):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2Fx74%3D","line":71,"in_reply_to":"AAAAOn%2F%2Fx%2Bs%3D","updated":"2013-04-23 16:32:15.000000000","message":"I left it for consistency with the others above, but happy to remove if you like - it seems superfluous to me.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":669,"context_line":"@utils.arg(\u0027--container\u0027, metavar\u003d\u0027\u003ccontainer\u003e\u0027,"},{"line_number":670,"context_line":"           help\u003d\u0027Optional Backup container name. (Default\u003dNone)\u0027,"},{"line_number":671,"context_line":"           default\u003dNone)"},{"line_number":672,"context_line":"@utils.arg(\u0027--display_name\u0027, metavar\u003d\u0027\u003cdisplay_name\u003e\u0027,"},{"line_number":673,"context_line":"           help\u003d\u0027Optional backup name. (Default\u003dNone)\u0027,"},{"line_number":674,"context_line":"           default\u003dNone)"},{"line_number":675,"context_line":"@utils.arg(\u0027--display_description\u0027, metavar\u003d\u0027\u003cdisplay_description\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxDQ%3D","line":672,"updated":"2013-04-24 04:25:44.000000000","message":"switch --display_name to --display-name..it\u0027ll support both dash and underscore. We started moving toward this direction of dashes instead of underscore.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":669,"context_line":"@utils.arg(\u0027--container\u0027, metavar\u003d\u0027\u003ccontainer\u003e\u0027,"},{"line_number":670,"context_line":"           help\u003d\u0027Optional Backup container name. (Default\u003dNone)\u0027,"},{"line_number":671,"context_line":"           default\u003dNone)"},{"line_number":672,"context_line":"@utils.arg(\u0027--display_name\u0027, metavar\u003d\u0027\u003cdisplay_name\u003e\u0027,"},{"line_number":673,"context_line":"           help\u003d\u0027Optional backup name. (Default\u003dNone)\u0027,"},{"line_number":674,"context_line":"           default\u003dNone)"},{"line_number":675,"context_line":"@utils.arg(\u0027--display_description\u0027, metavar\u003d\u0027\u003cdisplay_description\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwiY%3D","line":672,"in_reply_to":"AAAAOn%2F%2FxDQ%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":672,"context_line":"@utils.arg(\u0027--display_name\u0027, metavar\u003d\u0027\u003cdisplay_name\u003e\u0027,"},{"line_number":673,"context_line":"           help\u003d\u0027Optional backup name. (Default\u003dNone)\u0027,"},{"line_number":674,"context_line":"           default\u003dNone)"},{"line_number":675,"context_line":"@utils.arg(\u0027--display_description\u0027, metavar\u003d\u0027\u003cdisplay_description\u003e\u0027,"},{"line_number":676,"context_line":"           help\u003d\u0027Optional backup description. (Default\u003dNone)\u0027,"},{"line_number":677,"context_line":"           default\u003dNone)"},{"line_number":678,"context_line":"@utils.service_type(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxDM%3D","line":675,"updated":"2013-04-24 04:25:44.000000000","message":"switch --display_description to --display-description..it\u0027ll support both dash and underscore. We started moving toward this direction of dashes instead of underscore.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":672,"context_line":"@utils.arg(\u0027--display_name\u0027, metavar\u003d\u0027\u003cdisplay_name\u003e\u0027,"},{"line_number":673,"context_line":"           help\u003d\u0027Optional backup name. (Default\u003dNone)\u0027,"},{"line_number":674,"context_line":"           default\u003dNone)"},{"line_number":675,"context_line":"@utils.arg(\u0027--display_description\u0027, metavar\u003d\u0027\u003cdisplay_description\u003e\u0027,"},{"line_number":676,"context_line":"           help\u003d\u0027Optional backup description. (Default\u003dNone)\u0027,"},{"line_number":677,"context_line":"           default\u003dNone)"},{"line_number":678,"context_line":"@utils.service_type(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwiU%3D","line":675,"in_reply_to":"AAAAOn%2F%2FxDM%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":684,"context_line":"                      args.display_description)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027, help\u003d\u0027ID of the backup.\u0027)"},{"line_number":688,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":689,"context_line":"def do_backup_show(cs, args):"},{"line_number":690,"context_line":"    \"\"\"Show details about a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxDI%3D","line":687,"updated":"2013-04-24 04:25:44.000000000","message":"switch backup_id to backup-id","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"f9eacec56680433132a52d72cd662f4b5d5f05fc","unresolved":false,"context_lines":[{"line_number":684,"context_line":"                      args.display_description)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027, help\u003d\u0027ID of the backup.\u0027)"},{"line_number":688,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":689,"context_line":"def do_backup_show(cs, args):"},{"line_number":690,"context_line":"    \"\"\"Show details about a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FvSA%3D","line":687,"in_reply_to":"AAAAOn%2F%2FwY8%3D","updated":"2013-04-25 15:15:18.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f15ce13ba30d4cbc83c2ecc4b5258bc1ddb1f071","unresolved":false,"context_lines":[{"line_number":684,"context_line":"                      args.display_description)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027, help\u003d\u0027ID of the backup.\u0027)"},{"line_number":688,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":689,"context_line":"def do_backup_show(cs, args):"},{"line_number":690,"context_line":"    \"\"\"Show details about a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwY8%3D","line":687,"in_reply_to":"AAAAOn%2F%2FwiI%3D","updated":"2013-04-24 20:54:05.000000000","message":"Ok I made a mistake here. consistently this can just be \u003cbackup\u003e like do_show is just \u003cvolume\u003e. Seems to be the norm for positional args.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":684,"context_line":"                      args.display_description)"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027, help\u003d\u0027ID of the backup.\u0027)"},{"line_number":688,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":689,"context_line":"def do_backup_show(cs, args):"},{"line_number":690,"context_line":"    \"\"\"Show details about a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwiI%3D","line":687,"in_reply_to":"AAAAOn%2F%2FxDI%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done (for the metavar, changing backup_id arg to backup-id breaks the client with ERROR: \u0027Namespace\u0027 object has no attribute \u0027backup_id\u0027 - have I missed something here?)","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":699,"context_line":""},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":702,"context_line":"def do_backup_list(cs, args):"},{"line_number":703,"context_line":"    \"\"\"List all the backups.\"\"\""},{"line_number":704,"context_line":"    backups \u003d cs.backups.list()"},{"line_number":705,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxC4%3D","line":702,"updated":"2013-04-24 04:25:44.000000000","message":"The list becomes not very useful once you have errors. http://grab.objects.dreamhost.com/04-23-2013-20-50-20.png","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f15ce13ba30d4cbc83c2ecc4b5258bc1ddb1f071","unresolved":false,"context_lines":[{"line_number":699,"context_line":""},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":702,"context_line":"def do_backup_list(cs, args):"},{"line_number":703,"context_line":"    \"\"\"List all the backups.\"\"\""},{"line_number":704,"context_line":"    backups \u003d cs.backups.list()"},{"line_number":705,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2Fwa4%3D","line":702,"in_reply_to":"AAAAOn%2F%2FwiA%3D","updated":"2013-04-24 20:54:05.000000000","message":"Just leave fail reason for now. I think that\u0027s useful to see in the cli, just complaining and noting that we need to figure out how to better display that..like wrapping in the column itself. I don\u0027t expect that to come out of this change.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f123393f4e0020d990caed467999878c8a6c8585","unresolved":false,"context_lines":[{"line_number":699,"context_line":""},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":702,"context_line":"def do_backup_list(cs, args):"},{"line_number":703,"context_line":"    \"\"\"List all the backups.\"\"\""},{"line_number":704,"context_line":"    backups \u003d cs.backups.list()"},{"line_number":705,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxCI%3D","line":702,"in_reply_to":"AAAAOn%2F%2FxC4%3D","updated":"2013-04-24 04:28:13.000000000","message":"Rather I didn\u0027t mean not useful, but not readable. I don\u0027t expect this to be figured out here, but just more pointing it out.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":699,"context_line":""},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":702,"context_line":"def do_backup_list(cs, args):"},{"line_number":703,"context_line":"    \"\"\"List all the backups.\"\"\""},{"line_number":704,"context_line":"    backups \u003d cs.backups.list()"},{"line_number":705,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwiA%3D","line":702,"in_reply_to":"AAAAOn%2F%2FxCI%3D","updated":"2013-04-24 16:20:20.000000000","message":"We could omit Fail Reason and Backup Object Count from the listing - but if you\u0027re happy to leave it for now that works too.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":712,"context_line":"    utils.print_list(backups, columns)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"@utils.arg(\u0027backup\u0027, metavar\u003d\u0027\u003cbackup\u003e\u0027, help\u003d\u0027ID of the backup to delete.\u0027)"},{"line_number":716,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":717,"context_line":"def do_backup_delete(cs, args):"},{"line_number":718,"context_line":"    \"\"\"Remove a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxDE%3D","line":715,"updated":"2013-04-24 04:25:44.000000000","message":"should be backup-id for arg and metavar","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"f9eacec56680433132a52d72cd662f4b5d5f05fc","unresolved":false,"context_lines":[{"line_number":712,"context_line":"    utils.print_list(backups, columns)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"@utils.arg(\u0027backup\u0027, metavar\u003d\u0027\u003cbackup\u003e\u0027, help\u003d\u0027ID of the backup to delete.\u0027)"},{"line_number":716,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":717,"context_line":"def do_backup_delete(cs, args):"},{"line_number":718,"context_line":"    \"\"\"Remove a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FvR8%3D","line":715,"in_reply_to":"AAAAOn%2F%2FwY4%3D","updated":"2013-04-25 15:15:18.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f15ce13ba30d4cbc83c2ecc4b5258bc1ddb1f071","unresolved":false,"context_lines":[{"line_number":712,"context_line":"    utils.print_list(backups, columns)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"@utils.arg(\u0027backup\u0027, metavar\u003d\u0027\u003cbackup\u003e\u0027, help\u003d\u0027ID of the backup to delete.\u0027)"},{"line_number":716,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":717,"context_line":"def do_backup_delete(cs, args):"},{"line_number":718,"context_line":"    \"\"\"Remove a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwY4%3D","line":715,"in_reply_to":"AAAAOn%2F%2Fwhk%3D","updated":"2013-04-24 20:54:05.000000000","message":"Ok I made a mistake here. consistently this can just be \u003cbackup\u003e like do_delete is just \u003cvolume\u003e. Seems to be the norm for positional args.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":712,"context_line":"    utils.print_list(backups, columns)"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"@utils.arg(\u0027backup\u0027, metavar\u003d\u0027\u003cbackup\u003e\u0027, help\u003d\u0027ID of the backup to delete.\u0027)"},{"line_number":716,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":717,"context_line":"def do_backup_delete(cs, args):"},{"line_number":718,"context_line":"    \"\"\"Remove a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2Fwhk%3D","line":715,"in_reply_to":"AAAAOn%2F%2FxDE%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done (for the metavar, changing backup_id arg to backup-id breaks the client with ERROR: \u0027Namespace\u0027 object has no attribute \u0027backup_id\u0027 - have I missed something here?)","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":720,"context_line":"    backup.delete()"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027,"},{"line_number":724,"context_line":"           help\u003d\u0027ID of the backup to restore.\u0027)"},{"line_number":725,"context_line":"@utils.arg(\u0027--volume_id\u0027, metavar\u003d\u0027\u003cvolume_id\u003e\u0027,"},{"line_number":726,"context_line":"           help\u003d\u0027Optional ID of the volume to restore to.\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxDA%3D","line":723,"updated":"2013-04-24 04:25:44.000000000","message":"switch underscores to dashes.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"f9eacec56680433132a52d72cd662f4b5d5f05fc","unresolved":false,"context_lines":[{"line_number":720,"context_line":"    backup.delete()"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027,"},{"line_number":724,"context_line":"           help\u003d\u0027ID of the backup to restore.\u0027)"},{"line_number":725,"context_line":"@utils.arg(\u0027--volume_id\u0027, metavar\u003d\u0027\u003cvolume_id\u003e\u0027,"},{"line_number":726,"context_line":"           help\u003d\u0027Optional ID of the volume to restore to.\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FvR4%3D","line":723,"in_reply_to":"AAAAOn%2F%2FwY0%3D","updated":"2013-04-25 15:15:18.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f15ce13ba30d4cbc83c2ecc4b5258bc1ddb1f071","unresolved":false,"context_lines":[{"line_number":720,"context_line":"    backup.delete()"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027,"},{"line_number":724,"context_line":"           help\u003d\u0027ID of the backup to restore.\u0027)"},{"line_number":725,"context_line":"@utils.arg(\u0027--volume_id\u0027, metavar\u003d\u0027\u003cvolume_id\u003e\u0027,"},{"line_number":726,"context_line":"           help\u003d\u0027Optional ID of the volume to restore to.\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwY0%3D","line":723,"in_reply_to":"AAAAOn%2F%2Fwhg%3D","updated":"2013-04-24 20:54:05.000000000","message":"Can just be backup as mentioned above. Again sorry for the back and forth.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":720,"context_line":"    backup.delete()"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":""},{"line_number":723,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027,"},{"line_number":724,"context_line":"           help\u003d\u0027ID of the backup to restore.\u0027)"},{"line_number":725,"context_line":"@utils.arg(\u0027--volume_id\u0027, metavar\u003d\u0027\u003cvolume_id\u003e\u0027,"},{"line_number":726,"context_line":"           help\u003d\u0027Optional ID of the volume to restore to.\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2Fwhg%3D","line":723,"in_reply_to":"AAAAOn%2F%2FxDA%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done (for the metavar, changing backup_id arg to backup-id breaks the client with ERROR: \u0027Namespace\u0027 object has no attribute \u0027backup_id\u0027 - have I missed something here?)","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027,"},{"line_number":724,"context_line":"           help\u003d\u0027ID of the backup to restore.\u0027)"},{"line_number":725,"context_line":"@utils.arg(\u0027--volume_id\u0027, metavar\u003d\u0027\u003cvolume_id\u003e\u0027,"},{"line_number":726,"context_line":"           help\u003d\u0027Optional ID of the volume to restore to.\u0027,"},{"line_number":727,"context_line":"           default\u003dNone)"},{"line_number":728,"context_line":"@utils.service_type(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxC8%3D","line":725,"updated":"2013-04-24 04:25:44.000000000","message":"switch underscores to dashes.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":"@utils.arg(\u0027backup_id\u0027, metavar\u003d\u0027\u003cbackup_id\u003e\u0027,"},{"line_number":724,"context_line":"           help\u003d\u0027ID of the backup to restore.\u0027)"},{"line_number":725,"context_line":"@utils.arg(\u0027--volume_id\u0027, metavar\u003d\u0027\u003cvolume_id\u003e\u0027,"},{"line_number":726,"context_line":"           help\u003d\u0027Optional ID of the volume to restore to.\u0027,"},{"line_number":727,"context_line":"           default\u003dNone)"},{"line_number":728,"context_line":"@utils.service_type(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2Fwhc%3D","line":725,"in_reply_to":"AAAAOn%2F%2FxC8%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"bb62607025a8051ac6ac5630f2cd25bbba82225a","unresolved":false,"context_lines":[{"line_number":704,"context_line":"    backups \u003d cs.backups.list()"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"    # columns we want to display incl. names to use in output"},{"line_number":707,"context_line":"    columns \u003d [\u0027Backup ID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Fail Reason\u0027,"},{"line_number":708,"context_line":"               \u0027Description\u0027, \u0027Backup Container\u0027, \u0027Created At\u0027,"},{"line_number":709,"context_line":"               \u0027Size GB\u0027, \u0027Backup Object Count\u0027, \u0027Volume ID\u0027,"},{"line_number":710,"context_line":"               \u0027AZ\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvOA%3D","line":707,"updated":"2013-04-25 15:49:03.000000000","message":"IMO this should be \"Failure Reason\" instead.","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"220282f390bb38a7d9029ac458a5f050d490d01a","unresolved":false,"context_lines":[{"line_number":704,"context_line":"    backups \u003d cs.backups.list()"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"    # columns we want to display incl. names to use in output"},{"line_number":707,"context_line":"    columns \u003d [\u0027Backup ID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Fail Reason\u0027,"},{"line_number":708,"context_line":"               \u0027Description\u0027, \u0027Backup Container\u0027, \u0027Created At\u0027,"},{"line_number":709,"context_line":"               \u0027Size GB\u0027, \u0027Backup Object Count\u0027, \u0027Volume ID\u0027,"},{"line_number":710,"context_line":"               \u0027AZ\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvJA%3D","line":707,"in_reply_to":"AAAAOn%2F%2FvOA%3D","updated":"2013-04-25 16:20:05.000000000","message":"Done","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"bb62607025a8051ac6ac5630f2cd25bbba82225a","unresolved":false,"context_lines":[{"line_number":706,"context_line":"    # columns we want to display incl. names to use in output"},{"line_number":707,"context_line":"    columns \u003d [\u0027Backup ID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Fail Reason\u0027,"},{"line_number":708,"context_line":"               \u0027Description\u0027, \u0027Backup Container\u0027, \u0027Created At\u0027,"},{"line_number":709,"context_line":"               \u0027Size GB\u0027, \u0027Backup Object Count\u0027, \u0027Volume ID\u0027,"},{"line_number":710,"context_line":"               \u0027AZ\u0027]"},{"line_number":711,"context_line":"    _translate_backup_keys(backups)"},{"line_number":712,"context_line":"    utils.print_list(backups, columns)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvNw%3D","line":709,"updated":"2013-04-25 15:49:03.000000000","message":"For volumes we just show \"Size\" and assume it\u0027s in GB, not sure why this is different.  If units are needed, should probably be \"Size (GB)\".","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"220282f390bb38a7d9029ac458a5f050d490d01a","unresolved":false,"context_lines":[{"line_number":706,"context_line":"    # columns we want to display incl. names to use in output"},{"line_number":707,"context_line":"    columns \u003d [\u0027Backup ID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Fail Reason\u0027,"},{"line_number":708,"context_line":"               \u0027Description\u0027, \u0027Backup Container\u0027, \u0027Created At\u0027,"},{"line_number":709,"context_line":"               \u0027Size GB\u0027, \u0027Backup Object Count\u0027, \u0027Volume ID\u0027,"},{"line_number":710,"context_line":"               \u0027AZ\u0027]"},{"line_number":711,"context_line":"    _translate_backup_keys(backups)"},{"line_number":712,"context_line":"    utils.print_list(backups, columns)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvI0%3D","line":709,"in_reply_to":"AAAAOn%2F%2FvNw%3D","updated":"2013-04-25 16:20:05.000000000","message":"I\u0027ve reluctantly removed GB in the interests of getting this merged, I think with the presence of object count adjacent to this, it is useful to clarify that this is Size in GB","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"bb62607025a8051ac6ac5630f2cd25bbba82225a","unresolved":false,"context_lines":[{"line_number":707,"context_line":"    columns \u003d [\u0027Backup ID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Fail Reason\u0027,"},{"line_number":708,"context_line":"               \u0027Description\u0027, \u0027Backup Container\u0027, \u0027Created At\u0027,"},{"line_number":709,"context_line":"               \u0027Size GB\u0027, \u0027Backup Object Count\u0027, \u0027Volume ID\u0027,"},{"line_number":710,"context_line":"               \u0027AZ\u0027]"},{"line_number":711,"context_line":"    _translate_backup_keys(backups)"},{"line_number":712,"context_line":"    utils.print_list(backups, columns)"},{"line_number":713,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvM4%3D","line":710,"updated":"2013-04-25 15:49:03.000000000","message":"Since this is nowhere close to fitting in a narrow terminal window anyway, we might as well spell this out to \"Avail. Zone\" or similar.","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"220282f390bb38a7d9029ac458a5f050d490d01a","unresolved":false,"context_lines":[{"line_number":707,"context_line":"    columns \u003d [\u0027Backup ID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Fail Reason\u0027,"},{"line_number":708,"context_line":"               \u0027Description\u0027, \u0027Backup Container\u0027, \u0027Created At\u0027,"},{"line_number":709,"context_line":"               \u0027Size GB\u0027, \u0027Backup Object Count\u0027, \u0027Volume ID\u0027,"},{"line_number":710,"context_line":"               \u0027AZ\u0027]"},{"line_number":711,"context_line":"    _translate_backup_keys(backups)"},{"line_number":712,"context_line":"    utils.print_list(backups, columns)"},{"line_number":713,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvIk%3D","line":710,"in_reply_to":"AAAAOn%2F%2FvM4%3D","updated":"2013-04-25 16:20:05.000000000","message":"Changed to Availability Zone following this suggestion to its logical conclusion","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"}],"cinderclient/v1/volume_backups.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        return \"\u003cVolumeBackup: %s\u003e\" % self.id"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def delete(self):"},{"line_number":29,"context_line":"        \"\"\""},{"line_number":30,"context_line":"        Delete this volume backup."},{"line_number":31,"context_line":"        \"\"\""},{"line_number":32,"context_line":"        return self.manager.delete(self)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxCs%3D","line":29,"updated":"2013-04-24 04:25:44.000000000","message":"fix this doc string according to hacking file.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        return \"\u003cVolumeBackup: %s\u003e\" % self.id"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def delete(self):"},{"line_number":29,"context_line":"        \"\"\""},{"line_number":30,"context_line":"        Delete this volume backup."},{"line_number":31,"context_line":"        \"\"\""},{"line_number":32,"context_line":"        return self.manager.delete(self)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwhM%3D","line":29,"in_reply_to":"AAAAOn%2F%2FxCs%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"}],"cinderclient/v2/shell.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":729,"context_line":"@utils.arg(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":730,"context_line":"           help\u003d\u0027Optional backup name. (Default\u003dNone)\u0027,"},{"line_number":731,"context_line":"           default\u003dNone)"},{"line_number":732,"context_line":"@utils.arg(\u0027--description\u0027,"},{"line_number":733,"context_line":"           metavar\u003d\u0027\u003cdescription\u003e\u0027,"},{"line_number":734,"context_line":"           default\u003dNone,"},{"line_number":735,"context_line":"           help\u003d\u0027Options backup description (Default\u003dNone)\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxDs%3D","line":732,"updated":"2013-04-24 04:25:44.000000000","message":"Need --display-description deprecated too.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":729,"context_line":"@utils.arg(\u0027--name\u0027, metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":730,"context_line":"           help\u003d\u0027Optional backup name. (Default\u003dNone)\u0027,"},{"line_number":731,"context_line":"           default\u003dNone)"},{"line_number":732,"context_line":"@utils.arg(\u0027--description\u0027,"},{"line_number":733,"context_line":"           metavar\u003d\u0027\u003cdescription\u003e\u0027,"},{"line_number":734,"context_line":"           default\u003dNone,"},{"line_number":735,"context_line":"           help\u003d\u0027Options backup description (Default\u003dNone)\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwhE%3D","line":732,"in_reply_to":"AAAAOn%2F%2FxDs%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f15ce13ba30d4cbc83c2ecc4b5258bc1ddb1f071","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                      args.description)"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"@utils.arg(\u0027backup-id\u0027, metavar\u003d\u0027\u003cbackup-id\u003e\u0027, help\u003d\u0027ID of the backup.\u0027)"},{"line_number":752,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":753,"context_line":"def do_backup_show(cs, args):"},{"line_number":754,"context_line":"    \"\"\"Show details about a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwYw%3D","line":751,"updated":"2013-04-24 20:54:05.000000000","message":"can just be backup instead of backup-id as explained in v1/shell.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"f9eacec56680433132a52d72cd662f4b5d5f05fc","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                      args.description)"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"@utils.arg(\u0027backup-id\u0027, metavar\u003d\u0027\u003cbackup-id\u003e\u0027, help\u003d\u0027ID of the backup.\u0027)"},{"line_number":752,"context_line":"@utils.service_type(\u0027volume\u0027)"},{"line_number":753,"context_line":"def do_backup_show(cs, args):"},{"line_number":754,"context_line":"    \"\"\"Show details about a backup.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FvR0%3D","line":751,"in_reply_to":"AAAAOn%2F%2FwYw%3D","updated":"2013-04-25 15:15:18.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f15ce13ba30d4cbc83c2ecc4b5258bc1ddb1f071","unresolved":false,"context_lines":[{"line_number":776,"context_line":"    utils.print_list(backups, columns)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"@utils.arg(\u0027backup-id\u0027,"},{"line_number":780,"context_line":"           metavar\u003d\u0027\u003cbackup-id\u003e\u0027,"},{"line_number":781,"context_line":"           help\u003d\u0027ID of the backup to delete.\u0027)"},{"line_number":782,"context_line":"@utils.service_type(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwYs%3D","line":779,"updated":"2013-04-24 20:54:05.000000000","message":"can just be backup instead of backup-id as explained in v1/shell.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"f9eacec56680433132a52d72cd662f4b5d5f05fc","unresolved":false,"context_lines":[{"line_number":776,"context_line":"    utils.print_list(backups, columns)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"@utils.arg(\u0027backup-id\u0027,"},{"line_number":780,"context_line":"           metavar\u003d\u0027\u003cbackup-id\u003e\u0027,"},{"line_number":781,"context_line":"           help\u003d\u0027ID of the backup to delete.\u0027)"},{"line_number":782,"context_line":"@utils.service_type(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FvRw%3D","line":779,"in_reply_to":"AAAAOn%2F%2FwYs%3D","updated":"2013-04-25 15:15:18.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f15ce13ba30d4cbc83c2ecc4b5258bc1ddb1f071","unresolved":false,"context_lines":[{"line_number":786,"context_line":"    backup.delete()"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"@utils.arg(\u0027backup-id\u0027, metavar\u003d\u0027\u003cbackup-id\u003e\u0027,"},{"line_number":790,"context_line":"           help\u003d\u0027ID of the backup to restore.\u0027)"},{"line_number":791,"context_line":"@utils.arg(\u0027--volume-id\u0027, metavar\u003d\u0027\u003cvolume-id\u003e\u0027,"},{"line_number":792,"context_line":"           help\u003d\u0027Optional ID of the volume to restore to.\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwYo%3D","line":789,"updated":"2013-04-24 20:54:05.000000000","message":"can just be backup instead of backup-id as explained in v1/shell.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"f9eacec56680433132a52d72cd662f4b5d5f05fc","unresolved":false,"context_lines":[{"line_number":786,"context_line":"    backup.delete()"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"@utils.arg(\u0027backup-id\u0027, metavar\u003d\u0027\u003cbackup-id\u003e\u0027,"},{"line_number":790,"context_line":"           help\u003d\u0027ID of the backup to restore.\u0027)"},{"line_number":791,"context_line":"@utils.arg(\u0027--volume-id\u0027, metavar\u003d\u0027\u003cvolume-id\u003e\u0027,"},{"line_number":792,"context_line":"           help\u003d\u0027Optional ID of the volume to restore to.\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FvRs%3D","line":789,"in_reply_to":"AAAAOn%2F%2FwYo%3D","updated":"2013-04-25 15:15:18.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"bb62607025a8051ac6ac5630f2cd25bbba82225a","unresolved":false,"context_lines":[{"line_number":770,"context_line":"    backups \u003d cs.backups.list()"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"    # columns we want to display incl. names to use in output"},{"line_number":773,"context_line":"    columns \u003d [\u0027Backup ID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Fail Reason\u0027,"},{"line_number":774,"context_line":"               \u0027Description\u0027, \u0027Backup Container\u0027, \u0027Created At\u0027,"},{"line_number":775,"context_line":"               \u0027Size GB\u0027, \u0027Backup Object Count\u0027, \u0027Volume ID\u0027,"},{"line_number":776,"context_line":"               \u0027AZ\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvNk%3D","line":773,"updated":"2013-04-25 15:49:03.000000000","message":"Same comments as in v1.","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"220282f390bb38a7d9029ac458a5f050d490d01a","unresolved":false,"context_lines":[{"line_number":770,"context_line":"    backups \u003d cs.backups.list()"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"    # columns we want to display incl. names to use in output"},{"line_number":773,"context_line":"    columns \u003d [\u0027Backup ID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Fail Reason\u0027,"},{"line_number":774,"context_line":"               \u0027Description\u0027, \u0027Backup Container\u0027, \u0027Created At\u0027,"},{"line_number":775,"context_line":"               \u0027Size GB\u0027, \u0027Backup Object Count\u0027, \u0027Volume ID\u0027,"},{"line_number":776,"context_line":"               \u0027AZ\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvH8%3D","line":773,"in_reply_to":"AAAAOn%2F%2FvNk%3D","updated":"2013-04-25 16:20:05.000000000","message":"Done","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"}],"tests/v1/fakes.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        ]"},{"line_number":369,"context_line":"        return (200, {}, {\"extensions\": exts, })"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    #"},{"line_number":372,"context_line":"    # VolumeBackups"},{"line_number":373,"context_line":"    #"},{"line_number":374,"context_line":"    def get_backups_76a17945_3c6f_435c_975b_b5685db10b62(self, **kw):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxCk%3D","line":371,"updated":"2013-04-24 04:25:44.000000000","message":"fakes is more meant to be general fixtures. Since this is a lot of dup code, I\u0027d suggest defining a function that would accept kwargs like base_uri, tenant_id, etc, then call that function from each test case, like what you did with _stub_backup_full.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"f9eacec56680433132a52d72cd662f4b5d5f05fc","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        ]"},{"line_number":369,"context_line":"        return (200, {}, {\"extensions\": exts, })"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    #"},{"line_number":372,"context_line":"    # VolumeBackups"},{"line_number":373,"context_line":"    #"},{"line_number":374,"context_line":"    def get_backups_76a17945_3c6f_435c_975b_b5685db10b62(self, **kw):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FvQs%3D","line":371,"in_reply_to":"AAAAOn%2F%2FwYE%3D","updated":"2013-04-25 15:15:18.000000000","message":"These methods are called by the mocked _cs_request in FakeHTTPClient - for both the backups and all the other test cases. Are you suggesting changing that mocking for the backups unit tests? Or all unit tests? In either case, refactoring the unit testing framework here seems like a separate change. The backups are following the same pattern as the other unit tests.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"f15ce13ba30d4cbc83c2ecc4b5258bc1ddb1f071","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        ]"},{"line_number":369,"context_line":"        return (200, {}, {\"extensions\": exts, })"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    #"},{"line_number":372,"context_line":"    # VolumeBackups"},{"line_number":373,"context_line":"    #"},{"line_number":374,"context_line":"    def get_backups_76a17945_3c6f_435c_975b_b5685db10b62(self, **kw):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwYE%3D","line":371,"in_reply_to":"AAAAOn%2F%2FwgM%3D","updated":"2013-04-24 20:54:05.000000000","message":"have a general method like so:\n\ndef get_backup_response(self, **kwarg):\n    response_code \u003d kwarg[\u0027response_code\u0027]\n    ...\n    return (response_code,...)\n\nin each test case you would call get_backup_response() and pass whatever stub info in the test case, so you can see what the mock actually is in the test case. This goes along the idea of a model factory in a way. In a nutshell I\u0027d like to avoid fixtures, dup code like in the methods 374-403 and a clearer definition in the test case of what the mock looks like.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        ]"},{"line_number":369,"context_line":"        return (200, {}, {\"extensions\": exts, })"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    #"},{"line_number":372,"context_line":"    # VolumeBackups"},{"line_number":373,"context_line":"    #"},{"line_number":374,"context_line":"    def get_backups_76a17945_3c6f_435c_975b_b5685db10b62(self, **kw):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwgM%3D","line":371,"in_reply_to":"AAAAOn%2F%2FxCk%3D","updated":"2013-04-24 16:20:20.000000000","message":"This FakeHTTPClient seems to be expected to implement methods which successful unit tests call - the backups tests follow the same pattern as the other unit tests for volumes, types, quotas and so on so I\u0027m not calling them directly. They are a bit more verbose than some of the others because I\u0027m trying to return responses that more accurately match actual output (though those reponses aren\u0027t currently being used afaics).\n\nSo I\u0027m not clear on what needs to be changed here, can you elaborate? If its a change to how the client unit tests work under the hood, I\u0027d prefer we make that a separate change.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"bb62607025a8051ac6ac5630f2cd25bbba82225a","unresolved":false,"context_lines":[{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    #"},{"line_number":372,"context_line":"    # VolumeBackups"},{"line_number":373,"context_line":"    #"},{"line_number":374,"context_line":"    def get_backups_76a17945_3c6f_435c_975b_b5685db10b62(self, **kw):"},{"line_number":375,"context_line":"        base_uri \u003d \u0027http://localhost:8776\u0027"},{"line_number":376,"context_line":"        tenant_id \u003d \u00270fa851f6668144cf9cd8c8419c1646c1\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvNY%3D","line":373,"updated":"2013-04-25 15:49:03.000000000","message":"V2 has another line break here.","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"220282f390bb38a7d9029ac458a5f050d490d01a","unresolved":false,"context_lines":[{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    #"},{"line_number":372,"context_line":"    # VolumeBackups"},{"line_number":373,"context_line":"    #"},{"line_number":374,"context_line":"    def get_backups_76a17945_3c6f_435c_975b_b5685db10b62(self, **kw):"},{"line_number":375,"context_line":"        base_uri \u003d \u0027http://localhost:8776\u0027"},{"line_number":376,"context_line":"        tenant_id \u003d \u00270fa851f6668144cf9cd8c8419c1646c1\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAOn%2F%2FvJw%3D","line":373,"in_reply_to":"AAAAOn%2F%2FvNY%3D","updated":"2013-04-25 16:20:05.000000000","message":"Done","commit_id":"1aad78a7a649b5c66ca9fda510cd5c985d7b29a6"}],"tests/v1/test_volume_backups.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def test_get(self):"},{"line_number":30,"context_line":"        backup_id \u003d \u002776a17945-3c6f-435c-975b-b5685db10b62\u0027"},{"line_number":31,"context_line":"        b \u003d cs.backups.get(backup_id)"},{"line_number":32,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/backups/%s\u0027 % backup_id)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_list(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxCY%3D","line":31,"updated":"2013-04-24 04:25:44.000000000","message":"b is never used.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def test_get(self):"},{"line_number":30,"context_line":"        backup_id \u003d \u002776a17945-3c6f-435c-975b-b5685db10b62\u0027"},{"line_number":31,"context_line":"        b \u003d cs.backups.get(backup_id)"},{"line_number":32,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/backups/%s\u0027 % backup_id)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_list(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwgI%3D","line":31,"in_reply_to":"AAAAOn%2F%2FxCY%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"}],"tests/v2/fakes.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    # VolumeBackups"},{"line_number":380,"context_line":"    #"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def get_backups_76a17945_3c6f_435c_975b_b5685db10b62(self, **kw):"},{"line_number":383,"context_line":"        base_uri \u003d \u0027http://localhost:8776\u0027"},{"line_number":384,"context_line":"        tenant_id \u003d \u00270fa851f6668144cf9cd8c8419c1646c1\u0027"},{"line_number":385,"context_line":"        backup1 \u003d \u002776a17945-3c6f-435c-975b-b5685db10b62\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxCU%3D","line":382,"updated":"2013-04-24 04:25:44.000000000","message":"same thing as mentioned in v2/fakes.py","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    # VolumeBackups"},{"line_number":380,"context_line":"    #"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def get_backups_76a17945_3c6f_435c_975b_b5685db10b62(self, **kw):"},{"line_number":383,"context_line":"        base_uri \u003d \u0027http://localhost:8776\u0027"},{"line_number":384,"context_line":"        tenant_id \u003d \u00270fa851f6668144cf9cd8c8419c1646c1\u0027"},{"line_number":385,"context_line":"        backup1 \u003d \u002776a17945-3c6f-435c-975b-b5685db10b62\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwgA%3D","line":382,"in_reply_to":"AAAAOn%2F%2FxCU%3D","updated":"2013-04-24 16:20:20.000000000","message":"same response as v1/fakes.py","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"}],"tests/v2/test_volume_backups.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"ab3d9e79444af90aa266c44ab2eb5bf4d8286942","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def test_get(self):"},{"line_number":30,"context_line":"        backup_id \u003d \u002776a17945-3c6f-435c-975b-b5685db10b62\u0027"},{"line_number":31,"context_line":"        b \u003d cs.backups.get(backup_id)"},{"line_number":32,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/backups/%s\u0027 % backup_id)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_list(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FxCQ%3D","line":31,"updated":"2013-04-24 04:25:44.000000000","message":"b is never used.","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"ca3f82d14564aac22116d084ebceb7dc6971adaa","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def test_get(self):"},{"line_number":30,"context_line":"        backup_id \u003d \u002776a17945-3c6f-435c-975b-b5685db10b62\u0027"},{"line_number":31,"context_line":"        b \u003d cs.backups.get(backup_id)"},{"line_number":32,"context_line":"        cs.assert_called(\u0027GET\u0027, \u0027/backups/%s\u0027 % backup_id)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_list(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOn%2F%2FwgE%3D","line":31,"in_reply_to":"AAAAOn%2F%2FxCQ%3D","updated":"2013-04-24 16:20:20.000000000","message":"Done","commit_id":"5494e73287b686102258f35dc8b0d24d6a1cb559"}]}
