)]}'
{"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7cd6a0d6d6fa16901e7518d811fd2b535c90f9c0","unresolved":false,"context_lines":[{"line_number":5671,"context_line":"                    key \u003d meta_ref.key"},{"line_number":5672,"context_line":"                    # Make sure key is actually in our original list,"},{"line_number":5673,"context_line":"                    # some databases have case insensitive \"IN\" clauses"},{"line_number":5674,"context_line":"                    if key in all_keys:"},{"line_number":5675,"context_line":"                        meta_ref.update({\"value\": metadata[key]})"},{"line_number":5676,"context_line":"                        already_existing_keys.add(key)"},{"line_number":5677,"context_line":"                    # TODO(auggy): what should we do if key not in all_keys?"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_f36836f7","line":5674,"updated":"2016-02-24 11:39:29.000000000","message":"so here key \u003d \u0027abc\u0027, all_keys \u003d (\u0027ABC\u0027,) which means already_existing_keys is empty.","commit_id":"5241aebbe30d765c000d7ad126f09897693f3a7c"},{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"8e07d803cb8a3af0e2073fdebce5e810acc69be9","unresolved":false,"context_lines":[{"line_number":5674,"context_line":"                    if key in all_keys:"},{"line_number":5675,"context_line":"                        meta_ref.update({\"value\": metadata[key]})"},{"line_number":5676,"context_line":"                        already_existing_keys.add(key)"},{"line_number":5677,"context_line":"                    # TODO(auggy): what should we do if key not in all_keys?"},{"line_number":5678,"context_line":""},{"line_number":5679,"context_line":"            new_entries \u003d []"},{"line_number":5680,"context_line":"            for key, value in metadata.items():"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_0c52c666","line":5677,"updated":"2016-02-24 17:05:34.000000000","message":"by \"what should we do\" I wondered if we should log anything","commit_id":"5241aebbe30d765c000d7ad126f09897693f3a7c"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7cd6a0d6d6fa16901e7518d811fd2b535c90f9c0","unresolved":false,"context_lines":[{"line_number":5680,"context_line":"            for key, value in metadata.items():"},{"line_number":5681,"context_line":"                if key in already_existing_keys:"},{"line_number":5682,"context_line":"                    continue"},{"line_number":5683,"context_line":"                new_entries.append({\"key\": key,"},{"line_number":5684,"context_line":"                                    \"value\": value,"},{"line_number":5685,"context_line":"                                    \"aggregate_id\": aggregate_id})"},{"line_number":5686,"context_line":"            if new_entries:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_930f2a36","line":5683,"updated":"2016-02-24 11:39:29.000000000","message":"which means we get an entry in new_entries that\u0027s {\u0027key\u0027: \u0027ABC\u0027, \u0027value\u0027: 2, \u0027aggregate_id\u0027: 1}","commit_id":"5241aebbe30d765c000d7ad126f09897693f3a7c"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7cd6a0d6d6fa16901e7518d811fd2b535c90f9c0","unresolved":false,"context_lines":[{"line_number":5686,"context_line":"            if new_entries:"},{"line_number":5687,"context_line":"                context.session.execute("},{"line_number":5688,"context_line":"                    models.AggregateMetadata.__table__.insert(),"},{"line_number":5689,"context_line":"                    new_entries)"},{"line_number":5690,"context_line":""},{"line_number":5691,"context_line":"            return metadata"},{"line_number":5692,"context_line":"        except db_exc.DBDuplicateEntry:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_fe791d94","line":5689,"updated":"2016-02-24 11:39:29.000000000","message":"Then this low level insert trips over a unique constraint because mysql believes at a fundamental level that ABC \u003d abc - https://github.com/openstack/nova/blob/128068182c5339595fc96ea387b09e08ef8b81a8/nova/tests/functional/api/client.py#L203","commit_id":"5241aebbe30d765c000d7ad126f09897693f3a7c"},{"author":{"_account_id":17714,"name":"Augustina Ragwitz","email":"auggy@cpan.org","username":"mmmpork"},"change_message_id":"8e07d803cb8a3af0e2073fdebce5e810acc69be9","unresolved":false,"context_lines":[{"line_number":5686,"context_line":"            if new_entries:"},{"line_number":5687,"context_line":"                context.session.execute("},{"line_number":5688,"context_line":"                    models.AggregateMetadata.__table__.insert(),"},{"line_number":5689,"context_line":"                    new_entries)"},{"line_number":5690,"context_line":""},{"line_number":5691,"context_line":"            return metadata"},{"line_number":5692,"context_line":"        except db_exc.DBDuplicateEntry:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_8c6896f6","line":5689,"in_reply_to":"bae84128_fe791d94","updated":"2016-02-24 17:05:34.000000000","message":"OK weird, because when I tested this from the mysql cli I was able to create 2 different entries just fine for ABC and abc, so I assumed it wasn\u0027t MySQL but something talking to it. Yargh.","commit_id":"5241aebbe30d765c000d7ad126f09897693f3a7c"}]}
