)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7f7168139d7dc7018fb70fac0158ad94a73d7444","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The noauth strategy will not attempt to look for a token and will not use a"},{"line_number":10,"context_line":"token if one is given. This strategy will also not attempt to find a catalog"},{"line_number":11,"context_line":"and therefore the endpoint must be specified (either in the constructor or"},{"line_number":12,"context_line":"using -os-url)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"If the noauth strategy is specified and the endpoint is not it will fail with"},{"line_number":15,"context_line":"a descriptive message."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAAUH%2F9WXM%3D","line":12,"updated":"2014-02-07 15:15:46.000000000","message":"--os-url, with two dashes.","commit_id":"608e2caa7395568399276b312ef170465bd45154"},{"author":{"_account_id":5127,"name":"Justin Hammond","email":"runningempty@gmail.com","username":"justin-hammond"},"change_message_id":"66bb3e1907bcd3346886e9a93edcafc6a0f80db5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The noauth strategy will not attempt to look for a token and will not use a"},{"line_number":10,"context_line":"token if one is given. This strategy will also not attempt to find a catalog"},{"line_number":11,"context_line":"and therefore the endpoint must be specified (either in the constructor or"},{"line_number":12,"context_line":"using -os-url)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"If the noauth strategy is specified and the endpoint is not it will fail with"},{"line_number":15,"context_line":"a descriptive message."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"AAAAUX%2F%2B%2BtA%3D","line":12,"in_reply_to":"AAAAUH%2F9WXM%3D","updated":"2014-02-17 21:07:33.000000000","message":"Ditto! Thanks for the catch.","commit_id":"608e2caa7395568399276b312ef170465bd45154"}],"neutronclient/client.py":[{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"8c6566e72140965933c8a7f7d119ffef1e8b06a3","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        try:"},{"line_number":187,"context_line":"            kwargs.setdefault(\u0027headers\u0027, {})"},{"line_number":188,"context_line":"            if self.auth_strategy \u003d\u003d \u0027keystone\u0027:"},{"line_number":189,"context_line":"                kwargs[\u0027headers\u0027][\u0027X-Auth-Token\u0027] \u003d self.auth_token"},{"line_number":190,"context_line":"            resp, body \u003d self._cs_request(self.endpoint_url + url, method,"},{"line_number":191,"context_line":"                                          **kwargs)"},{"line_number":192,"context_line":"            return resp, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bu%2BM%3D","line":189,"updated":"2013-11-20 22:58:05.000000000","message":"I think I know the answer, but self.auth_token won\u0027t be set at all if the strategy was \"noauth,\" right?\n\nI only ask because it\u0027s not apparent from this line, i.e. looks like it could still be requesting a token, just choosing not to use it.","commit_id":"268306420d849f730c8dfba997ea72c65f71f194"},{"author":{"_account_id":5127,"name":"Justin Hammond","email":"runningempty@gmail.com","username":"justin-hammond"},"change_message_id":"1e24d16be8aadea3c16989d2f9cf8058aae0ee4c","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        try:"},{"line_number":187,"context_line":"            kwargs.setdefault(\u0027headers\u0027, {})"},{"line_number":188,"context_line":"            if self.auth_strategy \u003d\u003d \u0027keystone\u0027:"},{"line_number":189,"context_line":"                kwargs[\u0027headers\u0027][\u0027X-Auth-Token\u0027] \u003d self.auth_token"},{"line_number":190,"context_line":"            resp, body \u003d self._cs_request(self.endpoint_url + url, method,"},{"line_number":191,"context_line":"                                          **kwargs)"},{"line_number":192,"context_line":"            return resp, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Brjk%3D","line":189,"in_reply_to":"AAAATn%2F%2Bu%2BM%3D","updated":"2013-11-21 16:20:01.000000000","message":"This request assumes a token has already been requested. If line 188 was commented out the value of X-Auth-Token would be None. It does not request a token as it only gets a token from _authenticate_keystone","commit_id":"268306420d849f730c8dfba997ea72c65f71f194"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"db8e28295067171668186852113122e97a9db32e","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def _authenticate_noauth(self):"},{"line_number":253,"context_line":"        if not self.endpoint_url:"},{"line_number":254,"context_line":"            message \u003d \u0027endpoint url must be set in noauth\u0027"},{"line_number":255,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def authenticate(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Bu5Q%3D","line":254,"updated":"2013-11-20 23:20:30.000000000","message":"In the comment for your patchset you indicate: \u0027the endpoint must be specified (either in the constructor or\nusing -os-url\u0027)\n\nI think reusing this comment in your exception message would be more helpful to the user. Something along the lines of:\n\n\u0027For noauth authentication strategy, the endpoint must be specified either in the constructor or\nusing -os-url\u0027","commit_id":"268306420d849f730c8dfba997ea72c65f71f194"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"051b3abddc180503b6301b3da0e099dd3a5e8ea8","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def _authenticate_noauth(self):"},{"line_number":253,"context_line":"        if not self.endpoint_url:"},{"line_number":254,"context_line":"            message \u003d \u0027endpoint url must be set in noauth\u0027"},{"line_number":255,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def authenticate(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BuEk%3D","line":254,"updated":"2013-11-21 04:39:16.000000000","message":"nit: Please start error message with the capital letter and use i18n:\n message \u003d _(\u0027endpoint url must be set in noauth\u0027)\napplies to a line #263 as well","commit_id":"268306420d849f730c8dfba997ea72c65f71f194"},{"author":{"_account_id":5127,"name":"Justin Hammond","email":"runningempty@gmail.com","username":"justin-hammond"},"change_message_id":"1e24d16be8aadea3c16989d2f9cf8058aae0ee4c","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def _authenticate_noauth(self):"},{"line_number":253,"context_line":"        if not self.endpoint_url:"},{"line_number":254,"context_line":"            message \u003d \u0027endpoint url must be set in noauth\u0027"},{"line_number":255,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def authenticate(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BrjI%3D","line":254,"in_reply_to":"AAAATn%2F%2Bu5Q%3D","updated":"2013-11-21 16:20:01.000000000","message":"Will do! Thanks.","commit_id":"268306420d849f730c8dfba997ea72c65f71f194"},{"author":{"_account_id":5127,"name":"Justin Hammond","email":"runningempty@gmail.com","username":"justin-hammond"},"change_message_id":"1e24d16be8aadea3c16989d2f9cf8058aae0ee4c","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def _authenticate_noauth(self):"},{"line_number":253,"context_line":"        if not self.endpoint_url:"},{"line_number":254,"context_line":"            message \u003d \u0027endpoint url must be set in noauth\u0027"},{"line_number":255,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage)"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    def authenticate(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2BrjA%3D","line":254,"in_reply_to":"AAAATn%2F%2BuEk%3D","updated":"2013-11-21 16:20:01.000000000","message":"Will do! Thanks.","commit_id":"268306420d849f730c8dfba997ea72c65f71f194"},{"author":{"_account_id":6670,"name":"Amir Sadoughi","email":"amir.sadoughi@rackspace.com","username":"amir-sadoughi"},"change_message_id":"085f2a78a7f29fff87535f321bc9a0b29df8a41b","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        elif self.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":264,"context_line":"            self._authenticate_noauth()"},{"line_number":265,"context_line":"        else:"},{"line_number":266,"context_line":"            message \u003d _(\u0027Unsupported auth strategy\u0027)"},{"line_number":267,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage)"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def _get_endpoint_url(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2BrME%3D","line":266,"updated":"2013-11-21 17:47:51.000000000","message":"You might want to log the auth strategy that was specified.\n\nmessage \u003d _(\u0027Unsupported auth strategy: %(auth_strategy)s\u0027)\n\nraise exceptions.Unauthorized(message\u003dmessage, auth_strategy\u003dself.auth_strategy)","commit_id":"5a846bf38f13f7cd4e04066071f2d9c6605888ac"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"585e9c23737be6279488b13b9302bb2ee3b7a5b8","unresolved":false,"context_lines":[{"line_number":259,"context_line":"    def authenticate(self):"},{"line_number":260,"context_line":"        if self.auth_strategy \u003d\u003d \u0027keystone\u0027:"},{"line_number":261,"context_line":"            self._authenticate_keystone()"},{"line_number":262,"context_line":"            return"},{"line_number":263,"context_line":"        elif self.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":264,"context_line":"            self._authenticate_noauth()"},{"line_number":265,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FrDY%3D","line":262,"updated":"2014-01-09 19:32:39.000000000","message":"return is unnecessary here because the conditional ensures that the other branches are not executed","commit_id":"fe3e3ef1baa8ac1be4bbed444280b6b73deef3ed"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"585e9c23737be6279488b13b9302bb2ee3b7a5b8","unresolved":false,"context_lines":[{"line_number":262,"context_line":"            return"},{"line_number":263,"context_line":"        elif self.auth_strategy \u003d\u003d \u0027noauth\u0027:"},{"line_number":264,"context_line":"            self._authenticate_noauth()"},{"line_number":265,"context_line":"            return"},{"line_number":266,"context_line":"        else:"},{"line_number":267,"context_line":"            message \u003d _(\u0027Unsupported auth strategy: %(auth_strategy)s\u0027)"},{"line_number":268,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FrDU%3D","line":265,"updated":"2014-01-09 19:32:39.000000000","message":"Same","commit_id":"fe3e3ef1baa8ac1be4bbed444280b6b73deef3ed"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cec9868eed83f440d8e31408dd83381406a88a21","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    def _authenticate_noauth(self):"},{"line_number":255,"context_line":"        if not self.endpoint_url:"},{"line_number":256,"context_line":"            message \u003d _(\u0027For noauth authentication strategy, the endpoint \u0027"},{"line_number":257,"context_line":"                        \u0027must be specified either in the constructor or \u0027"},{"line_number":258,"context_line":"                        \u0027using -os-url\u0027)"},{"line_number":259,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAU3%2F%2F8OM%3D","line":256,"updated":"2014-02-23 21:30:29.000000000","message":"It looks better to wrap noauth with quotes.","commit_id":"608e2caa7395568399276b312ef170465bd45154"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7f7168139d7dc7018fb70fac0158ad94a73d7444","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        if not self.endpoint_url:"},{"line_number":256,"context_line":"            message \u003d _(\u0027For noauth authentication strategy, the endpoint \u0027"},{"line_number":257,"context_line":"                        \u0027must be specified either in the constructor or \u0027"},{"line_number":258,"context_line":"                        \u0027using -os-url\u0027)"},{"line_number":259,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    def authenticate(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F9WXY%3D","line":258,"updated":"2014-02-07 15:15:46.000000000","message":"this is probably --os-url, with two dashes.","commit_id":"608e2caa7395568399276b312ef170465bd45154"},{"author":{"_account_id":5127,"name":"Justin Hammond","email":"runningempty@gmail.com","username":"justin-hammond"},"change_message_id":"66bb3e1907bcd3346886e9a93edcafc6a0f80db5","unresolved":false,"context_lines":[{"line_number":255,"context_line":"        if not self.endpoint_url:"},{"line_number":256,"context_line":"            message \u003d _(\u0027For noauth authentication strategy, the endpoint \u0027"},{"line_number":257,"context_line":"                        \u0027must be specified either in the constructor or \u0027"},{"line_number":258,"context_line":"                        \u0027using -os-url\u0027)"},{"line_number":259,"context_line":"            raise exceptions.Unauthorized(message\u003dmessage)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    def authenticate(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2B%2BtE%3D","line":258,"in_reply_to":"AAAAUH%2F9WXY%3D","updated":"2014-02-17 21:07:33.000000000","message":"Good catch!","commit_id":"608e2caa7395568399276b312ef170465bd45154"}],"neutronclient/tests/unit/test_auth.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7f7168139d7dc7018fb70fac0158ad94a73d7444","unresolved":false,"context_lines":[{"line_number":69,"context_line":"}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class CLITestAuthNoAuth(testtools.TestCase):"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def setUp(self):"},{"line_number":75,"context_line":"        \"\"\"Prepare the test environment.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F9WUI%3D","line":72,"updated":"2014-02-07 15:15:46.000000000","message":"The test is fine, though you could also check that other auth strategies result in exception. Or is it tested already somewhere?","commit_id":"608e2caa7395568399276b312ef170465bd45154"},{"author":{"_account_id":5127,"name":"Justin Hammond","email":"runningempty@gmail.com","username":"justin-hammond"},"change_message_id":"66bb3e1907bcd3346886e9a93edcafc6a0f80db5","unresolved":false,"context_lines":[{"line_number":69,"context_line":"}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class CLITestAuthNoAuth(testtools.TestCase):"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def setUp(self):"},{"line_number":75,"context_line":"        \"\"\"Prepare the test environment.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2B%2BtI%3D","line":72,"in_reply_to":"AAAAUH%2F9WUI%3D","updated":"2014-02-17 21:07:33.000000000","message":"I believe all of the client tests were designed to assume keystone testing. So essentially, there are no other strategies to test.","commit_id":"608e2caa7395568399276b312ef170465bd45154"}]}
