)]}'
{"ceilometer/agent.py":[{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"90bd49e568f811dd97fcd0653411deb3f2499bb8","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                pollster_resources \u003d None"},{"line_number":88,"context_line":"                if pollster.obj.default_discovery:"},{"line_number":89,"context_line":"                    pollster_resources \u003d self.manager.discover("},{"line_number":90,"context_line":"                        pollster.obj.default_discovery, discovery_cache)"},{"line_number":91,"context_line":"                source_resources \u003d list(self.resources[key].resources)"},{"line_number":92,"context_line":"                try:"},{"line_number":93,"context_line":"                    samples \u003d list(pollster.obj.get_samples("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_cfff0066","line":90,"updated":"2014-09-02 21:11:20.000000000","message":"I\u0027ve wrapped this line as you said me and got one more error: \n\n2014-09-02 20:50:02.080 18488 WARNING ceilometer.agent [-] Unknown discovery extension: endpoint\n\n2014-09-02 20:50:02.081 18488 ERROR ceilometer.openstack.common.loopingcall [-] in fixed duration looping call\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall Traceback (most recent call last):\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall   File \"/opt/stack/ceilometer/ceilometer/openstack/common/loopingcall.py\", line 76, in _inner\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall     self.f(*self.args, **self.kw)\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall   File \"/opt/stack/ceilometer/ceilometer/central/manager.py\", line 59, in interval_task\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall     super(AgentManager, self).interval_task(task)\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall   File \"/opt/stack/ceilometer/ceilometer/agent.py\", line 184, in interval_task\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall     task.poll_and_publish()\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall   File \"/opt/stack/ceilometer/ceilometer/agent.py\", line 96, in poll_and_publish\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall     [pollster.obj.default_discovery], discovery_cache)\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall   File \"/opt/stack/ceilometer/ceilometer/agent.py\", line 216, in discover\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall     discovery_cache[discovery] \u003d resources\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall TypeError: unhashable type: \u0027list\u0027\n\n2014-09-02 20:50:02.081 18488 TRACE ceilometer.openstack.common.loopingcall\n\nactually this happens because when we\u0027re trying to set dict[list] in the last lines of this file, and here I see some strange things: like okay, we got [\u0027endpoint:image\u0027] as a discovery there - but why actually it was discovery and not the default one? /me just curious :)\n\nIf I\u0027m adding quick hacks in the discover method like discovery[0] everywhere it might be needed, I see logs like that:\n\n2014-09-02 21:04:26.430 28157 INFO ceilometer.agent [-] Polling pollster storage.objects.containers\n\n2014-09-02 21:04:26.431 28157 WARNING ceilometer.agent [-] Unknown discovery extension: endpoint\n\n2014-09-02 21:04:26.432 28157 INFO ceilometer.agent [-] Polling pollster storage.objects.size\n\n2014-09-02 21:04:26.433 28157 INFO ceilometer.agent [-] Polling pollster image\n\n2014-09-02 21:04:26.434 28157 WARNING ceilometer.agent [-] Unknown discovery extension: endpoint\n\n2014-09-02 21:04:26.435 28157 INFO ceilometer.agent [-] Polling pollster image.size","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"a2cbb1c11a5fe3546bf16dbea01a8f40f5a480ce","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def discover(self, discovery\u003dNone, discovery_cache\u003dNone):"},{"line_number":169,"context_line":"        if discovery_cache and discovery in discovery_cache:"},{"line_number":170,"context_line":"            return discovery_cache[discovery]"},{"line_number":171,"context_line":"        resources \u003d []"},{"line_number":172,"context_line":"        for url in (discovery or self.default_discovery):"},{"line_number":173,"context_line":"            name, param \u003d self._parse_discoverer(url)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_71773603","line":170,"updated":"2014-09-01 11:06:40.000000000","message":"As discussed on IRC, good to have this caching logic also in place for the per-source discovery.\n\n(That would be fine in a subsequent patch)","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"829325c025263c50c7d54965c972218622b920fa","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                    LOG.exception(_(\u0027Unable to discover resources: %s\u0027) % err)"},{"line_number":181,"context_line":"            else:"},{"line_number":182,"context_line":"                LOG.warning(_(\u0027Unknown discovery extension: %s\u0027) % name)"},{"line_number":183,"context_line":"        discovery_cache[discovery] \u003d resources"},{"line_number":184,"context_line":"        return resources"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_c268d9bc","line":183,"updated":"2014-09-02 06:58:19.000000000","message":"this would cause exception if discovery_cache is None","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"f524effa8f28362ba8ef2506e829333bd557ece6","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                    LOG.exception(_(\u0027Unable to discover resources: %s\u0027) % err)"},{"line_number":181,"context_line":"            else:"},{"line_number":182,"context_line":"                LOG.warning(_(\u0027Unknown discovery extension: %s\u0027) % name)"},{"line_number":183,"context_line":"        discovery_cache[discovery] \u003d resources"},{"line_number":184,"context_line":"        return resources"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_807dde1e","line":183,"in_reply_to":"fa98f980_55d74523","updated":"2014-09-02 11:49:49.000000000","message":"btw, if I test agent HA and this patch on one lab and fix this concrete moment, I see no more traces, but lots of lines\n\n\n2014-09-02 11:47:35.693 10141 WARNING ceilometer.agent [-] Unknown discovery extension: e\n\n2014-09-02 11:47:35.693 10141 WARNING ceilometer.agent [-] Unknown discovery extension: n\n\n2014-09-02 11:47:35.694 10141 WARNING ceilometer.agent [-] Unknown discovery extension: d\n\n2014-09-02 11:47:35.695 10141 WARNING ceilometer.agent [-] Unknown discovery extension: p\n\n2014-09-02 11:47:35.696 10141 WARNING ceilometer.agent [-] Unknown discovery extension: o\n\n2014-09-02 11:47:35.697 10141 WARNING ceilometer.agent [-] Unknown discovery extension: i\n\n2014-09-02 11:47:35.697 10141 WARNING ceilometer.agent [-] Unknown discovery extension: n\n\n2014-09-02 11:47:35.698 10141 WARNING ceilometer.agent [-] Unknown discovery extension: t\n\n2014-09-02 11:47:35.698 10141 WARNING ceilometer.agent [-] Unknown discovery extension: :\n\n2014-09-02 11:47:35.699 10141 WARNING ceilometer.agent [-] Unknown discovery extension: i\n\n2014-09-02 11:47:35.700 10141 WARNING ceilometer.agent [-] Unknown discovery extension: m\n\n2014-09-02 11:47:35.700 10141 WARNING ceilometer.agent [-] Unknown discovery extension: a\n\n2014-09-02 11:47:35.701 10141 WARNING ceilometer.agent [-] Unknown discovery extension: g\n\n2014-09-02 11:47:35.702 10141 WARNING ceilometer.agent [-] Unknown discovery extension: e\n\nI suppose that\u0027s because of wrong discovery parsing here","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"0c58881949c8dc7017d6b5bd6a918dc01e306e5c","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                    LOG.exception(_(\u0027Unable to discover resources: %s\u0027) % err)"},{"line_number":181,"context_line":"            else:"},{"line_number":182,"context_line":"                LOG.warning(_(\u0027Unknown discovery extension: %s\u0027) % name)"},{"line_number":183,"context_line":"        discovery_cache[discovery] \u003d resources"},{"line_number":184,"context_line":"        return resources"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_6040fa56","line":183,"in_reply_to":"fa98f980_807dde1e","updated":"2014-09-02 12:03:42.000000000","message":"that\u0027s because we\u0027re iterating the discovery string (\"endpoint:image\", of instance) symbol by symbol","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"f58be5aa1351e5262785df249a539f1910ed51ac","unresolved":false,"context_lines":[{"line_number":180,"context_line":"                    LOG.exception(_(\u0027Unable to discover resources: %s\u0027) % err)"},{"line_number":181,"context_line":"            else:"},{"line_number":182,"context_line":"                LOG.warning(_(\u0027Unknown discovery extension: %s\u0027) % name)"},{"line_number":183,"context_line":"        discovery_cache[discovery] \u003d resources"},{"line_number":184,"context_line":"        return resources"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_55d74523","line":183,"in_reply_to":"fa98f980_c268d9bc","updated":"2014-09-02 07:11:50.000000000","message":"Thanks, fixing!","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"}],"ceilometer/central/discovery.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8872a43312690fc30d40be8c009e93e441ffd09a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def discover(self, param\u003dNone):"},{"line_number":44,"context_line":"        if not param:"},{"line_number":45,"context_line":"            return []"},{"line_number":46,"context_line":"        endpoints \u003d self.keystone.service_catalog.get_urls("},{"line_number":47,"context_line":"            service_type\u003dparam,"},{"line_number":48,"context_line":"            endpoint_type\u003dcfg.CONF.service_credentials.os_endpoint_type,"},{"line_number":49,"context_line":"            region_name\u003dcfg.CONF.service_credentials.os_region_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_103dbdde","line":46,"updated":"2014-09-02 13:33:11.000000000","message":"there is a get_endpoints method: https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/service_catalog.py#L86","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"a2cbb1c11a5fe3546bf16dbea01a8f40f5a480ce","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            LOG.warning(_LW(\u0027No endpoints found for service %s\u0027), param)"},{"line_number":52,"context_line":"            return []"},{"line_number":53,"context_line":"        else:"},{"line_number":54,"context_line":"            return endpoints"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_b1127eb2","line":54,"updated":"2014-09-01 11:06:40.000000000","message":"One other aspect of this patch that may be worth noting, is that it seems to also fix an obscure bug.\n\nIt\u0027s a valid setup in keystone, IIUC, to use multiple endpoints for the same service (e.g. as a form of poor man\u0027s load-balancing). Previously, we would have always have just taken the URL for the *first* endpoint return from the service catalog for say the image service. Whereas now, we will actually respect the multi-endpoint configuration.","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4f207cb928ee1917156df6de9f081f8baed0981e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            LOG.warning(_LW(\u0027No endpoints found for service %s\u0027), param)"},{"line_number":52,"context_line":"            return []"},{"line_number":53,"context_line":"        else:"},{"line_number":54,"context_line":"            return endpoints"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_c2e9ee1b","line":54,"in_reply_to":"fa98f980_b1127eb2","updated":"2014-09-01 12:15:55.000000000","message":"Indeed, but this is only true for the pollsters using this discovery. Perhaps in the future, there can be two levels of partitioning, first on the endpoint-level and second on the resource-level.","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"c706128e5e24dd94332edb6a41abc53cda113931","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            endpoint_type\u003dcfg.CONF.service_credentials.os_endpoint_type,"},{"line_number":49,"context_line":"            region_name\u003dcfg.CONF.service_credentials.os_region_name)"},{"line_number":50,"context_line":"        if not endpoints:"},{"line_number":51,"context_line":"            LOG.warning(_LW(\u0027No endpoints found for service %s\u0027), param)"},{"line_number":52,"context_line":"            return []"},{"line_number":53,"context_line":"        else:"},{"line_number":54,"context_line":"            return endpoints"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_774e9f3c","line":51,"updated":"2014-09-04 16:28:31.000000000","message":"Please change in:\n\u0027No endpoints found for service %s in region %s\u0027 since you are confining endpoints in that region only","commit_id":"fbd243873f704d76d5e35952d9b0b3ce87499de6"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"b5b9bf69ebaa04a55ebd354c482cfb63cbff9b28","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            tenant_name\u003dcfg.CONF.service_credentials.os_tenant_name,"},{"line_number":38,"context_line":"            cacert\u003dcfg.CONF.service_credentials.os_cacert,"},{"line_number":39,"context_line":"            auth_url\u003dcfg.CONF.service_credentials.os_auth_url,"},{"line_number":40,"context_line":"            region_name\u003dcfg.CONF.service_credentials.os_region_name,"},{"line_number":41,"context_line":"            insecure\u003dcfg.CONF.service_credentials.insecure)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def discover(self, param\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_c52ea3fa","line":40,"updated":"2014-09-05 03:01:28.000000000","message":"as we discussed on IRC the region_name should come to Keystone so we don\u0027t need to propagate this in every conf","commit_id":"9a08f4004bde0156568022cb676b6ecdd4d2145b"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"2fef19eaa135fb976511b82acb625b91209c5cac","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            tenant_name\u003dcfg.CONF.service_credentials.os_tenant_name,"},{"line_number":38,"context_line":"            cacert\u003dcfg.CONF.service_credentials.os_cacert,"},{"line_number":39,"context_line":"            auth_url\u003dcfg.CONF.service_credentials.os_auth_url,"},{"line_number":40,"context_line":"            region_name\u003dcfg.CONF.service_credentials.os_region_name,"},{"line_number":41,"context_line":"            insecure\u003dcfg.CONF.service_credentials.insecure)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def discover(self, param\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_6c8b101f","line":40,"in_reply_to":"fa98f980_c52ea3fa","updated":"2014-09-05 15:25:42.000000000","message":"Let\u0027s go ahead. I don\u0027t want to block this for now. I will investigate this further and we can apply a patch later on.","commit_id":"9a08f4004bde0156568022cb676b6ecdd4d2145b"}],"ceilometer/hardware/plugin.py":[{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"9d3ba292240301bc5d34bd3bc2a479c46ead7324","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"},{"line_number":47,"context_line":"    def default_discovery(self):"},{"line_number":48,"context_line":"        return \u0027tripleo_overcloud_nodes\u0027"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":51,"context_line":"        \"\"\"Return an iterable of Sample instances from polling the resources."}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_b48f2874","line":48,"updated":"2014-09-04 15:04:15.000000000","message":"Can you explain this please?\nWhy the default here is overcloud?","commit_id":"fbd243873f704d76d5e35952d9b0b3ce87499de6"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"c706128e5e24dd94332edb6a41abc53cda113931","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"},{"line_number":47,"context_line":"    def default_discovery(self):"},{"line_number":48,"context_line":"        return \u0027tripleo_overcloud_nodes\u0027"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":51,"context_line":"        \"\"\"Return an iterable of Sample instances from polling the resources."}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_f7d60f27","line":48,"in_reply_to":"fa98f980_81982179","updated":"2014-09-04 16:28:31.000000000","message":"Ok, got it. Thanks.","commit_id":"fbd243873f704d76d5e35952d9b0b3ce87499de6"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"760947d8db436f851ef7ff08efdb10a1fa24bbc4","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"},{"line_number":47,"context_line":"    def default_discovery(self):"},{"line_number":48,"context_line":"        return \u0027tripleo_overcloud_nodes\u0027"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":51,"context_line":"        \"\"\"Return an iterable of Sample instances from polling the resources."}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_81982179","line":48,"in_reply_to":"fa98f980_b48f2874","updated":"2014-09-04 15:25:02.000000000","message":"Because currently it\u0027s the only hardware discovery in existence. This is overridable in pipeline.yaml.","commit_id":"fbd243873f704d76d5e35952d9b0b3ce87499de6"}],"ceilometer/image/glance.py":[{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"9d3ba292240301bc5d34bd3bc2a479c46ead7324","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"class ImagePollster(_Base):"},{"line_number":121,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":122,"context_line":"        for endpoint in resources:"},{"line_number":123,"context_line":"            for image in self._iter_images(manager.keystone, cache, endpoint):"},{"line_number":124,"context_line":"                yield sample.Sample("},{"line_number":125,"context_line":"                    name\u003d\u0027image\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_6f6b29b7","line":122,"updated":"2014-09-04 15:04:15.000000000","message":"Is there a way to force a pollster to only address endpoints in one region?\nUsually you don\u0027t want to have pollster polling across regions for latency issues.","commit_id":"fbd243873f704d76d5e35952d9b0b3ce87499de6"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"f564209c4be27d0c3d9732b4a9c1c740751e5bfe","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"class ImagePollster(_Base):"},{"line_number":121,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":122,"context_line":"        for endpoint in resources:"},{"line_number":123,"context_line":"            for image in self._iter_images(manager.keystone, cache, endpoint):"},{"line_number":124,"context_line":"                yield sample.Sample("},{"line_number":125,"context_line":"                    name\u003d\u0027image\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_cbc32236","line":122,"in_reply_to":"fa98f980_37ddf742","updated":"2014-09-04 19:05:02.000000000","message":"As per discussion we can get the region from Keystone token so we don\u0027t need to have this info in the config file.","commit_id":"fbd243873f704d76d5e35952d9b0b3ce87499de6"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"760947d8db436f851ef7ff08efdb10a1fa24bbc4","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"class ImagePollster(_Base):"},{"line_number":121,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":122,"context_line":"        for endpoint in resources:"},{"line_number":123,"context_line":"            for image in self._iter_images(manager.keystone, cache, endpoint):"},{"line_number":124,"context_line":"                yield sample.Sample("},{"line_number":125,"context_line":"                    name\u003d\u0027image\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_a1cc458a","line":122,"in_reply_to":"fa98f980_6f6b29b7","updated":"2014-09-04 15:25:02.000000000","message":"Yes, currently, Ceilometer only polls resources in its own region. Check out central/discovery.py, the get_urls call is limited by region there.","commit_id":"fbd243873f704d76d5e35952d9b0b3ce87499de6"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"c706128e5e24dd94332edb6a41abc53cda113931","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"class ImagePollster(_Base):"},{"line_number":121,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":122,"context_line":"        for endpoint in resources:"},{"line_number":123,"context_line":"            for image in self._iter_images(manager.keystone, cache, endpoint):"},{"line_number":124,"context_line":"                yield sample.Sample("},{"line_number":125,"context_line":"                    name\u003d\u0027image\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_37ddf742","line":122,"in_reply_to":"fa98f980_a1cc458a","updated":"2014-09-04 16:28:31.000000000","message":"Ok got that, but I still don\u0027t understand how this will work.\nDo you need to have a central agent in each region so then the pollster will poll only in that region? Do you have to set this in the config file for the different central agents (so really is a config thing because the CA can run anywhe)?\nPlease shed some light ...","commit_id":"fbd243873f704d76d5e35952d9b0b3ce87499de6"}],"ceilometer/network/services/lbaas.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"829325c025263c50c7d54965c972218622b920fa","unresolved":false,"context_lines":[{"line_number":250,"context_line":"    def _get_sample(pool, c_data):"},{"line_number":251,"context_line":"        \"\"\"Return one Sample.\"\"\""},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    @plugin.check_keystone(\u0027network\u0027, \u0027nc\u0027)"},{"line_number":254,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":255,"context_line":"        for pool in resources:"},{"line_number":256,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_a28755d6","line":253,"updated":"2014-09-02 06:58:19.000000000","message":"do we still need this check? I think the default_discovery has the same check","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"f58be5aa1351e5262785df249a539f1910ed51ac","unresolved":false,"context_lines":[{"line_number":250,"context_line":"    def _get_sample(pool, c_data):"},{"line_number":251,"context_line":"        \"\"\"Return one Sample.\"\"\""},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    @plugin.check_keystone(\u0027network\u0027, \u0027nc\u0027)"},{"line_number":254,"context_line":"    def get_samples(self, manager, cache, resources\u003dNone):"},{"line_number":255,"context_line":"        for pool in resources:"},{"line_number":256,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_350641cf","line":253,"in_reply_to":"fa98f980_a28755d6","updated":"2014-09-02 07:11:50.000000000","message":"Good point, no need for it if we already get the actual endpoint from keystone. I\u0027ll remove this and similar calls.","commit_id":"e87ddd42e13f7d29787d23bf29dcccb1eaae8306"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6af9a2247c71e65dbac9ff50fe43006329ec57ee","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        \"\"\"Return one Sample.\"\"\""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":253,"context_line":"        for pool in resources:"},{"line_number":254,"context_line":"            try:"},{"line_number":255,"context_line":"                c_data \u003d self._populate_stats_cache(pool[\u0027id\u0027], cache)"},{"line_number":256,"context_line":"                yield self._get_sample(pool, c_data)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_e7155940","line":253,"updated":"2014-09-05 15:38:41.000000000","message":"this isn\u0027t actually the same since discovery does some filtering but i think it still works...","commit_id":"9a08f4004bde0156568022cb676b6ecdd4d2145b"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"7203fbaf95b1410cfafc84bb861af2b2d1e64ab9","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        \"\"\"Return one Sample.\"\"\""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":253,"context_line":"        for pool in resources:"},{"line_number":254,"context_line":"            try:"},{"line_number":255,"context_line":"                c_data \u003d self._populate_stats_cache(pool[\u0027id\u0027], cache)"},{"line_number":256,"context_line":"                yield self._get_sample(pool, c_data)"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_ab0922df","line":253,"in_reply_to":"fa98f980_e7155940","updated":"2014-09-08 17:37:52.000000000","message":"I contacted Pradeep Kilambi, the original author of these pollsters, and he said that the absence of filtering here was an oversight. So this actually fixes a bug! :)","commit_id":"9a08f4004bde0156568022cb676b6ecdd4d2145b"}],"ceilometer/tests/agentbase.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"57e7986ca339772756fdb5658093d2b727f3c52a","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @property"},{"line_number":76,"context_line":"    def default_discovery(self):"},{"line_number":77,"context_line":"        return []"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":80,"context_line":"        resources \u003d resources or []"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_f5bf9cfa","line":77,"updated":"2014-09-08 08:58:49.000000000","message":"I\u0027m not fully getting why the superclass-provided value of the default_discovery is overridden here, given that both None and [] would be considered false?\n\nAlso I was kinda expecting this property to be parmeterized so that a testcase could be added to exercise the per-pollster discovery codepath, e.g.:\n\n    class TestPollster(plugin.PollsterBase):\n        test_data \u003d default_test_data\n        discovery \u003d None\n\n        @property\n        def default_discovery(self):\n            return discovery\n\n      ...\n\n    def test_per_pollster_discovery(self):\n        TestPollster.discovery \u003d per_pollster_discovery\n        ...\n        self.pipeline_cfg[0][\u0027discovery\u0027] \u003d None\n        # ensure resources are provided per_source_discovery\n\n    def test_per_pollster_discovery_overridden_by_per_source_discovery(self):\n        TestPollster.discovery \u003d per_pollster_discovery\n        ...\n        self.pipeline_cfg[0][\u0027discovery\u0027] \u003d per_source_discover\n        # ensure per_source_discovery overrides per_pollster_discovery\n\n    def test_per_pollster_discovery_caching(self):\n        # ensure single discovery associated with multiple pollsters\n        # only called once per polling cycle \n\n  ... etc","commit_id":"9a08f4004bde0156568022cb676b6ecdd4d2145b"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"7203fbaf95b1410cfafc84bb861af2b2d1e64ab9","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    @property"},{"line_number":76,"context_line":"    def default_discovery(self):"},{"line_number":77,"context_line":"        return []"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":80,"context_line":"        resources \u003d resources or []"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_2bf532cb","line":77,"in_reply_to":"fa98f980_f5bf9cfa","updated":"2014-09-08 17:37:52.000000000","message":"Great point, fix incoming.","commit_id":"9a08f4004bde0156568022cb676b6ecdd4d2145b"}],"etc/ceilometer/pipeline.yaml":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"dcf678947db6b77735e30564d5bce937e60f2b11","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          - \"network.outgoing.packets\""},{"line_number":31,"context_line":"      sinks:"},{"line_number":32,"context_line":"          - network_sink"},{"line_number":33,"context_line":"    - name: lb_pool_source"},{"line_number":34,"context_line":"      interval: 600"},{"line_number":35,"context_line":"      meters:"},{"line_number":36,"context_line":"          - \"network.services.lb.pool\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa98f980_7d5ccb4b","side":"PARENT","line":33,"updated":"2014-09-04 13:08:00.000000000","message":"why was this stuff removed?","commit_id":"83573da5e97f8d684f9ecf200e4e200c4aa994d1"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"760947d8db436f851ef7ff08efdb10a1fa24bbc4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          - \"network.outgoing.packets\""},{"line_number":31,"context_line":"      sinks:"},{"line_number":32,"context_line":"          - network_sink"},{"line_number":33,"context_line":"    - name: lb_pool_source"},{"line_number":34,"context_line":"      interval: 600"},{"line_number":35,"context_line":"      meters:"},{"line_number":36,"context_line":"          - \"network.services.lb.pool\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa98f980_c16b0983","side":"PARENT","line":33,"in_reply_to":"fa98f980_746b00b7","updated":"2014-09-04 15:25:02.000000000","message":"Until now, there wasn\u0027t a way to specify per-pollster discoveries other than in the pipeline configuration. I don\u0027t think these network discoveries are specific to individual deployments. But if someone wants to specify a different discovery in the pipeline.yaml, it overrides the default one anyway. Did I understand your point, or is there something I\u0027m not seeing?","commit_id":"83573da5e97f8d684f9ecf200e4e200c4aa994d1"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"812f6427450324dec08b7c214a89dbbdf79414cc","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          - \"network.outgoing.packets\""},{"line_number":31,"context_line":"      sinks:"},{"line_number":32,"context_line":"          - network_sink"},{"line_number":33,"context_line":"    - name: lb_pool_source"},{"line_number":34,"context_line":"      interval: 600"},{"line_number":35,"context_line":"      meters:"},{"line_number":36,"context_line":"          - \"network.services.lb.pool\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa98f980_8ef773d2","side":"PARENT","line":33,"in_reply_to":"fa98f980_7d5ccb4b","updated":"2014-09-04 13:48:37.000000000","message":"Because it was moved into the pollsters themselves, in their default_discovery property.","commit_id":"83573da5e97f8d684f9ecf200e4e200c4aa994d1"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"9d3ba292240301bc5d34bd3bc2a479c46ead7324","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          - \"network.outgoing.packets\""},{"line_number":31,"context_line":"      sinks:"},{"line_number":32,"context_line":"          - network_sink"},{"line_number":33,"context_line":"    - name: lb_pool_source"},{"line_number":34,"context_line":"      interval: 600"},{"line_number":35,"context_line":"      meters:"},{"line_number":36,"context_line":"          - \"network.services.lb.pool\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa98f980_746b00b7","side":"PARENT","line":33,"in_reply_to":"fa98f980_8ef773d2","updated":"2014-09-04 15:04:15.000000000","message":"Well, but my understanding was that the ones that have the discovery expressed in the pipeline.yaml should not have a default and you should read it from the file itself. Moreover this is important as a template for people to customize the discover code (if that will never be required ...)","commit_id":"83573da5e97f8d684f9ecf200e4e200c4aa994d1"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"f564209c4be27d0c3d9732b4a9c1c740751e5bfe","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          - \"network.outgoing.packets\""},{"line_number":31,"context_line":"      sinks:"},{"line_number":32,"context_line":"          - network_sink"},{"line_number":33,"context_line":"    - name: lb_pool_source"},{"line_number":34,"context_line":"      interval: 600"},{"line_number":35,"context_line":"      meters:"},{"line_number":36,"context_line":"          - \"network.services.lb.pool\""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fa98f980_cb76c205","side":"PARENT","line":33,"in_reply_to":"fa98f980_c16b0983","updated":"2014-09-04 19:05:02.000000000","message":"I understand your point, so we can leave these entries and set None to the corresponding pollsters. The pollster, will use this value in the pipeline since it does not have a valid default. I think in this way the behavior is clearer and it can also be easily tested. Moreover, it doesn\u0027t give people the impression that from now on discovery is not configurable anymore.","commit_id":"83573da5e97f8d684f9ecf200e4e200c4aa994d1"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"2fef19eaa135fb976511b82acb625b91209c5cac","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          - \"network.outgoing.packets\""},{"line_number":31,"context_line":"      sinks:"},{"line_number":32,"context_line":"          - network_sink"},{"line_number":33,"context_line":"    - name: lb_pool_source"},{"line_number":34,"context_line":"      interval: 600"},{"line_number":35,"context_line":"      meters:"},{"line_number":36,"context_line":"          - \"network.services.lb.pool\""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"fa98f980_6c92304d","side":"PARENT","line":33,"updated":"2014-09-05 15:25:42.000000000","message":"NIT: is there a way to comment this part out instead of deleting it adding a description that this is an example of how a meter can be done using the discovery?","commit_id":"fcc6b0de4ef309a91dbf1ea94f475a8e5f168534"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"089654ada35e8042171282f7dfccda8e1c3f1994","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          - \"network.outgoing.packets\""},{"line_number":31,"context_line":"      sinks:"},{"line_number":32,"context_line":"          - network_sink"},{"line_number":33,"context_line":"    - name: lb_pool_source"},{"line_number":34,"context_line":"      interval: 600"},{"line_number":35,"context_line":"      meters:"},{"line_number":36,"context_line":"          - \"network.services.lb.pool\""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"fa98f980_fdc86258","side":"PARENT","line":33,"in_reply_to":"fa98f980_6c92304d","updated":"2014-09-08 10:29:37.000000000","message":"I see where you\u0027re coming from, but I don\u0027t think adding commented out sections to the out-of-the-box default pipeline.yaml will really add to the clarity here.\n\nInstead it would be better IMO to fully document the discovery options (per-source, versus per-agent-default, versus per-pollster-default) here:\n\n  https://github.com/openstack/ceilometer/blob/master/doc/source/configuration.rst#pipeline-configuration\n\nAlso related issues, such as the need to exclude pollsters with default-discoveries from the catch-all source, would be best explained in the documentation.","commit_id":"fcc6b0de4ef309a91dbf1ea94f475a8e5f168534"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"9e3476ad47e39b34e662e9663d7785e23858a81a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"          - \"network.outgoing.packets\""},{"line_number":31,"context_line":"      sinks:"},{"line_number":32,"context_line":"          - network_sink"},{"line_number":33,"context_line":"    - name: lb_pool_source"},{"line_number":34,"context_line":"      interval: 600"},{"line_number":35,"context_line":"      meters:"},{"line_number":36,"context_line":"          - \"network.services.lb.pool\""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"fa98f980_82c7e663","side":"PARENT","line":33,"in_reply_to":"fa98f980_fdc86258","updated":"2014-09-08 15:09:34.000000000","message":"Yes I think this is a good alternative. These docs seems to be out of date since lack of concrete examples.","commit_id":"fcc6b0de4ef309a91dbf1ea94f475a8e5f168534"}]}
