)]}'
{"ceilometer/alarm/notifier/trust.py":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"483bc3b8b62f1a741531895521120d74a174adab","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"cfg.CONF.import_opt(\u0027http_timeout\u0027, \u0027ceilometer.service\u0027)"},{"line_number":25,"context_line":"cfg.CONF.import_group(\u0027service_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TrustRestAlarmNotifier(rest.RestAlarmNotifier):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_d643b110","line":25,"updated":"2014-11-18 08:31:12.000000000","message":"I see that you have added that import but try to guess where is it used?","commit_id":"4f88bf4457a56fdb01deec2b93ad3f18cf309db1"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"ef42ef6de2350c96f5c00dd5d65a01cf26ede82b","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"cfg.CONF.import_opt(\u0027http_timeout\u0027, \u0027ceilometer.service\u0027)"},{"line_number":25,"context_line":"cfg.CONF.import_group(\u0027service_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TrustRestAlarmNotifier(rest.RestAlarmNotifier):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_90d3e3d3","line":25,"in_reply_to":"5a890539_d643b110","updated":"2014-11-18 14:10:12.000000000","message":"see L42-L50","commit_id":"4f88bf4457a56fdb01deec2b93ad3f18cf309db1"}],"ceilometer/alarm/service.py":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"483bc3b8b62f1a741531895521120d74a174adab","unresolved":false,"context_lines":[{"line_number":52,"context_line":"cfg.CONF.import_opt(\u0027heartbeat\u0027, \u0027ceilometer.coordination\u0027,"},{"line_number":53,"context_line":"                    group\u003d\u0027coordination\u0027)"},{"line_number":54,"context_line":"cfg.CONF.import_opt(\u0027http_timeout\u0027, \u0027ceilometer.service\u0027)"},{"line_number":55,"context_line":"cfg.CONF.import_group(\u0027service_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_1649b930","line":55,"updated":"2014-11-18 08:31:12.000000000","message":"ditto","commit_id":"4f88bf4457a56fdb01deec2b93ad3f18cf309db1"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"ef42ef6de2350c96f5c00dd5d65a01cf26ede82b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"cfg.CONF.import_opt(\u0027heartbeat\u0027, \u0027ceilometer.coordination\u0027,"},{"line_number":53,"context_line":"                    group\u003d\u0027coordination\u0027)"},{"line_number":54,"context_line":"cfg.CONF.import_opt(\u0027http_timeout\u0027, \u0027ceilometer.service\u0027)"},{"line_number":55,"context_line":"cfg.CONF.import_group(\u0027service_credentials\u0027, \u0027ceilometer.service\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_b0045f4a","line":55,"in_reply_to":"5a890539_1649b930","updated":"2014-11-18 14:10:12.000000000","message":"See L83-L92","commit_id":"4f88bf4457a56fdb01deec2b93ad3f18cf309db1"}],"ceilometer/energy/kwapi.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"73b90d1a0d90bd70147b64c46524ccc319fc83ff","unresolved":false,"context_lines":[{"line_number":36,"context_line":"]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"cfg.CONF.register_opts(SERVICE_OPTS, group\u003d\u0027service_types\u0027)"},{"line_number":39,"context_line":"cfg.CONF.import_opt(\u0027http_timeout\u0027, \u0027ceilometer.service\u0027)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class KwapiClient(object):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_ffb59dd0","line":39,"updated":"2014-11-19 19:00:16.000000000","message":"-1: no need to import opt because central.plugin already does this","commit_id":"4f88bf4457a56fdb01deec2b93ad3f18cf309db1"}],"ceilometer/image/glance.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b5ccc67468b2ab3ad592f829636a4741b8f05f02","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                                   token\u003dksclient.auth_token,"},{"line_number":64,"context_line":"                                   cacert\u003dservice_credentials.os_cacert,"},{"line_number":65,"context_line":"                                   insecure\u003dservice_credentials.insecure,"},{"line_number":66,"context_line":"                                   timeout\u003dcfg.CONF.http_timeout)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _get_images(self, ksclient, endpoint):"},{"line_number":69,"context_line":"        client \u003d self.get_glance_client(ksclient, endpoint)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_93ae842e","line":66,"updated":"2014-11-18 18:01:41.000000000","message":"import opt here?","commit_id":"4f88bf4457a56fdb01deec2b93ad3f18cf309db1"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"b2d7dab7b3ca14d3fd513435676ce45810458070","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                                   token\u003dksclient.auth_token,"},{"line_number":64,"context_line":"                                   cacert\u003dservice_credentials.os_cacert,"},{"line_number":65,"context_line":"                                   insecure\u003dservice_credentials.insecure,"},{"line_number":66,"context_line":"                                   timeout\u003dcfg.CONF.http_timeout)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _get_images(self, ksclient, endpoint):"},{"line_number":69,"context_line":"        client \u003d self.get_glance_client(ksclient, endpoint)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_e63520f8","line":66,"in_reply_to":"5a890539_93ae842e","updated":"2014-11-19 15:30:28.000000000","message":"Agree with gordon it seems that it is missed import in that lib. wdyt?","commit_id":"4f88bf4457a56fdb01deec2b93ad3f18cf309db1"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"73b90d1a0d90bd70147b64c46524ccc319fc83ff","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                                   token\u003dksclient.auth_token,"},{"line_number":64,"context_line":"                                   cacert\u003dservice_credentials.os_cacert,"},{"line_number":65,"context_line":"                                   insecure\u003dservice_credentials.insecure,"},{"line_number":66,"context_line":"                                   timeout\u003dcfg.CONF.http_timeout)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _get_images(self, ksclient, endpoint):"},{"line_number":69,"context_line":"        client \u003d self.get_glance_client(ksclient, endpoint)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_9fcd7960","line":66,"in_reply_to":"5a890539_93ae842e","updated":"2014-11-19 19:00:16.000000000","message":"central.plugin have already imported it","commit_id":"4f88bf4457a56fdb01deec2b93ad3f18cf309db1"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b15cc143d672e7cf5d55a2e34a20d2603f6dda79","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                                   token\u003dksclient.auth_token,"},{"line_number":64,"context_line":"                                   cacert\u003dservice_credentials.os_cacert,"},{"line_number":65,"context_line":"                                   insecure\u003dservice_credentials.insecure,"},{"line_number":66,"context_line":"                                   timeout\u003dcfg.CONF.http_timeout)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _get_images(self, ksclient, endpoint):"},{"line_number":69,"context_line":"        client \u003d self.get_glance_client(ksclient, endpoint)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_53a4ea56","line":66,"updated":"2014-11-19 21:19:20.000000000","message":"is there harm in adding import_opt even if the base class pulls it in? i just ask because it\u0027s better to be explicit. (especially if things change)","commit_id":"bd0244ffe63b752649ae74f65a46563e986dcb00"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7a1d56a0e4d8f73628958bcc67f64f311beed9ac","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                                   token\u003dksclient.auth_token,"},{"line_number":64,"context_line":"                                   cacert\u003dservice_credentials.os_cacert,"},{"line_number":65,"context_line":"                                   insecure\u003dservice_credentials.insecure,"},{"line_number":66,"context_line":"                                   timeout\u003dcfg.CONF.http_timeout)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _get_images(self, ksclient, endpoint):"},{"line_number":69,"context_line":"        client \u003d self.get_glance_client(ksclient, endpoint)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a890539_9c1f2309","line":66,"in_reply_to":"5a890539_53a4ea56","updated":"2014-11-20 15:48:37.000000000","message":"@gordon chung\n\nAs far as I can see, there is no critical issue either import it or not.\n\nService can run properly because every service will load many modules(A-\u003eB-\u003eC, D-\u003eE), opts can be registered or imported in somewhere else. But if we do not import those opt in the import chain (A-\u003eB-\u003eC), unit test will be blocked when we run individual test by nosetest (tox seems fix this issue automatically). The worst case is if we don\u0027t import the opt in anywhere, NoSuchOpt exception will be raised, but this will be found when CI check.\n\nIMHO, a common case should be avoid, which is that: we already import that module A right in the beginning of this file, and then use cfg.CONF.import_opt|group() of module A in the same file just after a few lines next to that import. It is bad for obviously redundant and should be avoid, I\u0027ve already reported a bug for it, see: https://bugs.launchpad.net/ceilometer/+bug/1389229\n\nBut, if it is not so clear, for example, the import or register hides in the middle or the end of the import chain, then redundant import_opt|group is acceptable, otherwise it just adds the burden for reviewers, and maintainers.\n\nExplicit is good, but I think it can not be required, otherwise, some large module can be filled with import_opt in the beginning, and it does do redundant work, although the cost is low.\n\nSo, my opinion is both OK, as long as that opt|group truly be imported in the import chain. If import chain is break after code refactor when there has no explict import_opt|group, and some developers are blocked by this issue when they run individual test, they can add a patch to fix it,","commit_id":"bd0244ffe63b752649ae74f65a46563e986dcb00"}],"ceilometer/service.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"cfc71f476f011eb6f91136cf8a18d71574008199","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                default\u003dFalse,"},{"line_number":85,"context_line":"                help\u003d\u0027Disables X.509 certificate validation when an \u0027"},{"line_number":86,"context_line":"                     \u0027SSL connection to Identity Service is established.\u0027),"},{"line_number":87,"context_line":"    cfg.IntOpt(\u0027http_timeout\u0027,"},{"line_number":88,"context_line":"               default\u003d600,"},{"line_number":89,"context_line":"               help\u003d\u0027Timeout seconds for HTTP requests. Set it to None to \u0027"},{"line_number":90,"context_line":"                    \u0027disable timeout.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_bc720447","line":87,"updated":"2014-11-13 10:49:52.000000000","message":"my only question is if this should be connected to the polling intervals in someway... having this defined here doesn\u0027t really fix anything if the polling interval is 30s right?\n\nthe minus is not for this (this is just a questino)","commit_id":"0183e100335e828d61153a49c1be79bd7a5fdcec"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"211811025593477bdfce63d217238606db1506b8","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                default\u003dFalse,"},{"line_number":85,"context_line":"                help\u003d\u0027Disables X.509 certificate validation when an \u0027"},{"line_number":86,"context_line":"                     \u0027SSL connection to Identity Service is established.\u0027),"},{"line_number":87,"context_line":"    cfg.IntOpt(\u0027http_timeout\u0027,"},{"line_number":88,"context_line":"               default\u003d600,"},{"line_number":89,"context_line":"               help\u003d\u0027Timeout seconds for HTTP requests. Set it to None to \u0027"},{"line_number":90,"context_line":"                    \u0027disable timeout.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_a6de6a0f","line":87,"in_reply_to":"5a890539_bc720447","updated":"2014-11-13 14:01:06.000000000","message":"@gordon chung\n\nThe problem is not the efficient issue, for example, if neutron api returns after 60 seconds, but interval is 30 seconds, then all the pollsters will be finished, for example 90 seconds, then next cycle is coming.\n\nThe problem is that, when we call neutron api, but it is stuck, even though the rest of neutron api and other service\u0027s api are ok, this thread which running some pollsters, will never recover, and no data for those pollsters. (you will see keep-alive ack if you use tcpdump, I have found case that stuck for 2 days before I restart ceilometer process)\n\nwith this change, the stuck http request will be ended after 600 seconds (by default)\n\nIf cloud operator needs cut some pollsters, for example, neutron 60s is too much, and affect other pollster, he can decrease the http_timeout to 30s or 10s if he want. But there is some case operator wants data and can endure delay. Meanwhile, the default 600 seconds keeps align to default 600 seconds interval in pipeline..","commit_id":"0183e100335e828d61153a49c1be79bd7a5fdcec"}],"doc/source/configuration.rst":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"cfc71f476f011eb6f91136cf8a18d71574008199","unresolved":false,"context_lines":[{"line_number":107,"context_line":"os-region-name                                                         (Str) Region name to use for OpenStack service endpoints."},{"line_number":108,"context_line":"insecure                         False                                 (Bool) Disables X.509 certificate validation when an SSL"},{"line_number":109,"context_line":"                                                                       connection to Identity Service is established."},{"line_number":110,"context_line":"http_timeout                     600                                   (Int) Timeout seconds for HTTP requests. Set it to None to"},{"line_number":111,"context_line":"                                                                       disable timeout."},{"line_number":112,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a890539_6178f5c4","line":110,"updated":"2014-11-13 10:49:52.000000000","message":"this is not needed anymore: https://review.openstack.org/#/c/133035/","commit_id":"0183e100335e828d61153a49c1be79bd7a5fdcec"}]}
