)]}'
{"neutron/db/servicetype/models.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"631fd845513ab9911c3efab196cebc0c311848a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5a8bc5a2_2d64e247","updated":"2016-09-28 07:25:24.000000000","message":"neutron/db/models/servicetype.py?","commit_id":"87952b566890fc08070a53439e4480a0ae75115c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c203776104e974ba405b364328788aeb29b71bf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3a98d1f4_744b1e2c","in_reply_to":"5a8bc5a2_2d64e247","updated":"2016-09-28 16:44:24.000000000","message":"Done","commit_id":"87952b566890fc08070a53439e4480a0ae75115c"}],"neutron/db/servicetype_db.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"631fd845513ab9911c3efab196cebc0c311848a6","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def get_provider_names_by_resource_ids(self, context, resource_ids):"},{"line_number":72,"context_line":"        result \u003d {}"},{"line_number":73,"context_line":"        for resource_id in resource_ids:"},{"line_number":74,"context_line":"            obj \u003d obj_servicetype.ProviderResourceAssociation.\\"},{"line_number":75,"context_line":"                get_object(context, resource_id\u003dresource_id)"},{"line_number":76,"context_line":"            if obj:"},{"line_number":77,"context_line":"                result[resource_id] \u003d obj.provider_name"},{"line_number":78,"context_line":"        return result"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def add_resource_association(self, context, service_type, provider_name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a8bc5a2_28d4d045","line":77,"range":{"start_line":73,"start_character":8,"end_line":77,"end_character":55},"updated":"2016-09-28 07:25:24.000000000","message":"I wonder if we can do this by calling get_objects():\n\n\nfilters \u003d {\u0027resource_id\u0027: resource_ids}\nobjs \u003d obj_servicetype.ProviderResourceAssociation(context, **filters)\nreturn {rec.resource_id: rec.provider_name for rec in objs}","commit_id":"87952b566890fc08070a53439e4480a0ae75115c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c203776104e974ba405b364328788aeb29b71bf8","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def get_provider_names_by_resource_ids(self, context, resource_ids):"},{"line_number":72,"context_line":"        result \u003d {}"},{"line_number":73,"context_line":"        for resource_id in resource_ids:"},{"line_number":74,"context_line":"            obj \u003d obj_servicetype.ProviderResourceAssociation.\\"},{"line_number":75,"context_line":"                get_object(context, resource_id\u003dresource_id)"},{"line_number":76,"context_line":"            if obj:"},{"line_number":77,"context_line":"                result[resource_id] \u003d obj.provider_name"},{"line_number":78,"context_line":"        return result"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def add_resource_association(self, context, service_type, provider_name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a98d1f4_54cf02b0","line":77,"range":{"start_line":73,"start_character":8,"end_line":77,"end_character":55},"in_reply_to":"5a8bc5a2_28d4d045","updated":"2016-09-28 16:44:24.000000000","message":"It works.  I\u0027m going to include it in next patch, thanks Artur.","commit_id":"87952b566890fc08070a53439e4480a0ae75115c"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"631fd845513ab9911c3efab196cebc0c311848a6","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    def del_resource_associations(self, context, resource_ids):"},{"line_number":105,"context_line":"        if not resource_ids:"},{"line_number":106,"context_line":"            return"},{"line_number":107,"context_line":"        for resource_id in resource_ids:"},{"line_number":108,"context_line":"            obj \u003d obj_servicetype.ProviderResourceAssociation.\\"},{"line_number":109,"context_line":"                get_object(context, resource_id\u003dresource_id)"},{"line_number":110,"context_line":"            obj.delete()"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a8bc5a2_082b9434","line":110,"range":{"start_line":107,"start_character":8,"end_line":110,"end_character":24},"updated":"2016-09-28 07:25:24.000000000","message":"similar approach that in line 73-78:\n\nobjs \u003d obj_servicetype.ProviderResourceAssociation.get_objects(context, **{\u0027resource\u0027: resource_ids})\nfor obj in objs:\n    obj.delete()","commit_id":"87952b566890fc08070a53439e4480a0ae75115c"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9798cc98a08ca044b7c3a0a2c404062796ae14bc","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def get_provider_names_by_resource_ids(self, context, resource_ids):"},{"line_number":77,"context_line":"        filters \u003d {\u0027resource_id\u0027: resource_ids}"},{"line_number":78,"context_line":"        objs \u003d obj_servicetype.ProviderResourceAssociation(context, **filters)"},{"line_number":79,"context_line":"        return {rec.resource_id: rec.provider_name for rec in objs}"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def add_resource_association(self, context, service_type, provider_name,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_c94b6d2a","line":78,"updated":"2016-09-28 22:40:43.000000000","message":"don\u0027t you need to do instead:\n\nobjs \u003d obj_servicetype.ProviderResourceAssociation.get_objects(context, **filters)","commit_id":"5086c4b308815bad78885bb88250822a55698116"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"18abe6bc9952c0f0169145cceb119fb8157624ab","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def get_provider_names_by_resource_ids(self, context, resource_ids):"},{"line_number":77,"context_line":"        filters \u003d {\u0027resource_id\u0027: resource_ids}"},{"line_number":78,"context_line":"        objs \u003d obj_servicetype.ProviderResourceAssociation(context, **filters)"},{"line_number":79,"context_line":"        return {rec.resource_id: rec.provider_name for rec in objs}"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def add_resource_association(self, context, service_type, provider_name,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a98d1f4_2918511d","line":78,"in_reply_to":"3a98d1f4_c94b6d2a","updated":"2016-09-28 22:47:24.000000000","message":"falce palm hahaha, thanks","commit_id":"5086c4b308815bad78885bb88250822a55698116"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"4e2e429d1cd81f8b2016ab0542d4971ceb0f84fe","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.services import provider_configuration as pconf"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"_deprecate._moved_global(\u0027ProviderResourceAssociation\u0027, new_module\u003dst_model)"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_93ba5422","line":26,"updated":"2016-10-05 15:47:30.000000000","message":"unnecessary","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4a28b443c1f5d8e077b22054f91b138396e21a59","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from neutron.services import provider_configuration as pconf"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"_deprecate._moved_global(\u0027ProviderResourceAssociation\u0027, new_module\u003dst_model)"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_e9f45b88","line":26,"in_reply_to":"1a95cdbc_93ba5422","updated":"2016-10-06 14:13:15.000000000","message":"Done","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"4e2e429d1cd81f8b2016ab0542d4971ceb0f84fe","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def get_provider_names_by_resource_ids(self, context, resource_ids):"},{"line_number":77,"context_line":"        objs \u003d obj_servicetype.ProviderResourceAssociation.get_objects("},{"line_number":78,"context_line":"            context, **{\u0027resource_id\u0027: resource_ids})"},{"line_number":79,"context_line":"        return {rec.resource_id: rec.provider_name for rec in objs}"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def add_resource_association(self, context, service_type, provider_name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_7f1d8c72","line":78,"range":{"start_line":78,"start_character":21,"end_line":78,"end_character":52},"updated":"2016-10-05 15:47:30.000000000","message":"seems to better to just do resource_id\u003dresource_ids","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4a28b443c1f5d8e077b22054f91b138396e21a59","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def get_provider_names_by_resource_ids(self, context, resource_ids):"},{"line_number":77,"context_line":"        objs \u003d obj_servicetype.ProviderResourceAssociation.get_objects("},{"line_number":78,"context_line":"            context, **{\u0027resource_id\u0027: resource_ids})"},{"line_number":79,"context_line":"        return {rec.resource_id: rec.provider_name for rec in objs}"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def add_resource_association(self, context, service_type, provider_name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_49138fb8","line":78,"range":{"start_line":78,"start_character":21,"end_line":78,"end_character":52},"in_reply_to":"1a95cdbc_7f1d8c72","updated":"2016-10-06 14:13:15.000000000","message":"Done","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"4e2e429d1cd81f8b2016ab0542d4971ceb0f84fe","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        if not resource_ids:"},{"line_number":107,"context_line":"            return"},{"line_number":108,"context_line":"        objs \u003d obj_servicetype.ProviderResourceAssociation.get_objects("},{"line_number":109,"context_line":"            context, **{\u0027resource_id\u0027: resource_ids})"},{"line_number":110,"context_line":"        for obj in objs:"},{"line_number":111,"context_line":"            obj.delete()"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_9f5a5882","line":109,"range":{"start_line":109,"start_character":21,"end_line":109,"end_character":52},"updated":"2016-10-05 15:47:30.000000000","message":"same as above","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4a28b443c1f5d8e077b22054f91b138396e21a59","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        if not resource_ids:"},{"line_number":107,"context_line":"            return"},{"line_number":108,"context_line":"        objs \u003d obj_servicetype.ProviderResourceAssociation.get_objects("},{"line_number":109,"context_line":"            context, **{\u0027resource_id\u0027: resource_ids})"},{"line_number":110,"context_line":"        for obj in objs:"},{"line_number":111,"context_line":"            obj.delete()"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_8984b7d4","line":109,"range":{"start_line":109,"start_character":21,"end_line":109,"end_character":52},"in_reply_to":"1a95cdbc_9f5a5882","updated":"2016-10-06 14:13:15.000000000","message":"Done","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"},{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"103c5f904919af8fc963c106a0a753fd063929ef","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron.common import _deprecate"},{"line_number":21,"context_line":"from neutron.db import api as db_api"},{"line_number":22,"context_line":"from neutron.db.models import servicetype as st_model"},{"line_number":23,"context_line":"from neutron.objects import servicetype as obj_servicetype"},{"line_number":24,"context_line":"from neutron.services import provider_configuration as pconf"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7a77a97e_db0f79df","line":23,"range":{"start_line":23,"start_character":43,"end_line":23,"end_character":57},"updated":"2016-11-16 10:22:51.000000000","message":"why this name? In other places we are using \u003cname\u003e_obj convention.","commit_id":"dfdfb215eb0f1c7cee9d864abb91afec6b7a6d5f"}],"neutron/objects/servicetype.py":[{"author":{"_account_id":19591,"name":"Saisrikiran Mudigonda","email":"saisrikiran.mudigonda@intel.com","username":"saisrikiran"},"change_message_id":"1826b09133778cc519b6a3f8046ac0a481967159","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_01456916","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":38},"updated":"2016-04-21 15:49:25.000000000","message":"Remove OpenStack Foundation. Add Intel Corporation.","commit_id":"05a5e210de832c00bcd7f4c85e0c6b3d063760c4"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"4e2e429d1cd81f8b2016ab0542d4971ceb0f84fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_53c52c8c","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":42},"updated":"2016-10-05 15:47:30.000000000","message":"you don\u0027t work for the Openstack Foundation","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4a28b443c1f5d8e077b22054f91b138396e21a59","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_895bd786","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":42},"in_reply_to":"1a95cdbc_53c52c8c","updated":"2016-10-06 14:13:15.000000000","message":"Done","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"}],"neutron/tests/unit/objects/test_servicetype.py":[{"author":{"_account_id":19591,"name":"Saisrikiran Mudigonda","email":"saisrikiran.mudigonda@intel.com","username":"saisrikiran"},"change_message_id":"1826b09133778cc519b6a3f8046ac0a481967159","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_c161b1aa","line":1,"range":{"start_line":1,"start_character":17,"end_line":1,"end_character":38},"updated":"2016-04-21 15:49:25.000000000","message":"Remove OpenStack Foundation. Add Intel Corporation.","commit_id":"05a5e210de832c00bcd7f4c85e0c6b3d063760c4"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"4e2e429d1cd81f8b2016ab0542d4971ceb0f84fe","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_1342c410","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":42},"updated":"2016-10-05 15:47:30.000000000","message":"same comment as other file","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4a28b443c1f5d8e077b22054f91b138396e21a59","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 OpenStack Foundation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a95cdbc_e9d7fbbc","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":42},"in_reply_to":"1a95cdbc_1342c410","updated":"2016-10-06 14:13:15.000000000","message":"Done","commit_id":"ac5f962199177ea686ea27abc87756b7d2c2edce"}],"neutron/tests/unit/services/l3_router/service_providers/test_driver_controller.py":[{"author":{"_account_id":15518,"name":"Artur Korzeniewski","email":"artur.korzen@wp.pl","username":"akorzeni"},"change_message_id":"631fd845513ab9911c3efab196cebc0c311848a6","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from neutron.tests.unit import testlib_api"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DB_PLUGIN_KLASS \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class TestDriverController(testlib_api.SqlTestCase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a8bc5a2_48b3dc0a","line":30,"range":{"start_line":30,"start_character":10,"end_line":30,"end_character":15},"updated":"2016-09-28 07:25:24.000000000","message":"KLASS ;)?","commit_id":"87952b566890fc08070a53439e4480a0ae75115c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"c203776104e974ba405b364328788aeb29b71bf8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"from neutron.tests.unit import testlib_api"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DB_PLUGIN_KLASS \u003d \u0027neutron.db.db_base_plugin_v2.NeutronDbPluginV2\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class TestDriverController(testlib_api.SqlTestCase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a98d1f4_3199a86f","line":30,"range":{"start_line":30,"start_character":10,"end_line":30,"end_character":15},"in_reply_to":"5a8bc5a2_48b3dc0a","updated":"2016-09-28 16:44:24.000000000","message":"I just copied and pasted from other place [1]\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/tests/unit/test_manager.py#L28","commit_id":"87952b566890fc08070a53439e4480a0ae75115c"}]}
