)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add \u0027image create\u0027 to openstack"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Support for Image API v2 Image Creation."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I485e0a30fc27d201e8982370614e3b6b4eb4309b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a50d1a3_912cfcac","line":10,"updated":"2015-07-20 05:05:05.000000000","message":"Closes-Bug: 1405562","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"}],"doc/source/command-objects/image.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Create/upload an image"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"v1 version"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":".. program:: image create"},{"line_number":15,"context_line":".. code:: bash"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_d15b6453","line":12,"updated":"2015-07-20 05:05:05.000000000","message":"use *\u0027s for extra flair\n\n*Image v1*","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"aa9dc2f6a06890b5aea34f76df0b968c471327c9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        [--force]"},{"line_number":31,"context_line":"        [--checksum \u003cchecksum\u003e]"},{"line_number":32,"context_line":"        [--protected | --unprotected]"},{"line_number":33,"context_line":"        [--public | --private]"},{"line_number":34,"context_line":"        [--property \u003ckey\u003dvalue\u003e [...] ]"},{"line_number":35,"context_line":"        \u003cimage-name\u003e"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_ef55491d","line":33,"updated":"2015-07-20 13:50:01.000000000","message":"v2 options should look like these two ^","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    New image name"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"v2 version"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":".. program:: image create"},{"line_number":120,"context_line":".. code:: bash"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_9155dc1e","line":117,"updated":"2015-07-20 05:05:05.000000000","message":"*Image v2*","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        [--min-disk \u003cdisk-gb\u003e]"},{"line_number":127,"context_line":"        [--min-ram \u003cram-mb\u003e]"},{"line_number":128,"context_line":"        [--file \u003cfile\u003e]"},{"line_number":129,"context_line":"        [--protected]"},{"line_number":130,"context_line":"        [--tags \u003ctags..\u003e]"},{"line_number":131,"context_line":"        [--visibility public | private]"},{"line_number":132,"context_line":"        [--property \u003ckey\u003dvalue\u003e [...] ]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_344dd672","line":129,"updated":"2015-07-20 05:05:05.000000000","message":"suggest using [--protected | --unprotected] for consistency","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"bfa83f62d2cc56c81ac1116178e75965dd0da424","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        [--min-disk \u003cdisk-gb\u003e]"},{"line_number":127,"context_line":"        [--min-ram \u003cram-mb\u003e]"},{"line_number":128,"context_line":"        [--file \u003cfile\u003e]"},{"line_number":129,"context_line":"        [--protected]"},{"line_number":130,"context_line":"        [--tags \u003ctags..\u003e]"},{"line_number":131,"context_line":"        [--visibility public | private]"},{"line_number":132,"context_line":"        [--property \u003ckey\u003dvalue\u003e [...] ]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_426304b2","line":129,"in_reply_to":"3a50d1a3_344dd672","updated":"2015-07-20 06:46:38.000000000","message":"I didn\u0027t because --unprotected is redundant. Without --protected the value is false.","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"aa9dc2f6a06890b5aea34f76df0b968c471327c9","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        [--min-disk \u003cdisk-gb\u003e]"},{"line_number":127,"context_line":"        [--min-ram \u003cram-mb\u003e]"},{"line_number":128,"context_line":"        [--file \u003cfile\u003e]"},{"line_number":129,"context_line":"        [--protected]"},{"line_number":130,"context_line":"        [--tags \u003ctags..\u003e]"},{"line_number":131,"context_line":"        [--visibility public | private]"},{"line_number":132,"context_line":"        [--property \u003ckey\u003dvalue\u003e [...] ]"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_140d283e","line":129,"in_reply_to":"3a50d1a3_426304b2","updated":"2015-07-20 13:50:01.000000000","message":"It is pretty standard in OSC or have equal and opposite arguments like --protected and --unprotected.","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        [--min-ram \u003cram-mb\u003e]"},{"line_number":128,"context_line":"        [--file \u003cfile\u003e]"},{"line_number":129,"context_line":"        [--protected]"},{"line_number":130,"context_line":"        [--tags \u003ctags..\u003e]"},{"line_number":131,"context_line":"        [--visibility public | private]"},{"line_number":132,"context_line":"        [--property \u003ckey\u003dvalue\u003e [...] ]"},{"line_number":133,"context_line":"        \u003cimage-name\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_1473fab2","line":130,"updated":"2015-07-20 05:05:05.000000000","message":"suggest writing this as:\n\n  [--tags \u003ctags\u003e [...] ]","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"aa9dc2f6a06890b5aea34f76df0b968c471327c9","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    Prevent image from being deleted"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":".. option:: --visibility [public | private]"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    Image is accessible to the public or is private"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_0f40b5a4","line":163,"updated":"2015-07-20 13:50:01.000000000","message":"Why aren\u0027t we having --public and --private like v1?","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"1ac156aea77422b6980eb79b480664776f21d2b5","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"*Image v2*"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":".. program:: image create"},{"line_number":120,"context_line":".. code:: bash"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    os image create"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_fd9c035f","line":119,"updated":"2015-07-20 23:37:44.000000000","message":"merge this with v1.\n\nSee pattern for defining options by version https://raw.githubusercontent.com/openstack/python-openstackclient/master/doc/source/command-objects/user.rst","commit_id":"96f11c444e196bafee5ee8f6a369540bc8b20743"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3988df742ad7111f26e0c142ce858dcdf509d789","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    New image name"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"*Image v2*"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":".. program:: image create"},{"line_number":120,"context_line":".. code:: bash"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a50d1a3_b2fe68ac","line":117,"updated":"2015-07-21 22:32:30.000000000","message":"I would REALLY prefer that these be combined like we do everywhere else.  The basic structure of the command has not changes, just some of the options.  And the ones that are common should work the same way as much as possible.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"20908ad0d125f9701e3e659237319d4b315d969c","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    New image name"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"*Image v2*"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":".. program:: image create"},{"line_number":120,"context_line":".. code:: bash"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba15a1d1_beb37d99","line":117,"in_reply_to":"3a50d1a3_b2fe68ac","updated":"2015-09-17 03:03:42.000000000","message":"++\n\nYou can just marked the option that are v2 only.\n\n\nHere is a good reference: https://raw.githubusercontent.com/openstack/python-openstackclient/master/doc/source/command-objects/user.rst","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"}],"openstackclient/image/v2/image.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from openstackclient.api import utils as api_utils"},{"line_number":29,"context_line":"from openstackclient.common import parseractions"},{"line_number":30,"context_line":"from openstackclient.common import utils"},{"line_number":31,"context_line":"import openstackclient.common.exceptions as exceptions"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_31188884","line":31,"updated":"2015-07-20 05:05:05.000000000","message":"hows about:\n\n  from openstackclient.common import exceptions","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def gather_attributes(obj, desired_attrs):"},{"line_number":40,"context_line":"    \"\"\"Build an attribute dict from the object. Only include"},{"line_number":41,"context_line":"    attributes requested in `desired_attrs`."},{"line_number":42,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_349b96cb","line":39,"updated":"2015-07-20 05:05:05.000000000","message":"make this private by prefixing with _","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"bfa83f62d2cc56c81ac1116178e75965dd0da424","unresolved":false,"context_lines":[{"line_number":36,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def gather_attributes(obj, desired_attrs):"},{"line_number":40,"context_line":"    \"\"\"Build an attribute dict from the object. Only include"},{"line_number":41,"context_line":"    attributes requested in `desired_attrs`."},{"line_number":42,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_82690c8e","line":39,"in_reply_to":"3a50d1a3_349b96cb","updated":"2015-07-20 06:46:38.000000000","message":"I did in my first draft of it. I was planning to move it to utils and didn\u0027t. Thanks for the reminder.","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        parser.add_argument("},{"line_number":69,"context_line":"            \"--tags\","},{"line_number":70,"context_line":"            metavar\u003d\"[\u003ctags ...]\","},{"line_number":71,"context_line":"            help\u003d\"List of strings related to the image\""},{"line_number":72,"context_line":"        )"},{"line_number":73,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_74b91e2e","line":70,"updated":"2015-07-20 05:05:05.000000000","message":"refer to comment in doc","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"aa9dc2f6a06890b5aea34f76df0b968c471327c9","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            default\u003dFalse,"},{"line_number":77,"context_line":"            help\u003d\"Prevent image from being deleted\""},{"line_number":78,"context_line":"        )"},{"line_number":79,"context_line":"        visibility_choices \u003d (\"public\", \"private\")"},{"line_number":80,"context_line":"        parser.add_argument("},{"line_number":81,"context_line":"            \"--visibility\","},{"line_number":82,"context_line":"            metavar\u003d\"\u003cvisibility\u003e\","}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_2faed12e","line":79,"updated":"2015-07-20 13:50:01.000000000","message":"protected/unprotected and public/private will need to be argument groups.","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            dest\u003d\"properties\","},{"line_number":90,"context_line":"            metavar\u003d\"\u003ckey\u003dvalue\u003e\","},{"line_number":91,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":92,"context_line":"            help\u003d("},{"line_number":93,"context_line":"                \"Set an image property \""},{"line_number":94,"context_line":"                \"(repeat option to set multiple properties)\""},{"line_number":95,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_d4acb2ef","line":92,"updated":"2015-07-20 05:05:05.000000000","message":"shouldn\u0027t need the ()\u0027s here, just start the \" at the same location of the next time","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            metavar\u003d\"\u003ckey\u003dvalue\u003e\","},{"line_number":91,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":92,"context_line":"            help\u003d("},{"line_number":93,"context_line":"                \"Set an image property \""},{"line_number":94,"context_line":"                \"(repeat option to set multiple properties)\""},{"line_number":95,"context_line":"            ),"},{"line_number":96,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_94b62a3c","line":93,"updated":"2015-07-20 05:05:05.000000000","message":"re-use the help text please \n\nhttps://github.com/openstack/python-openstackclient/blob/master/openstackclient/image/v1/image.py#L178-L179","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        info.update(image)"},{"line_number":398,"context_line":"        return zip(*sorted(six.iteritems(info)))"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"class SetImage(show.ShowOne):"},{"line_number":402,"context_line":"    \"\"\"Set image properties\"\"\""},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_14cf7ab1","line":400,"updated":"2015-07-20 05:05:05.000000000","message":"i strongly suggest making these changes in another patch set, they have nothing to do with \u0027image create\u0027 support","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"bfa83f62d2cc56c81ac1116178e75965dd0da424","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        info.update(image)"},{"line_number":398,"context_line":"        return zip(*sorted(six.iteritems(info)))"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"class SetImage(show.ShowOne):"},{"line_number":402,"context_line":"    \"\"\"Set image properties\"\"\""},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_a220c84a","line":400,"in_reply_to":"3a50d1a3_14cf7ab1","updated":"2015-07-20 06:46:38.000000000","message":"Fair enough. There was duplication so I pulled out pieces to share. Once I was editing it I fixed other problems I saw. What is the right way to fix SetImage and have my new patch depend on that one?\n\nSorry, I fell into \"boyscout\" habits of leave it better than you found it.","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2f2abd3fc39351d59e1c4b50185643a1089af1a5","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        info.update(image)"},{"line_number":398,"context_line":"        return zip(*sorted(six.iteritems(info)))"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"class SetImage(show.ShowOne):"},{"line_number":402,"context_line":"    \"\"\"Set image properties\"\"\""},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_310f0be3","line":400,"in_reply_to":"3a50d1a3_a220c84a","updated":"2015-07-20 15:48:56.000000000","message":"boyscout habits are great, just gotta line the work up a bit.\n\nwhen you are working on this branch, and you\u0027ve pushed up all your work. checkout a new sub-sequent branch - make the changes - and push up your work again. Gerrit will verify that you want to make the 2nd branch depend on the first, just verify with \u0027yes\u0027.\n\nping me on irc if you\u0027re having trouble","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3988df742ad7111f26e0c142ce858dcdf509d789","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","},{"line_number":77,"context_line":"                 \"qcow2\", \"vdi\", \"iso\"]"},{"line_number":78,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def _gather_attributes(obj, desired_attrs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_b22f4887","line":78,"updated":"2015-07-21 22:32:30.000000000","message":"We\u0027ve had arguments before if the client or server should do the data validation.  I lean toward the server otherwise we\u0027ll be maintaining this list and cause compatibility problems as users try to use different releases of OSC against different releases of Glance.  We\u0027re supposed to be compatible with all supported releases.\n\nThe downside is it takes a round-trip to the server to detect an invalid format.  The upside is the user gets a correct message every time, even if the OSC release doesn\u0027t support a new format.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"06ac9008721ad3c9e6f42af00be46dda4ab50fb8","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","},{"line_number":77,"context_line":"                 \"qcow2\", \"vdi\", \"iso\"]"},{"line_number":78,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def _gather_attributes(obj, desired_attrs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_fde6fb13","line":78,"in_reply_to":"3a50d1a3_6ed40deb","updated":"2015-09-16 12:49:23.000000000","message":"The problem I have with this is that, a specific sever could disable one of the choices. This means that the glance client would then be out of sync, causing what we show to the user to actually be wrong.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"022e262a2fe76c9c163a166b4e54bbe892c4904b","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","},{"line_number":77,"context_line":"                 \"qcow2\", \"vdi\", \"iso\"]"},{"line_number":78,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def _gather_attributes(obj, desired_attrs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_6ed40deb","line":78,"in_reply_to":"3a50d1a3_8c330cab","updated":"2015-07-23 15:58:06.000000000","message":"OK, having the options available to show the user is enough to change my mind...","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"154e95e1e6ae0436685ee7dac63c02b0c5e141df","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","},{"line_number":77,"context_line":"                 \"qcow2\", \"vdi\", \"iso\"]"},{"line_number":78,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def _gather_attributes(obj, desired_attrs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_8c330cab","line":78,"in_reply_to":"3a50d1a3_b22f4887","updated":"2015-07-22 03:50:43.000000000","message":"Dean, I\u0027m OK with this, my reasoning:\n\nIt\u0027s easy for us to quickly patch a client and release something. I assume we won\u0027t be shrinking this list, just expanding it to more types. I think it\u0027s helpful for users to see examples like this.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"be59f05cf09fc3cfd0c35f23683b4bc7b7efcf7d","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","},{"line_number":77,"context_line":"                 \"qcow2\", \"vdi\", \"iso\"]"},{"line_number":78,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def _gather_attributes(obj, desired_attrs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_9f46a94d","line":78,"in_reply_to":"ba15a1d1_2468cd86","updated":"2015-09-17 09:47:54.000000000","message":"A GET request to /v2/schemas/image will return the schema, and as part of that it will show all the different container/disk types. I think this means that it discoverable? Maybe this would be the best route to take?\n\nThis would let us test a bunch of stuff client side i am not sure how beneficial that would be overall.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c2ab41ab1b25e69f48c2c7720ba24b1655623b4f","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","},{"line_number":77,"context_line":"                 \"qcow2\", \"vdi\", \"iso\"]"},{"line_number":78,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def _gather_attributes(obj, desired_attrs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_1511ea03","line":78,"in_reply_to":"ba15a1d1_9f46a94d","updated":"2015-09-18 07:21:08.000000000","message":"agree with dean here, i\u0027d rather we just show all the choices and if the server doesn\u0027t support it then from a selfish OSC perspective we can defend it by saying we can\u0027t programatically determine it.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"a35f71c61a5c7aa8bc7437de90106a7e474a8184","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","},{"line_number":77,"context_line":"                 \"qcow2\", \"vdi\", \"iso\"]"},{"line_number":78,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def _gather_attributes(obj, desired_attrs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_2468cd86","line":78,"in_reply_to":"ba15a1d1_a9191bd9","updated":"2015-09-16 19:17:50.000000000","message":"Oh good grief, another server-side configuration that is not discoverable...we just can\u0027t get out of our users way...\n\nAt this point I don\u0027t care which way you go here, we\u0027re going to be showing wrong or incomplete information either way.  Pick a way and write up why that is the right way so we can defend it.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"833d1d487cdede46c98bf9f46f0156e2a7c0eb67","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"_disk_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"vhd\", \"vmdk\", \"raw\","},{"line_number":77,"context_line":"                 \"qcow2\", \"vdi\", \"iso\"]"},{"line_number":78,"context_line":"_container_choices \u003d [\"None\", \"ami\", \"ari\", \"aki\", \"bare\", \"ovf\", \"ova\"]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"def _gather_attributes(obj, desired_attrs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_a9191bd9","line":78,"in_reply_to":"ba15a1d1_fde6fb13","updated":"2015-09-16 17:31:55.000000000","message":"I appreciate that. But the only way to prevent that is to query the server just to display --help.\n\nIs it not better to show the possibilities? When a server rejects one we can be clear that the server does not support it. Glance _COULD_ support it. Maybe they need to go negotiate for their format.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3988df742ad7111f26e0c142ce858dcdf509d789","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    log \u003d logging.getLogger(__name__ + \".CreateImage\")"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def get_parser(self, prog_name):"},{"line_number":101,"context_line":"        parser \u003d super(CreateImage, self).get_parser(prog_name)"},{"line_number":102,"context_line":"        parser.add_argument("},{"line_number":103,"context_line":"            \"name\","},{"line_number":104,"context_line":"            metavar\u003d\"\u003cname\u003e\","}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_4f4c219e","line":101,"updated":"2015-07-21 22:32:30.000000000","message":"Maintain the same order of options as v1.  This affects the help output and makes it easier to find options in the long lists when they don\u0027t jump around.  There is also a bit of logic to the order...","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3988df742ad7111f26e0c142ce858dcdf509d789","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            help\u003d\"Image ID to reserve\","},{"line_number":111,"context_line":"        )"},{"line_number":112,"context_line":"        parser.add_argument("},{"line_number":113,"context_line":"            \"--tags\","},{"line_number":114,"context_line":"            metavar\u003d\"tag1,tag2,...\","},{"line_number":115,"context_line":"            help\u003d\"A comma separated list of strings related to the image\""},{"line_number":116,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_afe04597","line":113,"updated":"2015-07-21 22:32:30.000000000","message":"do we really want to use this option name here?  Normally we don\u0027t pluralize anything.  I may have used it in my original cut at create v2, but I probably wasn\u0027t happy about it then either...\n\nI also think it should work to either provide a comma-separated string or to provide multiple --tag options, like we do with --property.  I think Terry did something like this, can\u0027t remember where though...","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"a35f71c61a5c7aa8bc7437de90106a7e474a8184","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            help\u003d\"Image ID to reserve\","},{"line_number":111,"context_line":"        )"},{"line_number":112,"context_line":"        parser.add_argument("},{"line_number":113,"context_line":"            \"--tags\","},{"line_number":114,"context_line":"            metavar\u003d\"tag1,tag2,...\","},{"line_number":115,"context_line":"            help\u003d\"A comma separated list of strings related to the image\""},{"line_number":116,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_84dbd94e","line":113,"in_reply_to":"3a50d1a3_352322a9","updated":"2015-09-16 19:17:50.000000000","message":"Consistency.  Multiple copies of a thing need to be specified the same way no matter what the thing is.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"833d1d487cdede46c98bf9f46f0156e2a7c0eb67","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            help\u003d\"Image ID to reserve\","},{"line_number":111,"context_line":"        )"},{"line_number":112,"context_line":"        parser.add_argument("},{"line_number":113,"context_line":"            \"--tags\","},{"line_number":114,"context_line":"            metavar\u003d\"tag1,tag2,...\","},{"line_number":115,"context_line":"            help\u003d\"A comma separated list of strings related to the image\""},{"line_number":116,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_352322a9","line":113,"in_reply_to":"3a50d1a3_afe04597","updated":"2015-09-16 17:31:55.000000000","message":"I can make it work like property if that is preferred. --tags says what it is though. A group of tags. Is there are reason not to use it?","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c2ab41ab1b25e69f48c2c7720ba24b1655623b4f","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            help\u003d\"Image ID to reserve\","},{"line_number":111,"context_line":"        )"},{"line_number":112,"context_line":"        parser.add_argument("},{"line_number":113,"context_line":"            \"--tags\","},{"line_number":114,"context_line":"            metavar\u003d\"tag1,tag2,...\","},{"line_number":115,"context_line":"            help\u003d\"A comma separated list of strings related to the image\""},{"line_number":116,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_95fdfab2","line":113,"in_reply_to":"ba15a1d1_84dbd94e","updated":"2015-09-18 07:21:08.000000000","message":"yes, make it work like property","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3988df742ad7111f26e0c142ce858dcdf509d789","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            help\u003d\"A comma separated list of strings related to the image\""},{"line_number":116,"context_line":"        )"},{"line_number":117,"context_line":"        parser.add_argument("},{"line_number":118,"context_line":"            \"--protected\","},{"line_number":119,"context_line":"            action\u003d\"store_true\","},{"line_number":120,"context_line":"            default\u003dFalse,"},{"line_number":121,"context_line":"            help\u003d\"Prevent image from being deleted\""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_0fb4d97f","line":118,"updated":"2015-07-21 22:32:30.000000000","message":"There needs to be an --unprotected, and it should be structured like the v1 set, even though it is probably not how you would do it at first thought.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"833d1d487cdede46c98bf9f46f0156e2a7c0eb67","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            help\u003d\"A comma separated list of strings related to the image\""},{"line_number":116,"context_line":"        )"},{"line_number":117,"context_line":"        parser.add_argument("},{"line_number":118,"context_line":"            \"--protected\","},{"line_number":119,"context_line":"            action\u003d\"store_true\","},{"line_number":120,"context_line":"            default\u003dFalse,"},{"line_number":121,"context_line":"            help\u003d\"Prevent image from being deleted\""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_554fce6a","line":118,"in_reply_to":"3a50d1a3_0fb4d97f","updated":"2015-09-16 17:31:55.000000000","message":"I have that coded but not up for review yet.","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3988df742ad7111f26e0c142ce858dcdf509d789","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        )"},{"line_number":123,"context_line":"        visibility_choices \u003d (\"public\", \"private\")"},{"line_number":124,"context_line":"        parser.add_argument("},{"line_number":125,"context_line":"            \"--visibility\","},{"line_number":126,"context_line":"            metavar\u003d\"\u003cvisibility\u003e\","},{"line_number":127,"context_line":"            choices\u003dvisibility_choices,"},{"line_number":128,"context_line":"            help\u003d\"Scope of image accessibility. Valid values: {0}\""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_efaf2d28","line":125,"updated":"2015-07-21 22:32:30.000000000","message":"Do this like V1 also: --public | --private","commit_id":"14d9e99557ccc16264c7653bbb6c8e87f859819f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from cliff import lister"},{"line_number":25,"context_line":"from cliff import show"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from glanceclient.common import utils as gc_utils"},{"line_number":28,"context_line":"from openstackclient.api import utils as api_utils"},{"line_number":29,"context_line":"from openstackclient.common import parseractions"},{"line_number":30,"context_line":"from openstackclient.common import utils"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_81692028","line":27,"updated":"2015-09-18 21:57:09.000000000","message":"this should be groups with cliff","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    log \u003d logging.getLogger(__name__ + \".CreateImage\")"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def get_parser(self, prog_name):"},{"line_number":101,"context_line":"        parser \u003d super(CreateImage, self).get_parser(prog_name)"},{"line_number":102,"context_line":"        parser.add_argument("},{"line_number":103,"context_line":"            \"name\","}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_41a9c87a","line":100,"updated":"2015-09-18 21:57:09.000000000","message":"this is missing the --store, --location, --checksum and --copy-from options, and the doc should indicate that it\u0027s a v1 only option.\n\non second thought, it seems we don\u0027t have an easy way of showing that, so you can disregard this for now.","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            metavar\u003d\"\u003cid\u003e\","},{"line_number":110,"context_line":"            help\u003d\"Image ID to reserve\","},{"line_number":111,"context_line":"        )"},{"line_number":112,"context_line":"        help_msg \u003d (\"Format of the container. Valid values: %s\""},{"line_number":113,"context_line":"                    % _container_choices)"},{"line_number":114,"context_line":"        parser.add_argument("},{"line_number":115,"context_line":"            \"--container-format\","}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_21da9418","line":112,"updated":"2015-09-18 21:57:09.000000000","message":"the help should be:\n\n  \"Image container format. Valid values: \u003c\u003e\"","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        help_msg \u003d (\"Format of the container. Valid values: %s\""},{"line_number":113,"context_line":"                    % _container_choices)"},{"line_number":114,"context_line":"        parser.add_argument("},{"line_number":115,"context_line":"            \"--container-format\","},{"line_number":116,"context_line":"            metavar\u003d\"\u003ccontainer-format\u003e\","},{"line_number":117,"context_line":"            choices\u003d_container_choices,"},{"line_number":118,"context_line":"            help\u003dhelp_msg"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_0108b090","line":115,"updated":"2015-09-18 21:57:09.000000000","message":"does this not default to something on the client side, or do we want to default it to something? in v1 we were defaulting to \u0027bare\u0027","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            help\u003dhelp_msg"},{"line_number":119,"context_line":"        )"},{"line_number":120,"context_line":"        parser.add_argument("},{"line_number":121,"context_line":"            \"--disk-format\","},{"line_number":122,"context_line":"            metavar\u003d\"\u003cdisk-format\u003e\","},{"line_number":123,"context_line":"            choices\u003d_disk_choices,"},{"line_number":124,"context_line":"            help\u003d\"Format of the disk. Valid values: %s\" % _disk_choices"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_81f4c087","line":121,"updated":"2015-09-18 21:57:09.000000000","message":"does this not default to something on the client side, or do we want to default it to something? in v1 we were defaulting to \u0027raw\u0027","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            \"--disk-format\","},{"line_number":122,"context_line":"            metavar\u003d\"\u003cdisk-format\u003e\","},{"line_number":123,"context_line":"            choices\u003d_disk_choices,"},{"line_number":124,"context_line":"            help\u003d\"Format of the disk. Valid values: %s\" % _disk_choices"},{"line_number":125,"context_line":"        )"},{"line_number":126,"context_line":"        parser.add_argument("},{"line_number":127,"context_line":"            \"--min-disk\","}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_61f72c8d","line":124,"updated":"2015-09-18 21:57:09.000000000","message":"Use the same help text as v1.\n\n\"Image disk format. Valid values: \u003c\u003e\"","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            \"--min-ram\","},{"line_number":134,"context_line":"            type\u003dint,"},{"line_number":135,"context_line":"            metavar\u003d\"\u003cram-mb\u003e\","},{"line_number":136,"context_line":"            help\u003d\"Amount of RAM (in MB) required to boot image\""},{"line_number":137,"context_line":"        )"},{"line_number":138,"context_line":"        parser.add_argument("},{"line_number":139,"context_line":"            \"--file\","}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_e129fcf3","line":136,"updated":"2015-09-18 21:57:09.000000000","message":"use the same help text as v1.\n\n\"Minimum RAM size needed to boot image, in megabytes\"","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            help\u003d\"Force image creation if volume is in use \""},{"line_number":154,"context_line":"                 \"(only meaningful with --volume)\","},{"line_number":155,"context_line":"        )"},{"line_number":156,"context_line":"        parser.add_argument("},{"line_number":157,"context_line":"            \"--protected\","},{"line_number":158,"context_line":"            action\u003d\"store_true\","},{"line_number":159,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_81228000","line":156,"updated":"2015-09-18 21:57:09.000000000","message":"add protected and unprotected to a mutually exclusive group:\n\n  protected_group \u003d parser.add_mutually_exclusive_group()\n  protected_group.add_argument(\n            \"--protected\",\n            action\u003d\"store_true\",\n            help\u003d\"Prevent image from being deleted\",\n        )\n        protected_group.add_argument(\n            \"--unprotected\",\n            action\u003d\"store_true\",\n            help\u003d\"Allow image to be deleted (default)\",\n        )","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            default\u003dFalse,"},{"line_number":166,"context_line":"            help\u003d\"Allow image to be deleted (default)\""},{"line_number":167,"context_line":"        )"},{"line_number":168,"context_line":"        parser.add_argument("},{"line_number":169,"context_line":"            \"--public\","},{"line_number":170,"context_line":"            action\u003d\"store_true\","},{"line_number":171,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_411c68c1","line":168,"updated":"2015-09-18 21:57:09.000000000","message":"add public and private to mutex group:\n\n        public_group \u003d parser.add_mutually_exclusive_group()\n        public_group.add_argument(\n            \"--public\",\n            action\u003d\"store_true\",\n            help\u003d\"Image is accessible to the public\",\n        )\n        public_group.add_argument(\n            \"--private\",\n            action\u003d\"store_true\",\n            help\u003d\"Image is inaccessible to the public (default)\",\n        )","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"aa7223566ad1a93825e2497f57dd49cbb732dc11","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                image \u003d image_client.images.get(image.id)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        if not info:"},{"line_number":271,"context_line":"            info.update(image)"},{"line_number":272,"context_line":"            info[\u0027properties\u0027] \u003d utils.format_dict(info.get(\u0027properties\u0027, {}))"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"        return zip(*sorted(six.iteritems(info)))"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba15a1d1_01cbd01f","line":271,"updated":"2015-09-18 21:57:09.000000000","message":"you probably want to do:\n\n  info.update(image._info)\n\nor you\u0027re going to update a dict with an object","commit_id":"7ec3a6b7d27e51c11ec6e1d3b4565bd7b04f54a4"}],"openstackclient/tests/image/v2/test_image.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4c59e1c9bcc02e585fea9cd363837401428bbc0c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        items \u003d image.gather_attributes(f, (\u0027a\u0027,\u0027c\u0027,\u0027d\u0027))"},{"line_number":43,"context_line":"        self.assertEquals(items, {\u0027a\u0027: 1, \u0027c\u0027: False})"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    "},{"line_number":46,"context_line":"class TestImage(image_fakes.TestImagev2):"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_d4c11282","line":45,"updated":"2015-07-20 05:05:05.000000000","message":"missed a white space","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"},{"author":{"_account_id":17026,"name":"Sean Perry","email":"sean.perry@hpe.com","username":"sean_perry"},"change_message_id":"bfa83f62d2cc56c81ac1116178e75965dd0da424","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        items \u003d image.gather_attributes(f, (\u0027a\u0027,\u0027c\u0027,\u0027d\u0027))"},{"line_number":43,"context_line":"        self.assertEquals(items, {\u0027a\u0027: 1, \u0027c\u0027: False})"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    "},{"line_number":46,"context_line":"class TestImage(image_fakes.TestImagev2):"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_22ba78e2","line":45,"in_reply_to":"3a50d1a3_d4c11282","updated":"2015-07-20 06:46:38.000000000","message":"odd. Emacs didn\u0027t show me it. I usually have show whitespace enabled. Thanks, I will double check my config.","commit_id":"2369bdb58f1f7208eb46251bbcfdb23504b4dfe2"}]}
