)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"1a2e695437566abec34f8d2f624dd9d77b9500e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"91877dac_324b246a","updated":"2024-12-06 13:12:52.000000000","message":"recheck codegenerator adapted","commit_id":"aaefb84256ca43ee6bca5797f3e514ddfa66c8fe"}],"keystone/api/os_ep_filter.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"48810b43873096dac8770f24866f7b2c8fcc276b","unresolved":true,"context_lines":[{"line_number":118,"context_line":"    def patch(self, endpoint_group_id):"},{"line_number":119,"context_line":"        \"\"\"Update existing endpoint groups"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        PATCH /v3/OS-EP-FILTER/endpoint_groups/{endpoint_}"},{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        ENFORCER.enforce_call(action\u003d\u0027identity:update_endpoint_group\u0027)"},{"line_number":124,"context_line":"        ep_group \u003d self.request_body_json.get(\u0027endpoint_group\u0027, {})"}],"source_content_type":"text/x-python","patch_set":4,"id":"b73830cf_7be8fee0","line":121,"updated":"2024-09-23 16:10:50.000000000","message":"`endpoint_` is treated by sphinx as link (which is logically missing). Please correct this typo.","commit_id":"7ce059ae2a1536b48678931ed76995cec85fa631"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"b6f8c1ff8a70c83df73da82ab8f1846dd5c09b14","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    def patch(self, endpoint_group_id):"},{"line_number":119,"context_line":"        \"\"\"Update existing endpoint groups"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        PATCH /v3/OS-EP-FILTER/endpoint_groups/{endpoint_}"},{"line_number":122,"context_line":"        \"\"\""},{"line_number":123,"context_line":"        ENFORCER.enforce_call(action\u003d\u0027identity:update_endpoint_group\u0027)"},{"line_number":124,"context_line":"        ep_group \u003d self.request_body_json.get(\u0027endpoint_group\u0027, {})"}],"source_content_type":"text/x-python","patch_set":4,"id":"201cac44_2f867aef","line":121,"in_reply_to":"b73830cf_7be8fee0","updated":"2024-09-27 14:28:11.000000000","message":"Done","commit_id":"7ce059ae2a1536b48678931ed76995cec85fa631"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"d0e8f4afac5b5538637d3917dd602e8a6c26f566","unresolved":true,"context_lines":[{"line_number":77,"context_line":"        refs \u003d PROVIDERS.catalog_api.list_endpoint_groups(hints)"},{"line_number":78,"context_line":"        return self.wrap_collection(refs, hints\u003dhints)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @validation.request_query_schema(schema.endpoint_group_index_request_query)"},{"line_number":81,"context_line":"    @validation.response_body_schema(schema.endpoint_group_index_response_body)"},{"line_number":82,"context_line":"    def get(self, endpoint_group_id\u003dNone):"},{"line_number":83,"context_line":"        \"\"\"List all endpoint groups."}],"source_content_type":"text/x-python","patch_set":6,"id":"b812fc2e_1fac4a68","line":80,"updated":"2024-10-04 10:02:19.000000000","message":"neah, we need to split the controller same as done for credentials. It is impossible to differentiate request/body for a combined operation (and this method is invoked for both list and get)","commit_id":"435708549f0179253153aca094eb239bdb404cc6"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"6c4a593a8b3414fb098013f5c662cfd5b655a8e9","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        refs \u003d PROVIDERS.catalog_api.list_endpoint_groups(hints)"},{"line_number":78,"context_line":"        return self.wrap_collection(refs, hints\u003dhints)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @validation.request_query_schema(schema.endpoint_group_index_request_query)"},{"line_number":81,"context_line":"    @validation.response_body_schema(schema.endpoint_group_index_response_body)"},{"line_number":82,"context_line":"    def get(self, endpoint_group_id\u003dNone):"},{"line_number":83,"context_line":"        \"\"\"List all endpoint groups."}],"source_content_type":"text/x-python","patch_set":6,"id":"7abff2ad_b49a793f","line":80,"in_reply_to":"b812fc2e_1fac4a68","updated":"2024-10-23 20:24:45.000000000","message":"Done","commit_id":"435708549f0179253153aca094eb239bdb404cc6"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e4f49e78d1d162122bbd73281cd58df4e6f3f096","unresolved":true,"context_lines":[{"line_number":46,"context_line":"def _require_valid_filter(endpoint_group):"},{"line_number":47,"context_line":"    valid_filter_keys \u003d [\u0027service_id\u0027, \u0027region_id\u0027, \u0027interface\u0027]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    filters \u003d endpoint_group.get(\u0027filters\u0027)"},{"line_number":50,"context_line":"    for key in filters.keys():"},{"line_number":51,"context_line":"        if key not in valid_filter_keys:"},{"line_number":52,"context_line":"            raise exception.ValidationError("}],"source_content_type":"text/x-python","patch_set":12,"id":"359803bd_848d2054","line":49,"updated":"2024-10-21 15:43:01.000000000","message":"I think we should be doing `filters \u003d endpoint_group.get(\u0027filters\u0027, {})` to guarantee that the following `filters.keys` will not fail when filters are not passed at all","commit_id":"604fe8335ddf4f554d2d34a1fbd4f4399df81e43"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"6c4a593a8b3414fb098013f5c662cfd5b655a8e9","unresolved":false,"context_lines":[{"line_number":46,"context_line":"def _require_valid_filter(endpoint_group):"},{"line_number":47,"context_line":"    valid_filter_keys \u003d [\u0027service_id\u0027, \u0027region_id\u0027, \u0027interface\u0027]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    filters \u003d endpoint_group.get(\u0027filters\u0027)"},{"line_number":50,"context_line":"    for key in filters.keys():"},{"line_number":51,"context_line":"        if key not in valid_filter_keys:"},{"line_number":52,"context_line":"            raise exception.ValidationError("}],"source_content_type":"text/x-python","patch_set":12,"id":"1c768c8e_ed630439","line":49,"in_reply_to":"359803bd_848d2054","updated":"2024-10-23 20:24:45.000000000","message":"Done","commit_id":"604fe8335ddf4f554d2d34a1fbd4f4399df81e43"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e5677d14462236ea0f92e75dbbcafdccea40aeea","unresolved":true,"context_lines":[{"line_number":108,"context_line":"    member_key \u003d \u0027endpoint_group\u0027"},{"line_number":109,"context_line":"    api_prefix \u003d \u0027/OS-EP-FILTER\u0027"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @validation.request_query_schema(schema.endpoint_group_request_query)"},{"line_number":112,"context_line":"    @validation.response_body_schema(schema.endpoint_group_response_body)"},{"line_number":113,"context_line":"    def get(self, endpoint_group_id\u003dNone):"},{"line_number":114,"context_line":"        \"\"\"Get Endpoint Group"}],"source_content_type":"text/x-python","patch_set":14,"id":"1df293df_c80a311d","line":111,"updated":"2024-11-15 13:59:56.000000000","message":"no query params for show operation","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"679e662af7d5af6c8114d3a5c5a6fe085a15283c","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    member_key \u003d \u0027endpoint_group\u0027"},{"line_number":109,"context_line":"    api_prefix \u003d \u0027/OS-EP-FILTER\u0027"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @validation.request_query_schema(schema.endpoint_group_request_query)"},{"line_number":112,"context_line":"    @validation.response_body_schema(schema.endpoint_group_response_body)"},{"line_number":113,"context_line":"    def get(self, endpoint_group_id\u003dNone):"},{"line_number":114,"context_line":"        \"\"\"Get Endpoint Group"}],"source_content_type":"text/x-python","patch_set":14,"id":"9fbddc3b_8f4676ec","line":111,"in_reply_to":"1df293df_c80a311d","updated":"2024-11-26 19:40:26.000000000","message":"Done","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"}],"keystone/catalog/schema.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"8eb7f04f9dddaf2dacf031a7fe114ed48e93b7aa","unresolved":true,"context_lines":[{"line_number":91,"context_line":"        \"type\": \"string\","},{"line_number":92,"context_line":"        \"description\": \"The endpoint group description.\","},{"line_number":93,"context_line":"    },"},{"line_number":94,"context_line":"    \"filter\": {"},{"line_number":95,"context_line":"        \"type\": \"object\","},{"line_number":96,"context_line":"        \"description\": ("},{"line_number":97,"context_line":"            \"Describes the filtering performed by the endpoint group. \""}],"source_content_type":"text/x-python","patch_set":5,"id":"cdf552e9_15216c2e","line":94,"updated":"2024-09-27 15:39:37.000000000","message":"the property is named `filters`","commit_id":"334cf96155c7e79ce61d7eae3c9d09a195890c55"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"a3a07645281f8ef1cec962741482f7540d55e48f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        \"type\": \"string\","},{"line_number":92,"context_line":"        \"description\": \"The endpoint group description.\","},{"line_number":93,"context_line":"    },"},{"line_number":94,"context_line":"    \"filter\": {"},{"line_number":95,"context_line":"        \"type\": \"object\","},{"line_number":96,"context_line":"        \"description\": ("},{"line_number":97,"context_line":"            \"Describes the filtering performed by the endpoint group. \""}],"source_content_type":"text/x-python","patch_set":5,"id":"11c0bdd1_bc63fe6c","line":94,"in_reply_to":"cdf552e9_15216c2e","updated":"2024-10-03 16:38:53.000000000","message":"Done","commit_id":"334cf96155c7e79ce61d7eae3c9d09a195890c55"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"97cbcfcdd963dcbcd2ad3b3b7be363297a7a4e47","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        \"type\": \"string\","},{"line_number":92,"context_line":"        \"description\": \"The endpoint group description.\","},{"line_number":93,"context_line":"    },"},{"line_number":94,"context_line":"    \"filter\": {"},{"line_number":95,"context_line":"        \"type\": \"object\","},{"line_number":96,"context_line":"        \"description\": ("},{"line_number":97,"context_line":"            \"Describes the filtering performed by the endpoint group. \""}],"source_content_type":"text/x-python","patch_set":5,"id":"82b2ad5f_0cef6d03","line":94,"in_reply_to":"cdf552e9_15216c2e","updated":"2024-10-03 16:39:08.000000000","message":"Done","commit_id":"334cf96155c7e79ce61d7eae3c9d09a195890c55"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e4f49e78d1d162122bbd73281cd58df4e6f3f096","unresolved":true,"context_lines":[{"line_number":120,"context_line":"        \"links\": response_types.resource_links,"},{"line_number":121,"context_line":"        **_endpoint_group_properties,"},{"line_number":122,"context_line":"    },"},{"line_number":123,"context_line":"    \"additionalProperties\": True,"},{"line_number":124,"context_line":"}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"# Query parameters of the `/endpoint_groups` API"}],"source_content_type":"text/x-python","patch_set":12,"id":"13fa9298_aa7dd1c5","line":123,"updated":"2024-10-21 15:43:01.000000000","message":"what else can be returned here?","commit_id":"604fe8335ddf4f554d2d34a1fbd4f4399df81e43"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"6c4a593a8b3414fb098013f5c662cfd5b655a8e9","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \"links\": response_types.resource_links,"},{"line_number":121,"context_line":"        **_endpoint_group_properties,"},{"line_number":122,"context_line":"    },"},{"line_number":123,"context_line":"    \"additionalProperties\": True,"},{"line_number":124,"context_line":"}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"# Query parameters of the `/endpoint_groups` API"}],"source_content_type":"text/x-python","patch_set":12,"id":"21d1bdbf_932d6eeb","line":123,"in_reply_to":"13fa9298_aa7dd1c5","updated":"2024-10-23 20:24:45.000000000","message":"Good question, I can\u0027t remember why I set that to true.","commit_id":"604fe8335ddf4f554d2d34a1fbd4f4399df81e43"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"1e8447ff14099f8ec62dfd4c4942004fd7362ec4","unresolved":true,"context_lines":[{"line_number":120,"context_line":"        \"links\": response_types.resource_links,"},{"line_number":121,"context_line":"        **_endpoint_group_properties,"},{"line_number":122,"context_line":"    },"},{"line_number":123,"context_line":"    \"additionalProperties\": True,"},{"line_number":124,"context_line":"}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"# Query parameters of the `/endpoint_groups` API"}],"source_content_type":"text/x-python","patch_set":12,"id":"c8aed882_051ecfda","line":123,"in_reply_to":"21d1bdbf_932d6eeb","updated":"2024-10-24 19:10:59.000000000","message":"I see now why, same problem as described [here](https://review.opendev.org/c/openstack/keystone/+/930361/comment/1e4c4709_c38ca881/)","commit_id":"604fe8335ddf4f554d2d34a1fbd4f4399df81e43"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"1dfc63912872cb91fb81ec4be4eebb203eca5e58","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \"links\": response_types.resource_links,"},{"line_number":121,"context_line":"        **_endpoint_group_properties,"},{"line_number":122,"context_line":"    },"},{"line_number":123,"context_line":"    \"additionalProperties\": True,"},{"line_number":124,"context_line":"}"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"# Query parameters of the `/endpoint_groups` API"}],"source_content_type":"text/x-python","patch_set":12,"id":"03300652_5206a891","line":123,"in_reply_to":"c8aed882_051ecfda","updated":"2024-11-13 19:21:05.000000000","message":"Done","commit_id":"604fe8335ddf4f554d2d34a1fbd4f4399df81e43"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e4f49e78d1d162122bbd73281cd58df4e6f3f096","unresolved":true,"context_lines":[{"line_number":139,"context_line":"            \"items\": endpoint_group_schema,"},{"line_number":140,"context_line":"            \"description\": \"A list of endpoint group objects\","},{"line_number":141,"context_line":"        },"},{"line_number":142,"context_line":"        \"links\": response_types.links,"},{"line_number":143,"context_line":"    },"},{"line_number":144,"context_line":"    \"additionalProperties\": True,"},{"line_number":145,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":12,"id":"419154de_2413c30c","line":142,"updated":"2024-10-21 15:43:01.000000000","message":"there might be \"truncated\" field as well","commit_id":"604fe8335ddf4f554d2d34a1fbd4f4399df81e43"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"6c4a593a8b3414fb098013f5c662cfd5b655a8e9","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            \"items\": endpoint_group_schema,"},{"line_number":140,"context_line":"            \"description\": \"A list of endpoint group objects\","},{"line_number":141,"context_line":"        },"},{"line_number":142,"context_line":"        \"links\": response_types.links,"},{"line_number":143,"context_line":"    },"},{"line_number":144,"context_line":"    \"additionalProperties\": True,"},{"line_number":145,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":12,"id":"8824874d_531095de","line":142,"in_reply_to":"419154de_2413c30c","updated":"2024-10-23 20:24:45.000000000","message":"Done","commit_id":"604fe8335ddf4f554d2d34a1fbd4f4399df81e43"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e5677d14462236ea0f92e75dbbcafdccea40aeea","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    },"},{"line_number":95,"context_line":"    \"filters\": {"},{"line_number":96,"context_line":"        \"type\": \"object\","},{"line_number":97,"context_line":"        \"description\": ("},{"line_number":98,"context_line":"            \"Describes the filtering performed by the endpoint group. \""},{"line_number":99,"context_line":"            \"The filter used must be an endpoint property, such as \""},{"line_number":100,"context_line":"            \"interface, service_id, region, and enabled. Note that \""}],"source_content_type":"text/x-python","patch_set":14,"id":"31a45072_90e2af39","line":97,"updated":"2024-11-15 13:59:56.000000000","message":"since we know which filters are expected we may describe the object precisely","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"679e662af7d5af6c8114d3a5c5a6fe085a15283c","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    },"},{"line_number":95,"context_line":"    \"filters\": {"},{"line_number":96,"context_line":"        \"type\": \"object\","},{"line_number":97,"context_line":"        \"description\": ("},{"line_number":98,"context_line":"            \"Describes the filtering performed by the endpoint group. \""},{"line_number":99,"context_line":"            \"The filter used must be an endpoint property, such as \""},{"line_number":100,"context_line":"            \"interface, service_id, region, and enabled. Note that \""}],"source_content_type":"text/x-python","patch_set":14,"id":"8496d3ff_b4b4f827","line":97,"in_reply_to":"31a45072_90e2af39","updated":"2024-11-26 19:40:26.000000000","message":"Done","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e5677d14462236ea0f92e75dbbcafdccea40aeea","unresolved":true,"context_lines":[{"line_number":152,"context_line":"}"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"# Query parameters of the `/endpoint_groups/{endpoint_group_id}` API"},{"line_number":155,"context_line":"endpoint_group_request_query: dict[str, Any] \u003d {"},{"line_number":156,"context_line":"    \"type\": \"object\","},{"line_number":157,"context_line":"    \"properties\": {},"},{"line_number":158,"context_line":"    \"additionalProperties\": False,"}],"source_content_type":"text/x-python","patch_set":14,"id":"8298dbe9_0a22a3a2","line":155,"updated":"2024-11-15 13:59:56.000000000","message":"this should not exist at all since there are no query params supported by the show operation","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"679e662af7d5af6c8114d3a5c5a6fe085a15283c","unresolved":false,"context_lines":[{"line_number":152,"context_line":"}"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"# Query parameters of the `/endpoint_groups/{endpoint_group_id}` API"},{"line_number":155,"context_line":"endpoint_group_request_query: dict[str, Any] \u003d {"},{"line_number":156,"context_line":"    \"type\": \"object\","},{"line_number":157,"context_line":"    \"properties\": {},"},{"line_number":158,"context_line":"    \"additionalProperties\": False,"}],"source_content_type":"text/x-python","patch_set":14,"id":"c1cbce7b_3951dfc3","line":155,"in_reply_to":"8298dbe9_0a22a3a2","updated":"2024-11-26 19:40:26.000000000","message":"Done","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e5677d14462236ea0f92e75dbbcafdccea40aeea","unresolved":true,"context_lines":[{"line_number":191,"context_line":"            \"type\": \"object\","},{"line_number":192,"context_line":"            \"properties\": _endpoint_group_properties,"},{"line_number":193,"context_line":"            \"minProperties\": 1,"},{"line_number":194,"context_line":"            \"additionalProperties\": True,"},{"line_number":195,"context_line":"        },"},{"line_number":196,"context_line":"    },"},{"line_number":197,"context_line":"    \"required\": [\"endpoint_group\"],"}],"source_content_type":"text/x-python","patch_set":14,"id":"14a75241_20fc7e25","line":194,"updated":"2024-11-15 13:59:56.000000000","message":"actually additionalProps should be false. If some tests use unexpected things please at least comment the reason. It should be false","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"679e662af7d5af6c8114d3a5c5a6fe085a15283c","unresolved":false,"context_lines":[{"line_number":191,"context_line":"            \"type\": \"object\","},{"line_number":192,"context_line":"            \"properties\": _endpoint_group_properties,"},{"line_number":193,"context_line":"            \"minProperties\": 1,"},{"line_number":194,"context_line":"            \"additionalProperties\": True,"},{"line_number":195,"context_line":"        },"},{"line_number":196,"context_line":"    },"},{"line_number":197,"context_line":"    \"required\": [\"endpoint_group\"],"}],"source_content_type":"text/x-python","patch_set":14,"id":"6cf93441_8c1f672f","line":194,"in_reply_to":"14a75241_20fc7e25","updated":"2024-11-26 19:40:26.000000000","message":"Done","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e5677d14462236ea0f92e75dbbcafdccea40aeea","unresolved":true,"context_lines":[{"line_number":194,"context_line":"            \"additionalProperties\": True,"},{"line_number":195,"context_line":"        },"},{"line_number":196,"context_line":"    },"},{"line_number":197,"context_line":"    \"required\": [\"endpoint_group\"],"},{"line_number":198,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":14,"id":"e155e34c_693917a1","line":197,"updated":"2024-11-15 13:59:56.000000000","message":"additionalProps - false","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"679e662af7d5af6c8114d3a5c5a6fe085a15283c","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            \"additionalProperties\": True,"},{"line_number":195,"context_line":"        },"},{"line_number":196,"context_line":"    },"},{"line_number":197,"context_line":"    \"required\": [\"endpoint_group\"],"},{"line_number":198,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":14,"id":"108e82c5_e8b34a28","line":197,"in_reply_to":"e155e34c_693917a1","updated":"2024-11-26 19:40:26.000000000","message":"Done","commit_id":"9c4b2144a50ac45a1789791cbd2cb458f5d1ba7a"}],"keystone/tests/unit/test_v3_catalog.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"25ee441fec4cd1900ba0852969576daccc66f9eb","unresolved":true,"context_lines":[{"line_number":284,"context_line":"        self.assertValidServiceResponse(r, ref)"},{"line_number":285,"context_line":"        self.assertIs(True, r.result[\u0027service\u0027][\u0027enabled\u0027])"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def test_create_service_enabled_str_true(self):"},{"line_number":288,"context_line":"        \"\"\"Call ``POST /services``.\"\"\""},{"line_number":289,"context_line":"        ref \u003d unit.new_service_ref(enabled\u003d\u0027True\u0027)"},{"line_number":290,"context_line":"        self.post("}],"source_content_type":"text/x-python","patch_set":18,"id":"e9cf63b2_4b498192","side":"PARENT","line":287,"updated":"2025-02-05 14:52:02.000000000","message":"Those tests are dropped since in general we want to have consistency in the API. Certain tests explicitly validate that a string `True` is accepted, so we will also do this for services.","commit_id":"6965c2a24bdf8bc2f5adb7ff559148cffe5b2694"}]}
