)]}'
{"openstack/connection.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"37d070af91d05853af06c799e43e09305429d810","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            # others, so this check will help avoid that confusion."},{"line_number":212,"context_line":"            if not isinstance(session, _session.Session):"},{"line_number":213,"context_line":"                raise exceptions.SDKException("},{"line_number":214,"context_line":"                    \u0027session is not an openstack.session.Session\u0027)"},{"line_number":215,"context_line":"            self.session \u003d session"},{"line_number":216,"context_line":"        else:"},{"line_number":217,"context_line":"            self.authenticator \u003d self._create_authenticator(authenticator,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_ea797ec9","line":214,"range":{"start_line":214,"start_character":21,"end_line":214,"end_character":28},"updated":"2016-09-30 19:17:33.000000000","message":"What about changing the exception to something like the following to be a little more specific and automated?\n\n    \"Session instance is from %s but must be from %s\" % (x.__module__, _session.__name__)\n\n\nThat\u0027ll come out as \u0027Session instance is from keystoneauth1.session but must be from openstack.session\u0027","commit_id":"fd19beeaa1ee724c4ec8e5ec7f3697de04250206"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"383a5e49662d3b298778789d33e3dff2cc348884","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        if session:"},{"line_number":210,"context_line":"            # Make sure it is the right kind of session. A keystoneauth1"},{"line_number":211,"context_line":"            # session would work in some ways but show strange errors in"},{"line_number":212,"context_line":"            # others, so this check will help avoid that confusion."},{"line_number":213,"context_line":"            if not isinstance(session, _session.Session):"},{"line_number":214,"context_line":"                raise exceptions.SDKException("},{"line_number":215,"context_line":"                    \u0027Session instance is from %s but must be from %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_77442e49","line":212,"range":{"start_line":212,"start_character":30,"end_line":212,"end_character":35},"updated":"2016-10-03 19:40:01.000000000","message":"Since the issue that caused us to need this change was a little tricky to see at first, would you mind adding some extra text explaining why we\u0027re being picky here? You can write whatever you want, but I\u0027ve included some example text here:\n\nFor example, in Resource.find we attempt to catch openstack.exceptions.NotFoundException to signal that a search by ID failed. However, if that call was made with via a keystoneauth1 session, a request for a bad ID raises keystoneauth1.exceptions.http.NotFound. We need ensure our Session class gets used so that our implementation of various methods always works how we expect.","commit_id":"3d8f13746f0bda0fb5939023e33b425045469e60"}]}
