)]}'
{"glanceclient/tests/unit/v2/test_shell_v2.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"1f8422e1495df1521a3453be3a0c831471b76b1a","unresolved":false,"context_lines":[{"line_number":537,"context_line":"        expected_msg \u003d (\u0027You cannot use --uri without specifying an import \u0027"},{"line_number":538,"context_line":"                        \u0027method.\u0027)"},{"line_number":539,"context_line":"        my_args \u003d self.base_args.copy()"},{"line_number":540,"context_line":"        my_args[\u0027uri\u0027] \u003d \u0027http://yo.mama/whatever\u0027"},{"line_number":541,"context_line":"        args \u003d self._make_args(my_args)"},{"line_number":542,"context_line":"        mock_stdin.isatty \u003d lambda: True"},{"line_number":543,"context_line":"        mock_utils_exit.side_effect \u003d self._mock_utils_exit"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_d3b311e8","line":540,"range":{"start_line":540,"start_character":33,"end_line":540,"end_character":40},"updated":"2018-04-03 12:49:00.000000000","message":"NIT: please lets use the example.com for consistency","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ee79a335390e038fd4c7569e59375c31af0ed7c4","unresolved":false,"context_lines":[{"line_number":537,"context_line":"        expected_msg \u003d (\u0027You cannot use --uri without specifying an import \u0027"},{"line_number":538,"context_line":"                        \u0027method.\u0027)"},{"line_number":539,"context_line":"        my_args \u003d self.base_args.copy()"},{"line_number":540,"context_line":"        my_args[\u0027uri\u0027] \u003d \u0027http://yo.mama/whatever\u0027"},{"line_number":541,"context_line":"        args \u003d self._make_args(my_args)"},{"line_number":542,"context_line":"        mock_stdin.isatty \u003d lambda: True"},{"line_number":543,"context_line":"        mock_utils_exit.side_effect \u003d self._mock_utils_exit"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_d26548b6","line":540,"range":{"start_line":540,"start_character":33,"end_line":540,"end_character":40},"in_reply_to":"bf659307_d3b311e8","updated":"2018-04-03 15:01:34.000000000","message":"Will get all these on next PS.","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"1f8422e1495df1521a3453be3a0c831471b76b1a","unresolved":false,"context_lines":[{"line_number":580,"context_line":"                        \u0027for the glance-direct import method.\u0027)"},{"line_number":581,"context_line":"        my_args \u003d self.base_args.copy()"},{"line_number":582,"context_line":"        my_args[\u0027import_method\u0027] \u003d \u0027glance-direct\u0027"},{"line_number":583,"context_line":"        my_args[\u0027uri\u0027] \u003d \u0027https://example.org/some/stuff\u0027"},{"line_number":584,"context_line":"        args \u003d self._make_args(my_args)"},{"line_number":585,"context_line":"        mock_stdin.isatty \u003d lambda: True"},{"line_number":586,"context_line":"        mock_utils_exit.side_effect \u003d self._mock_utils_exit"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_b3b0ddde","line":583,"range":{"start_line":583,"start_character":42,"end_line":583,"end_character":45},"updated":"2018-04-03 12:49:00.000000000","message":"ditto","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"1f8422e1495df1521a3453be3a0c831471b76b1a","unresolved":false,"context_lines":[{"line_number":603,"context_line":"                        \u0027import method.\u0027)"},{"line_number":604,"context_line":"        my_args \u003d self.base_args.copy()"},{"line_number":605,"context_line":"        my_args[\u0027import_method\u0027] \u003d \u0027glance-direct\u0027"},{"line_number":606,"context_line":"        my_args[\u0027uri\u0027] \u003d \u0027https://example.org/some/stuff\u0027"},{"line_number":607,"context_line":"        my_args[\u0027file\u0027] \u003d \u0027my.browncow\u0027"},{"line_number":608,"context_line":"        args \u003d self._make_args(my_args)"},{"line_number":609,"context_line":"        mock_stdin.isatty \u003d lambda: True"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_13be69b3","line":606,"range":{"start_line":606,"start_character":42,"end_line":606,"end_character":45},"updated":"2018-04-03 12:49:00.000000000","message":"ditto","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"1f8422e1495df1521a3453be3a0c831471b76b1a","unresolved":false,"context_lines":[{"line_number":627,"context_line":"                        \u0027import method.\u0027)"},{"line_number":628,"context_line":"        my_args \u003d self.base_args.copy()"},{"line_number":629,"context_line":"        my_args[\u0027import_method\u0027] \u003d \u0027glance-direct\u0027"},{"line_number":630,"context_line":"        my_args[\u0027uri\u0027] \u003d \u0027https://example.org/some/stuff\u0027"},{"line_number":631,"context_line":"        args \u003d self._make_args(my_args)"},{"line_number":632,"context_line":"        mock_stdin.isatty \u003d lambda: False"},{"line_number":633,"context_line":"        mock_utils_exit.side_effect \u003d self._mock_utils_exit"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_73cec563","line":630,"range":{"start_line":630,"start_character":42,"end_line":630,"end_character":45},"updated":"2018-04-03 12:49:00.000000000","message":"ditto","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"1f8422e1495df1521a3453be3a0c831471b76b1a","unresolved":false,"context_lines":[{"line_number":714,"context_line":"                        \u0027import method.\u0027)"},{"line_number":715,"context_line":"        my_args \u003d self.base_args.copy()"},{"line_number":716,"context_line":"        my_args[\u0027import_method\u0027] \u003d \u0027web-download\u0027"},{"line_number":717,"context_line":"        my_args[\u0027uri\u0027] \u003d \u0027https://example.org/some/stuff\u0027"},{"line_number":718,"context_line":"        args \u003d self._make_args(my_args)"},{"line_number":719,"context_line":"        mock_stdin.isatty \u003d lambda: False"},{"line_number":720,"context_line":"        mock_utils_exit.side_effect \u003d self._mock_utils_exit"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_b3e53dde","line":717,"range":{"start_line":717,"start_character":42,"end_line":717,"end_character":45},"updated":"2018-04-03 12:49:00.000000000","message":"ditto","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"1f8422e1495df1521a3453be3a0c831471b76b1a","unresolved":false,"context_lines":[{"line_number":736,"context_line":"                        \u0027import method.\u0027)"},{"line_number":737,"context_line":"        my_args \u003d self.base_args.copy()"},{"line_number":738,"context_line":"        my_args[\u0027import_method\u0027] \u003d \u0027web-download\u0027"},{"line_number":739,"context_line":"        my_args[\u0027uri\u0027] \u003d \u0027https://example.org/some/stuff\u0027"},{"line_number":740,"context_line":"        my_args[\u0027file\u0027] \u003d \u0027my.browncow\u0027"},{"line_number":741,"context_line":"        args \u003d self._make_args(my_args)"},{"line_number":742,"context_line":"        mock_stdin.isatty \u003d lambda: True"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_d3e8f1b3","line":739,"range":{"start_line":739,"start_character":42,"end_line":739,"end_character":45},"updated":"2018-04-03 12:49:00.000000000","message":"ditto","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"}],"glanceclient/v2/shell.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e7e4a3afca0eadae25e1b5de8c3aaf94c545daca","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                  \u0027passed to the client via stdin.\u0027))"},{"line_number":103,"context_line":"@utils.arg(\u0027--progress\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":104,"context_line":"           help\u003d_(\u0027Show upload progress bar.\u0027))"},{"line_number":105,"context_line":"@utils.arg(\u0027--import-method\u0027, metavar\u003d\u0027\u003cMETHOD\u003e\u0027, default\u003dNone,"},{"line_number":106,"context_line":"           help\u003d_(\u0027Import method used for Image Import workflow. \u0027"},{"line_number":107,"context_line":"                  \u0027Valid values can be retrieved with import-info command.\u0027))"},{"line_number":108,"context_line":"@utils.arg(\u0027--uri\u0027, metavar\u003d\u0027\u003cIMAGE_URL\u003e\u0027, default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_205423ca","line":105,"range":{"start_line":105,"start_character":58,"end_line":105,"end_character":62},"updated":"2018-03-26 13:44:29.000000000","message":"IIUC this is the part that makes the bug this change is closing to exists in first place.","commit_id":"45a51ecad219ecd141e8b8dbc39e299d18ca2fa4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"34ea8b49584118b3116673da54a4216fc1817f07","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                  \u0027passed to the client via stdin.\u0027))"},{"line_number":103,"context_line":"@utils.arg(\u0027--progress\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":104,"context_line":"           help\u003d_(\u0027Show upload progress bar.\u0027))"},{"line_number":105,"context_line":"@utils.arg(\u0027--import-method\u0027, metavar\u003d\u0027\u003cMETHOD\u003e\u0027, default\u003dNone,"},{"line_number":106,"context_line":"           help\u003d_(\u0027Import method used for Image Import workflow. \u0027"},{"line_number":107,"context_line":"                  \u0027Valid values can be retrieved with import-info command.\u0027))"},{"line_number":108,"context_line":"@utils.arg(\u0027--uri\u0027, metavar\u003d\u0027\u003cIMAGE_URL\u003e\u0027, default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_89907050","line":105,"range":{"start_line":105,"start_character":58,"end_line":105,"end_character":62},"in_reply_to":"bf659307_06aa34d1","updated":"2018-03-28 16:13:21.000000000","message":"Got it ... i thought you meant line 137 on this patch!  Now I understand.\n\nI updated the bug, my description was not quite accurate.  But my feeling is that enough bad stuff can happen that it\u0027s worth reorganize how and what we check for on the client side.","commit_id":"45a51ecad219ecd141e8b8dbc39e299d18ca2fa4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c0922a4db2bbc2d36aae2f8b43066249a30663a","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                  \u0027passed to the client via stdin.\u0027))"},{"line_number":103,"context_line":"@utils.arg(\u0027--progress\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":104,"context_line":"           help\u003d_(\u0027Show upload progress bar.\u0027))"},{"line_number":105,"context_line":"@utils.arg(\u0027--import-method\u0027, metavar\u003d\u0027\u003cMETHOD\u003e\u0027, default\u003dNone,"},{"line_number":106,"context_line":"           help\u003d_(\u0027Import method used for Image Import workflow. \u0027"},{"line_number":107,"context_line":"                  \u0027Valid values can be retrieved with import-info command.\u0027))"},{"line_number":108,"context_line":"@utils.arg(\u0027--uri\u0027, metavar\u003d\u0027\u003cIMAGE_URL\u003e\u0027, default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_4614d0a0","line":105,"range":{"start_line":105,"start_character":58,"end_line":105,"end_character":62},"in_reply_to":"bf659307_205423ca","updated":"2018-03-26 14:36:07.000000000","message":"No, the original bug is that if you don\u0027t make this change, and leave the default as \u0027glance-direct\u0027 but have a uri specified as well as either supplying a file or data via stdin, the do_image_import call will fail because you\u0027re supplying a uri but the import-method is not web-download.  As a result, you\u0027ve got an image record created and you\u0027ve got data staged, but the do_image_import fails.  My opinion is that if someone is supplying both --file and --uri, we should reject the call because it\u0027s not clear what they want (do they expect the image to contain the file data, or the data at the uri?).","commit_id":"45a51ecad219ecd141e8b8dbc39e299d18ca2fa4"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"7cf06a95360dddb0477bf76a390c01e09e0a59f8","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                  \u0027passed to the client via stdin.\u0027))"},{"line_number":103,"context_line":"@utils.arg(\u0027--progress\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":104,"context_line":"           help\u003d_(\u0027Show upload progress bar.\u0027))"},{"line_number":105,"context_line":"@utils.arg(\u0027--import-method\u0027, metavar\u003d\u0027\u003cMETHOD\u003e\u0027, default\u003dNone,"},{"line_number":106,"context_line":"           help\u003d_(\u0027Import method used for Image Import workflow. \u0027"},{"line_number":107,"context_line":"                  \u0027Valid values can be retrieved with import-info command.\u0027))"},{"line_number":108,"context_line":"@utils.arg(\u0027--uri\u0027, metavar\u003d\u0027\u003cIMAGE_URL\u003e\u0027, default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_06aa34d1","line":105,"range":{"start_line":105,"start_character":58,"end_line":105,"end_character":62},"in_reply_to":"bf659307_3789b974","updated":"2018-03-27 15:06:48.000000000","message":"https://github.com/openstack/python-glanceclient/blob/master/glanceclient/v2/shell.py#L137-139 already prevents the image create happening at https://github.com/openstack/python-glanceclient/blob/master/glanceclient/v2/shell.py#L141 when you are providing uri but not method \"web-download\" and fails gracefully.","commit_id":"45a51ecad219ecd141e8b8dbc39e299d18ca2fa4"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"c79f38264ddd144835ccdf06dfdcfee8b8d34c16","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                  \u0027passed to the client via stdin.\u0027))"},{"line_number":103,"context_line":"@utils.arg(\u0027--progress\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":104,"context_line":"           help\u003d_(\u0027Show upload progress bar.\u0027))"},{"line_number":105,"context_line":"@utils.arg(\u0027--import-method\u0027, metavar\u003d\u0027\u003cMETHOD\u003e\u0027, default\u003dNone,"},{"line_number":106,"context_line":"           help\u003d_(\u0027Import method used for Image Import workflow. \u0027"},{"line_number":107,"context_line":"                  \u0027Valid values can be retrieved with import-info command.\u0027))"},{"line_number":108,"context_line":"@utils.arg(\u0027--uri\u0027, metavar\u003d\u0027\u003cIMAGE_URL\u003e\u0027, default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_497623a7","line":105,"range":{"start_line":105,"start_character":58,"end_line":105,"end_character":62},"in_reply_to":"bf659307_4614d0a0","updated":"2018-03-26 14:46:34.000000000","message":"No line 137 already prevents that happening before the create image call and we already do reject the call on this function.","commit_id":"45a51ecad219ecd141e8b8dbc39e299d18ca2fa4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d78210fb04abdfe6e3e7cf40ad7dc84c4f5328ba","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                  \u0027passed to the client via stdin.\u0027))"},{"line_number":103,"context_line":"@utils.arg(\u0027--progress\u0027, action\u003d\u0027store_true\u0027, default\u003dFalse,"},{"line_number":104,"context_line":"           help\u003d_(\u0027Show upload progress bar.\u0027))"},{"line_number":105,"context_line":"@utils.arg(\u0027--import-method\u0027, metavar\u003d\u0027\u003cMETHOD\u003e\u0027, default\u003dNone,"},{"line_number":106,"context_line":"           help\u003d_(\u0027Import method used for Image Import workflow. \u0027"},{"line_number":107,"context_line":"                  \u0027Valid values can be retrieved with import-info command.\u0027))"},{"line_number":108,"context_line":"@utils.arg(\u0027--uri\u0027, metavar\u003d\u0027\u003cIMAGE_URL\u003e\u0027, default\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_3789b974","line":105,"range":{"start_line":105,"start_character":58,"end_line":105,"end_character":62},"in_reply_to":"bf659307_497623a7","updated":"2018-03-26 23:18:09.000000000","message":"I clearly misunderstood your original point.  Can you rephrase it?","commit_id":"45a51ecad219ecd141e8b8dbc39e299d18ca2fa4"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8b7a5fbea2f26aaf6bd0f39312eb578366570387","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    image \u003d gc.images.create(**fields)"},{"line_number":173,"context_line":"    try:"},{"line_number":174,"context_line":"        args.id \u003d image[\u0027id\u0027]"},{"line_number":175,"context_line":"        if args.import_method:"},{"line_number":176,"context_line":"            if utils.get_data_file(args) is not None:"},{"line_number":177,"context_line":"                args.size \u003d None"},{"line_number":178,"context_line":"                do_image_stage(gc, args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_2f2e56a5","line":175,"updated":"2018-03-26 12:33:36.000000000","message":"Just for my own education, can you explain the flow here when args.import_method is None? It looks like that would create the image in the DB but not actually move any data. Is that correct?","commit_id":"45a51ecad219ecd141e8b8dbc39e299d18ca2fa4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c0922a4db2bbc2d36aae2f8b43066249a30663a","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    image \u003d gc.images.create(**fields)"},{"line_number":173,"context_line":"    try:"},{"line_number":174,"context_line":"        args.id \u003d image[\u0027id\u0027]"},{"line_number":175,"context_line":"        if args.import_method:"},{"line_number":176,"context_line":"            if utils.get_data_file(args) is not None:"},{"line_number":177,"context_line":"                args.size \u003d None"},{"line_number":178,"context_line":"                do_image_stage(gc, args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_2613dcb7","line":175,"in_reply_to":"bf659307_2f2e56a5","updated":"2018-03-26 14:36:07.000000000","message":"Yes, it will just create an image record in status \u0027queued\u0027.  This is what happens on the current image-create call when you don\u0027t provide data via --file or stdin ... you just get an image record created.","commit_id":"45a51ecad219ecd141e8b8dbc39e299d18ca2fa4"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"1f8422e1495df1521a3453be3a0c831471b76b1a","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    # make sure we have all and only correct inputs for the requested method"},{"line_number":161,"context_line":"    if args.import_method is None:"},{"line_number":162,"context_line":"        if file_name:"},{"line_number":163,"context_line":"            utils.exit(\"You cannot use --file without specifying an import \""},{"line_number":164,"context_line":"                       \"method.\")"},{"line_number":165,"context_line":"        if using_stdin:"},{"line_number":166,"context_line":"            utils.exit(\"You cannot provide data via stdin wthout specifying \""},{"line_number":167,"context_line":"                       \"an import method.\")"},{"line_number":168,"context_line":"        if args.uri:"},{"line_number":169,"context_line":"            utils.exit(\"You cannot use --uri without specifying an import \""},{"line_number":170,"context_line":"                       \"method.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_13cd0930","line":167,"range":{"start_line":162,"start_character":0,"end_line":167,"end_character":43},"updated":"2018-04-03 12:49:00.000000000","message":"These two are not reachable due to lines 149-150 of this patch.","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ee79a335390e038fd4c7569e59375c31af0ed7c4","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    # make sure we have all and only correct inputs for the requested method"},{"line_number":161,"context_line":"    if args.import_method is None:"},{"line_number":162,"context_line":"        if file_name:"},{"line_number":163,"context_line":"            utils.exit(\"You cannot use --file without specifying an import \""},{"line_number":164,"context_line":"                       \"method.\")"},{"line_number":165,"context_line":"        if using_stdin:"},{"line_number":166,"context_line":"            utils.exit(\"You cannot provide data via stdin wthout specifying \""},{"line_number":167,"context_line":"                       \"an import method.\")"},{"line_number":168,"context_line":"        if args.uri:"},{"line_number":169,"context_line":"            utils.exit(\"You cannot use --uri without specifying an import \""},{"line_number":170,"context_line":"                       \"method.\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_d20a28d0","line":167,"range":{"start_line":162,"start_character":0,"end_line":167,"end_character":43},"in_reply_to":"bf659307_13cd0930","updated":"2018-04-03 15:01:34.000000000","message":"Good point.","commit_id":"db71a2a2055bfe88670ca5f9b59fd9b437a2a667"}]}
