)]}'
{"etc/tempest.conf.sample":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"7d42d539b92c6a314eea4665f8b0a4133b938930","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"# has published samples. The value must be greater than the ceilometer"},{"line_number":1098,"context_line":"# compute agent\u0027s pipeline.yaml interval value by ~15-20 seconds."},{"line_number":1099,"context_line":"# (integer value)"},{"line_number":1100,"context_line":"#polled_metric_delay \u003d 620"},{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":""},{"line_number":1103,"context_line":"[validation]"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"3afb71cf_e8d196ce","line":1100,"updated":"2015-06-08 13:12:58.000000000","message":"Why is this parameter in the `telemetry-feature-enabled` section ?\n\nAt the moment it is also not working, because the test trying to get it from the `telemetry` section.\n\nIMHO it should be in the normal telemetry section as the other timeout like parameters.","commit_id":"21a18c7b5b1062ee7d08ba2e94078fd1d4c1a36e"}],"tempest/config.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"f678075fadd54249433918bfee446f19f49dffa9","unresolved":false,"context_lines":[{"line_number":700,"context_line":"                default\u003dTrue,"},{"line_number":701,"context_line":"                help\u003d\"This variable is used as flag to enable \""},{"line_number":702,"context_line":"                     \"notification tests\"),"},{"line_number":703,"context_line":"    cfg.BoolOpt(\u0027enable_metrics_collection_tests\u0027,"},{"line_number":704,"context_line":"                default\u003dFalse,"},{"line_number":705,"context_line":"                help\u003d\"This variable is used as a flag to enable \""},{"line_number":706,"context_line":"                     \"metrics collection tests.\"),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_253a64cd","line":703,"updated":"2015-01-05 20:04:39.000000000","message":"The config file shouldn\u0027t be used to specify which tests to run like this. Is there a corresponding optional thing in ceilometer that if disabled would make it impossible to run these tests? If so this should match the name of that feature and create a telemetry feature enabled group (like the other projects have). Otherwise we shouldn\u0027t have a flag here and the test runner should be used to not run these tests.","commit_id":"0e875220be5f561414da8ccc3cbaf70b07eaf997"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"a7d6f90095522d9eb4c9973175b2ec63e65380a5","unresolved":false,"context_lines":[{"line_number":700,"context_line":"                default\u003dTrue,"},{"line_number":701,"context_line":"                help\u003d\"This variable is used as flag to enable \""},{"line_number":702,"context_line":"                     \"notification tests\"),"},{"line_number":703,"context_line":"    cfg.BoolOpt(\u0027enable_metrics_collection_tests\u0027,"},{"line_number":704,"context_line":"                default\u003dTrue,"},{"line_number":705,"context_line":"                help\u003d\"This variable is used as a flag to enable \""},{"line_number":706,"context_line":"                     \"metrics collection tests.\"),"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa81d914_76332462","line":703,"updated":"2015-01-30 18:45:14.000000000","message":"Should we be clear here that we\u0027re talking only about metrics that originate from periodic polling, as opposed to notifications?\n\nHow about instead:\n\n  enable_polled_metrics_tests","commit_id":"65f36152abcd657ce9347619bfdf3ff7cc61b667"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"7fd77e19cfcf8938689376206d62d977468a79e7","unresolved":false,"context_lines":[{"line_number":700,"context_line":"                default\u003dTrue,"},{"line_number":701,"context_line":"                help\u003d\"This variable is used as flag to enable \""},{"line_number":702,"context_line":"                     \"notification tests\"),"},{"line_number":703,"context_line":"    cfg.BoolOpt(\u0027enable_metrics_collection_tests\u0027,"},{"line_number":704,"context_line":"                default\u003dTrue,"},{"line_number":705,"context_line":"                help\u003d\"This variable is used as a flag to enable \""},{"line_number":706,"context_line":"                     \"metrics collection tests.\"),"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_83508d5f","line":703,"in_reply_to":"fa81d914_76332462","updated":"2015-03-05 23:30:13.000000000","message":"Done","commit_id":"65f36152abcd657ce9347619bfdf3ff7cc61b667"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"a7d6f90095522d9eb4c9973175b2ec63e65380a5","unresolved":false,"context_lines":[{"line_number":706,"context_line":"                     \"metrics collection tests.\"),"},{"line_number":707,"context_line":"    cfg.IntOpt(\u0027metrics_polling_interval\u0027, default\u003d620,"},{"line_number":708,"context_line":"               help\u003d(\"The number of seconds the compute agent will \""},{"line_number":709,"context_line":"                     \"wait between polling for VM metrics.\")),"},{"line_number":710,"context_line":"]"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa81d914_36144c9f","line":709,"updated":"2015-01-30 18:45:14.000000000","message":"This config option seems a bit misnamed and mis-explained.\n\nIIUC it\u0027s not so much the polling interval interval used by the compute agent (which we assume is the out-of-the-box default of 600s), rather it\u0027s the period that this test will sleep in order to ensure that a compute agent polling cycle has rolled around in the meantime.\n\nHow about \"polled_metric_delay\" or some-such instead that doesn\u0027t imply that the configured interval impacts on the compute agent\u0027s bahaviour?","commit_id":"65f36152abcd657ce9347619bfdf3ff7cc61b667"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"7fd77e19cfcf8938689376206d62d977468a79e7","unresolved":false,"context_lines":[{"line_number":706,"context_line":"                     \"metrics collection tests.\"),"},{"line_number":707,"context_line":"    cfg.IntOpt(\u0027metrics_polling_interval\u0027, default\u003d620,"},{"line_number":708,"context_line":"               help\u003d(\"The number of seconds the compute agent will \""},{"line_number":709,"context_line":"                     \"wait between polling for VM metrics.\")),"},{"line_number":710,"context_line":"]"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_a34f51bc","line":709,"in_reply_to":"fa81d914_36144c9f","updated":"2015-03-05 23:30:13.000000000","message":"Done","commit_id":"65f36152abcd657ce9347619bfdf3ff7cc61b667"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"f3ec4c9f72ab2a345d16cf63a9cf5f87db7af46a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from tempest.openstack.common import lockutils"},{"line_number":24,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def register_opt_group(conf, opt_group, options):"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa963961_614cbe42","line":24,"updated":"2015-03-27 17:47:32.000000000","message":"You need to change the way log is imported. See https://github.com/openstack/tempest/commit/1c78f96b712f71090c816cc1cf43a812777a02a0#diff-ef71612ba1181a3247c02ed540abe7e0R15","commit_id":"950b52bb59d4b957a16f9bd9a1e4d13eace83841"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"dec0c82f883db17b1474e7f547c726c7418b1a30","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from oslo.config import cfg"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from tempest.openstack.common import lockutils"},{"line_number":24,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def register_opt_group(conf, opt_group, options):"}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_50bf2cfb","line":24,"in_reply_to":"fa963961_614cbe42","updated":"2015-03-31 13:20:53.000000000","message":"A rebase fixes this.","commit_id":"950b52bb59d4b957a16f9bd9a1e4d13eace83841"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7fc5054fcf53e7e75e4f6fe93943dbb7d0d0142a","unresolved":false,"context_lines":[{"line_number":740,"context_line":"                default\u003dTrue,"},{"line_number":741,"context_line":"                help\u003d\"This variable is used as flag to enable \""},{"line_number":742,"context_line":"                     \"notification tests\"),"},{"line_number":743,"context_line":"    cfg.BoolOpt(\u0027enable_polled_metrics_tests\u0027,"},{"line_number":744,"context_line":"                default\u003dTrue,"},{"line_number":745,"context_line":"                help\u003d\"Flag used to enable metrics collection tests. These \""},{"line_number":746,"context_line":"                     \"metrics originate from compute agent\u0027s periodic \""}],"source_content_type":"text/x-python","patch_set":17,"id":"9aa53dc9_3c235107","line":743,"updated":"2015-04-08 13:23:19.000000000","message":"This should be in a new group: telemetry-feature-enabled and be renamed polled_metrics. We don\u0027t add test selection config options to tempest, instead it\u0027s mapped to options in the deployment configuration to outline whether the test can or can not be run. Deciding which tests should be run is something we leverage the test runner for.","commit_id":"8508985fc1e7c2797ccd32ca1c6207ae44cbc846"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a207c2919fef4501c3cd374345c92f770518849e","unresolved":false,"context_lines":[{"line_number":740,"context_line":"                default\u003dTrue,"},{"line_number":741,"context_line":"                help\u003d\"This variable is used as flag to enable \""},{"line_number":742,"context_line":"                     \"notification tests\"),"},{"line_number":743,"context_line":"    cfg.BoolOpt(\u0027enable_polled_metrics_tests\u0027,"},{"line_number":744,"context_line":"                default\u003dTrue,"},{"line_number":745,"context_line":"                help\u003d\"Flag used to enable metrics collection tests. These \""},{"line_number":746,"context_line":"                     \"metrics originate from compute agent\u0027s periodic \""}],"source_content_type":"text/x-python","patch_set":17,"id":"3ab451fb_70515862","line":743,"in_reply_to":"9aa53dc9_3c235107","updated":"2015-04-16 22:40:26.000000000","message":"Done","commit_id":"8508985fc1e7c2797ccd32ca1c6207ae44cbc846"}],"tempest/scenario/manager.py":[{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"f3ec4c9f72ab2a345d16cf63a9cf5f87db7af46a","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from tempest.common.utils.linux import remote_client"},{"line_number":29,"context_line":"from tempest import config"},{"line_number":30,"context_line":"from tempest import exceptions"},{"line_number":31,"context_line":"from tempest.openstack.common import log"},{"line_number":32,"context_line":"from tempest.services.network import resources as net_resources"},{"line_number":33,"context_line":"import tempest.test"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa963961_61739e81","line":31,"updated":"2015-03-27 17:47:32.000000000","message":"Same as the other one for log","commit_id":"950b52bb59d4b957a16f9bd9a1e4d13eace83841"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"dec0c82f883db17b1474e7f547c726c7418b1a30","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from tempest.common.utils.linux import remote_client"},{"line_number":29,"context_line":"from tempest import config"},{"line_number":30,"context_line":"from tempest import exceptions"},{"line_number":31,"context_line":"from tempest.openstack.common import log"},{"line_number":32,"context_line":"from tempest.services.network import resources as net_resources"},{"line_number":33,"context_line":"import tempest.test"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_90c5b48f","line":31,"in_reply_to":"fa963961_61739e81","updated":"2015-03-31 13:20:53.000000000","message":"A rebase fixes this.","commit_id":"950b52bb59d4b957a16f9bd9a1e4d13eace83841"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7fc5054fcf53e7e75e4f6fe93943dbb7d0d0142a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # Heat client"},{"line_number":73,"context_line":"        cls.orchestration_client \u003d cls.manager.orchestration_client"},{"line_number":74,"context_line":"        # Telemetry client"},{"line_number":75,"context_line":"        if CONF.service_available.ceilometer:"},{"line_number":76,"context_line":"            cls.telemetry_client \u003d cls.manager.telemetry_client"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":17,"id":"9aa53dc9_3cffd135","line":75,"updated":"2015-04-08 13:23:19.000000000","message":"Not a blocker, but is the if here really necessary, all the line below is an alias. The if doesn\u0027t stop the telemetry client from being initialized which is where the real optimization would come from.","commit_id":"8508985fc1e7c2797ccd32ca1c6207ae44cbc846"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a207c2919fef4501c3cd374345c92f770518849e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # Heat client"},{"line_number":73,"context_line":"        cls.orchestration_client \u003d cls.manager.orchestration_client"},{"line_number":74,"context_line":"        # Telemetry client"},{"line_number":75,"context_line":"        if CONF.service_available.ceilometer:"},{"line_number":76,"context_line":"            cls.telemetry_client \u003d cls.manager.telemetry_client"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":17,"id":"3ab451fb_90e74412","line":75,"in_reply_to":"9aa53dc9_3cffd135","updated":"2015-04-16 22:40:26.000000000","message":"It is necessary. :)\n\nIf the CONF options is not True, telemetry_client is not initialized / not set, causing an exception, trying to access an attribute that does not exist.\n\nhttps://github.com/openstack/tempest/blob/master/tempest/clients.py#L191","commit_id":"8508985fc1e7c2797ccd32ca1c6207ae44cbc846"}],"tempest/scenario/test_metrics_collection.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dbb455747698822ccd514fb352f716e04a973da3","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self._wait_for_server_status(\u0027ACTIVE\u0027)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def _wait_for_server_status(self, status):"},{"line_number":79,"context_line":"        server_id \u003d self.server[\u0027id\u0027]"},{"line_number":80,"context_line":"        # Raise on error defaults to True, which is consistent with the"},{"line_number":81,"context_line":"        # original function from scenario tests here"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_c4e0f4fc","line":78,"updated":"2015-03-11 18:28:20.000000000","message":"I am not sure why do you need this function. You could replace L76 with\n\nself.servers_client.wait_for_server_status(self.server[\u0027id\u0027], \u0027ACTIVE\u0027)","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0035462308814b69d158e4554f02f17c049a513e","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self._wait_for_server_status(\u0027ACTIVE\u0027)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def _wait_for_server_status(self, status):"},{"line_number":79,"context_line":"        server_id \u003d self.server[\u0027id\u0027]"},{"line_number":80,"context_line":"        # Raise on error defaults to True, which is consistent with the"},{"line_number":81,"context_line":"        # original function from scenario tests here"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_624493b7","line":78,"in_reply_to":"9a80dd14_c4e0f4fc","updated":"2015-03-11 21:16:21.000000000","message":"Done","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dbb455747698822ccd514fb352f716e04a973da3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # Raise on error defaults to True, which is consistent with the"},{"line_number":81,"context_line":"        # original function from scenario tests here"},{"line_number":82,"context_line":"        self.servers_client.wait_for_server_status(server_id, status)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def boot_instance(self):"},{"line_number":85,"context_line":"        self.server \u003d self.create_server()"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_046dac99","line":83,"updated":"2015-03-11 18:28:20.000000000","message":"You don\u0027t need to define a one line function. Just inline the code.","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0035462308814b69d158e4554f02f17c049a513e","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        # Raise on error defaults to True, which is consistent with the"},{"line_number":81,"context_line":"        # original function from scenario tests here"},{"line_number":82,"context_line":"        self.servers_client.wait_for_server_status(server_id, status)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def boot_instance(self):"},{"line_number":85,"context_line":"        self.server \u003d self.create_server()"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_821267b2","line":83,"in_reply_to":"9a80dd14_046dac99","updated":"2015-03-11 21:16:21.000000000","message":"Done","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dbb455747698822ccd514fb352f716e04a973da3","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            \u0027meter_name\u0027: meter_name, \u0027resource_id\u0027: resource_id})"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        samples \u003d self.telemetry_client.list_samples(meter_name)"},{"line_number":92,"context_line":"        self.assertTrue(samples is not None and len(samples) \u003e 0,"},{"line_number":93,"context_line":"                        \u0027Telemetry client returned no samples.\u0027)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        expected_samples \u003d [s for s in samples if"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_e4cdf887","line":92,"updated":"2015-03-11 18:28:20.000000000","message":"Don\u0027t assert 2 things at  the same time. Use assertIsNotNone and then assertIsNotEmpty","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0035462308814b69d158e4554f02f17c049a513e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            \u0027meter_name\u0027: meter_name, \u0027resource_id\u0027: resource_id})"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        samples \u003d self.telemetry_client.list_samples(meter_name)"},{"line_number":92,"context_line":"        self.assertTrue(samples is not None and len(samples) \u003e 0,"},{"line_number":93,"context_line":"                        \u0027Telemetry client returned no samples.\u0027)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        expected_samples \u003d [s for s in samples if"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_c29fff01","line":92,"in_reply_to":"9a80dd14_e4cdf887","updated":"2015-03-11 21:16:21.000000000","message":"Done","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dbb455747698822ccd514fb352f716e04a973da3","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        expected_samples \u003d [s for s in samples if"},{"line_number":96,"context_line":"                            s[\u0027resource_id\u0027] \u003d\u003d resource_id]"},{"line_number":97,"context_line":"        self.assertTrue(len(expected_samples) \u003e 0,"},{"line_number":98,"context_line":"                        \u0027No meter %(meter_name)s samples for resource \u0027"},{"line_number":99,"context_line":"                        \u0027%(resource_id)s found.\u0027 % {"},{"line_number":100,"context_line":"                            \u0027meter_name\u0027: meter_name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_44c32457","line":97,"updated":"2015-03-11 18:28:20.000000000","message":"Use assertIsNotEmpty","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0035462308814b69d158e4554f02f17c049a513e","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        expected_samples \u003d [s for s in samples if"},{"line_number":96,"context_line":"                            s[\u0027resource_id\u0027] \u003d\u003d resource_id]"},{"line_number":97,"context_line":"        self.assertTrue(len(expected_samples) \u003e 0,"},{"line_number":98,"context_line":"                        \u0027No meter %(meter_name)s samples for resource \u0027"},{"line_number":99,"context_line":"                        \u0027%(resource_id)s found.\u0027 % {"},{"line_number":100,"context_line":"                            \u0027meter_name\u0027: meter_name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_e2a2434a","line":97,"in_reply_to":"9a80dd14_44c32457","updated":"2015-03-11 21:16:21.000000000","message":"Done","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dbb455747698822ccd514fb352f716e04a973da3","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        non_zero_valued_samples \u003d [s for s in expected_samples if"},{"line_number":104,"context_line":"                                   s[\u0027counter_volume\u0027] \u003e 0]"},{"line_number":105,"context_line":"        self.assertTrue(len(non_zero_valued_samples) \u003e 0,"},{"line_number":106,"context_line":"                        \u0027All meter %(meter_name)s samples for resource \u0027"},{"line_number":107,"context_line":"                        \u0027%(resource_id)s are 0.\u0027 % {"},{"line_number":108,"context_line":"                            \u0027meter_name\u0027: meter_name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_84a43cba","line":105,"updated":"2015-03-11 18:28:20.000000000","message":"Use assertIsNotEmpty","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0035462308814b69d158e4554f02f17c049a513e","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        non_zero_valued_samples \u003d [s for s in expected_samples if"},{"line_number":104,"context_line":"                                   s[\u0027counter_volume\u0027] \u003e 0]"},{"line_number":105,"context_line":"        self.assertTrue(len(non_zero_valued_samples) \u003e 0,"},{"line_number":106,"context_line":"                        \u0027All meter %(meter_name)s samples for resource \u0027"},{"line_number":107,"context_line":"                        \u0027%(resource_id)s are 0.\u0027 % {"},{"line_number":108,"context_line":"                            \u0027meter_name\u0027: meter_name,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_22845bb0","line":105,"in_reply_to":"9a80dd14_84a43cba","updated":"2015-03-11 21:16:21.000000000","message":"Done","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"dbb455747698822ccd514fb352f716e04a973da3","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    @test.attr(type\u003d\u0027slow\u0027)"},{"line_number":131,"context_line":"    @test.services(\u0027telemetry\u0027)"},{"line_number":132,"context_line":"    def test_metrics(self):"},{"line_number":133,"context_line":"        time.sleep(CONF.telemetry.polled_metric_delay)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        cpu_res_id \u003d self._get_instance_cpu_resource_id()"},{"line_number":136,"context_line":"        self.telemetry_check_samples(cpu_res_id, \u0027cpu\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_c401d46b","line":133,"updated":"2015-03-11 18:28:20.000000000","message":"Add a log.info right before this. Otherwise some people would think the test is stuck.","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0035462308814b69d158e4554f02f17c049a513e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    @test.attr(type\u003d\u0027slow\u0027)"},{"line_number":131,"context_line":"    @test.services(\u0027telemetry\u0027)"},{"line_number":132,"context_line":"    def test_metrics(self):"},{"line_number":133,"context_line":"        time.sleep(CONF.telemetry.polled_metric_delay)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        cpu_res_id \u003d self._get_instance_cpu_resource_id()"},{"line_number":136,"context_line":"        self.telemetry_check_samples(cpu_res_id, \u0027cpu\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a80dd14_223a9b34","line":133,"in_reply_to":"9a80dd14_c401d46b","updated":"2015-03-11 21:16:21.000000000","message":"Done","commit_id":"d2c0c850a87fe4704157fea4d14c375786b2fdb4"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"f3ec4c9f72ab2a345d16cf63a9cf5f87db7af46a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import testtools"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from tempest import config"},{"line_number":21,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":22,"context_line":"from tempest.scenario import manager"},{"line_number":23,"context_line":"from tempest import test"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa963961_216d9698","line":21,"updated":"2015-03-27 17:47:32.000000000","message":"Same as the other ones for log","commit_id":"950b52bb59d4b957a16f9bd9a1e4d13eace83841"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"dec0c82f883db17b1474e7f547c726c7418b1a30","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import testtools"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from tempest import config"},{"line_number":21,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":22,"context_line":"from tempest.scenario import manager"},{"line_number":23,"context_line":"from tempest import test"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_7047d01d","line":21,"in_reply_to":"fa963961_216d9698","updated":"2015-03-31 13:20:53.000000000","message":"Done","commit_id":"950b52bb59d4b957a16f9bd9a1e4d13eace83841"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"af2ec2ec00041c6d69e6ba29d5207636657d62a8","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                              \u0027Telemetry client returned no samples.\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        expected_samples \u003d [s for s in samples if"},{"line_number":87,"context_line":"                            s[\u0027resource_id\u0027] \u003d\u003d resource_id]"},{"line_number":88,"context_line":"        self.assertIsNotEmpty("},{"line_number":89,"context_line":"            expected_samples,"},{"line_number":90,"context_line":"            \u0027No meter %(meter_name)s samples for resource \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6ced46_5fba25df","line":87,"updated":"2015-03-23 19:27:18.000000000","message":"not a big deal but it\u0027d be quicker to break at first matching result... same for below","commit_id":"950b52bb59d4b957a16f9bd9a1e4d13eace83841"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"dec0c82f883db17b1474e7f547c726c7418b1a30","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                              \u0027Telemetry client returned no samples.\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        expected_samples \u003d [s for s in samples if"},{"line_number":87,"context_line":"                            s[\u0027resource_id\u0027] \u003d\u003d resource_id]"},{"line_number":88,"context_line":"        self.assertIsNotEmpty("},{"line_number":89,"context_line":"            expected_samples,"},{"line_number":90,"context_line":"            \u0027No meter %(meter_name)s samples for resource \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"da9b358b_f02f603c","line":87,"in_reply_to":"1a6ced46_5fba25df","updated":"2015-03-31 13:20:53.000000000","message":"makes sense. Although, the first matching result might have the \u0027counter_volume\u0027 \u003d 0, which will cause the assert below to fail.","commit_id":"950b52bb59d4b957a16f9bd9a1e4d13eace83841"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"fd0e449bc1a73964c4fdaa3680019bf65dc9753b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Cloudbase Solutions"},{"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":14,"id":"da9b358b_17d863ee","line":1,"updated":"2015-03-31 21:19:53.000000000","message":"meanwhile, the year changed. :)","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"3f869d53a5c0f5ab14c9aa2fa729f67ba3f24fae","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        b. Set the interval value in pipeline.yaml on the compute node to"},{"line_number":53,"context_line":"        the desired value and restart the ceilometer compute agent."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    The second method is preferred, as the interval value defined in"},{"line_number":56,"context_line":"    pipeline.yaml is 600 seconds, which would mean each test would last"},{"line_number":57,"context_line":"    at least 10 minutes."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"da9b358b_1aead60f","line":55,"updated":"2015-03-31 15:58:46.000000000","message":"So you say the second method is preferred but you go for method 1, right ? It\u0027s because in Tempest, we can\u0027t set/decide the ceilometer configuration ?","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"fd0e449bc1a73964c4fdaa3680019bf65dc9753b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        b. Set the interval value in pipeline.yaml on the compute node to"},{"line_number":53,"context_line":"        the desired value and restart the ceilometer compute agent."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    The second method is preferred, as the interval value defined in"},{"line_number":56,"context_line":"    pipeline.yaml is 600 seconds, which would mean each test would last"},{"line_number":57,"context_line":"    at least 10 minutes."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"da9b358b_b7753799","line":55,"in_reply_to":"da9b358b_1aead60f","updated":"2015-03-31 21:19:53.000000000","message":"Yes, that is correct. We cannot change the ceilometer configuration in Tempest. We\u0027ll have to go with slow running tests on Tempest. :)","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"3f869d53a5c0f5ab14c9aa2fa729f67ba3f24fae","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    assumptions:"},{"line_number":66,"context_line":"        1. Ceilometer agent on the compute node is running"},{"line_number":67,"context_line":"        2. Ceilometer agent on the compute node has the same polling interval"},{"line_number":68,"context_line":"        defined in pipeline.yaml as polled_metric_delay defined in this"},{"line_number":69,"context_line":"        test suite."},{"line_number":70,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"da9b358b_7a1c4213","line":67,"updated":"2015-03-31 15:58:46.000000000","message":"It doesn\"t have to be the same value right ? It should be polled_metric_delay \u003e\u003d \"what\"s in pipeline.yaml\".","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"fd0e449bc1a73964c4fdaa3680019bf65dc9753b","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    assumptions:"},{"line_number":66,"context_line":"        1. Ceilometer agent on the compute node is running"},{"line_number":67,"context_line":"        2. Ceilometer agent on the compute node has the same polling interval"},{"line_number":68,"context_line":"        defined in pipeline.yaml as polled_metric_delay defined in this"},{"line_number":69,"context_line":"        test suite."},{"line_number":70,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"da9b358b_b79c17c1","line":67,"in_reply_to":"da9b358b_7a1c4213","updated":"2015-03-31 21:19:53.000000000","message":"Yes, you are correct. I will send a new patchset for this.","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"3f869d53a5c0f5ab14c9aa2fa729f67ba3f24fae","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _get_instance_port_resource_id(self):"},{"line_number":109,"context_line":"        start_res_id \u003d self.server[\u0027id\u0027]"},{"line_number":110,"context_line":"        resources \u003d self.telemetry_client.list_resources()"},{"line_number":111,"context_line":"        res_ids \u003d [r[\u0027resource_id\u0027] for r in resources"},{"line_number":112,"context_line":"                   if r[\u0027resource_id\u0027].startswith(\u0027instance-\u0027) and"},{"line_number":113,"context_line":"                   start_res_id in r[\u0027resource_id\u0027]]"}],"source_content_type":"text/x-python","patch_set":14,"id":"da9b358b_f5850559","line":110,"updated":"2015-03-31 15:58:46.000000000","message":"I am a bit afraid that if you run this test on a real environment (ie not devstack), this call will hammer ceilometer and returns thousands of resources. (but I am not sure)","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"4a34c96c2bea54790803eeefcada17620aef4b1b","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _get_instance_port_resource_id(self):"},{"line_number":109,"context_line":"        start_res_id \u003d self.server[\u0027id\u0027]"},{"line_number":110,"context_line":"        resources \u003d self.telemetry_client.list_resources()"},{"line_number":111,"context_line":"        res_ids \u003d [r[\u0027resource_id\u0027] for r in resources"},{"line_number":112,"context_line":"                   if r[\u0027resource_id\u0027].startswith(\u0027instance-\u0027) and"},{"line_number":113,"context_line":"                   start_res_id in r[\u0027resource_id\u0027]]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9aa53dc9_2855af1c","line":110,"in_reply_to":"da9b358b_42d299d3","updated":"2015-04-06 13:51:52.000000000","message":"So, unfornately, getting the resource_id for instance\u0027s port must be done this way. The format is: %(OS-EXT-SRV-ATTR:instance_name)s-%(instance_id)s-%(port_id)s, and OS-EXT-SRV-ATTR:instance_name is not a field returned by self.servers_client. This can be fixed in a later commit.","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"52b0b941365f4a7db8848b37cdbfe5183a222258","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _get_instance_port_resource_id(self):"},{"line_number":109,"context_line":"        start_res_id \u003d self.server[\u0027id\u0027]"},{"line_number":110,"context_line":"        resources \u003d self.telemetry_client.list_resources()"},{"line_number":111,"context_line":"        res_ids \u003d [r[\u0027resource_id\u0027] for r in resources"},{"line_number":112,"context_line":"                   if r[\u0027resource_id\u0027].startswith(\u0027instance-\u0027) and"},{"line_number":113,"context_line":"                   start_res_id in r[\u0027resource_id\u0027]]"}],"source_content_type":"text/x-python","patch_set":14,"id":"da9b358b_42d299d3","line":110,"in_reply_to":"da9b358b_d74afbab","updated":"2015-04-01 08:09:00.000000000","message":"In my experience, Tempest is run for several things (performance testing, quick functional testing after a new openstack deployment, functional testing after an openstack upgrade etc...). So if you have a way to only fetch the desired resource, that would be great. (but again, it\u0027s just a \"nice to have\" in my opinion).","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"fd0e449bc1a73964c4fdaa3680019bf65dc9753b","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def _get_instance_port_resource_id(self):"},{"line_number":109,"context_line":"        start_res_id \u003d self.server[\u0027id\u0027]"},{"line_number":110,"context_line":"        resources \u003d self.telemetry_client.list_resources()"},{"line_number":111,"context_line":"        res_ids \u003d [r[\u0027resource_id\u0027] for r in resources"},{"line_number":112,"context_line":"                   if r[\u0027resource_id\u0027].startswith(\u0027instance-\u0027) and"},{"line_number":113,"context_line":"                   start_res_id in r[\u0027resource_id\u0027]]"}],"source_content_type":"text/x-python","patch_set":14,"id":"da9b358b_d74afbab","line":110,"in_reply_to":"da9b358b_f5850559","updated":"2015-03-31 21:19:53.000000000","message":"Yes, that might be true. I was doing this because I did not know how the resource_id for the port looks. Apparently, it is: %(instance_name)s-%(instance_id)s-%(port_id)s\n\nAlthough, I don\u0027t think there would be any reason to run this test on a real environment, which already has thousands of resources.","commit_id":"f6aad0d355ec4b36ebf65e441972e00e1eca0154"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7fc5054fcf53e7e75e4f6fe93943dbb7d0d0142a","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(TestMetricsScenario, self).setUp()"},{"line_number":79,"context_line":"        self.server \u003d self.create_server(wait_on_boot\u003dTrue)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def telemetry_check_samples(self, resource_id, meter_name):"},{"line_number":82,"context_line":"        LOG.info(\"Checking %(meter_name)s for resource %(resource_id)s\" % {"}],"source_content_type":"text/x-python","patch_set":17,"id":"9aa53dc9_c7513210","line":79,"updated":"2015-04-08 13:23:19.000000000","message":"Honestly, I\u0027d probably just move this into the test method itself for clarity. I\u0027d only use setup here if there were multiple test methods in this class and they both needed new servers.","commit_id":"8508985fc1e7c2797ccd32ca1c6207ae44cbc846"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a207c2919fef4501c3cd374345c92f770518849e","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def setUp(self):"},{"line_number":78,"context_line":"        super(TestMetricsScenario, self).setUp()"},{"line_number":79,"context_line":"        self.server \u003d self.create_server(wait_on_boot\u003dTrue)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def telemetry_check_samples(self, resource_id, meter_name):"},{"line_number":82,"context_line":"        LOG.info(\"Checking %(meter_name)s for resource %(resource_id)s\" % {"}],"source_content_type":"text/x-python","patch_set":17,"id":"3ab451fb_d0570cc9","line":79,"in_reply_to":"9aa53dc9_c7513210","updated":"2015-04-16 22:40:26.000000000","message":"Done","commit_id":"8508985fc1e7c2797ccd32ca1c6207ae44cbc846"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"7fc5054fcf53e7e75e4f6fe93943dbb7d0d0142a","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    @testtools.skipUnless(CONF.telemetry.enable_polled_metrics_tests,"},{"line_number":128,"context_line":"                          \"Metrics collection is not available.\")"},{"line_number":129,"context_line":"    @test.attr(type\u003d\u0027slow\u0027)"},{"line_number":130,"context_line":"    @test.services(\u0027telemetry\u0027)"},{"line_number":131,"context_line":"    def test_metrics(self):"},{"line_number":132,"context_line":"        LOG.info(\"Waiting %s seconds for the ceilometer compute agents to \""},{"line_number":133,"context_line":"                 \"publish the samples.\", CONF.telemetry.polled_metric_delay)"}],"source_content_type":"text/x-python","patch_set":17,"id":"9aa53dc9_5c0e153c","line":130,"updated":"2015-04-08 13:23:19.000000000","message":"I would also put compute in this list, this test relies on server creation, and the polling interface to nova working correctly..","commit_id":"8508985fc1e7c2797ccd32ca1c6207ae44cbc846"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a207c2919fef4501c3cd374345c92f770518849e","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    @testtools.skipUnless(CONF.telemetry.enable_polled_metrics_tests,"},{"line_number":128,"context_line":"                          \"Metrics collection is not available.\")"},{"line_number":129,"context_line":"    @test.attr(type\u003d\u0027slow\u0027)"},{"line_number":130,"context_line":"    @test.services(\u0027telemetry\u0027)"},{"line_number":131,"context_line":"    def test_metrics(self):"},{"line_number":132,"context_line":"        LOG.info(\"Waiting %s seconds for the ceilometer compute agents to \""},{"line_number":133,"context_line":"                 \"publish the samples.\", CONF.telemetry.polled_metric_delay)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3ab451fb_f06208ad","line":130,"in_reply_to":"9aa53dc9_5c0e153c","updated":"2015-04-16 22:40:26.000000000","message":"Done","commit_id":"8508985fc1e7c2797ccd32ca1c6207ae44cbc846"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"43920d50d1a2aa19241d8640f87b4b8314ce2531","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    The second method is preferred, as the interval value defined in"},{"line_number":57,"context_line":"    pipeline.yaml is 600 seconds, which would mean each test would last"},{"line_number":58,"context_line":"    at least 10 minutes."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    Note: If the polled_metric_delay value is too low, the tests might not find"},{"line_number":61,"context_line":"    any samples and fail because of this. As a recommandation,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3ab451fb_c3ece591","line":58,"updated":"2015-04-17 01:28:01.000000000","message":"I feel the above comment(the second method is preferred) seems strange. Tempest is just a test suite but the above comment seems the recommendation of Ceilometer configuration. So the comment is out of scope of Tempest.\nIt is right to set Tempest configuration based on a test target environment.","commit_id":"75bce36cf53cd3294cfbf5224a65799b25e89cec"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"43920d50d1a2aa19241d8640f87b4b8314ce2531","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    Note: If the polled_metric_delay value is too low, the tests might not find"},{"line_number":61,"context_line":"    any samples and fail because of this. As a recommandation,"},{"line_number":62,"context_line":"    polled_metric_delay\u0027s value should be:"},{"line_number":63,"context_line":"        polled_metric_delay \u003d \u003cpipeline.yaml interval value\u003e + \u003c15-20 seconds\u003e"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    tests:"},{"line_number":66,"context_line":"        1. test_metrics - tests values for the following metrics:"}],"source_content_type":"text/x-python","patch_set":18,"id":"3ab451fb_6393d1fb","line":63,"updated":"2015-04-17 01:28:01.000000000","message":"Ceilometer\u0027s pipline.yaml contains multiple interval(s) like:\n\nsources:\n    - name: meter_source\n      interval: 600\n      meters:\n          - \"*\"\n      sinks:\n          - meter_sink\n    - name: cpu_source\n      interval: 600\n      meters:\n          - \"cpu\"\n      sinks:\n          - cpu_sink\n    - name: disk_source\n      interval: 600\n\nSo which value here mentions?","commit_id":"75bce36cf53cd3294cfbf5224a65799b25e89cec"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"43920d50d1a2aa19241d8640f87b4b8314ce2531","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    assumptions:"},{"line_number":72,"context_line":"        1. Ceilometer agent on the compute node is running."},{"line_number":73,"context_line":"        2. Ceilometer agent on the compute node has the same polling interval"},{"line_number":74,"context_line":"        defined in pipeline.yaml as polled_metric_delay defined in this"},{"line_number":75,"context_line":"        test suite."},{"line_number":76,"context_line":"    \"\"\""},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3ab451fb_e3b5a17e","line":74,"updated":"2015-04-17 01:28:01.000000000","message":"The above comment(the same polling interval) is a little different from line 63.","commit_id":"75bce36cf53cd3294cfbf5224a65799b25e89cec"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"43920d50d1a2aa19241d8640f87b4b8314ce2531","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                   if r[\u0027resource_id\u0027].startswith(\u0027instance-\u0027) and"},{"line_number":118,"context_line":"                   start_res_id in r[\u0027resource_id\u0027]]"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        self.assertEqual(len(res_ids), 1)"},{"line_number":121,"context_line":"        return res_ids[0]"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @test.idempotent_id(\u0027be7182a8-3e8f-4de3-a388-67af179da066\u0027)"}],"source_content_type":"text/x-python","patch_set":18,"id":"3ab451fb_03364d03","line":120,"updated":"2015-04-17 01:28:01.000000000","message":"nit: better to rearrange arguments like\n\n  self.assertEqual(1, len(res_ids))\n\nfor assertEqual usage manner.","commit_id":"75bce36cf53cd3294cfbf5224a65799b25e89cec"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"7d42d539b92c6a314eea4665f8b0a4133b938930","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    @test.services(\u0027compute\u0027)"},{"line_number":127,"context_line":"    def test_metrics(self):"},{"line_number":128,"context_line":"        self.server \u003d self.create_server(wait_on_boot\u003dTrue)"},{"line_number":129,"context_line":"        LOG.info(\"Waiting %s seconds for the ceilometer compute agents to \""},{"line_number":130,"context_line":"                 \"publish the samples.\", CONF.telemetry.polled_metric_delay)"},{"line_number":131,"context_line":"        time.sleep(CONF.telemetry.polled_metric_delay)"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3afb71cf_0899921f","line":129,"updated":"2015-06-08 13:12:58.000000000","message":"AFAIK the wait time is not guaranteed, you can get the first sample sooner.\n\nIn this case we should do a continuous check with a timeout.\n\n(BTW: It was configured to a lower default value in devstack.)","commit_id":"21a18c7b5b1062ee7d08ba2e94078fd1d4c1a36e"}]}
