)]}'
{"neutron/services/loadbalancer/plugin.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"24d1ca39c90ca1bd4907973cb76089c7f79c6604","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        # with the default provider"},{"line_number":78,"context_line":"        for pool in pools:"},{"line_number":79,"context_line":"            if not pool[\u0027provider\u0027]:"},{"line_number":80,"context_line":"                self.service_type_manager.add_resource_association("},{"line_number":81,"context_line":"                    context, constants.LOADBALANCER,"},{"line_number":82,"context_line":"                    self.default_provider, pool[\u0027id\u0027])"},{"line_number":83,"context_line":"                pool[\u0027provider\u0027] \u003d self.default_provider"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FeQ4%3D","line":80,"updated":"2013-09-04 12:17:27.000000000","message":"Please add info logging either for each pool or for list of pools for which provider has beed added.","commit_id":"d9d5106c679a769fdf1a98edcaf6c8108aa82fae"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c9e09edf45c63edc848817a821746d53477acf51","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        # with the default provider"},{"line_number":78,"context_line":"        for pool in pools:"},{"line_number":79,"context_line":"            if not pool[\u0027provider\u0027]:"},{"line_number":80,"context_line":"                self.service_type_manager.add_resource_association("},{"line_number":81,"context_line":"                    context, constants.LOADBALANCER,"},{"line_number":82,"context_line":"                    self.default_provider, pool[\u0027id\u0027])"},{"line_number":83,"context_line":"                pool[\u0027provider\u0027] \u003d self.default_provider"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAASn%2F%2FePs%3D","line":80,"in_reply_to":"AAAASn%2F%2FeQ4%3D","updated":"2013-09-04 12:20:13.000000000","message":"Done","commit_id":"d9d5106c679a769fdf1a98edcaf6c8108aa82fae"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"43a1b503ead6b72014648329bffd471eee63cf4c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                self.service_type_manager.add_resource_association("},{"line_number":85,"context_line":"                    context, constants.LOADBALANCER,"},{"line_number":86,"context_line":"                    self.default_provider, pool[\u0027id\u0027])"},{"line_number":87,"context_line":"                pool[\u0027provider\u0027] \u003d self.default_provider"},{"line_number":88,"context_line":"        lost_providers \u003d set([pool[\u0027provider\u0027] for pool in pools"},{"line_number":89,"context_line":"                              if pool[\u0027provider\u0027] not in provider_names])"},{"line_number":90,"context_line":"        # resources are left without provider - stop the service"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FB0o%3D","line":87,"updated":"2013-09-13 07:46:59.000000000","message":"From what I recall the default provider is not a required configuration parameter, ie: a configuration without the default provider is legit.\n\nHow should we deal with this case?","commit_id":"f6ef23a2b8ce6df098a32518000543f9e1178d61"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"141abec2510da2ade8e0ee4ec21decae00da43d1","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                self.service_type_manager.add_resource_association("},{"line_number":85,"context_line":"                    context, constants.LOADBALANCER,"},{"line_number":86,"context_line":"                    self.default_provider, pool[\u0027id\u0027])"},{"line_number":87,"context_line":"                pool[\u0027provider\u0027] \u003d self.default_provider"},{"line_number":88,"context_line":"        lost_providers \u003d set([pool[\u0027provider\u0027] for pool in pools"},{"line_number":89,"context_line":"                              if pool[\u0027provider\u0027] not in provider_names])"},{"line_number":90,"context_line":"        # resources are left without provider - stop the service"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAASn%2F%2FByY%3D","line":87,"in_reply_to":"AAAASn%2F%2FB0o%3D","updated":"2013-09-13 08:10:45.000000000","message":"Good catch! For some reason I thought default provider is required. I think in case when there is no default provider in config and there are pools with no provider we should raise SystemExit","commit_id":"f6ef23a2b8ce6df098a32518000543f9e1178d61"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"a6f83510cfb21d65207d1beb3f4ab4919a83b196","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            if not pool[\u0027provider\u0027]:"},{"line_number":78,"context_line":"                if not self.default_provider:"},{"line_number":79,"context_line":"                    msg \u003d _(\u0027Default provider for LBaaS should be specified in\u0027"},{"line_number":80,"context_line":"                            \u0027 the config in order to associate existing pools\u0027)"},{"line_number":81,"context_line":"                    LOG.error(msg)"},{"line_number":82,"context_line":"                    raise SystemExit(msg)"},{"line_number":83,"context_line":"                LOG.info(_(\u0027Pool %(pool)s has no provider associated. \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FBmc%3D","line":80,"updated":"2013-09-13 09:34:12.000000000","message":"nit: move space to the end of previos line","commit_id":"580fe588bcbff3d86fba0e3389a31fcfbc23246c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"ce91a7bed5a538db798b3540bb4d3bd5c4957556","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            if not pool[\u0027provider\u0027]:"},{"line_number":78,"context_line":"                if not self.default_provider:"},{"line_number":79,"context_line":"                    msg \u003d _(\u0027Default provider for LBaaS should be specified in\u0027"},{"line_number":80,"context_line":"                            \u0027 the config in order to associate existing pools\u0027)"},{"line_number":81,"context_line":"                    LOG.error(msg)"},{"line_number":82,"context_line":"                    raise SystemExit(msg)"},{"line_number":83,"context_line":"                LOG.info(_(\u0027Pool %(pool)s has no provider associated. \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FBlg%3D","line":80,"in_reply_to":"AAAASn%2F%2FBmc%3D","updated":"2013-09-13 09:38:55.000000000","message":"it will break pep8 and will require a 3rd line for the message so prefer to leave as is","commit_id":"580fe588bcbff3d86fba0e3389a31fcfbc23246c"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"a6f83510cfb21d65207d1beb3f4ab4919a83b196","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                self.service_type_manager.add_resource_association("},{"line_number":88,"context_line":"                    context, constants.LOADBALANCER,"},{"line_number":89,"context_line":"                    self.default_provider, pool[\u0027id\u0027])"},{"line_number":90,"context_line":"                pool[\u0027provider\u0027] \u003d self.default_provider"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _check_orphan_pool_associations(self, pools, provider_names):"},{"line_number":93,"context_line":"        \"\"\"Checks remaining associations between pools and providers."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FBmk%3D","line":90,"updated":"2013-09-13 09:34:12.000000000","message":"this line seems to be unnecessary since it modifies dict that is not used further","commit_id":"580fe588bcbff3d86fba0e3389a31fcfbc23246c"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"c6fc2775584213fb44d136ad817985eadc0ed5ea","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                self.service_type_manager.add_resource_association("},{"line_number":88,"context_line":"                    context, constants.LOADBALANCER,"},{"line_number":89,"context_line":"                    self.default_provider, pool[\u0027id\u0027])"},{"line_number":90,"context_line":"                pool[\u0027provider\u0027] \u003d self.default_provider"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _check_orphan_pool_associations(self, pools, provider_names):"},{"line_number":93,"context_line":"        \"\"\"Checks remaining associations between pools and providers."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FBks%3D","line":90,"in_reply_to":"AAAASn%2F%2FBlU%3D","updated":"2013-09-13 09:43:15.000000000","message":"ok, got it","commit_id":"580fe588bcbff3d86fba0e3389a31fcfbc23246c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"ce91a7bed5a538db798b3540bb4d3bd5c4957556","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                self.service_type_manager.add_resource_association("},{"line_number":88,"context_line":"                    context, constants.LOADBALANCER,"},{"line_number":89,"context_line":"                    self.default_provider, pool[\u0027id\u0027])"},{"line_number":90,"context_line":"                pool[\u0027provider\u0027] \u003d self.default_provider"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def _check_orphan_pool_associations(self, pools, provider_names):"},{"line_number":93,"context_line":"        \"\"\"Checks remaining associations between pools and providers."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAASn%2F%2FBlU%3D","line":90,"in_reply_to":"AAAASn%2F%2FBmk%3D","updated":"2013-09-13 09:38:55.000000000","message":"it will be used in _check_orphan_pool_associations()","commit_id":"580fe588bcbff3d86fba0e3389a31fcfbc23246c"}],"neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py":[{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"1c39b690c5450f74509cf6aa149e8ee2da9b8c7f","unresolved":false,"context_lines":[{"line_number":1457,"context_line":"        with contextlib.nested("},{"line_number":1458,"context_line":"            self.pool(),"},{"line_number":1459,"context_line":"            self.pool()"},{"line_number":1460,"context_line":"        ) as (p1, p2):"},{"line_number":1461,"context_line":"            #removing providers"},{"line_number":1462,"context_line":"            ctx \u003d context.get_admin_context()"},{"line_number":1463,"context_line":"            self.plugin.service_type_manager.del_resource_associations("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FqT8%3D","line":1460,"updated":"2013-09-23 07:55:01.000000000","message":"Any reason to use two pool instead of one? I didn\u0027t see any difference or comparison between p1 and p2.","commit_id":"928b1a3ef1d8bd2450f53a0bd403287483938d14"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"df4c1e9fef1b77998621e6b6faa8474b5baf76bb","unresolved":false,"context_lines":[{"line_number":1457,"context_line":"        with contextlib.nested("},{"line_number":1458,"context_line":"            self.pool(),"},{"line_number":1459,"context_line":"            self.pool()"},{"line_number":1460,"context_line":"        ) as (p1, p2):"},{"line_number":1461,"context_line":"            #removing providers"},{"line_number":1462,"context_line":"            ctx \u003d context.get_admin_context()"},{"line_number":1463,"context_line":"            self.plugin.service_type_manager.del_resource_associations("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVn%2F%2FJqo%3D","line":1460,"in_reply_to":"AAAAS3%2F%2FqSo%3D","updated":"2014-03-08 03:12:55.000000000","message":"I don\u0027t see any issues with it, just wondering why :-)  I can remove my -1 if this is not something you want to change.","commit_id":"928b1a3ef1d8bd2450f53a0bd403287483938d14"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"789ded5dd09b2b8358fb8610501b4cfb019202fc","unresolved":false,"context_lines":[{"line_number":1457,"context_line":"        with contextlib.nested("},{"line_number":1458,"context_line":"            self.pool(),"},{"line_number":1459,"context_line":"            self.pool()"},{"line_number":1460,"context_line":"        ) as (p1, p2):"},{"line_number":1461,"context_line":"            #removing providers"},{"line_number":1462,"context_line":"            ctx \u003d context.get_admin_context()"},{"line_number":1463,"context_line":"            self.plugin.service_type_manager.del_resource_associations("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FqSo%3D","line":1460,"in_reply_to":"AAAAS3%2F%2FqT8%3D","updated":"2013-09-23 08:03:47.000000000","message":"Just for reliability, do you see any issues with it?","commit_id":"928b1a3ef1d8bd2450f53a0bd403287483938d14"}]}
