)]}'
{"releasenotes/notes/remove-format-contraint-of-client-id-ab787960df6e1606.yaml":[{"author":{"_account_id":28035,"name":"Xiyuan Wang","email":"233652566@qq.com","username":"xywang"},"change_message_id":"6c8d41a93ba43c104dda279c3da5fa8522c43848","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Since some clients use different format of client id not only uuid, like"},{"line_number":4,"context_line":"    user id of ldap, so Zaqar will remove the format contrain of client id."},{"line_number":5,"context_line":"    This also requires user to ensure the client id is immutable."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5f7c97a3_71c826a7","line":5,"updated":"2018-05-30 02:12:54.000000000","message":"the release note should be updated.","commit_id":"8846c0a44e26f3b4c8cda0a151ffeb813a954c51"},{"author":{"_account_id":12484,"name":"jazeltq","email":"tianqing@unitedstack.com","username":"litianqing"},"change_message_id":"83b2fc6b3869a1525490eaa53ff8678299a079ef","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Since some clients use different format of client id not only uuid, like"},{"line_number":4,"context_line":"    user id of ldap, so Zaqar will remove the format contrain of client id."},{"line_number":5,"context_line":"    This also requires user to ensure the client id is immutable."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5f7c97a3_6c24c960","line":5,"in_reply_to":"5f7c97a3_71c826a7","updated":"2018-05-30 03:15:08.000000000","message":"why ?","commit_id":"8846c0a44e26f3b4c8cda0a151ffeb813a954c51"},{"author":{"_account_id":12484,"name":"jazeltq","email":"tianqing@unitedstack.com","username":"litianqing"},"change_message_id":"d90449cb1c8ae0ec84fbb08a9d41a405b69e7204","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Since some clients use different format of client id not only uuid, like"},{"line_number":4,"context_line":"    user id of ldap, so Zaqar will remove the format contrain of client id."},{"line_number":5,"context_line":"    This also requires user to ensure the client id is immutable."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5f7c97a3_acd3c137","line":5,"in_reply_to":"5f7c97a3_71c826a7","updated":"2018-05-30 03:17:34.000000000","message":"why?","commit_id":"8846c0a44e26f3b4c8cda0a151ffeb813a954c51"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"8edbcd7f5304c74e2dbe95f40d9e85651eaf3eae","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Since some clients use different format of client id not only uuid, like"},{"line_number":4,"context_line":"    user id of ldap, so Zaqar will remove the format contrain of client id."},{"line_number":5,"context_line":"    This also requires user to ensure the client id is immutable."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5f7c97a3_cc8f1d28","line":5,"in_reply_to":"5f7c97a3_acd3c137","updated":"2018-05-30 03:23:57.000000000","message":"@jazeltq,  xiyuan means we should add the options changes.","commit_id":"8846c0a44e26f3b4c8cda0a151ffeb813a954c51"}],"zaqar/api/v2/endpoints.py":[{"author":{"_account_id":28035,"name":"Xiyuan Wang","email":"233652566@qq.com","username":"xywang"},"change_message_id":"1093c4aa18fa7940f2ab977ce074c1127a014c0d","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        try:"},{"line_number":294,"context_line":"            kwargs \u003d api_utils.get_headers(req)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"            self._validate.client_id_uuid_safe(req._headers.get(\u0027Client-ID\u0027))"},{"line_number":297,"context_line":"            client_uuid \u003d api_utils.get_client_uuid(req)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"            self._validate.message_listing(**kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_cc9abd12","line":296,"updated":"2018-05-30 03:48:11.000000000","message":"we have a problem with Client-ID for websocket for a long time: All APIs request require a Client-ID, but only the message APIs check the Client-ID format. This will lead a behavior that a ID like \"12345\" will pass for queue APIs, but will be blocked by message APIs.\n\nI think we can fix it in a following patch.","commit_id":"728fe50e9c412246476b752ec086ec7d64dad72c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"3f1b012a6315813e99199f4d3d3151b90d4e2048","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        try:"},{"line_number":294,"context_line":"            kwargs \u003d api_utils.get_headers(req)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"            self._validate.client_id_uuid_safe(req._headers.get(\u0027Client-ID\u0027))"},{"line_number":297,"context_line":"            client_uuid \u003d api_utils.get_client_uuid(req)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"            self._validate.message_listing(**kwargs)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_23133f5e","line":296,"in_reply_to":"5f7c97a3_cc9abd12","updated":"2018-05-30 05:25:54.000000000","message":"sure","commit_id":"728fe50e9c412246476b752ec086ec7d64dad72c"}],"zaqar/common/transport/wsgi/helpers.py":[{"author":{"_account_id":12484,"name":"jazeltq","email":"tianqing@unitedstack.com","username":"litianqing"},"change_message_id":"5dddc2abe45c9547dc6c48c3cf7338e86963425e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    try:"},{"line_number":76,"context_line":"        if len(req.get_header(\u0027Client-ID\u0027, required\u003dTrue)) !\u003d 36:"},{"line_number":77,"context_line":"            return req.get_header(\u0027Client-ID\u0027, required\u003dTrue)"},{"line_number":78,"context_line":"        else:"},{"line_number":79,"context_line":"            return uuid.UUID(req.get_header(\u0027Client-ID\u0027, required\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_3351e40f","line":76,"updated":"2018-05-18 07:48:33.000000000","message":"I think we should limit the length of client-id that a user can add to our db.","commit_id":"1a23c22269296ed439400552dfd553339d89d1c1"},{"author":{"_account_id":28035,"name":"Xiyuan Wang","email":"233652566@qq.com","username":"xywang"},"change_message_id":"626c0422133b35789ffb3bd4bd0b7d4b0d6faf4e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    try:"},{"line_number":76,"context_line":"        if len(req.get_header(\u0027Client-ID\u0027, required\u003dTrue)) !\u003d 36:"},{"line_number":77,"context_line":"            return req.get_header(\u0027Client-ID\u0027, required\u003dTrue)"},{"line_number":78,"context_line":"        else:"},{"line_number":79,"context_line":"            return uuid.UUID(req.get_header(\u0027Client-ID\u0027, required\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_1361483a","line":76,"range":{"start_line":76,"start_character":62,"end_line":76,"end_character":64},"updated":"2018-05-18 08:18:43.000000000","message":"uuid.uuid4() is 36, but uuid.uuid4().hex is 32","commit_id":"1a23c22269296ed439400552dfd553339d89d1c1"},{"author":{"_account_id":28035,"name":"Xiyuan Wang","email":"233652566@qq.com","username":"xywang"},"change_message_id":"626c0422133b35789ffb3bd4bd0b7d4b0d6faf4e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    try:"},{"line_number":76,"context_line":"        if len(req.get_header(\u0027Client-ID\u0027, required\u003dTrue)) !\u003d 36:"},{"line_number":77,"context_line":"            return req.get_header(\u0027Client-ID\u0027, required\u003dTrue)"},{"line_number":78,"context_line":"        else:"},{"line_number":79,"context_line":"            return uuid.UUID(req.get_header(\u0027Client-ID\u0027, required\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_f35fec6f","line":76,"in_reply_to":"5f7c97a3_3351e40f","updated":"2018-05-18 08:18:43.000000000","message":"This is a good point. It should be configured as well. I wander if we can add it as a new reserved metadata for queues as well?","commit_id":"1a23c22269296ed439400552dfd553339d89d1c1"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"acf81e0cc5a3b2ed9c4d8437040f74026a66aeae","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    \"\"\""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    try:"},{"line_number":76,"context_line":"        if len(req.get_header(\u0027Client-ID\u0027, required\u003dTrue)) !\u003d 36:"},{"line_number":77,"context_line":"            return req.get_header(\u0027Client-ID\u0027, required\u003dTrue)"},{"line_number":78,"context_line":"        else:"},{"line_number":79,"context_line":"            return uuid.UUID(req.get_header(\u0027Client-ID\u0027, required\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_5c667ec3","line":76,"in_reply_to":"5f7c97a3_f35fec6f","updated":"2018-05-28 06:21:14.000000000","message":"Not sure if the metadata is the good way, since when you create the queue,  you have taken the client-id,  so how to validate the format of uuid in metadata?","commit_id":"1a23c22269296ed439400552dfd553339d89d1c1"}],"zaqar/tests/unit/transport/wsgi/v2_0/test_queue_lifecycle.py":[{"author":{"_account_id":28035,"name":"Xiyuan Wang","email":"233652566@qq.com","username":"xywang"},"change_message_id":"1093c4aa18fa7940f2ab977ce074c1127a014c0d","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @ddt.data(\u00271234567890\u0027, \u002711111111111111111111111111111111111\u0027)"},{"line_number":137,"context_line":"    @mock.patch(\u0027zaqar.transport.validation.Validator.client_id_uuid_safe\u0027,"},{"line_number":138,"context_line":"                _fake_client_id_uuid_safe)"},{"line_number":139,"context_line":"    def test_basics_thoroughly_with_different_client_id(self, client_id):"},{"line_number":140,"context_line":"        headers \u003d {"},{"line_number":141,"context_line":"            \u0027Client-ID\u0027: client_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_ccc39dec","line":138,"updated":"2018-05-30 03:48:11.000000000","message":"Instead of mock the function, I think changing the client_id_uuid_safe configuration to \"off\" is better in this test case.","commit_id":"728fe50e9c412246476b752ec086ec7d64dad72c"},{"author":{"_account_id":28035,"name":"Xiyuan Wang","email":"233652566@qq.com","username":"xywang"},"change_message_id":"7ce37350139094eb954d72bd3b47e7119c88c2df","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @ddt.data(\u00271234567890\u0027, \u002711111111111111111111111111111111111\u0027)"},{"line_number":137,"context_line":"    @mock.patch(\u0027zaqar.transport.validation.Validator.client_id_uuid_safe\u0027,"},{"line_number":138,"context_line":"                _fake_client_id_uuid_safe)"},{"line_number":139,"context_line":"    def test_basics_thoroughly_with_different_client_id(self, client_id):"},{"line_number":140,"context_line":"        headers \u003d {"},{"line_number":141,"context_line":"            \u0027Client-ID\u0027: client_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_b967804d","line":138,"in_reply_to":"5f7c97a3_6305b70f","updated":"2018-05-30 08:20:23.000000000","message":"https://review.openstack.org/#/c/571104/","commit_id":"728fe50e9c412246476b752ec086ec7d64dad72c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c111f1b4fb98a4246b35c1ac160904b9d12f2ba2","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @ddt.data(\u00271234567890\u0027, \u002711111111111111111111111111111111111\u0027)"},{"line_number":137,"context_line":"    @mock.patch(\u0027zaqar.transport.validation.Validator.client_id_uuid_safe\u0027,"},{"line_number":138,"context_line":"                _fake_client_id_uuid_safe)"},{"line_number":139,"context_line":"    def test_basics_thoroughly_with_different_client_id(self, client_id):"},{"line_number":140,"context_line":"        headers \u003d {"},{"line_number":141,"context_line":"            \u0027Client-ID\u0027: client_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_94f04b69","line":138,"in_reply_to":"5f7c97a3_b967804d","updated":"2018-05-30 09:11:38.000000000","message":"cool. thanks","commit_id":"728fe50e9c412246476b752ec086ec7d64dad72c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"3f1b012a6315813e99199f4d3d3151b90d4e2048","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @ddt.data(\u00271234567890\u0027, \u002711111111111111111111111111111111111\u0027)"},{"line_number":137,"context_line":"    @mock.patch(\u0027zaqar.transport.validation.Validator.client_id_uuid_safe\u0027,"},{"line_number":138,"context_line":"                _fake_client_id_uuid_safe)"},{"line_number":139,"context_line":"    def test_basics_thoroughly_with_different_client_id(self, client_id):"},{"line_number":140,"context_line":"        headers \u003d {"},{"line_number":141,"context_line":"            \u0027Client-ID\u0027: client_id,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_6305b70f","line":138,"in_reply_to":"5f7c97a3_ccc39dec","updated":"2018-05-30 05:25:54.000000000","message":"it\u0027s my thought too.  But I tried to change the configuration to \u0027off\u0027 in test case, not work.  So I use the same logic in fake function.  Any idea for this?","commit_id":"728fe50e9c412246476b752ec086ec7d64dad72c"}],"zaqar/transport/validation.py":[{"author":{"_account_id":28035,"name":"Xiyuan Wang","email":"233652566@qq.com","username":"xywang"},"change_message_id":"6c8d41a93ba43c104dda279c3da5fa8522c43848","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    cfg.IntOpt(\u0027max_pools_per_page\u0027, default\u003d20,"},{"line_number":94,"context_line":"               help\u003d\u0027Defines the maximum number of pools per page.\u0027),"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    cfg.StrOpt(\u0027client_id_uuid_safe\u0027, default\u003d\u0027strict\u0027,"},{"line_number":97,"context_line":"               help\u003d\u0027Defines the format of client id, the value could be \u0027"},{"line_number":98,"context_line":"                    \u0027\"strict\" or \"off\". \"strict\" means the format of client id\u0027"},{"line_number":99,"context_line":"                    \u0027 must be uuid, \"off\" means the restriction be removed.\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_d10a5ad0","line":96,"updated":"2018-05-30 02:12:54.000000000","message":"choices \u003d [\u0027strict\u0027, \u0027off\u0027]","commit_id":"8846c0a44e26f3b4c8cda0a151ffeb813a954c51"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"8d81c76f81b4150bbe70aa95e66683b0e7ec0af0","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    cfg.IntOpt(\u0027max_pools_per_page\u0027, default\u003d20,"},{"line_number":94,"context_line":"               help\u003d\u0027Defines the maximum number of pools per page.\u0027),"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    cfg.StrOpt(\u0027client_id_uuid_safe\u0027, default\u003d\u0027strict\u0027,"},{"line_number":97,"context_line":"               help\u003d\u0027Defines the format of client id, the value could be \u0027"},{"line_number":98,"context_line":"                    \u0027\"strict\" or \"off\". \"strict\" means the format of client id\u0027"},{"line_number":99,"context_line":"                    \u0027 must be uuid, \"off\" means the restriction be removed.\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_4c7b0d27","line":96,"in_reply_to":"5f7c97a3_d10a5ad0","updated":"2018-05-30 03:29:47.000000000","message":"Done","commit_id":"8846c0a44e26f3b4c8cda0a151ffeb813a954c51"}]}
