)]}'
{"nova/objects/resource_provider.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"768821ed2e695cb55d89a5a5b788eae1104a17b9","unresolved":false,"context_lines":[{"line_number":499,"context_line":"    \"\"\"Adds trait associations to the provider with the supplied ID."},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"    :param conn: DB connection to use."},{"line_number":502,"context_line":"    :param rp_id: Internal ID of the reesource provider on which to add"},{"line_number":503,"context_line":"                  trait associations"},{"line_number":504,"context_line":"    :param to_add: set() containing internal trait IDs for traits to"},{"line_number":505,"context_line":"                      add"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_8844101d","line":502,"range":{"start_line":502,"start_character":39,"end_line":502,"end_character":40},"updated":"2017-10-30 14:59:14.000000000","message":"nit","commit_id":"15bdb0559e70fbfe35ca0cc7b8789617e6f9d027"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"768821ed2e695cb55d89a5a5b788eae1104a17b9","unresolved":false,"context_lines":[{"line_number":523,"context_line":"    set() of internal trait IDs."},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    :param conn: DB connection to use."},{"line_number":526,"context_line":"    :param rp_id: Internal ID of the reesource provider from which to delete"},{"line_number":527,"context_line":"                  trait associations"},{"line_number":528,"context_line":"    :param to_delete: set() containing internal trait IDs for traits to"},{"line_number":529,"context_line":"                      delete"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_48461824","line":526,"range":{"start_line":526,"start_character":39,"end_line":526,"end_character":40},"updated":"2017-10-30 14:59:14.000000000","message":"nit","commit_id":"15bdb0559e70fbfe35ca0cc7b8789617e6f9d027"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"90ac08677b808ab6f5ad74ef095e8777a09b1d8e","unresolved":false,"context_lines":[{"line_number":550,"context_line":"    # Get the internal IDs of our existing traits"},{"line_number":551,"context_line":"    existing_traits \u003d _get_traits_by_provider_id(context, rp.id)"},{"line_number":552,"context_line":"    existing_traits \u003d set(rec[\u0027id\u0027] for rec in existing_traits)"},{"line_number":553,"context_line":"    want_traits \u003d set(trait.id for trait in traits)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    to_add \u003d want_traits - existing_traits"},{"line_number":556,"context_line":"    to_delete \u003d existing_traits - want_traits"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4b6375_99aea096","line":553,"range":{"start_line":553,"start_character":18,"end_line":553,"end_character":51},"updated":"2017-10-30 16:31:19.000000000","message":"This could be dangerous if we\u0027re ever passed a list of Trait objects that don\u0027t yet exist in the database, constructed by the caller. Looking at where this method is called from though, I don\u0027t see that as an issue today with our existing callers.","commit_id":"15bdb0559e70fbfe35ca0cc7b8789617e6f9d027"}]}
