)]}'
{"shade/openstackcloud.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d18064bfc96c4e7ed8d8bd64502b71774dffa980","unresolved":false,"context_lines":[{"line_number":5516,"context_line":"            raise OpenStackCloudException(\"Container not found: %s\" % name)"},{"line_number":5517,"context_line":"        acl \u003d container.get(\u0027x-container-read\u0027, \u0027\u0027)"},{"line_number":5518,"context_line":"        for key, value in OBJECT_CONTAINER_ACLS.items():"},{"line_number":5519,"context_line":"            # Convert to string for the comparison because swiftclient"},{"line_number":5520,"context_line":"            # returns byte values as bytes sometimes and apparently \u003d\u003d"},{"line_number":5521,"context_line":"            # on bytes doesn\u0027t work like you\u0027d think"},{"line_number":5522,"context_line":"            if str(acl) \u003d\u003d str(value):"},{"line_number":5523,"context_line":"                return key"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_06bfb6fb","line":5520,"range":{"start_line":5519,"start_character":59,"end_line":5520,"end_character":42},"updated":"2016-12-20 21:54:02.000000000","message":"Following Idb111c5bf3ac1f5ccfa724b3f4ede8f37d5bfac4 headers should *always* be unicode coming out of swiftclient. IIRC, prior to that they should be unicode on py3 (which, from the commit message, seems to have the problem) and bytes on py2. Do you remember the value that was tripping this up?\n\nMaybe we need to update the minimum swiftclient version in requirements.txt? That commit was included in 2.7.0.","commit_id":"29d15878a7b2fe3596516a5f2e5aaa8f6554deb3"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"8ffc67a4d18d771e3b6a222f32fb2bb3b331281e","unresolved":false,"context_lines":[{"line_number":5517,"context_line":"        acl \u003d container.get(\u0027x-container-read\u0027, \u0027\u0027)"},{"line_number":5518,"context_line":"        for key, value in OBJECT_CONTAINER_ACLS.items():"},{"line_number":5519,"context_line":"            # Convert to string for the comparison because swiftclient"},{"line_number":5520,"context_line":"            # returns byte values as bytes sometimes and apparently \u003d\u003d"},{"line_number":5521,"context_line":"            # on bytes doesn\u0027t work like you\u0027d think"},{"line_number":5522,"context_line":"            if str(acl) \u003d\u003d str(value):"},{"line_number":5523,"context_line":"                return key"}],"source_content_type":"text/x-python","patch_set":8,"id":"da4df55a_8dcebe58","line":5520,"in_reply_to":"1a6eadb0_06bfb6fb","updated":"2016-12-22 11:47:37.000000000","message":"We should be testing with latest swiftclient. And yah - the problem was that we\u0027d set requests_mock to return a string in the headers to swiftclient, then test what shade returned on the other side, and what it was getting back in python3 was bytes.","commit_id":"29d15878a7b2fe3596516a5f2e5aaa8f6554deb3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d18064bfc96c4e7ed8d8bd64502b71774dffa980","unresolved":false,"context_lines":[{"line_number":5517,"context_line":"        acl \u003d container.get(\u0027x-container-read\u0027, \u0027\u0027)"},{"line_number":5518,"context_line":"        for key, value in OBJECT_CONTAINER_ACLS.items():"},{"line_number":5519,"context_line":"            # Convert to string for the comparison because swiftclient"},{"line_number":5520,"context_line":"            # returns byte values as bytes sometimes and apparently \u003d\u003d"},{"line_number":5521,"context_line":"            # on bytes doesn\u0027t work like you\u0027d think"},{"line_number":5522,"context_line":"            if str(acl) \u003d\u003d str(value):"},{"line_number":5523,"context_line":"                return key"},{"line_number":5524,"context_line":"        raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_cb26a715","line":5521,"range":{"start_line":5520,"start_character":57,"end_line":5521,"end_character":52},"updated":"2016-12-20 21:54:02.000000000","message":"This seems incredibly strange. Got details?","commit_id":"29d15878a7b2fe3596516a5f2e5aaa8f6554deb3"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"8ffc67a4d18d771e3b6a222f32fb2bb3b331281e","unresolved":false,"context_lines":[{"line_number":5518,"context_line":"        for key, value in OBJECT_CONTAINER_ACLS.items():"},{"line_number":5519,"context_line":"            # Convert to string for the comparison because swiftclient"},{"line_number":5520,"context_line":"            # returns byte values as bytes sometimes and apparently \u003d\u003d"},{"line_number":5521,"context_line":"            # on bytes doesn\u0027t work like you\u0027d think"},{"line_number":5522,"context_line":"            if str(acl) \u003d\u003d str(value):"},{"line_number":5523,"context_line":"                return key"},{"line_number":5524,"context_line":"        raise OpenStackCloudException("}],"source_content_type":"text/x-python","patch_set":8,"id":"da4df55a_6d3fda25","line":5521,"in_reply_to":"1a6eadb0_cb26a715","updated":"2016-12-22 11:47:37.000000000","message":"If I did a self.assertEqual(expected, returned) where expected was the string version of the value, and returned was the bytes version of the same string, and the assert was unpleased - which, if there is an encoding error, I suppose is pleasing. :)","commit_id":"29d15878a7b2fe3596516a5f2e5aaa8f6554deb3"}],"shade/tests/unit/test_object.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d18064bfc96c4e7ed8d8bd64502b71774dffa980","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            self.container_endpoint,"},{"line_number":251,"context_line":"            headers\u003d{"},{"line_number":252,"context_line":"                \u0027x-container-read\u0027:"},{"line_number":253,"context_line":"                str(shade.openstackcloud.OBJECT_CONTAINER_ACLS[\u0027public\u0027])})"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        access \u003d self.cloud.get_container_access(self.container)"},{"line_number":256,"context_line":"        self.assertEqual(\u0027public\u0027, access)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_a69c425e","line":253,"updated":"2016-12-20 21:54:02.000000000","message":"When testing under py3, this comes out as\n\n \"b\u0027.r:*,.rlistings\u0027\"\n\nWhile Swift may let you store an ACL like that, I don\u0027t expect it to actually *mean* anything.","commit_id":"29d15878a7b2fe3596516a5f2e5aaa8f6554deb3"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"8ffc67a4d18d771e3b6a222f32fb2bb3b331281e","unresolved":false,"context_lines":[{"line_number":250,"context_line":"            self.container_endpoint,"},{"line_number":251,"context_line":"            headers\u003d{"},{"line_number":252,"context_line":"                \u0027x-container-read\u0027:"},{"line_number":253,"context_line":"                str(shade.openstackcloud.OBJECT_CONTAINER_ACLS[\u0027public\u0027])})"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        access \u003d self.cloud.get_container_access(self.container)"},{"line_number":256,"context_line":"        self.assertEqual(\u0027public\u0027, access)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da4df55a_2d5a3284","line":253,"in_reply_to":"1a6eadb0_a69c425e","updated":"2016-12-22 11:47:37.000000000","message":"You mean the ACL .r:*,.rlistings is not valid? Or that it being bytes is invalid and wouldn\u0027t mean anything?","commit_id":"29d15878a7b2fe3596516a5f2e5aaa8f6554deb3"}]}
