)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"412fd154eef6c3ae019cc590dd61cadd838973a3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Burt Holzman \u003cburt@fnal.gov\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-07-04 00:22:57 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change filters on getting instance metadata to OR instead of AND"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"From the EC2 API on DescribeTags:"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAPn%2F%2FQ%2B8%3D","line":7,"updated":"2013-07-05 17:28:16.000000000","message":"Shouldn\u0027t this read \"to AND instead of OR\"?","commit_id":"6697acc00a93178d880fded3b06335891cf3ab1b"},{"author":{"_account_id":6661,"name":"Burt Holzman","email":"holzman@gmail.com","username":"burt"},"change_message_id":"9d4146792dc7e076c06633cac0746d02b91b8ba3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Burt Holzman \u003cburt@fnal.gov\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-07-04 00:22:57 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change filters on getting instance metadata to OR instead of AND"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"From the EC2 API on DescribeTags:"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAPn%2F%2FQx4%3D","line":7,"in_reply_to":"AAAAPn%2F%2FQ%2B8%3D","updated":"2013-07-05 19:01:05.000000000","message":"Yes, yes it should!","commit_id":"6697acc00a93178d880fded3b06335891cf3ab1b"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2e40edb1620e8562c0480cc9caef86d1e3cb0c74","unresolved":false,"context_lines":[{"line_number":19,"context_line":"The phrase \"only if it matches all the filters\" means we should AND"},{"line_number":20,"context_line":"search filters together."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Fixes bug #1190845"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: Icc0a7df1f93da803bbb2d7c9d18a4ce42bbe6720"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAP3%2F%2F%2F88%3D","line":22,"updated":"2013-07-06 16:46:06.000000000","message":"I think that this require a DocImpact","commit_id":"3f2b5cc92b3236055a69803e82bd591ebf7e3fb7"},{"author":{"_account_id":6661,"name":"Burt Holzman","email":"holzman@gmail.com","username":"burt"},"change_message_id":"80c22c4870b3836a86b71b86dfd49fe388c377a5","unresolved":false,"context_lines":[{"line_number":19,"context_line":"The phrase \"only if it matches all the filters\" means we should AND"},{"line_number":20,"context_line":"search filters together."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Fixes bug #1190845"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: Icc0a7df1f93da803bbb2d7c9d18a4ce42bbe6720"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAP3%2F%2F%2F0s%3D","line":22,"in_reply_to":"AAAAP3%2F%2F%2F88%3D","updated":"2013-07-06 18:23:25.000000000","message":"Really? The tags API was added in 55a04a4b, so it hasn\u0027t made it into a release. I\u0027ll add DocImpact though.","commit_id":"3f2b5cc92b3236055a69803e82bd591ebf7e3fb7"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":6624,"name":"Stephen Gran","email":"sgran@debian.org","username":"sgran"},"change_message_id":"6f4e7b4f58a847cbfdd2575099d5c6947f0456b7","unresolved":false,"context_lines":[{"line_number":4166,"context_line":"                or_query \u003d or_(or_query, subq)"},{"line_number":4167,"context_line":""},{"line_number":4168,"context_line":"    if or_query is not None:"},{"line_number":4169,"context_line":"        query \u003d query.filter(or_query)"},{"line_number":4170,"context_line":""},{"line_number":4171,"context_line":"    return query"},{"line_number":4172,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2F%2BNY%3D","side":"PARENT","line":4169,"updated":"2013-07-18 08:18:08.000000000","message":"I think that you are correct that the initial implementation of that was buggy - \"select uuids where key \u003d \u0027foo\u0027 OR value \u003d \u0027bar\u0027\" is too simple.\n\nI think the correct approach is something like:\n\nSELECT m.uuid\n        FROM metadata m\n        WHERE m.key \u003d \u0027purpose\u0027 AND\n        m.uuid IN (\n                SELECT n.uuid\n                        FROM metadata n\n                        WHERE n.value \u003d \u0027X\u0027);\n\nWhich seems to be what you are arriving at.  If I\u0027m reading that correctly, please proceed.","commit_id":"9d02587d3c97a0a5e30d02270476dd207c70f0e2"},{"author":{"_account_id":6624,"name":"Stephen Gran","email":"sgran@debian.org","username":"sgran"},"change_message_id":"f1f9bd8b66115806d515b2cc8e6187c5e5ef200d","unresolved":false,"context_lines":[{"line_number":4166,"context_line":"                or_query \u003d or_(or_query, subq)"},{"line_number":4167,"context_line":""},{"line_number":4168,"context_line":"    if or_query is not None:"},{"line_number":4169,"context_line":"        query \u003d query.filter(or_query)"},{"line_number":4170,"context_line":""},{"line_number":4171,"context_line":"    return query"},{"line_number":4172,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2F9ts%3D","side":"PARENT","line":4169,"in_reply_to":"AAAAQn%2F%2F%2BLI%3D","updated":"2013-07-18 12:04:20.000000000","message":"1) No, depending on the query, all of the filters must pass.\n\n2) Sure, I meant instance_uuid.\n\n3) No, that\u0027s not the same. \n\nSelect m.uuid from medatada m where m.key \u003d \u0027purpose\u0027 and value \u003d \u0027X\u0027 matches one row that has key set to \u0027purpose\u0027 and value set to \u0027X\u0027.  The query I posted matches one uuid that has a row where key is set to \u0027purpose\u0027 regardless of the value, and a row where value is set to \u0027X\u0027, regardless of the purpose.","commit_id":"9d02587d3c97a0a5e30d02270476dd207c70f0e2"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a12eb6c267f9a51f565cfbbeb4724915edbcfd5d","unresolved":false,"context_lines":[{"line_number":4166,"context_line":"                or_query \u003d or_(or_query, subq)"},{"line_number":4167,"context_line":""},{"line_number":4168,"context_line":"    if or_query is not None:"},{"line_number":4169,"context_line":"        query \u003d query.filter(or_query)"},{"line_number":4170,"context_line":""},{"line_number":4171,"context_line":"    return query"},{"line_number":4172,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2F%2BLI%3D","side":"PARENT","line":4169,"in_reply_to":"AAAAQn%2F%2F%2BNY%3D","updated":"2013-07-18 08:34:27.000000000","message":"1) Bugs was not in that sphere: \nWe are able to put multiple filters e.g.{\u0027key1\u0027: [\u0027val1\u0027]}, {\u0027key2\u0027: [\u0027val2\u0027]}, and by API we should check that at least one of this filters pass. \n\n2) Something in your query has bug, cause in instance_metadatas table we have only instance_uuid column\n\n3) Your query is awful. It is the same as\nSelect m.uuid from medatada m where m.key \u003d \u0027purpose\u0027 and value \u003d \u0027X\u0027 \n\nbut with terrible performance, because for example in mysql subqery in this will be not optimized, and will be called N times.","commit_id":"9d02587d3c97a0a5e30d02270476dd207c70f0e2"}],"nova/tests/api/ec2/test_cloud.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"412fd154eef6c3ae019cc590dd61cadd838973a3","unresolved":false,"context_lines":[{"line_number":2640,"context_line":"                         \u0027value\u0027: [\u0027baz\u0027]},"},{"line_number":2641,"context_line":"                        {\u0027name\u0027: \u0027value\u0027,"},{"line_number":2642,"context_line":"                         \u0027value\u0027: [\u0027quux\u0027]}])[\u0027tagSet\u0027]"},{"line_number":2643,"context_line":"        self.assertEqual(tags, [inst2_key_baz])"},{"line_number":2644,"context_line":""},{"line_number":2645,"context_line":"        # And we should fail on supported resource types"},{"line_number":2646,"context_line":"        self.assertRaises(exception.EC2APIError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FQ%2BM%3D","line":2643,"updated":"2013-07-05 17:28:16.000000000","message":"I see why you had to fix this up because it fails before when you change OR to AND, but can you add to the test where an empty set is returned if the match isn\u0027t hit - based on this in the commit message: \" The response includes information for a tag only if it matches all the filters that you specified. If there\u0027s no match, no special message is returned, the response is simply empty.\"","commit_id":"6697acc00a93178d880fded3b06335891cf3ab1b"},{"author":{"_account_id":6661,"name":"Burt Holzman","email":"holzman@gmail.com","username":"burt"},"change_message_id":"9d4146792dc7e076c06633cac0746d02b91b8ba3","unresolved":false,"context_lines":[{"line_number":2640,"context_line":"                         \u0027value\u0027: [\u0027baz\u0027]},"},{"line_number":2641,"context_line":"                        {\u0027name\u0027: \u0027value\u0027,"},{"line_number":2642,"context_line":"                         \u0027value\u0027: [\u0027quux\u0027]}])[\u0027tagSet\u0027]"},{"line_number":2643,"context_line":"        self.assertEqual(tags, [inst2_key_baz])"},{"line_number":2644,"context_line":""},{"line_number":2645,"context_line":"        # And we should fail on supported resource types"},{"line_number":2646,"context_line":"        self.assertRaises(exception.EC2APIError,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FQxw%3D","line":2643,"in_reply_to":"AAAAPn%2F%2FQ%2BM%3D","updated":"2013-07-05 19:01:05.000000000","message":"Makes sense, will add.","commit_id":"6697acc00a93178d880fded3b06335891cf3ab1b"}]}
