)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"306733eca060134cb9bcf332a41b6609290f74ec","unresolved":false,"context_lines":[{"line_number":15,"context_line":"should only be set if the user had specified so."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ia8e461d9e27cf1256c988d49eeef050872d5af12"},{"line_number":18,"context_line":"Co-Authored-By: Sharat Sharma \u003csharat.sharma@nectechnologies.in\u003e"},{"line_number":19,"context_line":"Implements-blueprint: mistral-use-keystoneauth"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":44,"id":"7f231b9d_65c07e7c","line":18,"updated":"2017-06-14 08:29:52.000000000","message":"Maybe add \"Co-Authored-By: Thomas Herve \u003ctherve@redhat.com\u003e\"?","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"}],"mistralclient/api/httpclient.py":[{"author":{"_account_id":9712,"name":"Dougal Matthews","email":"dougal.matthews@canonical.com","username":"dougal"},"change_message_id":"aeee1d0b0475efdbbf089c35271f82db0441bb5a","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import copy"},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"import requests"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_utils import importutils"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"5ff73747_06513b63","line":18,"updated":"2017-05-02 15:04:56.000000000","message":"requests isn\u0027t stdlib :)","commit_id":"a3bf9a71affe44405dbfa5876fa5af033e7545c5"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"eb111f15b86994cf249e19bd854d1c0879905056","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            headers[h_name] \u003d self.target_project_domain_name"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if self.target_service_catalog:"},{"line_number":195,"context_line":"            headers[\u0027X-Target-Service-Catalog\u0027] \u003d base64.b64encode("},{"line_number":196,"context_line":"                self.target_service_catalog.encode(\u0027utf-8\u0027)"},{"line_number":197,"context_line":"            )"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if osprofiler_web:"},{"line_number":200,"context_line":"            # Add headers for osprofiler."}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_97fab172","side":"PARENT","line":197,"range":{"start_line":194,"start_character":8,"end_line":197,"end_character":13},"updated":"2017-06-14 09:31:25.000000000","message":"I see the target service catalog has been removed in other parts of the code too. How is it transferred now? This is required when Keystone V2 is used. The whole target stuff will fail without it.","commit_id":"9e6ff999c16e9f6de8acf6f7d270e36cda932168"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import copy"},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"import requests"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_utils import importutils"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_bacfd4ae","line":18,"range":{"start_line":18,"start_character":7,"end_line":18,"end_character":15},"updated":"2017-06-14 09:42:47.000000000","message":"requests is not a built-in lib","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from oslo_utils import importutils"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import logging"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"AUTH_TOKEN \u003d \u0027auth_token\u0027"},{"line_number":25,"context_line":"SESSION \u003d \u0027session\u0027"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_7ac13c80","line":22,"range":{"start_line":22,"start_character":7,"end_line":22,"end_character":14},"updated":"2017-06-14 09:42:47.000000000","message":"logging is a built-in lib\n\nyou should change the order of this :D","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"class HTTPClient(object):"},{"line_number":60,"context_line":"    def __init__(self, base_url, **kwargs):"},{"line_number":61,"context_line":"        self.base_url \u003d base_url"},{"line_number":62,"context_line":"        self.session \u003d kwargs.get(SESSION)"},{"line_number":63,"context_line":"        if not self.session:"},{"line_number":64,"context_line":"            self.session \u003d requests.Session()"},{"line_number":65,"context_line":"        self.auth_token \u003d kwargs.get(AUTH_TOKEN)"},{"line_number":66,"context_line":"        self.project_id \u003d kwargs.get(PROJECT_ID)"},{"line_number":67,"context_line":"        self.user_id \u003d kwargs.get(USER_ID)"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_9a74186a","line":64,"range":{"start_line":62,"start_character":0,"end_line":64,"end_character":45},"updated":"2017-06-14 09:42:47.000000000","message":"why not change it to this, you don\u0027t need to check self.session\n  self.session \u003d kwargs.pop(\u0027session\u0027, requests.Session())","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a0ab1003610e21ef558513a960f185842dbefc82","unresolved":false,"context_lines":[{"line_number":59,"context_line":"class HTTPClient(object):"},{"line_number":60,"context_line":"    def __init__(self, base_url, **kwargs):"},{"line_number":61,"context_line":"        self.base_url \u003d base_url"},{"line_number":62,"context_line":"        self.session \u003d kwargs.get(\u0027session\u0027)"},{"line_number":63,"context_line":"        if not self.session:"},{"line_number":64,"context_line":"            self.session \u003d requests.Session()"},{"line_number":65,"context_line":"        self.auth_token \u003d kwargs.get(AUTH_TOKEN)"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f231b9d_2d0b1a2a","line":62,"range":{"start_line":62,"start_character":35,"end_line":62,"end_character":42},"updated":"2017-06-19 08:40:25.000000000","message":"I guess it\u0027s not what Tovin asked in his comment. And if you decide to not use SESSION constant please remove it complete. But I\u0027d probably prefer to use it instead of a hardcoded value.","commit_id":"214394b753b6f8ade20fe87e2fd9dcb3b8bd1c42"},{"author":{"_account_id":20863,"name":"Sharat Sharma","email":"sharat.sharma@in.ibm.com","username":"sharat.sharma"},"change_message_id":"d24e959657885521d8770ba75dffc43259f42450","unresolved":false,"context_lines":[{"line_number":59,"context_line":"class HTTPClient(object):"},{"line_number":60,"context_line":"    def __init__(self, base_url, **kwargs):"},{"line_number":61,"context_line":"        self.base_url \u003d base_url"},{"line_number":62,"context_line":"        self.session \u003d kwargs.get(\u0027session\u0027)"},{"line_number":63,"context_line":"        if not self.session:"},{"line_number":64,"context_line":"            self.session \u003d requests.Session()"},{"line_number":65,"context_line":"        self.auth_token \u003d kwargs.get(AUTH_TOKEN)"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f231b9d_a4e040ce","line":62,"range":{"start_line":62,"start_character":35,"end_line":62,"end_character":42},"in_reply_to":"7f231b9d_2d0b1a2a","updated":"2017-06-20 06:24:00.000000000","message":"Tovin was suggesting to use \nself.session \u003d kwargs.pop(\u0027session\u0027, requests.Session()) instead of L62-L64. We tried it but didn\u0027t work.","commit_id":"214394b753b6f8ade20fe87e2fd9dcb3b8bd1c42"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"68fa896c13ac17b579077ee35fa14ccf6efe0462","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            headers[h_name] \u003d self.target_project_domain_name"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if self.target_service_catalog:"},{"line_number":195,"context_line":"            headers[\u0027X-Target-Service-Catalog\u0027] \u003d base64.b64encode("},{"line_number":196,"context_line":"                self.target_service_catalog.encode(\u0027utf-8\u0027)"},{"line_number":197,"context_line":"            )"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_61ad01e8","side":"PARENT","line":195,"range":{"start_line":195,"start_character":12,"end_line":195,"end_character":47},"updated":"2017-07-04 14:58:43.000000000","message":"on the other hand, this header might still be required by the server. This change just doesn\u0027t fit into this patch. I suggest to:\n1. Leave this code as is;\n2. Open a bugreport on mistral to stop using this header and fetch catalog from keystone instead;\n3. Remove this code when #2 is fixed.","commit_id":"d4d41137ac30f168cf64671706e788077a375a7e"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"25b0f72a4595f511fe4d784e31b3954a6e56bd4c","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            headers[h_name] \u003d self.target_project_domain_name"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if self.target_service_catalog:"},{"line_number":195,"context_line":"            headers[\u0027X-Target-Service-Catalog\u0027] \u003d base64.b64encode("},{"line_number":196,"context_line":"                self.target_service_catalog.encode(\u0027utf-8\u0027)"},{"line_number":197,"context_line":"            )"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if osprofiler_web:"},{"line_number":200,"context_line":"            # Add headers for osprofiler."}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_f8eae90c","side":"PARENT","line":197,"range":{"start_line":194,"start_character":8,"end_line":197,"end_character":13},"updated":"2017-07-04 12:16:43.000000000","message":"This is required with Keystone V2.","commit_id":"d4d41137ac30f168cf64671706e788077a375a7e"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"8e8377e741a5af7fab61fd7a31a4ee01b67a6ebd","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            headers[h_name] \u003d self.target_project_domain_name"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if self.target_service_catalog:"},{"line_number":195,"context_line":"            headers[\u0027X-Target-Service-Catalog\u0027] \u003d base64.b64encode("},{"line_number":196,"context_line":"                self.target_service_catalog.encode(\u0027utf-8\u0027)"},{"line_number":197,"context_line":"            )"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if osprofiler_web:"},{"line_number":200,"context_line":"            # Add headers for osprofiler."}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_c4ce232c","side":"PARENT","line":197,"range":{"start_line":194,"start_character":8,"end_line":197,"end_character":13},"in_reply_to":"3f1d235d_21c4a95e","updated":"2017-07-04 15:52:02.000000000","message":"Yeah, you are right. Very nice catch. Theoretically we could ask the service user to fetch catalog for the X-Target-Auth-Token though, but it would require fixing the server...\n\nAnyway, i\u0027ve opened bug 1702324 to make things worse :p","commit_id":"d4d41137ac30f168cf64671706e788077a375a7e"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"db4bb0174e3e095613576fb32b631ed8d4348dfd","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            headers[h_name] \u003d self.target_project_domain_name"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if self.target_service_catalog:"},{"line_number":195,"context_line":"            headers[\u0027X-Target-Service-Catalog\u0027] \u003d base64.b64encode("},{"line_number":196,"context_line":"                self.target_service_catalog.encode(\u0027utf-8\u0027)"},{"line_number":197,"context_line":"            )"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if osprofiler_web:"},{"line_number":200,"context_line":"            # Add headers for osprofiler."}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_e17c7184","side":"PARENT","line":197,"range":{"start_line":194,"start_character":8,"end_line":197,"end_character":13},"in_reply_to":"3f1d235d_39050315","updated":"2017-07-04 14:56:27.000000000","message":"i\u0027ve looked at the code and don\u0027t understand why this is v2-specific. There is some weird code that fetches service catalog from... somewhere, but it doesn\u0027t look v2-specific","commit_id":"d4d41137ac30f168cf64671706e788077a375a7e"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"e75e8b7f48241d833069793a1dd698b11b1c1507","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            headers[h_name] \u003d self.target_project_domain_name"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if self.target_service_catalog:"},{"line_number":195,"context_line":"            headers[\u0027X-Target-Service-Catalog\u0027] \u003d base64.b64encode("},{"line_number":196,"context_line":"                self.target_service_catalog.encode(\u0027utf-8\u0027)"},{"line_number":197,"context_line":"            )"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if osprofiler_web:"},{"line_number":200,"context_line":"            # Add headers for osprofiler."}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_39050315","side":"PARENT","line":197,"range":{"start_line":194,"start_character":8,"end_line":197,"end_character":13},"in_reply_to":"3f1d235d_79a49ba6","updated":"2017-07-04 13:42:35.000000000","message":"Here is the spec: https://github.com/openstack/mistral-specs/blob/master/specs/newton/implemented/mistral-multi-vim-support.rst\nHere is the code: https://github.com/openstack/mistral/blob/master/mistral/context.py#L171","commit_id":"d4d41137ac30f168cf64671706e788077a375a7e"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"10c7bf230a199e8fcdfedcd64ad3ff8956b6b123","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            headers[h_name] \u003d self.target_project_domain_name"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if self.target_service_catalog:"},{"line_number":195,"context_line":"            headers[\u0027X-Target-Service-Catalog\u0027] \u003d base64.b64encode("},{"line_number":196,"context_line":"                self.target_service_catalog.encode(\u0027utf-8\u0027)"},{"line_number":197,"context_line":"            )"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if osprofiler_web:"},{"line_number":200,"context_line":"            # Add headers for osprofiler."}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_21c4a95e","side":"PARENT","line":197,"range":{"start_line":194,"start_character":8,"end_line":197,"end_character":13},"in_reply_to":"3f1d235d_e17c7184","updated":"2017-07-04 15:09:33.000000000","message":"Actually, yes, it is not V2 specific but it is a must for V2. It is an optimization that it is provided with V3 auth too. The reason behind this field is that there is no API to retrieve the endpoints in V2 with an arbitrary user. More specifically, it is only possible with admin credentials to do that. With a \u0027target\u0027-ed execution it is not expected that the given auth token or credentials are admin roled so it would be impossible to execute openstack actions on the server side.","commit_id":"d4d41137ac30f168cf64671706e788077a375a7e"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"ffe47df7ded84f89cc1430fddc5f0586bf281a8d","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"            headers[h_name] \u003d self.target_project_domain_name"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        if self.target_service_catalog:"},{"line_number":195,"context_line":"            headers[\u0027X-Target-Service-Catalog\u0027] \u003d base64.b64encode("},{"line_number":196,"context_line":"                self.target_service_catalog.encode(\u0027utf-8\u0027)"},{"line_number":197,"context_line":"            )"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        if osprofiler_web:"},{"line_number":200,"context_line":"            # Add headers for osprofiler."}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_79a49ba6","side":"PARENT","line":197,"range":{"start_line":194,"start_character":8,"end_line":197,"end_character":13},"in_reply_to":"3f1d235d_f8eae90c","updated":"2017-07-04 13:25:49.000000000","message":"What does it have to do with keystone v2? Could you please point to some code that uses it?","commit_id":"d4d41137ac30f168cf64671706e788077a375a7e"}],"mistralclient/api/v2/client.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"872bc0dd46ff3e252591c13d6f1f83344f0bdb29","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        auth_handler \u003d auth.get_auth_handler(auth_type)"},{"line_number":53,"context_line":"        auth_response \u003d auth_handler.authenticate(req, session\u003dsession) or {}"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        # If the session was None and we\u0027re using keystone auth, it will have"},{"line_number":56,"context_line":"        # been created by the auth_handler."},{"line_number":57,"context_line":"        session \u003d auth_response.pop(\u0027session\u0027, None)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        req.update(auth_response)"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_a5c69699","line":56,"range":{"start_line":55,"start_character":68,"end_line":56,"end_character":22},"updated":"2017-06-14 08:45:09.000000000","message":"A little tricky way to say it :) Could be just \"it will be created\". But it\u0027s ok.","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"}],"mistralclient/auth/keystone.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"872bc0dd46ff3e252591c13d6f1f83344f0bdb29","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        region_name \u003d req.get(\u0027region_name\u0027)"},{"line_number":47,"context_line":"        user_domain_name \u003d req.get(\u0027user_domain_name\u0027, \u0027Default\u0027)"},{"line_number":48,"context_line":"        project_domain_name \u003d req.get(\u0027project_domain_name\u0027, \u0027Default\u0027)"},{"line_number":49,"context_line":"        cacert \u003d req.get(\u0027cacert\u0027)"},{"line_number":50,"context_line":"        insecure \u003d req.get(\u0027insecure\u0027, False)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        target_auth_url \u003d req.get(\u0027target_auth_url\u0027)"},{"line_number":53,"context_line":"        target_username \u003d req.get(\u0027target_username\u0027)"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_85f5da85","side":"PARENT","line":50,"range":{"start_line":49,"start_character":8,"end_line":50,"end_character":45},"updated":"2017-06-14 08:45:09.000000000","message":"Why did we remove these properties? Can you explain please?","commit_id":"9e6ff999c16e9f6de8acf6f7d270e36cda932168"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"f8ad62dfd98476a894649698b2b4fb45e0a695c4","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        region_name \u003d req.get(\u0027region_name\u0027)"},{"line_number":47,"context_line":"        user_domain_name \u003d req.get(\u0027user_domain_name\u0027, \u0027Default\u0027)"},{"line_number":48,"context_line":"        project_domain_name \u003d req.get(\u0027project_domain_name\u0027, \u0027Default\u0027)"},{"line_number":49,"context_line":"        cacert \u003d req.get(\u0027cacert\u0027)"},{"line_number":50,"context_line":"        insecure \u003d req.get(\u0027insecure\u0027, False)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        target_auth_url \u003d req.get(\u0027target_auth_url\u0027)"},{"line_number":53,"context_line":"        target_username \u003d req.get(\u0027target_username\u0027)"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_172fc13f","side":"PARENT","line":50,"range":{"start_line":49,"start_character":8,"end_line":50,"end_character":45},"in_reply_to":"7f231b9d_37507dd4","updated":"2017-06-14 09:03:19.000000000","message":"Done","commit_id":"9e6ff999c16e9f6de8acf6f7d270e36cda932168"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"370577d934099fc0c4313f41279c72584fe3ac58","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        region_name \u003d req.get(\u0027region_name\u0027)"},{"line_number":47,"context_line":"        user_domain_name \u003d req.get(\u0027user_domain_name\u0027, \u0027Default\u0027)"},{"line_number":48,"context_line":"        project_domain_name \u003d req.get(\u0027project_domain_name\u0027, \u0027Default\u0027)"},{"line_number":49,"context_line":"        cacert \u003d req.get(\u0027cacert\u0027)"},{"line_number":50,"context_line":"        insecure \u003d req.get(\u0027insecure\u0027, False)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        target_auth_url \u003d req.get(\u0027target_auth_url\u0027)"},{"line_number":53,"context_line":"        target_username \u003d req.get(\u0027target_username\u0027)"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_37507dd4","side":"PARENT","line":50,"range":{"start_line":49,"start_character":8,"end_line":50,"end_character":45},"in_reply_to":"7f231b9d_85f5da85","updated":"2017-06-14 09:00:45.000000000","message":"it\u0027s now handled here https://review.openstack.org/#/c/455174/44/mistralclient/api/httpclient.py","commit_id":"9e6ff999c16e9f6de8acf6f7d270e36cda932168"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"872bc0dd46ff3e252591c13d6f1f83344f0bdb29","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            \u0027target_project_domain_name\u0027,"},{"line_number":63,"context_line":"            \u0027Default\u0027"},{"line_number":64,"context_line":"        )"},{"line_number":65,"context_line":"        target_cacert \u003d req.get(\u0027target_cacert\u0027)"},{"line_number":66,"context_line":"        target_insecure \u003d req.get(\u0027target_insecure\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if project_name and project_id:"},{"line_number":69,"context_line":"            raise RuntimeError("}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_45efc2af","side":"PARENT","line":66,"range":{"start_line":65,"start_character":8,"end_line":66,"end_character":52},"updated":"2017-06-14 08:45:09.000000000","message":"Same question.","commit_id":"9e6ff999c16e9f6de8acf6f7d270e36cda932168"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"f8ad62dfd98476a894649698b2b4fb45e0a695c4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            \u0027target_project_domain_name\u0027,"},{"line_number":63,"context_line":"            \u0027Default\u0027"},{"line_number":64,"context_line":"        )"},{"line_number":65,"context_line":"        target_cacert \u003d req.get(\u0027target_cacert\u0027)"},{"line_number":66,"context_line":"        target_insecure \u003d req.get(\u0027target_insecure\u0027)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        if project_name and project_id:"},{"line_number":69,"context_line":"            raise RuntimeError("}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_f731e5a3","side":"PARENT","line":66,"range":{"start_line":65,"start_character":8,"end_line":66,"end_character":52},"in_reply_to":"7f231b9d_45efc2af","updated":"2017-06-14 09:03:19.000000000","message":"Done","commit_id":"9e6ff999c16e9f6de8acf6f7d270e36cda932168"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"872bc0dd46ff3e252591c13d6f1f83344f0bdb29","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        auth_response \u003d {}"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        if not session:"},{"line_number":79,"context_line":"            auth \u003d None"},{"line_number":80,"context_line":"            if auth_token:"},{"line_number":81,"context_line":"                auth \u003d auth_plugin.Token("},{"line_number":82,"context_line":"                    auth_url\u003dauth_url,"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_85795a30","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":16},"updated":"2017-06-14 08:45:09.000000000","message":"This variable shadows \"auth\" from important statement. Please rename one of them somehow. E.g., import statement could be \"... import auth as mistral_auth\".","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"872bc0dd46ff3e252591c13d6f1f83344f0bdb29","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                    project_id\u003dproject_id,"},{"line_number":85,"context_line":"                    project_name\u003dproject_name,"},{"line_number":86,"context_line":"                    project_domain_name\u003dproject_domain_name)"},{"line_number":87,"context_line":"            elif api_key and (username or user_id):"},{"line_number":88,"context_line":"                auth \u003d auth_plugin.Password("},{"line_number":89,"context_line":"                    auth_url\u003dauth_url,"},{"line_number":90,"context_line":"                    username\u003dusername,"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_25bde6d7","line":87,"range":{"start_line":87,"start_character":17,"end_line":87,"end_character":24},"updated":"2017-06-14 08:45:09.000000000","message":"Just a side note. I\u0027ve always hated that it\u0027s called \"api_key\". Is there still reason to call it this way or we can just rename it to \"password\"?","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            if auth:"},{"line_number":105,"context_line":"                session \u003d ks_session.Session(auth\u003dauth)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        if session:"},{"line_number":108,"context_line":"            if not mistral_url:"},{"line_number":109,"context_line":"                try:"},{"line_number":110,"context_line":"                    mistral_url \u003d session.get_endpoint("}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_7ae25c03","line":107,"range":{"start_line":107,"start_character":8,"end_line":107,"end_character":19},"updated":"2017-06-14 09:42:47.000000000","message":"why not use else?","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                    user_domain_name\u003dtarget_user_domain_name,"},{"line_number":136,"context_line":"                    project_id\u003dtarget_project_id,"},{"line_number":137,"context_line":"                    project_name\u003dtarget_project_name,"},{"line_number":138,"context_line":"                    project_domain_name\u003dtarget_project_domain_name)"},{"line_number":139,"context_line":"            else:"},{"line_number":140,"context_line":"                raise RuntimeError(\"You must either provide a valid token or \""},{"line_number":141,"context_line":"                                   \"a password (target_api_key) and a user.\")"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_5aca006d","line":138,"range":{"start_line":138,"start_character":66,"end_line":138,"end_character":67},"updated":"2017-06-14 09:42:47.000000000","message":"please keep this in newline, it does not make any sense if you move it to previous line\nthis will add one diff in review","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"872bc0dd46ff3e252591c13d6f1f83344f0bdb29","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            else:"},{"line_number":140,"context_line":"                raise RuntimeError(\"You must either provide a valid token or \""},{"line_number":141,"context_line":"                                   \"a password (target_api_key) and a user.\")"},{"line_number":142,"context_line":"            target_session \u003d ks_session.Session(auth\u003dtarget_auth)"},{"line_number":143,"context_line":"            target_auth_headers \u003d target_session.get_auth_headers() or {}"},{"line_number":144,"context_line":"            target_auth_token \u003d target_auth_headers.get(\u0027X-Auth-Token\u0027)"},{"line_number":145,"context_line":"            auth_response.update({"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_85c71a46","line":142,"range":{"start_line":142,"start_character":12,"end_line":142,"end_character":26},"updated":"2017-06-14 08:45:09.000000000","message":"Please put a blank line before 142 so that we clearly see where the conditional ends. And also after 144 so that we see where we update authentication response.","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                                   \"a password (target_api_key) and a user.\")"},{"line_number":142,"context_line":"            target_session \u003d ks_session.Session(auth\u003dtarget_auth)"},{"line_number":143,"context_line":"            target_auth_headers \u003d target_session.get_auth_headers() or {}"},{"line_number":144,"context_line":"            target_auth_token \u003d target_auth_headers.get(\u0027X-Auth-Token\u0027)"},{"line_number":145,"context_line":"            auth_response.update({"},{"line_number":146,"context_line":"                api.TARGET_AUTH_TOKEN: target_auth_token,"},{"line_number":147,"context_line":"                api.TARGET_PROJECT_ID: target_session.get_project_id(),"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_da99706e","line":144,"range":{"start_line":144,"start_character":12,"end_line":144,"end_character":71},"updated":"2017-06-14 09:42:47.000000000","message":"do this accept None value?","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a0ab1003610e21ef558513a960f185842dbefc82","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            target_session \u003d ks_session.Session(auth\u003dtarget_auth)"},{"line_number":145,"context_line":"            target_auth_headers \u003d target_session.get_auth_headers() or {}"},{"line_number":146,"context_line":"            target_auth_token \u003d target_auth_headers.get(\u0027X-Auth-Token\u0027)"},{"line_number":147,"context_line":"            auth_response.update({"},{"line_number":148,"context_line":"                api.TARGET_AUTH_TOKEN: target_auth_token,"},{"line_number":149,"context_line":"                api.TARGET_PROJECT_ID: target_session.get_project_id(),"},{"line_number":150,"context_line":"                api.TARGET_USER_ID: target_session.get_user_id(),"}],"source_content_type":"text/x-python","patch_set":48,"id":"7f231b9d_e843d03d","line":147,"updated":"2017-06-19 08:40:25.000000000","message":"Put a blank line before 147 please.","commit_id":"214394b753b6f8ade20fe87e2fd9dcb3b8bd1c42"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"75489ab30ab147a647b3ee67814250912b4c1655","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                    project_id\u003dtarget_project_id,"},{"line_number":127,"context_line":"                    project_name\u003dtarget_project_name,"},{"line_number":128,"context_line":"                    project_domain_name\u003dtarget_project_domain_name)"},{"line_number":129,"context_line":"            elif api_key and (username or user_id):"},{"line_number":130,"context_line":"                target_auth \u003d auth_plugin.Password("},{"line_number":131,"context_line":"                    auth_url\u003dtarget_auth_url,"},{"line_number":132,"context_line":"                    username\u003dtarget_username,"}],"source_content_type":"text/x-python","patch_set":52,"id":"5f201791_31ad6031","line":129,"range":{"start_line":129,"start_character":17,"end_line":129,"end_character":24},"updated":"2017-06-22 10:07:58.000000000","message":"do you have something like target_api_key?","commit_id":"5cb42cd247f159ecf32bd1a19272d7db40670525"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"75489ab30ab147a647b3ee67814250912b4c1655","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                    project_id\u003dtarget_project_id,"},{"line_number":127,"context_line":"                    project_name\u003dtarget_project_name,"},{"line_number":128,"context_line":"                    project_domain_name\u003dtarget_project_domain_name)"},{"line_number":129,"context_line":"            elif api_key and (username or user_id):"},{"line_number":130,"context_line":"                target_auth \u003d auth_plugin.Password("},{"line_number":131,"context_line":"                    auth_url\u003dtarget_auth_url,"},{"line_number":132,"context_line":"                    username\u003dtarget_username,"}],"source_content_type":"text/x-python","patch_set":52,"id":"5f201791_71bbd871","line":129,"range":{"start_line":129,"start_character":30,"end_line":129,"end_character":49},"updated":"2017-06-22 10:07:58.000000000","message":"target_username and target_user_id","commit_id":"5cb42cd247f159ecf32bd1a19272d7db40670525"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"75489ab30ab147a647b3ee67814250912b4c1655","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                                   \"a password (target_api_key) and a user.\")"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"            target_session \u003d ks_session.Session(auth\u003dtarget_auth)"},{"line_number":145,"context_line":"            target_auth_headers \u003d target_session.get_auth_headers() or {}"},{"line_number":146,"context_line":"            target_auth_token \u003d target_auth_headers.get(\u0027X-Auth-Token\u0027)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            auth_response.update({"},{"line_number":149,"context_line":"                api.TARGET_AUTH_TOKEN: target_auth_token,"}],"source_content_type":"text/x-python","patch_set":52,"id":"5f201791_11814490","line":146,"range":{"start_line":145,"start_character":0,"end_line":146,"end_character":71},"updated":"2017-06-22 10:07:58.000000000","message":"this is good, but please add a comment stating that you intentionally need to a token here to pass it as a separate header later.","commit_id":"5cb42cd247f159ecf32bd1a19272d7db40670525"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"25b0f72a4595f511fe4d784e31b3954a6e56bd4c","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                api.TARGET_PROJECT_ID: target_keystone.project_id,"},{"line_number":139,"context_line":"                api.TARGET_USER_ID: target_keystone.user_id,"},{"line_number":140,"context_line":"                api.TARGET_AUTH_URI: target_auth_url,"},{"line_number":141,"context_line":"                api.TARGET_SERVICE_CATALOG: jsonutils.dumps("},{"line_number":142,"context_line":"                    target_keystone.auth_ref"},{"line_number":143,"context_line":"                )"},{"line_number":144,"context_line":"            })"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        return auth_response"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_38b62140","side":"PARENT","line":143,"range":{"start_line":141,"start_character":16,"end_line":143,"end_character":17},"updated":"2017-07-04 12:16:43.000000000","message":"The service catalog is required with V2 authentication. This should not be removed.","commit_id":"d4d41137ac30f168cf64671706e788077a375a7e"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"e8b4b8d6634781c0029600c0a33efef74a35e1f5","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                api.TARGET_USER_ID: target_session.get_user_id(),"},{"line_number":153,"context_line":"                api.TARGET_AUTH_URI: target_auth_url,"},{"line_number":154,"context_line":"                api.TARGET_SERVICE_CATALOG:"},{"line_number":155,"context_line":"                    target_auth.get_access(target_session)"},{"line_number":156,"context_line":"            })"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        return auth_response"}],"source_content_type":"text/x-python","patch_set":61,"id":"ff346bd7_8768f81c","line":155,"updated":"2017-07-27 08:30:54.000000000","message":"shouldn\u0027t this be target_auth.get_access(target_session).service_catalog\n\n??\n\nget_acess will return an accessinfo object; I don\u0027t think that\u0027s what you\u0027re looking for.","commit_id":"c079e3ecc59c25e64382a41380d955fa44c0b580"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"631d01164d62448c4b71939ac3733d1a55d0947c","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                tenant_name\u003dproject_name,"},{"line_number":90,"context_line":"                auth_url\u003dauth_url,"},{"line_number":91,"context_line":"                cacert\u003dcacert,"},{"line_number":92,"context_line":"                insecure\u003dinsecure,"},{"line_number":93,"context_line":"                user_domain_name\u003duser_domain_name,"},{"line_number":94,"context_line":"                project_domain_name\u003dproject_domain_name"},{"line_number":95,"context_line":"            )"}],"source_content_type":"text/x-python","patch_set":66,"id":"ff346bd7_6e10214f","side":"PARENT","line":92,"range":{"start_line":92,"start_character":16,"end_line":92,"end_character":34},"updated":"2017-07-28 11:19:17.000000000","message":"Can you please why was the insecure flag removed? It seems like the this flag would not be usable from shell any more.","commit_id":"753a04c9d7475ed2d97360692b89f3a5d1bf4280"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"631d01164d62448c4b71939ac3733d1a55d0947c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                project_id\u003dtarget_project_id,"},{"line_number":125,"context_line":"                project_name\u003dtarget_project_name,"},{"line_number":126,"context_line":"                auth_url\u003dtarget_auth_url,"},{"line_number":127,"context_line":"                cacert\u003dtarget_cacert,"},{"line_number":128,"context_line":"                insecure\u003dtarget_insecure,"},{"line_number":129,"context_line":"                region_name\u003dtarget_region_name,"},{"line_number":130,"context_line":"                user_domain_name\u003dtarget_user_domain_name,"},{"line_number":131,"context_line":"                project_domain_name\u003dtarget_project_domain_name"}],"source_content_type":"text/x-python","patch_set":66,"id":"ff346bd7_ce7cad73","side":"PARENT","line":128,"range":{"start_line":127,"start_character":16,"end_line":128,"end_character":41},"updated":"2017-07-28 11:19:17.000000000","message":"Can you please why was the insecure flag removed? It seems like the this flag would not be usable from shell any more.","commit_id":"753a04c9d7475ed2d97360692b89f3a5d1bf4280"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"dc955098f7b3d924571f1c008a7474a3df094f1c","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                api.TARGET_USER_ID: target_session.get_user_id(),"},{"line_number":154,"context_line":"                api.TARGET_AUTH_URI: target_auth_url,"},{"line_number":155,"context_line":"                api.TARGET_SERVICE_CATALOG: jsonutils.dumps("},{"line_number":156,"context_line":"                    target_auth.get_access("},{"line_number":157,"context_line":"                        target_session).service_catalog.catalog)"},{"line_number":158,"context_line":"            })"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        return auth_response"}],"source_content_type":"text/x-python","patch_set":66,"id":"ff346bd7_8e06a551","line":157,"range":{"start_line":156,"start_character":20,"end_line":157,"end_character":64},"updated":"2017-07-28 11:45:19.000000000","message":"The catalog should be:\ncatalog \u003d target_auth.get_access(target_session)._data[\u0027access\u0027]\n\nThis is the snippet that deserializes on the server side:\n\n from keystoneclient import service_catalog as ks_service_catalog\n ks_service_catalog.ServiceCatalog.factory(catalog)","commit_id":"2273a67b405c464dd80bcf150ae32d10518d8d16"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"b105126a082651e2ff820886f4c542b30396ca83","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        target_auth_token \u003d req.get(\u0027target_auth_token\u0027)"},{"line_number":62,"context_line":"        target_project_name \u003d req.get(\u0027target_project_name\u0027)"},{"line_number":63,"context_line":"        target_project_id \u003d req.get(\u0027target_project_id\u0027)"},{"line_number":64,"context_line":"        target_user_domain_name \u003d req.get(\u0027target_user_domain_name\u0027, \u0027Default\u0027)"},{"line_number":65,"context_line":"        target_project_domain_name \u003d req.get(\u0027target_project_domain_name\u0027)"},{"line_number":66,"context_line":"        target_cacert \u003d req.get(\u0027target_cacert\u0027)"},{"line_number":67,"context_line":"        target_insecure \u003d req.get(\u0027target_insecure\u0027)"}],"source_content_type":"text/x-python","patch_set":67,"id":"df3967d1_2aa98a7a","line":64,"range":{"start_line":64,"start_character":67,"end_line":64,"end_character":78},"updated":"2017-07-31 14:40:47.000000000","message":"With Keystone V2 this causes an immediate error because the keystone client will not even try the authentication if the domain is present. The default value should be deleted. With V3 it is a mandatory parameter.","commit_id":"b84bf9cc6d00f8edf7eee6afb57e6ea9eb27ff95"}],"mistralclient/tests/functional/cli/v2/cli_multi_tenancy_tests.py":[{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"25b0f72a4595f511fe4d784e31b3954a6e56bd4c","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        self.assertEqual(\u0027pending\u0027, status)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        cmd_param \u003d \u0027%s workflow --status %s --member-id %s\u0027 % ("},{"line_number":196,"context_line":"            self.wf[0][\"ID\"], new_status, self.get_project_id(\"demo\"))"},{"line_number":197,"context_line":"        member \u003d self.mistral_alt_user(\"member-update\", params\u003dcmd_param)"},{"line_number":198,"context_line":"        status \u003d self.get_field_value(member, \u0027Status\u0027)"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_38bd0102","line":196,"range":{"start_line":195,"start_character":8,"end_line":196,"end_character":70},"updated":"2017-07-04 12:16:43.000000000","message":"Soft: I think this should be turned into a .format() call with  kwargs because it is hard to follow which %s means what.","commit_id":"1604eabc004274a2a92c941389932fbce7b58f64"}],"mistralclient/tests/unit/test_client.py":[{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"eb111f15b86994cf249e19bd854d1c0879905056","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            \u0027target_project_name\u0027: \u0027tmistralp\u0027,"},{"line_number":151,"context_line":"            \u0027target_username\u0027: \u0027tmistral\u0027,"},{"line_number":152,"context_line":"            \u0027target_region_name\u0027: \u0027tregion\u0027,"},{"line_number":153,"context_line":"            \u0027target_service_catalog\u0027: \u0027\"{}\"\u0027"},{"line_number":154,"context_line":"        }"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        for key in expected_values:"}],"source_content_type":"text/x-python","patch_set":44,"id":"7f231b9d_9ac6589a","side":"PARENT","line":153,"range":{"start_line":153,"start_character":12,"end_line":153,"end_character":44},"updated":"2017-06-14 09:31:25.000000000","message":"this removes all verification that the service catalog is transmitted","commit_id":"9e6ff999c16e9f6de8acf6f7d270e36cda932168"},{"author":{"_account_id":21970,"name":"Andras Kovi","email":"akovi@nokia.com","username":"andras.kovi"},"change_message_id":"25b0f72a4595f511fe4d784e31b3954a6e56bd4c","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.assertEqual(\u0027http://mistral_host:8989/v2\u0027, mistral_url_for_http)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        expected_values \u003d {"},{"line_number":153,"context_line":"            \u0027target_project_id\u0027: \u0027projectid\u0027,"},{"line_number":154,"context_line":"            \u0027target_auth_token\u0027: \u0027authtoken\u0027,"},{"line_number":155,"context_line":"            \u0027target_user_id\u0027: \u0027userid\u0027,"},{"line_number":156,"context_line":"            \u0027target_auth_url\u0027: AUTH_HTTP_URL_v3,"},{"line_number":157,"context_line":"            \u0027target_project_name\u0027: \u0027tmistralp\u0027,"},{"line_number":158,"context_line":"            \u0027target_username\u0027: \u0027tmistral\u0027,"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f1d235d_982ad529","line":155,"range":{"start_line":153,"start_character":33,"end_line":155,"end_character":39},"updated":"2017-07-04 12:16:43.000000000","message":"Soft: These values should either be moved to (const) String variables or the original parameterized version should be used. It is not desirable that a unit test needs to be modified in several places to ensure consistency.","commit_id":"1604eabc004274a2a92c941389932fbce7b58f64"},{"author":{"_account_id":25587,"name":"Shubhendu Poothia","email":"poothia.shubhendu@gmail.com","username":"shubhendu"},"change_message_id":"9c887661027a7e09b317e81389d605e5bb3ed2b4","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        target_session.get_auth_headers \u003d mock.Mock(return_value\u003d{"},{"line_number":134,"context_line":"            \u0027X-Auth-Token\u0027: \u0027authtoken\u0027"},{"line_number":135,"context_line":"        })"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        mock_access \u003d mock.MagicMock()"},{"line_number":139,"context_line":"        mock_catalog \u003d mock.MagicMock()"},{"line_number":140,"context_line":"        mock_catalog.catalog \u003d {}"}],"source_content_type":"text/x-python","patch_set":62,"id":"ff346bd7_88000403","line":137,"range":{"start_line":136,"start_character":0,"end_line":137,"end_character":0},"updated":"2017-07-27 10:54:57.000000000","message":"remove these blank lines.","commit_id":"df36da0ed1413b38e94fbf820c260962880808cf"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"4be362b847602954010ceb13af50621cf663b5f9","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        target_session.get_auth_headers \u003d mock.Mock(return_value\u003d{"},{"line_number":134,"context_line":"            \u0027X-Auth-Token\u0027: \u0027authtoken\u0027"},{"line_number":135,"context_line":"        })"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        mock_access \u003d mock.MagicMock()"},{"line_number":139,"context_line":"        mock_catalog \u003d mock.MagicMock()"},{"line_number":140,"context_line":"        mock_catalog.catalog \u003d {}"}],"source_content_type":"text/x-python","patch_set":62,"id":"ff346bd7_28dfd83a","line":137,"range":{"start_line":136,"start_character":0,"end_line":137,"end_character":0},"in_reply_to":"ff346bd7_88000403","updated":"2017-07-27 11:11:42.000000000","message":"I\u0027d say remove just one blank line.","commit_id":"df36da0ed1413b38e94fbf820c260962880808cf"},{"author":{"_account_id":20863,"name":"Sharat Sharma","email":"sharat.sharma@in.ibm.com","username":"sharat.sharma"},"change_message_id":"9842c7e458a9ccaee8b0524c82059c19c6c26dfe","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        target_session.get_auth_headers \u003d mock.Mock(return_value\u003d{"},{"line_number":134,"context_line":"            \u0027X-Auth-Token\u0027: \u0027authtoken\u0027"},{"line_number":135,"context_line":"        })"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        mock_access \u003d mock.MagicMock()"},{"line_number":139,"context_line":"        mock_catalog \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":66,"id":"ff346bd7_ab427b0d","line":136,"updated":"2017-07-28 10:28:45.000000000","message":"please remove this blank line","commit_id":"2273a67b405c464dd80bcf150ae32d10518d8d16"}],"releasenotes/notes/Remove-keystoneclient-dependency-c8a151e75ba24d4a.yaml":[{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - The dependency to python-keystoneclient was removed. Relying solely on"},{"line_number":4,"context_line":"    keystoneauth1."},{"line_number":5,"context_line":"  - The user has to set the OS_USER_DOMAIN_NAME and OS_PROJECT_DOMAIN_NAME"},{"line_number":6,"context_line":"    explicitly if keystone v3 version is being used."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"7f231b9d_1adec810","line":3,"updated":"2017-06-14 09:42:47.000000000","message":"you should add | here to indicate multi-lines","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - The dependency to python-keystoneclient was removed. Relying solely on"},{"line_number":4,"context_line":"    keystoneauth1."},{"line_number":5,"context_line":"  - The user has to set the OS_USER_DOMAIN_NAME and OS_PROJECT_DOMAIN_NAME"},{"line_number":6,"context_line":"    explicitly if keystone v3 version is being used."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"7f231b9d_fae0acce","line":5,"updated":"2017-06-14 09:42:47.000000000","message":"ditto","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - The dependency to python-keystoneclient was removed. Relying solely on"},{"line_number":4,"context_line":"    keystoneauth1."},{"line_number":5,"context_line":"  - The user has to set the OS_USER_DOMAIN_NAME and OS_PROJECT_DOMAIN_NAME"},{"line_number":6,"context_line":"    explicitly if keystone v3 version is being used."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"7f231b9d_5adb201a","line":5,"range":{"start_line":5,"start_character":28,"end_line":5,"end_character":47},"updated":"2017-06-14 09:42:47.000000000","message":"surround this with double backticks\n\n``OS_USER_DOMAIN_NAME``","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"22788ee4d0333c8e6ab6f4560561959eaab3ffd5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - The dependency to python-keystoneclient was removed. Relying solely on"},{"line_number":4,"context_line":"    keystoneauth1."},{"line_number":5,"context_line":"  - The user has to set the OS_USER_DOMAIN_NAME and OS_PROJECT_DOMAIN_NAME"},{"line_number":6,"context_line":"    explicitly if keystone v3 version is being used."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"7f231b9d_3ad624f3","line":5,"range":{"start_line":5,"start_character":52,"end_line":5,"end_character":74},"updated":"2017-06-14 09:42:47.000000000","message":"this too","commit_id":"7ce90c3deb2c3b2fefbcecfd5e1d0165e892a01b"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a0ab1003610e21ef558513a960f185842dbefc82","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - The dependency to python-keystoneclient was removed. Relying solely on"},{"line_number":4,"context_line":"    keystoneauth1."},{"line_number":5,"context_line":"  - The user has to set the \"OS_USER_DOMAIN_NAME\" and \"OS_PROJECT_DOMAIN_NAME\""},{"line_number":6,"context_line":"    explicitly if keystone v3 version is being used."}],"source_content_type":"text/x-yaml","patch_set":48,"id":"7f231b9d_88a33c00","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"updated":"2017-06-19 08:40:25.000000000","message":"Do we still need \"|\" as Tovin suggested? I guess we do.","commit_id":"214394b753b6f8ade20fe87e2fd9dcb3b8bd1c42"},{"author":{"_account_id":20863,"name":"Sharat Sharma","email":"sharat.sharma@in.ibm.com","username":"sharat.sharma"},"change_message_id":"d24e959657885521d8770ba75dffc43259f42450","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - The dependency to python-keystoneclient was removed. Relying solely on"},{"line_number":4,"context_line":"    keystoneauth1."},{"line_number":5,"context_line":"  - The user has to set the \"OS_USER_DOMAIN_NAME\" and \"OS_PROJECT_DOMAIN_NAME\""},{"line_number":6,"context_line":"    explicitly if keystone v3 version is being used."}],"source_content_type":"text/x-yaml","patch_set":48,"id":"7f231b9d_c4b69cdd","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"in_reply_to":"7f231b9d_88a33c00","updated":"2017-06-20 06:24:00.000000000","message":"\"|\" is used to retain any line breaks which are intentionally used. IMO there is no need for \"|\" here.","commit_id":"214394b753b6f8ade20fe87e2fd9dcb3b8bd1c42"}],"requirements.txt":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"d230c61370f3ad630ec2dc45625eb6ece2a0bf2c","unresolved":false,"context_lines":[{"line_number":6,"context_line":"oslo.utils\u003e\u003d3.20.0 # Apache-2.0"},{"line_number":7,"context_line":"oslo.i18n!\u003d3.15.2,\u003e\u003d2.1.0 # Apache-2.0"},{"line_number":8,"context_line":"pbr!\u003d2.1.0,\u003e\u003d2.0.0 # Apache-2.0"},{"line_number":9,"context_line":"python-keystoneclient\u003e\u003d3.8.0 # Apache-2.0"},{"line_number":10,"context_line":"keystoneauth1\u003e\u003d3.1.0  # Apache-2.0"},{"line_number":11,"context_line":"PyYAML\u003e\u003d3.10.0 # MIT"},{"line_number":12,"context_line":"requests\u003e\u003d2.14.2 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":68,"id":"9f436f4f_54691923","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":41},"updated":"2017-08-09 06:46:07.000000000","message":"I guess we can now remove it completely or is there a reason why it\u0027s still here?","commit_id":"df5b2cd1ef4bba93b059f0fddd16f3ad30ee4065"}]}
