)]}'
{"requirements.txt":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6bd2fb70636639becfc993c7505460d918bd8cd6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"python-neutronclient"},{"line_number":11,"context_line":"python-troveclient"},{"line_number":12,"context_line":"python-ironicclient"},{"line_number":13,"context_line":"python-swiftclient"}],"source_content_type":"text/plain","patch_set":18,"id":"da86d52c_f1bf80fa","line":13,"updated":"2015-02-02 17:40:53.000000000","message":"I don\u0027t think any of these minimum bounds for the clients need to be bumped based on my understanding of the old code vs new, we continue to use sessions and tokens as before just a slight change in how they are created by keystoneclient. But for my sanity should we be establishing some min bounds here for clients to ensure they support these features?","commit_id":"d3daf5b896c23e113a4dfb324c24af31e276a0df"}],"shade/__init__.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"403c97583ae5501ccff0d7320726d16db4723bed","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                    auth\u003dself._keystone_auth,"},{"line_number":196,"context_line":"                    verify\u003dself.verify,"},{"line_number":197,"context_line":"                    cert\u003dself.cert)"},{"line_number":198,"context_line":"                self._auth_token \u003d self._keystone_session.get_token()"},{"line_number":199,"context_line":"            except Exception as e:"},{"line_number":200,"context_line":"                self.log.debug(\"keystone unknown issue\", exc_info\u003dTrue)"},{"line_number":201,"context_line":"                raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_632bfd82","line":198,"updated":"2015-01-21 06:15:06.000000000","message":"shouldn\u0027t need to auth up front - but it does make it easier to be consistent.","commit_id":"affeee7b1538b540bd79a4b9b6639eb691f3709f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"403c97583ae5501ccff0d7320726d16db4723bed","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            try:"},{"line_number":237,"context_line":"                self._glance_client \u003d glanceclient.Client("},{"line_number":238,"context_line":"                    glance_api_version, endpoint, token\u003dtoken,"},{"line_number":239,"context_line":"                    session\u003dself.keystone_session)"},{"line_number":240,"context_line":"            except Exception as e:"},{"line_number":241,"context_line":"                self.log.debug(\"glance unknown issue\", exc_info\u003dTrue)"},{"line_number":242,"context_line":"                raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_c80bee29","line":239,"updated":"2015-01-21 06:15:06.000000000","message":"... i don\u0027t think glance supports this","commit_id":"affeee7b1538b540bd79a4b9b6639eb691f3709f"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"3a52e2863c5bfb01d40822cd8f91ec2bc77bd4d5","unresolved":false,"context_lines":[{"line_number":236,"context_line":"            try:"},{"line_number":237,"context_line":"                self._glance_client \u003d glanceclient.Client("},{"line_number":238,"context_line":"                    glance_api_version, endpoint, token\u003dtoken,"},{"line_number":239,"context_line":"                    session\u003dself.keystone_session)"},{"line_number":240,"context_line":"            except Exception as e:"},{"line_number":241,"context_line":"                self.log.debug(\"glance unknown issue\", exc_info\u003dTrue)"},{"line_number":242,"context_line":"                raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_d2a0e6f6","line":239,"in_reply_to":"1a930d6b_c80bee29","updated":"2015-01-21 16:05:46.000000000","message":"It does - I\u0027ve verified.","commit_id":"affeee7b1538b540bd79a4b9b6639eb691f3709f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"403c97583ae5501ccff0d7320726d16db4723bed","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            endpoint \u003d self._keystone_auth.get_endpoint("},{"line_number":351,"context_line":"                session,"},{"line_number":352,"context_line":"                service_type\u003dservice_type,"},{"line_number":353,"context_line":"                interface\u003dself.endpoint_type)"},{"line_number":354,"context_line":"        except Exception as e:"},{"line_number":355,"context_line":"            self.log.debug(\"keystone cannot get endpoint\", exc_info\u003dTrue)"},{"line_number":356,"context_line":"            raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_e85a6a4f","line":353,"updated":"2015-01-21 06:15:06.000000000","message":"you can do this as self.keystone_session.get_endpoint(service_type\u003dservice_type, interface\u003dself.endpoint_type)\n\nit\u0027s a wrapper around the same thing to use the auth that\u0027s on the session.","commit_id":"affeee7b1538b540bd79a4b9b6639eb691f3709f"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"3a52e2863c5bfb01d40822cd8f91ec2bc77bd4d5","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            endpoint \u003d self._keystone_auth.get_endpoint("},{"line_number":351,"context_line":"                session,"},{"line_number":352,"context_line":"                service_type\u003dservice_type,"},{"line_number":353,"context_line":"                interface\u003dself.endpoint_type)"},{"line_number":354,"context_line":"        except Exception as e:"},{"line_number":355,"context_line":"            self.log.debug(\"keystone cannot get endpoint\", exc_info\u003dTrue)"},{"line_number":356,"context_line":"            raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":1,"id":"1a930d6b_f241620c","line":353,"in_reply_to":"1a930d6b_e85a6a4f","updated":"2015-01-21 16:05:46.000000000","message":"Done","commit_id":"affeee7b1538b540bd79a4b9b6639eb691f3709f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"07debd79e86cfcf9f91ac5f7084af103cc00beca","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                    \"Could not find auth plugin: {plugin}\".format("},{"line_number":179,"context_line":"                    plugin\u003dself.auth_plugin))"},{"line_number":180,"context_line":"            try:"},{"line_number":181,"context_line":"                keystone_auth \u003d auth_plugin(**self.auth)"},{"line_number":182,"context_line":"            except Exception as e:"},{"line_number":183,"context_line":"                self.log.debug("},{"line_number":184,"context_line":"                    \"keystone couldn\u0027t construct plugin\", exc_info\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_d2f34b9d","line":181,"updated":"2015-01-22 23:39:39.000000000","message":"ideally here the inverse to get_options (which i assume you\u0027re doing somewhere else) is load_from_options() which in future (https://review.openstack.org/#/c/148784/ ) would do things like required value checking.\n\nFor now though it\u0027s a pass through and in iRC you mentioned you would do this checking elsewhere.","commit_id":"6957352467548bf33e483cec71ac337334245dd5"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"a3015015479522a2d2707d90c33ae9e69ba19391","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                 debug\u003dFalse, **kwargs):"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        self.name \u003d cloud"},{"line_number":87,"context_line":"        self.region \u003d region"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.auth_plugin \u003d auth_plugin"},{"line_number":90,"context_line":"        self.auth \u003d kwargs.get(\u0027auth\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a930d6b_999263f4","line":87,"updated":"2015-01-26 23:06:19.000000000","message":"I don\u0027t think self.region is needed. It\u0027s not used. Perhaps surpassed by self.region_name?","commit_id":"d3802ad6409a46a8d14e428362e41366ef14a8d2"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"d2823aa5439266d096db21a1b9db4e01ee47b9bf","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                 debug\u003dFalse, **kwargs):"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        self.name \u003d cloud"},{"line_number":87,"context_line":"        self.region \u003d region"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        self.auth_plugin \u003d auth_plugin"},{"line_number":90,"context_line":"        self.auth \u003d kwargs.get(\u0027auth\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a930d6b_0296fc3e","line":87,"in_reply_to":"1a930d6b_999263f4","updated":"2015-01-27 00:11:43.000000000","message":"I take it back. It is used, so never mind.","commit_id":"d3802ad6409a46a8d14e428362e41366ef14a8d2"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"6bd2fb70636639becfc993c7505460d918bd8cd6","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                    auth\u003dkeystone_auth,"},{"line_number":210,"context_line":"                    verify\u003dself.verify,"},{"line_number":211,"context_line":"                    cert\u003dself.cert)"},{"line_number":212,"context_line":"                self._auth_token \u003d self._keystone_session.get_token()"},{"line_number":213,"context_line":"            except Exception as e:"},{"line_number":214,"context_line":"                self.log.debug(\"keystone unknown issue\", exc_info\u003dTrue)"},{"line_number":215,"context_line":"                raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":18,"id":"da86d52c_712ab07f","line":212,"updated":"2015-02-02 17:40:53.000000000","message":"Mostly thinking out loud here. Does it make sense to always get a token when first establishing a session? or should we wait until the auth_token property below is used and be a bit more lazy?","commit_id":"d3daf5b896c23e113a4dfb324c24af31e276a0df"}]}
