)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"2be284651a9ad0786c658ee5bb8493735c1e3bcf","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Accept service catalog from client side "},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Updates the Mistral server to accept the service catalog (complete access info) from the client request. This enable the server to cooperate with Keystone Identity V2 and V3 at the same time. "},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I7ca2aace4d5095828e5053af6965b833109d338a "},{"line_number":12,"context_line":"Implements: bug 1612705 "}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3ac371cc_ebab7ed4","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":192},"updated":"2016-08-16 15:45:54.000000000","message":"Soft: Please divide it into multiple lines","commit_id":"6ecf0a21aada39dfea5e507cec651a8f39773683"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"745ced6c6b81059883d42ae154639240ece28d8c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Accept service catalog from client side "},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Updates the Mistral server to accept the service catalog (complete access info) from the client request. This enable the server to cooperate with Keystone Identity V2 and V3 at the same time. "},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I7ca2aace4d5095828e5053af6965b833109d338a "},{"line_number":12,"context_line":"Implements: bug 1612705 "}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3ac371cc_0fd4ffe9","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":192},"in_reply_to":"3ac371cc_ebab7ed4","updated":"2016-08-17 09:16:37.000000000","message":"Done","commit_id":"6ecf0a21aada39dfea5e507cec651a8f39773683"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"bedbe9b9f4dedf4debe50c1fa2b864c9fb3a04a8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"with Keystone Identity V2 and V3 at the same time."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7ca2aace4d5095828e5053af6965b833109d338a"},{"line_number":14,"context_line":"Implements: bug 1612705"},{"line_number":15,"context_line":"Signed-off-by: Andras Kovi \u003cakovi@nokia.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1ac06dbe_b772ab0f","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":23},"updated":"2016-08-25 09:56:31.000000000","message":"For bugs it should be:\n\nCloses-bug: #\u003cnumber\u003e","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"c1142636eecb3dc2ae2b087e755c363f25889677","unresolved":false,"context_lines":[{"line_number":11,"context_line":"with Keystone Identity V2 and V3 at the same time."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I7ca2aace4d5095828e5053af6965b833109d338a"},{"line_number":14,"context_line":"Implements: bug 1612705"},{"line_number":15,"context_line":"Signed-off-by: Andras Kovi \u003cakovi@nokia.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1ac06dbe_4d7c8872","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":23},"in_reply_to":"1ac06dbe_b772ab0f","updated":"2016-08-25 10:16:50.000000000","message":"The problem is that this bug can be closed when both commits, this and the client correspondent (https://review.openstack.org/#/c/354803/) are merged. I can change the commit message but that may have the undesired side effect of closing the bug automatically. (If I understand the process correctly.)","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"}],"mistral/cmd/launch.py":[{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"745ced6c6b81059883d42ae154639240ece28d8c","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    os\u003dTrue,"},{"line_number":23,"context_line":"    select\u003dTrue,"},{"line_number":24,"context_line":"    socket\u003dTrue,"},{"line_number":25,"context_line":"    thread\u003dTrue,"},{"line_number":26,"context_line":"    time\u003dTrue)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_0f423fae","line":25,"updated":"2016-08-17 09:16:37.000000000","message":"this wasn\u0027t intentional. However, it seems like the use-debugger option has lost its meaning as the server is not debuggable at all, it always hangs (for me)","commit_id":"6ecf0a21aada39dfea5e507cec651a8f39773683"}],"mistral/context.py":[{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"2be284651a9ad0786c658ee5bb8493735c1e3bcf","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import base64"},{"line_number":17,"context_line":"import eventlet"},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"from keystoneclient.v3 import client as keystone_client"},{"line_number":20,"context_line":"import logging"},{"line_number":21,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_eb6ede94","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":11},"updated":"2016-08-16 15:45:54.000000000","message":"This import is unnecessary - jsonutils (that is already imported) has method loads.","commit_id":"6ecf0a21aada39dfea5e507cec651a8f39773683"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"745ced6c6b81059883d42ae154639240ece28d8c","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import base64"},{"line_number":17,"context_line":"import eventlet"},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"from keystoneclient.v3 import client as keystone_client"},{"line_number":20,"context_line":"import logging"},{"line_number":21,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_8f146fa0","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":11},"in_reply_to":"3ac371cc_eb6ede94","updated":"2016-08-17 09:16:37.000000000","message":"Done","commit_id":"6ecf0a21aada39dfea5e507cec651a8f39773683"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"2be284651a9ad0786c658ee5bb8493735c1e3bcf","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    if service_catalog_header:"},{"line_number":139,"context_line":"        decoded_catalog \u003d base64.b64decode(service_catalog_header).decode()"},{"line_number":140,"context_line":"        service_catalog \u003d json.loads(decoded_catalog)"},{"line_number":141,"context_line":"    else:"},{"line_number":142,"context_line":"        service_catalog \u003d None"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_6bbe6ed5","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":53},"updated":"2016-08-16 15:45:54.000000000","message":"jsonutils can be used (jsonutils.loads)","commit_id":"6ecf0a21aada39dfea5e507cec651a8f39773683"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"745ced6c6b81059883d42ae154639240ece28d8c","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    if service_catalog_header:"},{"line_number":139,"context_line":"        decoded_catalog \u003d base64.b64decode(service_catalog_header).decode()"},{"line_number":140,"context_line":"        service_catalog \u003d json.loads(decoded_catalog)"},{"line_number":141,"context_line":"    else:"},{"line_number":142,"context_line":"        service_catalog \u003d None"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3ac371cc_6f1933d7","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":53},"in_reply_to":"3ac371cc_6bbe6ed5","updated":"2016-08-17 09:16:37.000000000","message":"Done","commit_id":"6ecf0a21aada39dfea5e507cec651a8f39773683"},{"author":{"_account_id":18238,"name":"Hardik Parekh","email":"hardik.parekh047@gmail.com","username":"hparekh"},"change_message_id":"bf6a7f4835bdf7f06938c1eefaa3377a68c82506","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    project_id \u003d params[\u0027project_id\u0027]"},{"line_number":134,"context_line":"    user_id \u003d params[\u0027user_id\u0027]"},{"line_number":135,"context_line":"    user_name \u003d params[\u0027user_name\u0027]"},{"line_number":136,"context_line":"    target_service_catalog_header \u003d headers.get(\u0027X-Target-Service-Catalog\u0027)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    if target_service_catalog_header:"},{"line_number":139,"context_line":"        decoded_catalog \u003d base64.b64decode("}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_bda681ab","line":136,"range":{"start_line":136,"start_character":36,"end_line":136,"end_character":75},"updated":"2016-08-18 07:32:22.000000000","message":"It should be done in _extract_auth_params_from_headers function like we did for other target parameters","commit_id":"f6ee0f73b53a653943a465a35fc7bce231873c93"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"575fbee98f0e3226d377671d1febbed99b0fee06","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    project_id \u003d params[\u0027project_id\u0027]"},{"line_number":134,"context_line":"    user_id \u003d params[\u0027user_id\u0027]"},{"line_number":135,"context_line":"    user_name \u003d params[\u0027user_name\u0027]"},{"line_number":136,"context_line":"    target_service_catalog_header \u003d headers.get(\u0027X-Target-Service-Catalog\u0027)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    if target_service_catalog_header:"},{"line_number":139,"context_line":"        decoded_catalog \u003d base64.b64decode("}],"source_content_type":"text/x-python","patch_set":6,"id":"3ac371cc_351d8566","line":136,"range":{"start_line":136,"start_character":36,"end_line":136,"end_character":75},"in_reply_to":"3ac371cc_bda681ab","updated":"2016-08-18 08:19:02.000000000","message":"Done","commit_id":"f6ee0f73b53a653943a465a35fc7bce231873c93"}],"mistral/utils/openstack/keystone.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"413d9cf99a60a3af8459cb82fc93c13a5ca20590","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import keystoneauth1.identity.generic as auth_plugins"},{"line_number":17,"context_line":"from keystoneauth1 import session as ks_session"},{"line_number":18,"context_line":"from keystoneclient.service_catalog import ServiceCatalog"},{"line_number":19,"context_line":"from keystoneclient.v3 import client as ks_client"},{"line_number":20,"context_line":"from keystoneclient.v3.endpoints import Endpoint"},{"line_number":21,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_549ff502","line":18,"range":{"start_line":18,"start_character":43,"end_line":18,"end_character":57},"updated":"2016-08-25 09:51:34.000000000","message":"I hate to say that but importing classes directly is against OpenStack rules, there was recently a patch that fixes this across the project. https://review.openstack.org/#/c/358512/","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"c408deed5bd286ec9e754b2bb6fffdf65bbf8b83","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import keystoneauth1.identity.generic as auth_plugins"},{"line_number":17,"context_line":"from keystoneauth1 import session as ks_session"},{"line_number":18,"context_line":"from keystoneclient.service_catalog import ServiceCatalog"},{"line_number":19,"context_line":"from keystoneclient.v3 import client as ks_client"},{"line_number":20,"context_line":"from keystoneclient.v3.endpoints import Endpoint"},{"line_number":21,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_8d54c054","line":18,"range":{"start_line":18,"start_character":43,"end_line":18,"end_character":57},"in_reply_to":"1ac06dbe_549ff502","updated":"2016-08-25 10:26:35.000000000","message":"Done","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"413d9cf99a60a3af8459cb82fc93c13a5ca20590","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from keystoneauth1 import session as ks_session"},{"line_number":18,"context_line":"from keystoneclient.service_catalog import ServiceCatalog"},{"line_number":19,"context_line":"from keystoneclient.v3 import client as ks_client"},{"line_number":20,"context_line":"from keystoneclient.v3.endpoints import Endpoint"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from mistral import context"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_b48e29ce","line":20,"range":{"start_line":20,"start_character":40,"end_line":20,"end_character":48},"updated":"2016-08-25 09:51:34.000000000","message":"Same here.","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"c408deed5bd286ec9e754b2bb6fffdf65bbf8b83","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from keystoneauth1 import session as ks_session"},{"line_number":18,"context_line":"from keystoneclient.service_catalog import ServiceCatalog"},{"line_number":19,"context_line":"from keystoneclient.v3 import client as ks_client"},{"line_number":20,"context_line":"from keystoneclient.v3.endpoints import Endpoint"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from mistral import context"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_4d5ac884","line":20,"range":{"start_line":20,"start_character":40,"end_line":20,"end_character":48},"in_reply_to":"1ac06dbe_b48e29ce","updated":"2016-08-25 10:26:35.000000000","message":"Done","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"8d1e80941b6294b911f82a27fcc6c73a40abc378","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    for service_type in catalog:"},{"line_number":86,"context_line":"        service \u003d catalog.get(service_type)"},{"line_number":87,"context_line":"        for interface in service:"},{"line_number":88,"context_line":"            if \u0027publicURL\u0027 in interface:"},{"line_number":89,"context_line":"                endpoint_data \u003d {"},{"line_number":90,"context_line":"                    \u0027url\u0027: interface[\u0027publicURL\u0027],"},{"line_number":91,"context_line":"                    \u0027region\u0027: interface[\u0027region\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a89bdaa_ac74e1fd","line":88,"updated":"2016-09-13 11:13:55.000000000","message":"this seems very keystone v2.0 specific. Keystone v3 even renames these endpoint interfaces to remove the \u0027URL\u0027 suffix.","commit_id":"a38166815bab44f89be4501c3be5d9563d1945aa"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"51dbba058a65b83cb074cfb5280cae1c11af9277","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    for service_type in catalog:"},{"line_number":86,"context_line":"        service \u003d catalog.get(service_type)"},{"line_number":87,"context_line":"        for interface in service:"},{"line_number":88,"context_line":"            if \u0027publicURL\u0027 in interface:"},{"line_number":89,"context_line":"                endpoint_data \u003d {"},{"line_number":90,"context_line":"                    \u0027url\u0027: interface[\u0027publicURL\u0027],"},{"line_number":91,"context_line":"                    \u0027region\u0027: interface[\u0027region\u0027]"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a8ec9b2_50dc5212","line":88,"in_reply_to":"9a89bdaa_ac74e1fd","updated":"2016-09-14 12:43:25.000000000","message":"line 99 takes care of V3 :)","commit_id":"a38166815bab44f89be4501c3be5d9563d1945aa"},{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"31672635c4a253fe5d56337d6830cc8e5c6303a1","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    service_catalog \u003d obtain_service_catalog(ctx)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    catalog \u003d service_catalog.get_endpoints("},{"line_number":80,"context_line":"        service_name\u003dservice_name,"},{"line_number":81,"context_line":"        service_type\u003dservice_type"},{"line_number":82,"context_line":"    )"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    endpoint \u003d None"},{"line_number":85,"context_line":"    for service_type in catalog:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a8ec9b2_0ab1b18f","line":82,"range":{"start_line":79,"start_character":4,"end_line":82,"end_character":5},"updated":"2016-09-14 14:06:10.000000000","message":"I have a question. Why we can\u0027t use service_catalog.url_for() method here? It takes care of all keystone versions for us and then all the code below is not needed.","commit_id":"7ce229269992f365589d94ababd5031118b84003"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"49e5c7a1e5b593679dee5c213875fa7408c99d7a","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    service_catalog \u003d obtain_service_catalog(ctx)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    catalog \u003d service_catalog.get_endpoints("},{"line_number":80,"context_line":"        service_name\u003dservice_name,"},{"line_number":81,"context_line":"        service_type\u003dservice_type"},{"line_number":82,"context_line":"    )"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    endpoint \u003d None"},{"line_number":85,"context_line":"    for service_type in catalog:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a8ec9b2_c5825a00","line":82,"range":{"start_line":79,"start_character":4,"end_line":82,"end_character":5},"in_reply_to":"7a8ec9b2_0ab1b18f","updated":"2016-09-14 14:15:45.000000000","message":"Can you please send me the new code for this? I\u0027m in for simplification but I\u0027d not like to mess up what\u0027s working now. Otherwise, I think, we can do this update after the merge, in a new patch. 2 other patches are waiting on this one to complete so I\u0027d rather not delay it more.","commit_id":"7ce229269992f365589d94ababd5031118b84003"},{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"8eca64407d00a46088c1f1a3636255e5d593a110","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    service_catalog \u003d obtain_service_catalog(ctx)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    catalog \u003d service_catalog.get_endpoints("},{"line_number":80,"context_line":"        service_name\u003dservice_name,"},{"line_number":81,"context_line":"        service_type\u003dservice_type"},{"line_number":82,"context_line":"    )"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    endpoint \u003d None"},{"line_number":85,"context_line":"    for service_type in catalog:"}],"source_content_type":"text/x-python","patch_set":16,"id":"7a8ec9b2_802d7648","line":82,"range":{"start_line":79,"start_character":4,"end_line":82,"end_character":5},"in_reply_to":"7a8ec9b2_c5825a00","updated":"2016-09-15 07:42:04.000000000","message":"In python-mistralclient it was done at https://github.com/openstack/python-mistralclient/blob/master/mistralclient/auth/keystone.py#L55-L58\n\nYou just need to replace service_type and/or service_name and endpoint_type for it. Please see the full method description here: https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/service_catalog.py#L237-L239","commit_id":"7ce229269992f365589d94ababd5031118b84003"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"23403d92a3ce82b0decc3e7b231e4f2dd5048b45","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    for service_type in catalog:"},{"line_number":86,"context_line":"        service \u003d catalog.get(service_type)"},{"line_number":87,"context_line":"        for interface in service:"},{"line_number":88,"context_line":"            if \u0027publicURL\u0027 in interface:"},{"line_number":89,"context_line":"                endpoint_data \u003d {"},{"line_number":90,"context_line":"                    \u0027url\u0027: interface[\u0027publicURL\u0027],"},{"line_number":91,"context_line":"                    \u0027region\u0027: interface[\u0027region\u0027]"},{"line_number":92,"context_line":"                }"},{"line_number":93,"context_line":"                endpoint \u003d ks_endpoints.Endpoint("},{"line_number":94,"context_line":"                    None,"},{"line_number":95,"context_line":"                    endpoint_data,"},{"line_number":96,"context_line":"                    loaded\u003dTrue"},{"line_number":97,"context_line":"                )"},{"line_number":98,"context_line":"                break"},{"line_number":99,"context_line":"            if interface.get(\u0027interface\u0027, None) \u003d\u003d \u0027public\u0027:"},{"line_number":100,"context_line":"                endpoint \u003d ks_endpoints.Endpoint(None, interface, loaded\u003dTrue)"},{"line_number":101,"context_line":"                break"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    if not endpoint:"},{"line_number":104,"context_line":"        raise Exception("}],"source_content_type":"text/x-python","patch_set":17,"id":"5a8bc5a2_baaaf86e","line":101,"range":{"start_line":88,"start_character":0,"end_line":101,"end_character":21},"updated":"2016-09-22 09:37:49.000000000","message":"so, it used to be the case that it would read CONF.os_actions_endpoint_type and now it\u0027s getting hardcoded to \u0027public\u0027 (again). This is a regression from the previous behavior. Can you also use the url_for function instead? that would get rid of this manual checking.","commit_id":"7168f6f43a4f5c0eeebac6619da0558dae1da53c"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"dfe5b0cd3d8e85b2a102489284d939de7fab1ff2","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    for service_type in catalog:"},{"line_number":86,"context_line":"        service \u003d catalog.get(service_type)"},{"line_number":87,"context_line":"        for interface in service:"},{"line_number":88,"context_line":"            if \u0027publicURL\u0027 in interface:"},{"line_number":89,"context_line":"                endpoint_data \u003d {"},{"line_number":90,"context_line":"                    \u0027url\u0027: interface[\u0027publicURL\u0027],"},{"line_number":91,"context_line":"                    \u0027region\u0027: interface[\u0027region\u0027]"},{"line_number":92,"context_line":"                }"},{"line_number":93,"context_line":"                endpoint \u003d ks_endpoints.Endpoint("},{"line_number":94,"context_line":"                    None,"},{"line_number":95,"context_line":"                    endpoint_data,"},{"line_number":96,"context_line":"                    loaded\u003dTrue"},{"line_number":97,"context_line":"                )"},{"line_number":98,"context_line":"                break"},{"line_number":99,"context_line":"            if interface.get(\u0027interface\u0027, None) \u003d\u003d \u0027public\u0027:"},{"line_number":100,"context_line":"                endpoint \u003d ks_endpoints.Endpoint(None, interface, loaded\u003dTrue)"},{"line_number":101,"context_line":"                break"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    if not endpoint:"},{"line_number":104,"context_line":"        raise Exception("}],"source_content_type":"text/x-python","patch_set":17,"id":"5a8bc5a2_91e43e0e","line":101,"range":{"start_line":88,"start_character":0,"end_line":101,"end_character":21},"in_reply_to":"5a8bc5a2_113cae92","updated":"2016-09-22 11:23:40.000000000","message":"It\u0027s in line 123 of the old code.","commit_id":"7168f6f43a4f5c0eeebac6619da0558dae1da53c"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"eca1ba489edd3bd54c3fe3a04e152c9258ebe48c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    for service_type in catalog:"},{"line_number":86,"context_line":"        service \u003d catalog.get(service_type)"},{"line_number":87,"context_line":"        for interface in service:"},{"line_number":88,"context_line":"            if \u0027publicURL\u0027 in interface:"},{"line_number":89,"context_line":"                endpoint_data \u003d {"},{"line_number":90,"context_line":"                    \u0027url\u0027: interface[\u0027publicURL\u0027],"},{"line_number":91,"context_line":"                    \u0027region\u0027: interface[\u0027region\u0027]"},{"line_number":92,"context_line":"                }"},{"line_number":93,"context_line":"                endpoint \u003d ks_endpoints.Endpoint("},{"line_number":94,"context_line":"                    None,"},{"line_number":95,"context_line":"                    endpoint_data,"},{"line_number":96,"context_line":"                    loaded\u003dTrue"},{"line_number":97,"context_line":"                )"},{"line_number":98,"context_line":"                break"},{"line_number":99,"context_line":"            if interface.get(\u0027interface\u0027, None) \u003d\u003d \u0027public\u0027:"},{"line_number":100,"context_line":"                endpoint \u003d ks_endpoints.Endpoint(None, interface, loaded\u003dTrue)"},{"line_number":101,"context_line":"                break"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    if not endpoint:"},{"line_number":104,"context_line":"        raise Exception("}],"source_content_type":"text/x-python","patch_set":17,"id":"5a8bc5a2_4503cc73","line":101,"range":{"start_line":88,"start_character":0,"end_line":101,"end_character":21},"in_reply_to":"5a8bc5a2_91e43e0e","updated":"2016-09-22 12:32:18.000000000","message":"Thank you, I missed that in my local master branch. I fixed it in the V3 case for now. But actually, this imposes another issue with the multi-vim support. We\u0027ll have to think about making all these parameters configurable. Or leaving it until some real need is appearing. For now, this patch should not be causing regression in case of V3 while adding support for V2.","commit_id":"7168f6f43a4f5c0eeebac6619da0558dae1da53c"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"ab3ebcc9d14f1113ff0b188781b2502df82044a0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    for service_type in catalog:"},{"line_number":86,"context_line":"        service \u003d catalog.get(service_type)"},{"line_number":87,"context_line":"        for interface in service:"},{"line_number":88,"context_line":"            if \u0027publicURL\u0027 in interface:"},{"line_number":89,"context_line":"                endpoint_data \u003d {"},{"line_number":90,"context_line":"                    \u0027url\u0027: interface[\u0027publicURL\u0027],"},{"line_number":91,"context_line":"                    \u0027region\u0027: interface[\u0027region\u0027]"},{"line_number":92,"context_line":"                }"},{"line_number":93,"context_line":"                endpoint \u003d ks_endpoints.Endpoint("},{"line_number":94,"context_line":"                    None,"},{"line_number":95,"context_line":"                    endpoint_data,"},{"line_number":96,"context_line":"                    loaded\u003dTrue"},{"line_number":97,"context_line":"                )"},{"line_number":98,"context_line":"                break"},{"line_number":99,"context_line":"            if interface.get(\u0027interface\u0027, None) \u003d\u003d \u0027public\u0027:"},{"line_number":100,"context_line":"                endpoint \u003d ks_endpoints.Endpoint(None, interface, loaded\u003dTrue)"},{"line_number":101,"context_line":"                break"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    if not endpoint:"},{"line_number":104,"context_line":"        raise Exception("}],"source_content_type":"text/x-python","patch_set":17,"id":"5a8bc5a2_113cae92","line":101,"range":{"start_line":88,"start_character":0,"end_line":101,"end_character":21},"in_reply_to":"5a8bc5a2_baaaf86e","updated":"2016-09-22 11:21:37.000000000","message":"As I see, only Nova uses this setting. This code did not use that value. Nova action has not been changed so there should not be regression.","commit_id":"7168f6f43a4f5c0eeebac6619da0558dae1da53c"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"01e281a0c977aefcb9910d25bc0bb470daad0a39","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                        loaded\u003dTrue"},{"line_number":96,"context_line":"                    )"},{"line_number":97,"context_line":"                    break"},{"line_number":98,"context_line":"            # is V2 interface?"},{"line_number":99,"context_line":"            if \u0027publicURL\u0027 in interface:"},{"line_number":100,"context_line":"                endpoint_data \u003d {"},{"line_number":101,"context_line":"                    \u0027url\u0027: interface[\u0027publicURL\u0027],"},{"line_number":102,"context_line":"                    \u0027region\u0027: interface[\u0027region\u0027]"},{"line_number":103,"context_line":"                }"},{"line_number":104,"context_line":"                endpoint \u003d ks_endpoints.Endpoint("},{"line_number":105,"context_line":"                    None,"},{"line_number":106,"context_line":"                    endpoint_data,"},{"line_number":107,"context_line":"                    loaded\u003dTrue"},{"line_number":108,"context_line":"                )"},{"line_number":109,"context_line":"                break"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    if not endpoint:"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a98d1f4_a31b7c1a","line":108,"range":{"start_line":98,"start_character":1,"end_line":108,"end_character":17},"updated":"2016-09-29 13:02:02.000000000","message":"so, for the v2 interface we don\u0027t check CONF.os_actions_endpoint_type?","commit_id":"9ebf329aa0b020900fce4307f35342e6a87366ab"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"9737f82a9df848ecbb3a1b19696152248981f02b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                        loaded\u003dTrue"},{"line_number":96,"context_line":"                    )"},{"line_number":97,"context_line":"                    break"},{"line_number":98,"context_line":"            # is V2 interface?"},{"line_number":99,"context_line":"            if \u0027publicURL\u0027 in interface:"},{"line_number":100,"context_line":"                endpoint_data \u003d {"},{"line_number":101,"context_line":"                    \u0027url\u0027: interface[\u0027publicURL\u0027],"},{"line_number":102,"context_line":"                    \u0027region\u0027: interface[\u0027region\u0027]"},{"line_number":103,"context_line":"                }"},{"line_number":104,"context_line":"                endpoint \u003d ks_endpoints.Endpoint("},{"line_number":105,"context_line":"                    None,"},{"line_number":106,"context_line":"                    endpoint_data,"},{"line_number":107,"context_line":"                    loaded\u003dTrue"},{"line_number":108,"context_line":"                )"},{"line_number":109,"context_line":"                break"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    if not endpoint:"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a98d1f4_d9c0497f","line":108,"range":{"start_line":98,"start_character":1,"end_line":108,"end_character":17},"in_reply_to":"3a98d1f4_a31b7c1a","updated":"2016-09-30 07:46:54.000000000","message":"We could use the CONF here but I wouldn\u0027t do so until there is real need for that. I wouldn\u0027t want to deceive our users that the server can be configured with V2, because it is not compatible with V2 on an API level.","commit_id":"9ebf329aa0b020900fce4307f35342e6a87366ab"}],"mistral_tempest_tests/tests/scenario/engine/actions/v2/test_multi_vim_authentication.py":[{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"66429e13a4deab757a8f6b0cffcdfe26d65de966","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            )"},{"line_number":74,"context_line":"        }"},{"line_number":75,"context_line":"        extra_headers.update(service_catalog)"},{"line_number":76,"context_line":"        result \u003d _execute_action(client_1,"},{"line_number":77,"context_line":"                                 _get_list_stack_request(),"},{"line_number":78,"context_line":"                                 extra_headers\u003dextra_headers)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # assert that the invalid catalog was used"},{"line_number":81,"context_line":"        self.assertTrue(\"Invalid URL\" in result[\u0027output\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_6e772ea0","line":78,"range":{"start_line":76,"start_character":32,"end_line":78,"end_character":61},"updated":"2016-08-18 09:08:32.000000000","message":"Soft: If function call is multiline, every argument should be in a new line with closing bracket also in a new line\n\n _execute_action(\n     client_1,\n     _get_list_stack_request(),\n     extra_headers\u003dextra_headers\n )","commit_id":"e617b6bb21c4ccc826581e9e2fa88a2ef86b9d85"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"e76a2a6bafe19a373b10078d95543cb19b0bf92f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            )"},{"line_number":74,"context_line":"        }"},{"line_number":75,"context_line":"        extra_headers.update(service_catalog)"},{"line_number":76,"context_line":"        result \u003d _execute_action(client_1,"},{"line_number":77,"context_line":"                                 _get_list_stack_request(),"},{"line_number":78,"context_line":"                                 extra_headers\u003dextra_headers)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # assert that the invalid catalog was used"},{"line_number":81,"context_line":"        self.assertTrue(\"Invalid URL\" in result[\u0027output\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_c0a42a4c","line":78,"range":{"start_line":76,"start_character":32,"end_line":78,"end_character":61},"in_reply_to":"3ac371cc_6e772ea0","updated":"2016-08-18 10:33:20.000000000","message":"Done","commit_id":"e617b6bb21c4ccc826581e9e2fa88a2ef86b9d85"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"66429e13a4deab757a8f6b0cffcdfe26d65de966","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _execute_action(client, request, extra_headers\u003d{}):"},{"line_number":97,"context_line":"    _, result \u003d client.create_action_execution(request,"},{"line_number":98,"context_line":"                                               extra_headers\u003dextra_headers)"},{"line_number":99,"context_line":"    return result"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_6eec4e2a","line":98,"range":{"start_line":97,"start_character":46,"end_line":98,"end_character":75},"updated":"2016-08-18 09:08:32.000000000","message":"ditto","commit_id":"e617b6bb21c4ccc826581e9e2fa88a2ef86b9d85"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"e76a2a6bafe19a373b10078d95543cb19b0bf92f","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"def _execute_action(client, request, extra_headers\u003d{}):"},{"line_number":97,"context_line":"    _, result \u003d client.create_action_execution(request,"},{"line_number":98,"context_line":"                                               extra_headers\u003dextra_headers)"},{"line_number":99,"context_line":"    return result"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_2066de29","line":98,"range":{"start_line":97,"start_character":46,"end_line":98,"end_character":75},"in_reply_to":"3ac371cc_6eec4e2a","updated":"2016-08-18 10:33:20.000000000","message":"Done","commit_id":"e617b6bb21c4ccc826581e9e2fa88a2ef86b9d85"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"413d9cf99a60a3af8459cb82fc93c13a5ca20590","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        client_1 \u003d self.alt_client"},{"line_number":32,"context_line":"        client_2 \u003d self.client"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        # create stack with client2"},{"line_number":35,"context_line":"        result \u003d _execute_action(client_2, _get_create_stack_request())"},{"line_number":36,"context_line":"        stack_id \u003d str("},{"line_number":37,"context_line":"            jsonutils.loads(result[\u0027output\u0027])[\u0027result\u0027][\u0027stack\u0027][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_d7b92730","line":34,"range":{"start_line":34,"start_character":10,"end_line":34,"end_character":16},"updated":"2016-08-25 09:51:34.000000000","message":"Soft: all comments should start with a capital and end with a period (regular English rules).\n\nPlease fix all comments in the module.","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"c408deed5bd286ec9e754b2bb6fffdf65bbf8b83","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        client_1 \u003d self.alt_client"},{"line_number":32,"context_line":"        client_2 \u003d self.client"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        # create stack with client2"},{"line_number":35,"context_line":"        result \u003d _execute_action(client_2, _get_create_stack_request())"},{"line_number":36,"context_line":"        stack_id \u003d str("},{"line_number":37,"context_line":"            jsonutils.loads(result[\u0027output\u0027])[\u0027result\u0027][\u0027stack\u0027][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_ad1b7cc9","line":34,"range":{"start_line":34,"start_character":10,"end_line":34,"end_character":16},"in_reply_to":"1ac06dbe_d7b92730","updated":"2016-08-25 10:26:35.000000000","message":"Done","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"413d9cf99a60a3af8459cb82fc93c13a5ca20590","unresolved":false,"context_lines":[{"line_number":86,"context_line":"def _extract_target_headers_from_client(client):"},{"line_number":87,"context_line":"    u \u003d urlparse(client.auth_provider.auth_url)"},{"line_number":88,"context_line":"    v3_auth_url \u003d \u0027{}://{}/identity/v3/\u0027.format(u.scheme, u.netloc)"},{"line_number":89,"context_line":"    return {"},{"line_number":90,"context_line":"        \u0027X-Target-Auth-Token\u0027: client.token,"},{"line_number":91,"context_line":"        \u0027X-Target-Auth-Uri\u0027: v3_auth_url,"},{"line_number":92,"context_line":"        \u0027X-Target-Project-Id\u0027: client.tenant_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_17ff3f02","line":89,"range":{"start_line":89,"start_character":4,"end_line":89,"end_character":10},"updated":"2016-08-25 09:51:34.000000000","message":"Soft: blank line before \u0027return\u0027","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"c408deed5bd286ec9e754b2bb6fffdf65bbf8b83","unresolved":false,"context_lines":[{"line_number":86,"context_line":"def _extract_target_headers_from_client(client):"},{"line_number":87,"context_line":"    u \u003d urlparse(client.auth_provider.auth_url)"},{"line_number":88,"context_line":"    v3_auth_url \u003d \u0027{}://{}/identity/v3/\u0027.format(u.scheme, u.netloc)"},{"line_number":89,"context_line":"    return {"},{"line_number":90,"context_line":"        \u0027X-Target-Auth-Token\u0027: client.token,"},{"line_number":91,"context_line":"        \u0027X-Target-Auth-Uri\u0027: v3_auth_url,"},{"line_number":92,"context_line":"        \u0027X-Target-Project-Id\u0027: client.tenant_id,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_2d866cdb","line":89,"range":{"start_line":89,"start_character":4,"end_line":89,"end_character":10},"in_reply_to":"1ac06dbe_17ff3f02","updated":"2016-08-25 10:26:35.000000000","message":"Done","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"413d9cf99a60a3af8459cb82fc93c13a5ca20590","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"def _get_create_stack_request():"},{"line_number":107,"context_line":"    stack_name \u003d \u0027multi_vim_test_stack_{}\u0027.format(str(uuid.uuid4())[:8])"},{"line_number":108,"context_line":"    return {"},{"line_number":109,"context_line":"        \u0027name\u0027: \u0027heat.stacks_create\u0027,"},{"line_number":110,"context_line":"        \u0027input\u0027: {"},{"line_number":111,"context_line":"            \u0027stack_name\u0027: stack_name,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_f701c305","line":108,"range":{"start_line":108,"start_character":4,"end_line":108,"end_character":10},"updated":"2016-08-25 09:51:34.000000000","message":"Same","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"c408deed5bd286ec9e754b2bb6fffdf65bbf8b83","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"def _get_create_stack_request():"},{"line_number":107,"context_line":"    stack_name \u003d \u0027multi_vim_test_stack_{}\u0027.format(str(uuid.uuid4())[:8])"},{"line_number":108,"context_line":"    return {"},{"line_number":109,"context_line":"        \u0027name\u0027: \u0027heat.stacks_create\u0027,"},{"line_number":110,"context_line":"        \u0027input\u0027: {"},{"line_number":111,"context_line":"            \u0027stack_name\u0027: stack_name,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_8d6de034","line":108,"range":{"start_line":108,"start_character":4,"end_line":108,"end_character":10},"in_reply_to":"1ac06dbe_f701c305","updated":"2016-08-25 10:26:35.000000000","message":"Done","commit_id":"0638adbaad80d6084d386fab350b9cfa2bcf67d1"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"7883845ffdc1dd5d0f8c48e1d2abb3f20cdd0d95","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."},{"line_number":12,"context_line":"#    See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"#    limitations under the License."},{"line_number":14,"context_line":"import base64"},{"line_number":15,"context_line":"from mistral_tempest_tests.tests import base"},{"line_number":16,"context_line":"from oslo_serialization import jsonutils"},{"line_number":17,"context_line":"from tempest import test"},{"line_number":18,"context_line":"from urlparse import urlparse"},{"line_number":19,"context_line":"import uuid"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class MultiVimActionsTests(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":22,"id":"5a8bc5a2_b602fa6d","line":19,"range":{"start_line":14,"start_character":0,"end_line":19,"end_character":11},"updated":"2016-09-28 10:39:33.000000000","message":"Please re-order imports according to PEP8","commit_id":"374b66ee5ab4aea5ca4b280acee5daabe61c8d6d"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"4bc7c71971fb74bc5f0f89dc2bb960903bd6398c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."},{"line_number":12,"context_line":"#    See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"#    limitations under the License."},{"line_number":14,"context_line":"import base64"},{"line_number":15,"context_line":"from mistral_tempest_tests.tests import base"},{"line_number":16,"context_line":"from oslo_serialization import jsonutils"},{"line_number":17,"context_line":"from tempest import test"},{"line_number":18,"context_line":"from urlparse import urlparse"},{"line_number":19,"context_line":"import uuid"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class MultiVimActionsTests(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":22,"id":"5a8bc5a2_4d51200e","line":19,"range":{"start_line":14,"start_character":0,"end_line":19,"end_character":11},"in_reply_to":"5a8bc5a2_b602fa6d","updated":"2016-09-28 11:06:53.000000000","message":"Thank you for the comment. Is there any check that would indicate the correct order for me? tox -e pep8 succeeds without a single error.","commit_id":"374b66ee5ab4aea5ca4b280acee5daabe61c8d6d"}]}
