)]}'
{"glanceclient/client.py":[{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"ff30798c02b8d098479eced9cd688b132c36e4ee","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def Client(version\u003dNone, endpoint\u003dNone, session\u003dNone, *args, **kwargs):"},{"line_number":22,"context_line":"    if session and endpoint:"},{"line_number":23,"context_line":"        msg \u003d (\"You cannot provide an endpoint URL with the session. The \""},{"line_number":24,"context_line":"               \"endpoint will be retrieved from the auth plugin\u0027s catalog\")"},{"line_number":25,"context_line":"        raise RuntimeError(msg)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    elif not session:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_a9185c85","line":24,"updated":"2015-05-15 11:35:47.000000000","message":"My reading of this comment is that keystone sessions don\u0027t support specifying the service\u0027s endpoint url.\n\neg Here the endpoint is the glance API url, eg http://glance.example.com:9292\n\nThere are a few reasons it\u0027s very useful for operators to be able to specify the glance API url like this (rather than just picking up\nthe one from the service catalog) in their in-house scripts.\n\nOne is fault isolation, eg if you have several glance servers and you are seeing intermittent issues you can direct requests to specific nodes to try to see which one(s) are experiencing issues.\nAnother is being able to specify \u0027localhost\u0027 if you want to run commands locally and tee the local log file to view extra debug (rather than trying to figure out where your request went).\nAnother is monitoring, you want to be able to monitor each host, not just \u0027the endpoint\u0027.\nAnother is performance tuning, eg to see if all nodes are equally performant.\n\nAre there plans to support OS_IMAGE_URL/OS_STORAGE_URL style endpoint over-rides with sessions?\n\nThanks.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"4273ac7ae2f89eb9a4c6f968480c952eb2ed1e50","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def Client(version\u003dNone, endpoint\u003dNone, session\u003dNone, *args, **kwargs):"},{"line_number":22,"context_line":"    if session and endpoint:"},{"line_number":23,"context_line":"        msg \u003d (\"You cannot provide an endpoint URL with the session. The \""},{"line_number":24,"context_line":"               \"endpoint will be retrieved from the auth plugin\u0027s catalog\")"},{"line_number":25,"context_line":"        raise RuntimeError(msg)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    elif not session:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_e5cdb466","line":24,"updated":"2015-05-22 18:55:52.000000000","message":"So while I appreciate the fact that by accepting KSC Sessions we are updating how glanceclient will operate. That said, this seems like something would be wise to have in a deprecation cycle. Specifically, I think we should do kwargs.setdefault(\u0027endpoint_override\u0027, endpoint) as you suggested Jamie, while also either issuing a DeprecationWarning or logging the deprecation as well as *clearly documenting it*.\n\nThat said, I think \"RuntimeError\" is an exceptionally bad exception for us to be raising. We don\u0027t have to clean that up here, but we definitely need to make a bug for it.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"24a54a7cd7b4cbcd0f2af2e45000bb98f7bd93de","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def Client(version\u003dNone, endpoint\u003dNone, session\u003dNone, *args, **kwargs):"},{"line_number":22,"context_line":"    if session and endpoint:"},{"line_number":23,"context_line":"        msg \u003d (\"You cannot provide an endpoint URL with the session. The \""},{"line_number":24,"context_line":"               \"endpoint will be retrieved from the auth plugin\u0027s catalog\")"},{"line_number":25,"context_line":"        raise RuntimeError(msg)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    elif not session:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_ac7d15e9","line":24,"in_reply_to":"7a016987_3ab97bed","updated":"2015-05-27 03:58:14.000000000","message":"In future I think we can, for now i like the idea of having dual paths. This is a big change and whilst i don\u0027t see anywhere i\u0027m breaking existing behaviour it would be useful to have the old method available until we have a few services converted to using the session reliably.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"65ded6d09ccb426f598fd201995ad8842c653af3","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def Client(version\u003dNone, endpoint\u003dNone, session\u003dNone, *args, **kwargs):"},{"line_number":22,"context_line":"    if session and endpoint:"},{"line_number":23,"context_line":"        msg \u003d (\"You cannot provide an endpoint URL with the session. The \""},{"line_number":24,"context_line":"               \"endpoint will be retrieved from the auth plugin\u0027s catalog\")"},{"line_number":25,"context_line":"        raise RuntimeError(msg)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    elif not session:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_2798c577","line":24,"in_reply_to":"7a016987_3f0930de","updated":"2015-05-19 15:46:57.000000000","message":"Guang is correct, sessions have an endpoint_override parameter that can be used to provide exactly this. \n\nI was trying to distinguish here the old variable names vs the new names. Users will have to make changes to there applications to use glanceclient with session objects and so i was preferring at that point to make the users update all the variables around creating a client. \n\nIf we prefer i can simply do: \n\nkwargs.setdefault(\u0027endpoint_override\u0027, endpoint) \n\nto pass this variable through. However i do want to say that the default way we use the clients should be to get this information from the catalog, not passing endpoint as the first param.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3d51a17ee997ddbc56c7f9f50e6e1238448304f8","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def Client(version\u003dNone, endpoint\u003dNone, session\u003dNone, *args, **kwargs):"},{"line_number":22,"context_line":"    if session and endpoint:"},{"line_number":23,"context_line":"        msg \u003d (\"You cannot provide an endpoint URL with the session. The \""},{"line_number":24,"context_line":"               \"endpoint will be retrieved from the auth plugin\u0027s catalog\")"},{"line_number":25,"context_line":"        raise RuntimeError(msg)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    elif not session:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_3f0930de","line":24,"in_reply_to":"7a016987_a9185c85","updated":"2015-05-15 17:24:42.000000000","message":"Session support endpoint_override\n\nhttps://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/session.py#L231\n\nNot sure why they have to be mutually exclusive here. Perhaps Jamie wants to use endpoint to distinguish between the old and new paradigm?","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"dacb3e06ccc264413c70d7128b0d2cecda084521","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def Client(version\u003dNone, endpoint\u003dNone, session\u003dNone, *args, **kwargs):"},{"line_number":22,"context_line":"    if session and endpoint:"},{"line_number":23,"context_line":"        msg \u003d (\"You cannot provide an endpoint URL with the session. The \""},{"line_number":24,"context_line":"               \"endpoint will be retrieved from the auth plugin\u0027s catalog\")"},{"line_number":25,"context_line":"        raise RuntimeError(msg)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    elif not session:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_3ab97bed","line":24,"in_reply_to":"7a016987_e5cdb466","updated":"2015-05-26 09:02:33.000000000","message":"Would it be possible/make sense to create a session here if one is not supplied?\n\nie:\n\n if session is None:\n  session \u003d create_session(args, endpoint_override\u003dendpoint)\n\nI think this -- combined with ripping out our special ssl handling -- would mean we would have a unique code path for all client requests.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"74f858bb5ca195cb81639ae06f60115024571b21","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            warnings.warn(\"`endpoint` parameter is deprecated when used with \""},{"line_number":27,"context_line":"                          \"the session parameter. The correct parameter is \""},{"line_number":28,"context_line":"                          \"`endpoint_override`.\","},{"line_number":29,"context_line":"                          DeprecationWarning)"},{"line_number":30,"context_line":"            kwargs.setdefault(\u0027endpoint_override\u0027, endpoint)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_d1dfbe38","line":29,"updated":"2015-05-27 10:34:18.000000000","message":"Can we remove the deprecation warning for now?\nI\u0027d like to be sure whether we want to deprecate this or preserve backwards compatability before we put it in. Thanks.","commit_id":"a9e15f4ae4991ce5ac4c1f44e0521d8c1e475502"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"74f858bb5ca195cb81639ae06f60115024571b21","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            raise RuntimeError(msg)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        version \u003d int(version or url_version)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    module \u003d utils.import_versioned_module(version, \u0027client\u0027)"},{"line_number":49,"context_line":"    client_class \u003d getattr(module, \u0027Client\u0027)"},{"line_number":50,"context_line":"    return client_class(endpoint, *args, session\u003dsession, **kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_31ddf214","line":47,"updated":"2015-05-27 10:34:18.000000000","message":"If a session parameter has been passed to Client, there is no guarantee that \u0027version\u0027 is not None here.","commit_id":"a9e15f4ae4991ce5ac4c1f44e0521d8c1e475502"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"c612b42d949ce7ed00fadb986cceb9fef4f67709","unresolved":false,"context_lines":[{"line_number":26,"context_line":"            kwargs.setdefault(\u0027endpoint_override\u0027, endpoint)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"            if not version:"},{"line_number":29,"context_line":"                _ignored, url_version \u003d utils.strip_version(endpoint)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        if not version:"},{"line_number":32,"context_line":"            msg \u003d (\"You must provide a client version when using session\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_dcfc9140","line":29,"updated":"2015-06-05 15:39:16.000000000","message":"Sorry to nit ... is this url_version intended to be used?","commit_id":"cbe95ce1cd5c60fda2239c1c4e8351371b21ef06"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"7dadae8a4c9c667e40d7649c5119ca2f91dceb16","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"            if not version:"},{"line_number":29,"context_line":"                _ignored, url_version \u003d utils.strip_version(endpoint)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        if not version:"},{"line_number":32,"context_line":"            msg \u003d (\"You must provide a client version when using session\")"},{"line_number":33,"context_line":"            raise RuntimeError(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_5a2657cf","line":30,"updated":"2015-06-05 21:36:16.000000000","message":"If we\u0027re not using i18n here we can also just use _.","commit_id":"cbe95ce1cd5c60fda2239c1c4e8351371b21ef06"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"c612b42d949ce7ed00fadb986cceb9fef4f67709","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"            if not version:"},{"line_number":29,"context_line":"                _ignored, url_version \u003d utils.strip_version(endpoint)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        if not version:"},{"line_number":32,"context_line":"            msg \u003d (\"You must provide a client version when using session\")"},{"line_number":33,"context_line":"            raise RuntimeError(msg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_3cbba574","line":30,"updated":"2015-06-05 15:39:16.000000000","message":"_ignored -\u003e __? (Like other projects we\u0027ve tended to use double underscore for these unused vars.)","commit_id":"cbe95ce1cd5c60fda2239c1c4e8351371b21ef06"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"9a0d33df3f8f0ae865ea06d9a3f9b6283e86d671","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    :param string version: The version of API to use. Note this is"},{"line_number":28,"context_line":"                           deprecated and should be passed as part of the URL"},{"line_number":29,"context_line":"                           (http://$HOST:$PORT/v$VERSION_NUMBER)."},{"line_number":30,"context_line":"    \"\"\""},{"line_number":31,"context_line":"    if version is not None:"},{"line_number":32,"context_line":"        warnings.warn((\"`version` keyword is being deprecated. Please pass the\""},{"line_number":33,"context_line":"                       \" version as part of the URL. \""}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_dae0a398","side":"PARENT","line":30,"updated":"2015-06-09 14:20:29.000000000","message":"Why removing  the docstring?","commit_id":"dfa98ab04c7fb7260b25e92af18caa2a016698c6"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"4c7b9b6b023aec939c19b99fd68b532ef9440f4f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    # Leaving it as an option until we can ensure nothing break when we switch."},{"line_number":24,"context_line":"    if session:"},{"line_number":25,"context_line":"        if endpoint:"},{"line_number":26,"context_line":"            kwargs.setdefault(\u0027endpoint_override\u0027, endpoint)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"            if not version:"},{"line_number":29,"context_line":"                __, version \u003d utils.strip_version(endpoint)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_5b0cb53a","line":26,"updated":"2015-06-09 14:57:07.000000000","message":"Will setting \"kwargs.setdefault(\u0027endpoint_override\u0027, endpoint)\" here ever have any effect?\n\nIn this function (which will always get called I think):\n\n def get_http_client(endpoint\u003dNone, session\u003dNone, **kwargs):\n    if endpoint:\n        return HTTPClient(endpoint, **kwargs)\n    elif session:\n        return SessionClient(session, **kwargs)\n\nboth session and \u0027endpoint_override\u0027 are ignored if endpoint is not None.\n\nWhy do we not always use a \u0027session\u0027 if one is provided?\n\n(Apologies if I\u0027m mis-reading this - I may be getting snowblind here...)","commit_id":"1c781add8d2fe65bc7623ae88f17575381909155"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"a4db4a2ffe4c3ec3fb4b299d05266a977124e6bc","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    # Leaving it as an option until we can ensure nothing break when we switch."},{"line_number":24,"context_line":"    if session:"},{"line_number":25,"context_line":"        if endpoint:"},{"line_number":26,"context_line":"            kwargs.setdefault(\u0027endpoint_override\u0027, endpoint)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"            if not version:"},{"line_number":29,"context_line":"                __, version \u003d utils.strip_version(endpoint)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_b5ce032b","line":26,"in_reply_to":"3afb71cf_5b0cb53a","updated":"2015-06-09 21:28:28.000000000","message":"You\u0027re right, i could probably set endpoint\u003dNone here, but really in http.py if you are passing session then you should always get the newer SessionClient.","commit_id":"1c781add8d2fe65bc7623ae88f17575381909155"}],"glanceclient/common/http.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"4273ac7ae2f89eb9a4c6f968480c952eb2ed1e50","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"class SessionClient(adapter.Adapter):"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def __init__(self, session, **kwargs):"},{"line_number":294,"context_line":"        kwargs.setdefault(\u0027user_agent\u0027, USER_AGENT)"},{"line_number":295,"context_line":"        kwargs.setdefault(\u0027service_type\u0027, \u0027image\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_c5c87857","line":292,"updated":"2015-05-22 18:55:52.000000000","message":"I tend to agree with @guang-yee. The request method should be appropriately refactored into smaller, well-named, private methods that the are called in the request method.\n\nFurther, I think it would be helpful if the glance team could focus on re-evaluating our custom TLS handling.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"ff30798c02b8d098479eced9cd688b132c36e4ee","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"class SessionClient(adapter.Adapter):"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def __init__(self, session, **kwargs):"},{"line_number":294,"context_line":"        kwargs.setdefault(\u0027user_agent\u0027, USER_AGENT)"},{"line_number":295,"context_line":"        kwargs.setdefault(\u0027service_type\u0027, \u0027image\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_c45ffd0c","line":292,"updated":"2015-05-15 11:35:47.000000000","message":"Query: What would need to happen for us to not have to have both HTTPClient and SessionClient.?\n\n(Is it just removing our special https handling? Supporting specifying the endpoint in keystone sessions?)\n\nThanks.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"65ded6d09ccb426f598fd201995ad8842c653af3","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"class SessionClient(adapter.Adapter):"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def __init__(self, session, **kwargs):"},{"line_number":294,"context_line":"        kwargs.setdefault(\u0027user_agent\u0027, USER_AGENT)"},{"line_number":295,"context_line":"        kwargs.setdefault(\u0027service_type\u0027, \u0027image\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_47d4e1bb","line":292,"in_reply_to":"7a016987_bf9f604f","updated":"2015-05-19 15:46:57.000000000","message":"So glanceclient is doing a number of things differently to other clients and it mostly revolves around the HTTPS handling.\n\nI wrote request() here in such a way that it was compatible with the CRUD methods that already exist on the other methods in the client, but it also means at least initially we can thoroughly test that passing session is compatible with the old methods. \n\nThe next step i think would be to start changing the client methods to be more inline with the ksc session methods and changing the old HTTPClient to match that.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3d51a17ee997ddbc56c7f9f50e6e1238448304f8","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"class SessionClient(adapter.Adapter):"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def __init__(self, session, **kwargs):"},{"line_number":294,"context_line":"        kwargs.setdefault(\u0027user_agent\u0027, USER_AGENT)"},{"line_number":295,"context_line":"        kwargs.setdefault(\u0027service_type\u0027, \u0027image\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_bf9f604f","line":292,"in_reply_to":"7a016987_c45ffd0c","updated":"2015-05-15 17:24:42.000000000","message":"I think this method is screaming out for refactoring. :) We seem to pack a lot of stuff into the request method.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"acf2e05fcce7fb836e9c5964feb7d769772cf8c2","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"class SessionClient(adapter.Adapter):"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def __init__(self, session, **kwargs):"},{"line_number":294,"context_line":"        kwargs.setdefault(\u0027user_agent\u0027, USER_AGENT)"},{"line_number":295,"context_line":"        kwargs.setdefault(\u0027service_type\u0027, \u0027image\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_77a94c24","line":292,"in_reply_to":"7a016987_c5c87857","updated":"2015-05-26 08:50:24.000000000","message":"\u003e re-evaluating our custom TLS handling.\n\nI chatted with Jamie at the summit. I think I\u0027m probably ok with ripping our special https sauce out: 1) most distros now disable ssl out of the box  2) I think when using python3 requests will disable ssl for you (need to check) 3) when using python2 you can install a couple of python packages which, when present, forces requests down a path that will disable ssl","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"4273ac7ae2f89eb9a4c6f968480c952eb2ed1e50","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        kwargs[\u0027data\u0027] \u003d data"},{"line_number":313,"context_line":"        kwargs[\u0027raise_exc\u0027] \u003d False"},{"line_number":314,"context_line":"        kwargs[\u0027log\u0027] \u003d False"},{"line_number":315,"context_line":"        kwargs[\u0027stream\u0027] \u003d content_type \u003d\u003d \u0027application/octet-stream\u0027"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        conn_url \u003d self.get_endpoint(auth\u003dkwargs.get(\u0027auth\u0027))"},{"line_number":318,"context_line":"        conn_url \u003d \"%s/%s\" % (conn_url.rstrip(\u0027/\u0027), url.lstrip(\u0027/\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_a5c33c37","line":315,"updated":"2015-05-22 18:55:52.000000000","message":"Are you sure this is what you want to do? Streaming *only* applies to *downloading* responses. Requests will stream your upload if it\u0027s a file-like object or a generator without needing to specify this.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"24a54a7cd7b4cbcd0f2af2e45000bb98f7bd93de","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        kwargs[\u0027data\u0027] \u003d data"},{"line_number":313,"context_line":"        kwargs[\u0027raise_exc\u0027] \u003d False"},{"line_number":314,"context_line":"        kwargs[\u0027log\u0027] \u003d False"},{"line_number":315,"context_line":"        kwargs[\u0027stream\u0027] \u003d content_type \u003d\u003d \u0027application/octet-stream\u0027"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        conn_url \u003d self.get_endpoint(auth\u003dkwargs.get(\u0027auth\u0027))"},{"line_number":318,"context_line":"        conn_url \u003d \"%s/%s\" % (conn_url.rstrip(\u0027/\u0027), url.lstrip(\u0027/\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_32cbbe74","line":315,"in_reply_to":"7a016987_a5c33c37","updated":"2015-05-27 03:58:14.000000000","message":"again this is the old behaviour - i don\u0027t have an opinion either way","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"4273ac7ae2f89eb9a4c6f968480c952eb2ed1e50","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        except ksc_exc.RequestTimeout as e:"},{"line_number":327,"context_line":"            message \u003d (\"Error communicating with %(endpoint)s %(e)s\" %"},{"line_number":328,"context_line":"                       dict(url\u003dconn_url, e\u003de))"},{"line_number":329,"context_line":"            raise exc.InvalidEndpoint(message\u003dmessage)"},{"line_number":330,"context_line":"        except ksc_exc.ConnectionRefused as e:"},{"line_number":331,"context_line":"            message \u003d (\"Error finding address for %(url)s: %(e)s\" %"},{"line_number":332,"context_line":"                       dict(url\u003dconn_url, e\u003de))"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_85be00ac","line":329,"updated":"2015-05-22 18:55:52.000000000","message":"Is a timeout always due to the endpoint being invalid? Won\u0027t this be very misleading when it is in fact due to a real timeout? Is the problem that glanceclient doesn\u0027t have an exception for a timeout?","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"24a54a7cd7b4cbcd0f2af2e45000bb98f7bd93de","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        except ksc_exc.RequestTimeout as e:"},{"line_number":327,"context_line":"            message \u003d (\"Error communicating with %(endpoint)s %(e)s\" %"},{"line_number":328,"context_line":"                       dict(url\u003dconn_url, e\u003de))"},{"line_number":329,"context_line":"            raise exc.InvalidEndpoint(message\u003dmessage)"},{"line_number":330,"context_line":"        except ksc_exc.ConnectionRefused as e:"},{"line_number":331,"context_line":"            message \u003d (\"Error finding address for %(url)s: %(e)s\" %"},{"line_number":332,"context_line":"                       dict(url\u003dconn_url, e\u003de))"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_4657c726","line":329,"in_reply_to":"7a016987_85be00ac","updated":"2015-05-27 03:58:14.000000000","message":"i agree, i was copying this behaviour from the old client.","commit_id":"ec3747e87d156822f8ff389c9b7446209f82e360"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"35ce605426f137ae3f0e5033fdca8be8cbd66126","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        kwargs.setdefault(\u0027service_type\u0027, \u0027image\u0027)"},{"line_number":310,"context_line":"        super(SessionClient, self).__init__(session, **kwargs)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def request(self, url, method, **kwargs):"},{"line_number":313,"context_line":"        headers \u003d kwargs.pop(\u0027headers\u0027, {})"},{"line_number":314,"context_line":"        kwargs[\u0027raise_exc\u0027] \u003d False"},{"line_number":315,"context_line":"        data \u003d self._set_common_request_kwargs(headers, kwargs)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_03c34558","line":312,"updated":"2015-06-10 12:42:59.000000000","message":"There are a few things that happen in the HTTPClient \u0027request\u0027 method, around \"encode headers\", \"osprofiler_web\", \"log_http_response\", \"log_curl_request\" which don\u0027t happen in this method.\n\nAre these things which aren\u0027t needed in the new method, or do we plan to circle back and add later?\n\nThanks.","commit_id":"e89ae3fdec76873392985710882eb0a9638d4a9e"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"fdee06f25fb546c55f75a46d7ed3b894b15acc65","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        kwargs.setdefault(\u0027service_type\u0027, \u0027image\u0027)"},{"line_number":310,"context_line":"        super(SessionClient, self).__init__(session, **kwargs)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def request(self, url, method, **kwargs):"},{"line_number":313,"context_line":"        headers \u003d kwargs.pop(\u0027headers\u0027, {})"},{"line_number":314,"context_line":"        kwargs[\u0027raise_exc\u0027] \u003d False"},{"line_number":315,"context_line":"        data \u003d self._set_common_request_kwargs(headers, kwargs)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_d256e3cc","line":312,"in_reply_to":"3afb71cf_03c34558","updated":"2015-06-11 11:46:07.000000000","message":"so osprofiler_web is handled in the base session, as does logging. The logging is not exactly the same but it\u0027s fairly close and i don\u0027t see the point in replicating it, we do want to standardize this. \n\nI looked at encode_headers and i cannot see what it does that\u0027s useful, in no other client has something like this been a problem. I think this is left over from when you were using httplib and that requests handles this for us now.","commit_id":"e89ae3fdec76873392985710882eb0a9638d4a9e"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"f87079f170d5ec02d787c64f0d9e7255c8eb17aa","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        kwargs.setdefault(\u0027service_type\u0027, \u0027image\u0027)"},{"line_number":310,"context_line":"        super(SessionClient, self).__init__(session, **kwargs)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def request(self, url, method, **kwargs):"},{"line_number":313,"context_line":"        headers \u003d kwargs.pop(\u0027headers\u0027, {})"},{"line_number":314,"context_line":"        kwargs[\u0027raise_exc\u0027] \u003d False"},{"line_number":315,"context_line":"        data \u003d self._set_common_request_kwargs(headers, kwargs)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afb71cf_32f6575d","line":312,"in_reply_to":"3afb71cf_d256e3cc","updated":"2015-06-11 12:00:00.000000000","message":"Thanks!","commit_id":"e89ae3fdec76873392985710882eb0a9638d4a9e"}]}
