)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"51533bf283c95d7d490dc18707366a0203b5108f","unresolved":false,"context_lines":[{"line_number":632,"context_line":"    cn_tbl \u003d sa.alias(models.ComputeNode.__table__, name\u003d\u0027cn\u0027)"},{"line_number":633,"context_line":"    select \u003d sa.select([cn_tbl])"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    if context.read_deleted \u003d\u003d \"no\":"},{"line_number":636,"context_line":"        select \u003d select.where(cn_tbl.c.deleted \u003d\u003d 0)"},{"line_number":637,"context_line":"    if \"compute_id\" in filters:"},{"line_number":638,"context_line":"        select \u003d select.where(cn_tbl.c.id \u003d\u003d filters[\"compute_id\"])"},{"line_number":639,"context_line":"    if \"service_id\" in filters:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_49cf0eb0","line":636,"range":{"start_line":635,"start_character":4,"end_line":636,"end_character":52},"updated":"2017-11-14 09:21:55.000000000","message":"seems we do have a way to avoid read delete here...","commit_id":"1afb8a58fe547e4eebde558dbb6fa7d079994254"},{"author":{"_account_id":6737,"name":"Edward Hope-Morley","email":"edward.hope-morley@canonical.com","username":"hopem"},"change_message_id":"bc442b704d23d3f56f1234c58a5c85d62e91df69","unresolved":false,"context_lines":[{"line_number":632,"context_line":"    cn_tbl \u003d sa.alias(models.ComputeNode.__table__, name\u003d\u0027cn\u0027)"},{"line_number":633,"context_line":"    select \u003d sa.select([cn_tbl])"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    if context.read_deleted \u003d\u003d \"no\":"},{"line_number":636,"context_line":"        select \u003d select.where(cn_tbl.c.deleted \u003d\u003d 0)"},{"line_number":637,"context_line":"    if \"compute_id\" in filters:"},{"line_number":638,"context_line":"        select \u003d select.where(cn_tbl.c.id \u003d\u003d filters[\"compute_id\"])"},{"line_number":639,"context_line":"    if \"service_id\" in filters:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_1f6dc431","line":636,"range":{"start_line":635,"start_character":4,"end_line":636,"end_character":52},"in_reply_to":"1f485f77_49cf0eb0","updated":"2017-11-14 11:07:04.000000000","message":"Yes we do but only on one side of the join (in the compute_nodes table). The problem is that there is a \u0027deleted\u0027 column in both tables but only one of them is checked, so when you have records in both tables with the same hostname the join still matches those from services regardless of whether they have deleted set or not.","commit_id":"1afb8a58fe547e4eebde558dbb6fa7d079994254"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"51533bf283c95d7d490dc18707366a0203b5108f","unresolved":false,"context_lines":[{"line_number":799,"context_line":"                inner_sel.c.host \u003d\u003d services_tbl.c.host,"},{"line_number":800,"context_line":"                inner_sel.c.service_id \u003d\u003d services_tbl.c.id"},{"line_number":801,"context_line":"            ),"},{"line_number":802,"context_line":"            inner_sel.c.deleted \u003d\u003d 0,"},{"line_number":803,"context_line":"            services_tbl.c.disabled \u003d\u003d false(),"},{"line_number":804,"context_line":"            services_tbl.c.binary \u003d\u003d \u0027nova-compute\u0027,"},{"line_number":805,"context_line":"            services_tbl.c.deleted \u003d\u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_c9bade08","line":802,"range":{"start_line":802,"start_character":12,"end_line":802,"end_character":37},"updated":"2017-11-14 09:21:55.000000000","message":"can we add some test cases for the case we encountered?","commit_id":"1afb8a58fe547e4eebde558dbb6fa7d079994254"},{"author":{"_account_id":6737,"name":"Edward Hope-Morley","email":"edward.hope-morley@canonical.com","username":"hopem"},"change_message_id":"bc442b704d23d3f56f1234c58a5c85d62e91df69","unresolved":false,"context_lines":[{"line_number":799,"context_line":"                inner_sel.c.host \u003d\u003d services_tbl.c.host,"},{"line_number":800,"context_line":"                inner_sel.c.service_id \u003d\u003d services_tbl.c.id"},{"line_number":801,"context_line":"            ),"},{"line_number":802,"context_line":"            inner_sel.c.deleted \u003d\u003d 0,"},{"line_number":803,"context_line":"            services_tbl.c.disabled \u003d\u003d false(),"},{"line_number":804,"context_line":"            services_tbl.c.binary \u003d\u003d \u0027nova-compute\u0027,"},{"line_number":805,"context_line":"            services_tbl.c.deleted \u003d\u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f485f77_9f62d43d","line":802,"range":{"start_line":802,"start_character":12,"end_line":802,"end_character":37},"in_reply_to":"1f485f77_c9bade08","updated":"2017-11-14 11:07:04.000000000","message":"yes i will add some.","commit_id":"1afb8a58fe547e4eebde558dbb6fa7d079994254"}]}
