)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"be45e96ead279eeef94de982c2f3d3f9c6c12332","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The Image tests were not using warlock images, so that needed to be fixed"},{"line_number":18,"context_line":"before we could completely test things like --wait."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Depends-On: Ia6ed3a8e28a8961f770c241b49d47cce9ff328d3"},{"line_number":21,"context_line":"Change-Id: I30159518c4d3fdec89f15963bda641a0b03962d1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bab6814e_25d77624","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":53},"updated":"2016-05-19 19:00:44.000000000","message":"don\u0027t need a depends on if they are in the same repo","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"}],"doc/source/command-objects/server-backup.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"29bc9d1ff4eab41fca57dda898359b304edf1544","unresolved":false,"context_lines":[{"line_number":2,"context_line":"server backup"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A server backup is a disk image created in the Image store from a running server instance.  The backup command manages the number of archival copies to retain."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Compute v2"},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab6814e_6ccd9b30","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":159},"updated":"2016-05-21 20:12:07.000000000","message":"suggest a line break after 72 or 80 characters, to make this easier for reviewing","commit_id":"7b305884d626871ee705853d67994f814d824de1"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"29bc9d1ff4eab41fca57dda898359b304edf1544","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    Used to populate the ``backup_type`` property of the backup"},{"line_number":31,"context_line":"    image (default: empty)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":".. option:: --rotation-count \u003cnum-backups\u003e"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    Number of backup images to keep (default: 1)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab6814e_acd303d4","line":33,"range":{"start_line":33,"start_character":30,"end_line":33,"end_character":33},"updated":"2016-05-21 20:12:07.000000000","message":"number*, full names instead?","commit_id":"7b305884d626871ee705853d67994f814d824de1"}],"doc/source/commands.rst":[{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"a180e8ec2e42b00d0a752408decc474d2bd3d57b","unresolved":false,"context_lines":[{"line_number":177,"context_line":"* ``add`` (``remove``) - add some object to a container object; the command"},{"line_number":178,"context_line":"  is built in the order of ``container add object \u003ccontainer\u003e \u003cobject\u003e``,"},{"line_number":179,"context_line":"  the positional arguments appear in the same order"},{"line_number":180,"context_line":"* ``backup`` (``backup``) - backup a server by creating a image snapshot"},{"line_number":181,"context_line":"* ``create`` (``delete``) - create a new occurrence of the specified object"},{"line_number":182,"context_line":"* ``delete`` (``create``) - delete specific occurrences of the specified objects"},{"line_number":183,"context_line":"* ``issue`` (``revoke``) - issue a token"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7af24918_d8270061","line":180,"updated":"2016-03-04 15:54:50.000000000","message":"I don\u0027t think backup is an appropriate action here.  I think the command object should be \"server backup\" with action \"create\".  This command creates a \u0027backup\u0027 type snapshot image which makes it similar to the \"os server image create\" command.  \n\nThere was some discuss on this during the last OSC meeting: http://eavesdrop.openstack.org/meetings/openstackclient/2016/openstackclient.2016-03-03-19.00.log.html","commit_id":"260ad2527bd6530e85381aa91803164bf6acc3e5"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"24a82f39e38d28c274d4a1ede2d66503a9f8b7be","unresolved":false,"context_lines":[{"line_number":177,"context_line":"* ``add`` (``remove``) - add some object to a container object; the command"},{"line_number":178,"context_line":"  is built in the order of ``container add object \u003ccontainer\u003e \u003cobject\u003e``,"},{"line_number":179,"context_line":"  the positional arguments appear in the same order"},{"line_number":180,"context_line":"* ``backup`` (``backup``) - backup a server by creating a image snapshot"},{"line_number":181,"context_line":"* ``create`` (``delete``) - create a new occurrence of the specified object"},{"line_number":182,"context_line":"* ``delete`` (``create``) - delete specific occurrences of the specified objects"},{"line_number":183,"context_line":"* ``issue`` (``revoke``) - issue a token"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3afc51ec_265877fa","line":180,"in_reply_to":"7af24918_d8270061","updated":"2016-03-14 12:31:55.000000000","message":"agree, seems server image backup is better, thanks~","commit_id":"260ad2527bd6530e85381aa91803164bf6acc3e5"}],"openstackclient/compute/v2/server.py":[{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"fad92fc39d157c56c546a8615568478f24f9432c","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            help\u003d_(\u0027Server (name or ID)\u0027),"},{"line_number":253,"context_line":"        )"},{"line_number":254,"context_line":"        parser.add_argument("},{"line_number":255,"context_line":"            \u0027--imagename\u0027,"},{"line_number":256,"context_line":"            metavar\u003d\u0027\u003cimagename\u003e\u0027,"},{"line_number":257,"context_line":"            help\u003d_(\u0027Name of the backup image\u0027),"},{"line_number":258,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_d4edb5f0","line":255,"range":{"start_line":255,"start_character":12,"end_line":255,"end_character":26},"updated":"2016-02-26 17:24:18.000000000","message":"Any reason for not using \u0027image-name\u0027? Same for backuptype.","commit_id":"e933add38922611cea454a6ed31faba35210b765"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"ba2f7aec78613abb9c7693d5f63c0fdc9ddbbfc9","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            help\u003d_(\u0027Server (name or ID)\u0027),"},{"line_number":253,"context_line":"        )"},{"line_number":254,"context_line":"        parser.add_argument("},{"line_number":255,"context_line":"            \u0027--imagename\u0027,"},{"line_number":256,"context_line":"            metavar\u003d\u0027\u003cimagename\u003e\u0027,"},{"line_number":257,"context_line":"            help\u003d_(\u0027Name of the backup image\u0027),"},{"line_number":258,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aed3d3a_2fcda75d","line":255,"range":{"start_line":255,"start_character":12,"end_line":255,"end_character":26},"in_reply_to":"9aed3d3a_d4edb5f0","updated":"2016-02-26 19:05:32.000000000","message":"I can change it :). thanks~","commit_id":"e933add38922611cea454a6ed31faba35210b765"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f798680047688b5e9afb0e4a17500c6908088cd5","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            help\u003d_(\u0027Server (name or ID)\u0027),"},{"line_number":554,"context_line":"        )"},{"line_number":555,"context_line":"        parser.add_argument("},{"line_number":556,"context_line":"            \u0027--image-name\u0027,"},{"line_number":557,"context_line":"            metavar\u003d\u0027\u003cimage_name\u003e\u0027,"},{"line_number":558,"context_line":"            help\u003d_(\u0027Name of the backup image\u0027),"},{"line_number":559,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_86f44b5b","line":556,"updated":"2016-03-23 17:39:28.000000000","message":"--name","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9a04528b1a04e0e8299914273aa9f61136e6c7a8","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            help\u003d_(\u0027Server (name or ID)\u0027),"},{"line_number":554,"context_line":"        )"},{"line_number":555,"context_line":"        parser.add_argument("},{"line_number":556,"context_line":"            \u0027--image-name\u0027,"},{"line_number":557,"context_line":"            metavar\u003d\u0027\u003cimage_name\u003e\u0027,"},{"line_number":558,"context_line":"            help\u003d_(\u0027Name of the backup image\u0027),"},{"line_number":559,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_29020f70","line":556,"in_reply_to":"fa0719c6_86f44b5b","updated":"2016-04-08 12:10:23.000000000","message":"Done","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f798680047688b5e9afb0e4a17500c6908088cd5","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        )"},{"line_number":555,"context_line":"        parser.add_argument("},{"line_number":556,"context_line":"            \u0027--image-name\u0027,"},{"line_number":557,"context_line":"            metavar\u003d\u0027\u003cimage_name\u003e\u0027,"},{"line_number":558,"context_line":"            help\u003d_(\u0027Name of the backup image\u0027),"},{"line_number":559,"context_line":"        )"},{"line_number":560,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_464993b6","line":557,"updated":"2016-03-23 17:39:28.000000000","message":"use dashes here not underscores","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9a04528b1a04e0e8299914273aa9f61136e6c7a8","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        )"},{"line_number":555,"context_line":"        parser.add_argument("},{"line_number":556,"context_line":"            \u0027--image-name\u0027,"},{"line_number":557,"context_line":"            metavar\u003d\u0027\u003cimage_name\u003e\u0027,"},{"line_number":558,"context_line":"            help\u003d_(\u0027Name of the backup image\u0027),"},{"line_number":559,"context_line":"        )"},{"line_number":560,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_a9ee1fb2","line":557,"in_reply_to":"fa0719c6_464993b6","updated":"2016-04-08 12:10:23.000000000","message":"Done","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f798680047688b5e9afb0e4a17500c6908088cd5","unresolved":false,"context_lines":[{"line_number":558,"context_line":"            help\u003d_(\u0027Name of the backup image\u0027),"},{"line_number":559,"context_line":"        )"},{"line_number":560,"context_line":"        parser.add_argument("},{"line_number":561,"context_line":"            \u0027--backup-type\u0027,"},{"line_number":562,"context_line":"            metavar\u003d\u0027\u003cbackup_type\u003e\u0027,"},{"line_number":563,"context_line":"            help\u003d_(\u0027Type of the backup\u0027),"},{"line_number":564,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_e6e427e1","line":561,"updated":"2016-03-23 17:39:28.000000000","message":"--type should be sufficient","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9a04528b1a04e0e8299914273aa9f61136e6c7a8","unresolved":false,"context_lines":[{"line_number":558,"context_line":"            help\u003d_(\u0027Name of the backup image\u0027),"},{"line_number":559,"context_line":"        )"},{"line_number":560,"context_line":"        parser.add_argument("},{"line_number":561,"context_line":"            \u0027--backup-type\u0027,"},{"line_number":562,"context_line":"            metavar\u003d\u0027\u003cbackup_type\u003e\u0027,"},{"line_number":563,"context_line":"            help\u003d_(\u0027Type of the backup\u0027),"},{"line_number":564,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_e915b79b","line":561,"in_reply_to":"fa0719c6_e6e427e1","updated":"2016-04-08 12:10:23.000000000","message":"Done","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f798680047688b5e9afb0e4a17500c6908088cd5","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        )"},{"line_number":560,"context_line":"        parser.add_argument("},{"line_number":561,"context_line":"            \u0027--backup-type\u0027,"},{"line_number":562,"context_line":"            metavar\u003d\u0027\u003cbackup_type\u003e\u0027,"},{"line_number":563,"context_line":"            help\u003d_(\u0027Type of the backup\u0027),"},{"line_number":564,"context_line":"        )"},{"line_number":565,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_26d3bf05","line":562,"updated":"2016-03-23 17:39:28.000000000","message":"use dashes here not underscores","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9a04528b1a04e0e8299914273aa9f61136e6c7a8","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        )"},{"line_number":560,"context_line":"        parser.add_argument("},{"line_number":561,"context_line":"            \u0027--backup-type\u0027,"},{"line_number":562,"context_line":"            metavar\u003d\u0027\u003cbackup_type\u003e\u0027,"},{"line_number":563,"context_line":"            help\u003d_(\u0027Type of the backup\u0027),"},{"line_number":564,"context_line":"        )"},{"line_number":565,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_490b037e","line":562,"in_reply_to":"fa0719c6_26d3bf05","updated":"2016-04-08 12:10:23.000000000","message":"Done","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f798680047688b5e9afb0e4a17500c6908088cd5","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        parser.add_argument("},{"line_number":561,"context_line":"            \u0027--backup-type\u0027,"},{"line_number":562,"context_line":"            metavar\u003d\u0027\u003cbackup_type\u003e\u0027,"},{"line_number":563,"context_line":"            help\u003d_(\u0027Type of the backup\u0027),"},{"line_number":564,"context_line":"        )"},{"line_number":565,"context_line":"        parser.add_argument("},{"line_number":566,"context_line":"            \u0027--rotation\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_a62cef02","line":563,"updated":"2016-03-23 17:39:28.000000000","message":"Is this a list of static(-ish) choices?  that might be a better option.  At the very least we need to tell the user what the default is, even if it is a server-side default.","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9a04528b1a04e0e8299914273aa9f61136e6c7a8","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        parser.add_argument("},{"line_number":561,"context_line":"            \u0027--backup-type\u0027,"},{"line_number":562,"context_line":"            metavar\u003d\u0027\u003cbackup_type\u003e\u0027,"},{"line_number":563,"context_line":"            help\u003d_(\u0027Type of the backup\u0027),"},{"line_number":564,"context_line":"        )"},{"line_number":565,"context_line":"        parser.add_argument("},{"line_number":566,"context_line":"            \u0027--rotation\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_cc33a1f5","line":563,"in_reply_to":"fa0719c6_a62cef02","updated":"2016-04-08 12:10:23.000000000","message":"server side do not have default ...and this is not a pre-defined list, it\u0027s just a string","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f798680047688b5e9afb0e4a17500c6908088cd5","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            help\u003d_(\u0027Type of the backup\u0027),"},{"line_number":564,"context_line":"        )"},{"line_number":565,"context_line":"        parser.add_argument("},{"line_number":566,"context_line":"            \u0027--rotation\u0027,"},{"line_number":567,"context_line":"            metavar\u003d\u0027\u003crotation\u003e\u0027,"},{"line_number":568,"context_line":"            help\u003d_(\u0027Number of backups to keep around.\u0027),"},{"line_number":569,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_b8aee095","line":566,"updated":"2016-03-23 17:39:28.000000000","message":"This is not clear that it is actually a copy count, --rotation seems to me like it would be a boolean to enable/disable backup rotation, not specify how many copies to keep.\n\nlogrotate uses \u0027rotate count\u0027 for this.\n\nWe should consider something like --copies or --count or --rotate-count to specify this","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9a04528b1a04e0e8299914273aa9f61136e6c7a8","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            help\u003d_(\u0027Type of the backup\u0027),"},{"line_number":564,"context_line":"        )"},{"line_number":565,"context_line":"        parser.add_argument("},{"line_number":566,"context_line":"            \u0027--rotation\u0027,"},{"line_number":567,"context_line":"            metavar\u003d\u0027\u003crotation\u003e\u0027,"},{"line_number":568,"context_line":"            help\u003d_(\u0027Number of backups to keep around.\u0027),"},{"line_number":569,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_2c5b3d30","line":566,"in_reply_to":"fa0719c6_b8aee095","updated":"2016-04-08 12:10:23.000000000","message":"make sense, --rotation-count might be better","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"f798680047688b5e9afb0e4a17500c6908088cd5","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        )"},{"line_number":565,"context_line":"        parser.add_argument("},{"line_number":566,"context_line":"            \u0027--rotation\u0027,"},{"line_number":567,"context_line":"            metavar\u003d\u0027\u003crotation\u003e\u0027,"},{"line_number":568,"context_line":"            help\u003d_(\u0027Number of backups to keep around.\u0027),"},{"line_number":569,"context_line":"        )"},{"line_number":570,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_6950f5d4","line":567,"updated":"2016-03-23 17:39:28.000000000","message":"and change this to reflect that it is a count or number of copies being specified, no matter what the option end up being","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"9a04528b1a04e0e8299914273aa9f61136e6c7a8","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        )"},{"line_number":565,"context_line":"        parser.add_argument("},{"line_number":566,"context_line":"            \u0027--rotation\u0027,"},{"line_number":567,"context_line":"            metavar\u003d\u0027\u003crotation\u003e\u0027,"},{"line_number":568,"context_line":"            help\u003d_(\u0027Number of backups to keep around.\u0027),"},{"line_number":569,"context_line":"        )"},{"line_number":570,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_cc4a8155","line":567,"in_reply_to":"fa0719c6_6950f5d4","updated":"2016-04-08 12:10:23.000000000","message":"ok, make senes, thakns","commit_id":"10024a67cdf1e5f3d3366da162c21b7341a3aa58"}],"openstackclient/compute/v2/server_backup.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"778f9b516677340bf3b623d95ade50f5cd265396","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#   Copyright 2012-2013 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_d3c0ed2c","line":1,"updated":"2016-05-19 20:41:46.000000000","message":"Was this file copied from somewhere?","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"776c6c24234a26db2e2c1f48225ef02fea3ea292","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#   Copyright 2012-2013 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_4f4f296b","line":1,"in_reply_to":"bab6814e_d3c0ed2c","updated":"2016-05-20 01:26:57.000000000","message":"yes, servers.py.  corrected","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"778f9b516677340bf3b623d95ade50f5cd265396","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"\"\"\"Compute v2 Server action implementations\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":"import sys"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from oslo_utils import importutils"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_d3a90d7d","line":18,"updated":"2016-05-19 20:41:46.000000000","message":"six is a third party library, so it should be in the next section","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"be45e96ead279eeef94de982c2f3d3f9c6c12332","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from openstackclient.common import command"},{"line_number":24,"context_line":"from openstackclient.common import utils"},{"line_number":25,"context_line":"from openstackclient.i18n import _  # noqa"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def _show_progress(progress):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_85b582ef","line":25,"range":{"start_line":25,"start_character":35,"end_line":25,"end_character":42},"updated":"2016-05-19 19:00:44.000000000","message":"don\u0027t need this any longer","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"778f9b516677340bf3b623d95ade50f5cd265396","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            metavar\u003d\u0027\u003cbackup-type\u003e\u0027,"},{"line_number":57,"context_line":"            help\u003d_("},{"line_number":58,"context_line":"                \u0027Used to populate the backup_type property of the backup \u0027"},{"line_number":59,"context_line":"                \u0027image (default: none)\u0027"},{"line_number":60,"context_line":"            ),"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_d32bcd92","line":59,"updated":"2016-05-19 20:41:46.000000000","message":"According to the code the default is \"\". I\u0027m not entire sure what that means though. Also see my comment about defaults below.","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"776c6c24234a26db2e2c1f48225ef02fea3ea292","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            metavar\u003d\u0027\u003cbackup-type\u003e\u0027,"},{"line_number":57,"context_line":"            help\u003d_("},{"line_number":58,"context_line":"                \u0027Used to populate the backup_type property of the backup \u0027"},{"line_number":59,"context_line":"                \u0027image (default: none)\u0027"},{"line_number":60,"context_line":"            ),"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_341f986d","line":59,"in_reply_to":"bab6814e_d32bcd92","updated":"2016-05-20 01:26:57.000000000","message":"\"\" is meaningless to a user, read that as \"there is no default value\", not as None.  This says that in the same form as the other help messages.","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"778f9b516677340bf3b623d95ade50f5cd265396","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            \u0027--rotation-count\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003crotation-count\u003e\u0027,"},{"line_number":65,"context_line":"            type\u003dint,"},{"line_number":66,"context_line":"            help\u003d_(\u0027Number of backups to keep (default: 1)\u0027),"},{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        parser.add_argument("},{"line_number":69,"context_line":"            \u0027--wait\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_937305e7","line":66,"updated":"2016-05-19 20:41:46.000000000","message":"Any reason to not specify the default to add_argument? That way you don\u0027t need a conditional to see if it\u0027s set.","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"776c6c24234a26db2e2c1f48225ef02fea3ea292","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            \u0027--rotation-count\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003crotation-count\u003e\u0027,"},{"line_number":65,"context_line":"            type\u003dint,"},{"line_number":66,"context_line":"            help\u003d_(\u0027Number of backups to keep (default: 1)\u0027),"},{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        parser.add_argument("},{"line_number":69,"context_line":"            \u0027--wait\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_b42428c5","line":66,"in_reply_to":"bab6814e_937305e7","updated":"2016-05-20 01:26:57.000000000","message":"There are times where we do need to know if the option was supplied on the command line, setting defaults here masks that.  Since much code is copy-pasted (see my copyright gaffe) I really want to reuse the same patterns everywhere as much as possible.","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c872f77644936cf854f2ca3dce8d6cdd9d591467","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            \u0027--rotation-count\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003crotation-count\u003e\u0027,"},{"line_number":65,"context_line":"            type\u003dint,"},{"line_number":66,"context_line":"            help\u003d_(\u0027Number of backups to keep (default: 1)\u0027),"},{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        parser.add_argument("},{"line_number":69,"context_line":"            \u0027--wait\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_321f8109","line":66,"in_reply_to":"bab6814e_b42428c5","updated":"2016-05-20 17:13:15.000000000","message":"The copy-pasted reasoning is fine by me. Since we don\u0027t really care if the option is set or not I suggested setting a default.","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"778f9b516677340bf3b623d95ade50f5cd265396","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        server \u003d utils.find_resource("},{"line_number":79,"context_line":"            compute_client.servers,"},{"line_number":80,"context_line":"            parsed_args.server,"},{"line_number":81,"context_line":"        )"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # Set sane defaults as this API wants all mouths to be fed"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_93f4a587","line":80,"updated":"2016-05-19 20:41:46.000000000","message":"This may be an OSC thing, but it\u0027s strange to have a trailing comma in function calls.","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"776c6c24234a26db2e2c1f48225ef02fea3ea292","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        server \u003d utils.find_resource("},{"line_number":79,"context_line":"            compute_client.servers,"},{"line_number":80,"context_line":"            parsed_args.server,"},{"line_number":81,"context_line":"        )"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # Set sane defaults as this API wants all mouths to be fed"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_0f1c0169","line":80,"in_reply_to":"bab6814e_93f4a587","updated":"2016-05-20 01:26:57.000000000","message":"It is also annoying to have to change two lines to add an argument, or to remove one...","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"be45e96ead279eeef94de982c2f3d3f9c6c12332","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            ):"},{"line_number":116,"context_line":"                sys.stdout.write(\u0027\\n\u0027)"},{"line_number":117,"context_line":"            else:"},{"line_number":118,"context_line":"                self.log.error(_(\u0027Error creating server snapshot: %s\u0027),"},{"line_number":119,"context_line":"                               parsed_args.image_name)"},{"line_number":120,"context_line":"                raise SystemExit"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_4589da25","line":118,"range":{"start_line":118,"start_character":70,"end_line":118,"end_character":71},"updated":"2016-05-19 19:00:44.000000000","message":"use % instead of , for py3 friendlyness","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c872f77644936cf854f2ca3dce8d6cdd9d591467","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            ):"},{"line_number":116,"context_line":"                sys.stdout.write(\u0027\\n\u0027)"},{"line_number":117,"context_line":"            else:"},{"line_number":118,"context_line":"                self.log.error(_(\u0027Error creating server snapshot: %s\u0027),"},{"line_number":119,"context_line":"                               parsed_args.image_name)"},{"line_number":120,"context_line":"                raise SystemExit"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_72ec69f3","line":118,"range":{"start_line":118,"start_character":70,"end_line":118,"end_character":71},"in_reply_to":"bab6814e_4589da25","updated":"2016-05-20 17:13:15.000000000","message":"This should be find in Python3","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"be45e96ead279eeef94de982c2f3d3f9c6c12332","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                self.app.client_manager._api_version[\u0027image\u0027]"},{"line_number":126,"context_line":"            ]"},{"line_number":127,"context_line":"        )"},{"line_number":128,"context_line":"        print(\"image format: %s %s %s\" % (type(image), \u0027x\u0027, image))"},{"line_number":129,"context_line":"        info \u003d image_module._format_image(image)"},{"line_number":130,"context_line":"        return zip(*sorted(six.iteritems(info)))"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_85ff4266","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":67},"updated":"2016-05-19 19:00:44.000000000","message":"can you give an example here?\n\nwon\u0027t we be printing the entire resource (image)?\n\ni don\u0027t get the point of this with the last line being returned","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"776c6c24234a26db2e2c1f48225ef02fea3ea292","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                self.app.client_manager._api_version[\u0027image\u0027]"},{"line_number":126,"context_line":"            ]"},{"line_number":127,"context_line":"        )"},{"line_number":128,"context_line":"        print(\"image format: %s %s %s\" % (type(image), \u0027x\u0027, image))"},{"line_number":129,"context_line":"        info \u003d image_module._format_image(image)"},{"line_number":130,"context_line":"        return zip(*sorted(six.iteritems(info)))"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_70481a88","line":128,"in_reply_to":"bab6814e_85ff4266","updated":"2016-05-20 01:26:57.000000000","message":"Debug fail?","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"34928d0e46f4320a4fc9ccfc679cd09a9db30898","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            metavar\u003d\u0027\u003cbackup-type\u003e\u0027,"},{"line_number":58,"context_line":"            help\u003d_("},{"line_number":59,"context_line":"                \u0027Used to populate the backup_type property of the backup \u0027"},{"line_number":60,"context_line":"                \u0027image (default: empty)\u0027"},{"line_number":61,"context_line":"            ),"},{"line_number":62,"context_line":"        )"},{"line_number":63,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_32d021f6","line":60,"updated":"2016-05-20 17:16:13.000000000","message":"empty sounds much better than none","commit_id":"7b305884d626871ee705853d67994f814d824de1"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b652c9c8f331f693af546d52f89e48903e4f1b8a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            \u0027--rotate\u0027,"},{"line_number":65,"context_line":"            metavar\u003d\u0027\u003ccount\u003e\u0027,"},{"line_number":66,"context_line":"            type\u003dint,"},{"line_number":67,"context_line":"            help\u003d_(\u0027Number of backups to keep (default: 1)\u0027),"},{"line_number":68,"context_line":"        )"},{"line_number":69,"context_line":"        parser.add_argument("},{"line_number":70,"context_line":"            \u0027--wait\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_8571d40e","line":67,"range":{"start_line":67,"start_character":47,"end_line":67,"end_character":57},"updated":"2016-05-26 12:39:15.000000000","message":"I see the comments in PS6, but still feel a default value looks better than the following if ... else code block.","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b652c9c8f331f693af546d52f89e48903e4f1b8a","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                    _(\u0027Error creating server backup: %s\u0027) %"},{"line_number":121,"context_line":"                    parsed_args.name,"},{"line_number":122,"context_line":"                )"},{"line_number":123,"context_line":"                raise exceptions.CommandError"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        # Get the right image module to format the output"},{"line_number":126,"context_line":"        image_module \u003d importutils.import_module("}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_301dc462","line":123,"range":{"start_line":123,"start_character":33,"end_line":123,"end_character":45},"updated":"2016-05-26 12:39:15.000000000","message":"please add some message in the exception.","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b652c9c8f331f693af546d52f89e48903e4f1b8a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                self.app.client_manager._api_version[\u0027image\u0027]"},{"line_number":129,"context_line":"            ]"},{"line_number":130,"context_line":"        )"},{"line_number":131,"context_line":"        info \u003d image_module._format_image(image)"},{"line_number":132,"context_line":"        return zip(*sorted(six.iteritems(info)))"}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_e2bc166e","line":131,"range":{"start_line":131,"start_character":28,"end_line":131,"end_character":41},"updated":"2016-05-26 12:39:15.000000000","message":"\"openstackclient.image.v1.image\" module don\u0027t have function \"_format_image()\", so image create command would be fail when image api v1 is enabled.","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"}],"openstackclient/tests/compute/v2/test_server_backup.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"be45e96ead279eeef94de982c2f3d3f9c6c12332","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#   Copyright 2013 Nebula Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_a52246ff","line":1,"range":{"start_line":1,"start_character":19,"end_line":1,"end_character":25},"updated":"2016-05-19 19:00:44.000000000","message":"nebula?","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"776c6c24234a26db2e2c1f48225ef02fea3ea292","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#   Copyright 2013 Nebula Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#   Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#   not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_b0ac4236","line":1,"in_reply_to":"bab6814e_a52246ff","updated":"2016-05-20 01:26:57.000000000","message":"well, you know, in my heart\n\nC-n-P fail","commit_id":"91f7ffa87824d0ea700b876ea4f29658f06eb8f7"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b652c9c8f331f693af546d52f89e48903e4f1b8a","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        # This is the return value for utils.find_resource()"},{"line_number":50,"context_line":"        self.servers_mock.get \u003d compute_fakes.FakeServer.get_servers("},{"line_number":51,"context_line":"            servers,"},{"line_number":52,"context_line":"            0,"},{"line_number":53,"context_line":"        )"},{"line_number":54,"context_line":"        return servers"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_10436014","line":52,"range":{"start_line":52,"start_character":12,"end_line":52,"end_character":13},"updated":"2016-05-26 12:39:15.000000000","message":"I think the \"0\" argument isn\u0027t necessary, it make me confused.","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"b36d4301f6c77f92f8054d9486635193e379727c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        # This is the return value for utils.find_resource()"},{"line_number":50,"context_line":"        self.servers_mock.get \u003d compute_fakes.FakeServer.get_servers("},{"line_number":51,"context_line":"            servers,"},{"line_number":52,"context_line":"            0,"},{"line_number":53,"context_line":"        )"},{"line_number":54,"context_line":"        return servers"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9abb7d3a_8f8976cd","line":52,"in_reply_to":"bab6814e_10436014","updated":"2016-05-27 16:42:22.000000000","message":"It is necessary, the fake sets count\u003d2 by default","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b652c9c8f331f693af546d52f89e48903e4f1b8a","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        # data to be shown."},{"line_number":125,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # ServerManager.backup(backup_name, backup_type, rotation)"},{"line_number":128,"context_line":"        self.servers_mock.backup.assert_called_with("},{"line_number":129,"context_line":"            servers[0].id,"},{"line_number":130,"context_line":"            servers[0].name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_d0bb98c2","line":127,"updated":"2016-05-26 12:39:15.000000000","message":"server_id, backup_name ....","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b652c9c8f331f693af546d52f89e48903e4f1b8a","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        # data to be shown."},{"line_number":159,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # ServerManager.backup(backup_name, backup_type, rotation)"},{"line_number":162,"context_line":"        self.servers_mock.backup.assert_called_with("},{"line_number":163,"context_line":"            servers[0].id,"},{"line_number":164,"context_line":"            \u0027image\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_100ec08b","line":161,"updated":"2016-05-26 12:39:15.000000000","message":"server_id, backup_name ....","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b652c9c8f331f693af546d52f89e48903e4f1b8a","unresolved":false,"context_lines":[{"line_number":204,"context_line":"            parsed_args,"},{"line_number":205,"context_line":"        )"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        # ServerManager.backup(backup_name, backup_type, rotation)"},{"line_number":208,"context_line":"        self.servers_mock.backup.assert_called_with("},{"line_number":209,"context_line":"            servers[0].id,"},{"line_number":210,"context_line":"            \u0027image\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_d07ef8e2","line":207,"updated":"2016-05-26 12:39:15.000000000","message":"server_id, backup_name ....","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b652c9c8f331f693af546d52f89e48903e4f1b8a","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        # data to be shown."},{"line_number":253,"context_line":"        columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        # ServerManager.backup(backup_name, backup_type, rotation)"},{"line_number":256,"context_line":"        self.servers_mock.backup.assert_called_with("},{"line_number":257,"context_line":"            servers[0].id,"},{"line_number":258,"context_line":"            \u0027image\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"bab6814e_108520ce","line":255,"updated":"2016-05-26 12:39:15.000000000","message":"server_id, backup_name ....","commit_id":"e75bb9f0f20a1308e410c6669b69c172b87ff438"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"ca03ef1d0fd0fe7aa52385dc098400eda3efee55","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        # This is the return value for utils.find_resource()"},{"line_number":50,"context_line":"        self.servers_mock.get \u003d compute_fakes.FakeServer.get_servers("},{"line_number":51,"context_line":"            servers,"},{"line_number":52,"context_line":"            0,"},{"line_number":53,"context_line":"        )"},{"line_number":54,"context_line":"        return servers"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9abb7d3a_59f8eae5","line":52,"updated":"2016-05-28 02:28:00.000000000","message":"Actually, \"servers\" argument that return from create_servers() always not None, the count never be used, but it\u0027s not big deal.","commit_id":"460846cef28a502a51e4d52865743aea73e2f960"}]}
