)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"d7fbd5c566a2917f0d06b9fb96ca243c28a2fd47","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add --volume to Image `set` \u0026 `create`"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This was previously part of the commands, so added it in for backwards"},{"line_number":10,"context_line":"compatibility. This adds the --volume command and the complementary"},{"line_number":11,"context_line":"--force command allowing users to create images from volumes."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ica36e70989f75d80959af3227f66708758fae68d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a2fa921_055959fe","line":10,"updated":"2015-10-06 22:00:15.000000000","message":"typo: complimentary","commit_id":"44f888f1eaa12935e4dc11ce93d7c5c623e5233c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"c33938b085d51b5969e9c4adf1ca5ed04eca14e0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"compatibility. This adds the --volume command and the complimentary"},{"line_number":11,"context_line":"--force command allowing users to create images from volumes."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"It seems it may not be possible to add it to v2 as it requires the UUID"},{"line_number":14,"context_line":"of an image to be changed, which can\u0027t be done in images v2."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ica36e70989f75d80959af3227f66708758fae68d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba8a016a_9c015b3c","line":13,"updated":"2015-11-20 16:54:54.000000000","message":"should this be \u0027add it to image set v2 as it\u0027...?","commit_id":"3fce8f684732d69a8129e6b932a8815e832fabd1"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"da55ac8df35337aebc8d8687cfe00ebe5a6bac08","unresolved":false,"context_lines":[{"line_number":10,"context_line":"compatibility. This adds the --volume command and the complimentary"},{"line_number":11,"context_line":"--force command allowing users to create images from volumes."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"It seems it may not be possible to add it to v2 as it requires the UUID"},{"line_number":14,"context_line":"of an image to be changed, which can\u0027t be done in images v2."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ica36e70989f75d80959af3227f66708758fae68d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba8a016a_a968a088","line":13,"in_reply_to":"ba8a016a_9c015b3c","updated":"2015-11-20 17:21:39.000000000","message":"Yeah, it should be.","commit_id":"3fce8f684732d69a8129e6b932a8815e832fabd1"}],"openstackclient/image/v2/image.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"d7fbd5c566a2917f0d06b9fb96ca243c28a2fd47","unresolved":false,"context_lines":[{"line_number":715,"context_line":"        parser.add_argument("},{"line_number":716,"context_line":"            \"--volume\","},{"line_number":717,"context_line":"            metavar\u003d\"\u003cvolume\u003e\","},{"line_number":718,"context_line":"            help\u003d\"Create image from a volume\","},{"line_number":719,"context_line":"        )"},{"line_number":720,"context_line":"        parser.add_argument("},{"line_number":721,"context_line":"            \"--force\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_25f7b5f6","line":718,"updated":"2015-10-06 22:00:15.000000000","message":"Use \"Create image from a volume (name or ID)\" to be clear it supports both","commit_id":"44f888f1eaa12935e4dc11ce93d7c5c623e5233c"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"d7fbd5c566a2917f0d06b9fb96ca243c28a2fd47","unresolved":false,"context_lines":[{"line_number":789,"context_line":"            source_volume \u003d utils.find_resource("},{"line_number":790,"context_line":"                volume_client.volumes,"},{"line_number":791,"context_line":"                parsed_args.volume,"},{"line_number":792,"context_line":"                )"},{"line_number":793,"context_line":"            response, body \u003d volume_client.volumes.upload_to_image("},{"line_number":794,"context_line":"                source_volume.id,"},{"line_number":795,"context_line":"                parsed_args.force,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_a5e3c532","line":792,"updated":"2015-10-06 22:00:15.000000000","message":"parenthesis is over indented","commit_id":"44f888f1eaa12935e4dc11ce93d7c5c623e5233c"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"cb8179095c97bdf4407d06a48168256ec20d3c52","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                info \u003d body[\u0027os-volume_upload_image\u0027]"},{"line_number":295,"context_line":"                info[\u0027volume_type\u0027] \u003d info[\u0027volume_type\u0027][\u0027name\u0027]"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if not parsed_args.volume:"},{"line_number":298,"context_line":"            image \u003d image_client.images.create(**kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if fp is not None and parsed_args.volume:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_166f2a2c","line":297,"updated":"2015-10-07 17:04:12.000000000","message":"can be this be part of the if/else above?\n\nThere is too many if conditions in this method, I wonder if it can be simplified","commit_id":"4cb453cafac247a4a1a189e38a9d74f6b1e3ff0b"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d90c17ecbe323b7aad78de957e6165da7a3fca95","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                info \u003d body[\u0027os-volume_upload_image\u0027]"},{"line_number":295,"context_line":"                info[\u0027volume_type\u0027] \u003d info[\u0027volume_type\u0027][\u0027name\u0027]"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if not parsed_args.volume:"},{"line_number":298,"context_line":"            image \u003d image_client.images.create(**kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if fp is not None and parsed_args.volume:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_61c80b23","line":297,"in_reply_to":"7a2fa921_166f2a2c","updated":"2015-10-07 22:23:35.000000000","message":"I suspect this is due to using the v1 code as a guide  The future addition of the --location and --copy-from options down the road may make this more obvious.","commit_id":"4cb453cafac247a4a1a189e38a9d74f6b1e3ff0b"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"c43be8bcac0702e744fdab52c40b51b0092683ab","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                info \u003d body[\u0027os-volume_upload_image\u0027]"},{"line_number":295,"context_line":"                info[\u0027volume_type\u0027] \u003d info[\u0027volume_type\u0027][\u0027name\u0027]"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if not parsed_args.volume:"},{"line_number":298,"context_line":"            image \u003d image_client.images.create(**kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if fp is not None and parsed_args.volume:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_5a07e717","line":297,"in_reply_to":"7a2fa921_61c80b23","updated":"2015-10-08 10:02:41.000000000","message":"Yeah is the reason, as the v1 code was a guide. I have done a bit of refactoring on the next patch.","commit_id":"4cb453cafac247a4a1a189e38a9d74f6b1e3ff0b"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"cb8179095c97bdf4407d06a48168256ec20d3c52","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        if not parsed_args.volume:"},{"line_number":298,"context_line":"            image \u003d image_client.images.create(**kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if fp is not None and parsed_args.volume:"},{"line_number":301,"context_line":"            raise exceptions.CommandError(\"Uploading data and using container \""},{"line_number":302,"context_line":"                                          \"are not allowed at the same time\")"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_b6e196d2","line":300,"updated":"2015-10-07 17:04:12.000000000","message":"this validation can be done a lot earlier before upload_to_image / image.create","commit_id":"4cb453cafac247a4a1a189e38a9d74f6b1e3ff0b"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"c43be8bcac0702e744fdab52c40b51b0092683ab","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        if not parsed_args.volume:"},{"line_number":298,"context_line":"            image \u003d image_client.images.create(**kwargs)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        if fp is not None and parsed_args.volume:"},{"line_number":301,"context_line":"            raise exceptions.CommandError(\"Uploading data and using container \""},{"line_number":302,"context_line":"                                          \"are not allowed at the same time\")"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_370c8440","line":300,"in_reply_to":"7a2fa921_b6e196d2","updated":"2015-10-08 10:02:41.000000000","message":"Yeah, else it would actually create the image before failing with this exception.","commit_id":"4cb453cafac247a4a1a189e38a9d74f6b1e3ff0b"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d90c17ecbe323b7aad78de957e6165da7a3fca95","unresolved":false,"context_lines":[{"line_number":691,"context_line":"        parser.add_argument("},{"line_number":692,"context_line":"            \"--volume\","},{"line_number":693,"context_line":"            metavar\u003d\"\u003cvolume\u003e\","},{"line_number":694,"context_line":"            help\u003d\"Create image from a volume (name or ID)\","},{"line_number":695,"context_line":"        )"},{"line_number":696,"context_line":"        parser.add_argument("},{"line_number":697,"context_line":"            \"--force\","}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_1c6f40c6","line":694,"updated":"2015-10-07 22:23:35.000000000","message":"I know v1 also says create here but now it strikes me as odd...maybe it should be \u0027Re-create\u0027 or \u0027Re-write\u0027 since the image ID doesn\u0027t change?  If we change this,  the v1 text should also be changed to match.","commit_id":"4cb453cafac247a4a1a189e38a9d74f6b1e3ff0b"},{"author":{"_account_id":17116,"name":"Niall Bunting","email":"niall.bunting@hpe.com","username":"NiallBunting"},"change_message_id":"c43be8bcac0702e744fdab52c40b51b0092683ab","unresolved":false,"context_lines":[{"line_number":691,"context_line":"        parser.add_argument("},{"line_number":692,"context_line":"            \"--volume\","},{"line_number":693,"context_line":"            metavar\u003d\"\u003cvolume\u003e\","},{"line_number":694,"context_line":"            help\u003d\"Create image from a volume (name or ID)\","},{"line_number":695,"context_line":"        )"},{"line_number":696,"context_line":"        parser.add_argument("},{"line_number":697,"context_line":"            \"--force\","}],"source_content_type":"text/x-python","patch_set":3,"id":"7a2fa921_170f0838","line":694,"in_reply_to":"7a2fa921_1c6f40c6","updated":"2015-10-08 10:02:41.000000000","message":"But the image would not have data if your uploading a volume right? This kinda makes sense to me.","commit_id":"4cb453cafac247a4a1a189e38a9d74f6b1e3ff0b"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"2432439b3892ba5e487b08c43e9c6388679c12f9","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        if fp is None and parsed_args.file:"},{"line_number":281,"context_line":"            self.log.warning(\"Failed to get an image file.\")"},{"line_number":282,"context_line":"            return {}, {}"},{"line_number":283,"context_line":"        else:"},{"line_number":284,"context_line":"            # If a volume is specified."},{"line_number":285,"context_line":"            if parsed_args.volume:"},{"line_number":286,"context_line":"                volume_client \u003d self.app.client_manager.volume"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_d3a8998e","line":283,"updated":"2015-10-09 01:09:34.000000000","message":"the else here seems strange,  could just remove the else and indent left line 284-301\n\nWe can clean it up as:\n\nif parsed_args.volume:\n    line 286 - 299\nelse\n   image \u003d image_client.images.create(**kwargs)\n   line 303 \u003d 323","commit_id":"766ff7298f25a028fbfb5016c98b63d6334bde74"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"2432439b3892ba5e487b08c43e9c6388679c12f9","unresolved":false,"context_lines":[{"line_number":767,"context_line":"            image \u003d image_client.images.update(image.id, **kwargs)"},{"line_number":768,"context_line":"            info \u003d {}"},{"line_number":769,"context_line":"            info.update(image)"},{"line_number":770,"context_line":"        else:"},{"line_number":771,"context_line":"            volume_client \u003d self.app.client_manager.volume"},{"line_number":772,"context_line":"            source_volume \u003d utils.find_resource("},{"line_number":773,"context_line":"                volume_client.volumes,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a2fa921_3319cdd7","line":770,"updated":"2015-10-09 01:09:34.000000000","message":"if there is a volume defined, what happens to the other image property being set? for example public/private flag is set","commit_id":"766ff7298f25a028fbfb5016c98b63d6334bde74"}]}
