)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"6a7ca6702421a7ddf60bf0d0c0579f2f48181ac7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add monasca tests in plugin - Part 1: metrics"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* fix bad variable name in .../context/monasca/test_metrics.py"},{"line_number":10,"context_line":"* fix timestamp to create new metric every 5s in .../context/monasca/metrics.py"},{"line_number":11,"context_line":"* add empty line before imports in every files where is needed"},{"line_number":12,"context_line":"* add list_measurements and list_statistics tests for metrics"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a740942_d338b5a2","line":9,"updated":"2015-12-11 17:32:18.000000000","message":"it looks like all these points doesn\u0027t relate to this patch:)","commit_id":"43d95a9c4fad8c38110324a1c4b1bb9fcaea844b"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"8259b66d852cfd3e15dbd5baf809c90cd85b73bf","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     ningyan \u003cyan.ning@twcable.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-21 08:42:29 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add monasca tests in plugin - Part 0: metrics"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* re-check jenkins job"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"3a7e1126_2915b69a","line":7,"updated":"2015-12-22 06:23:31.000000000","message":"\u0027tests\u0027 mislead us to unit tests, would you like replace it with \u0027benchmark\u0027?","commit_id":"90b4b00b800741e4fb3d21a9d7101ae25236ecd9"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"8259b66d852cfd3e15dbd5baf809c90cd85b73bf","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add monasca tests in plugin - Part 0: metrics"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* re-check jenkins job"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib16941a4b9d59a2ff51e93cfb178bc12c3df26cf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"3a7e1126_89438aae","line":9,"updated":"2015-12-22 06:23:31.000000000","message":"I think you have to list details in this patch. At least:\n\n* add new context of creating metrics via monasca\n* add metric list benchmark\n* some other notes","commit_id":"90b4b00b800741e4fb3d21a9d7101ae25236ecd9"}],"rally-jobs/rally-monasca.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    -"},{"line_number":4,"context_line":"      runner:"},{"line_number":5,"context_line":"        type: \"constant\""},{"line_number":6,"context_line":"        times: 1"},{"line_number":7,"context_line":"        concurrency: 1"},{"line_number":8,"context_line":"      context:"},{"line_number":9,"context_line":"        users:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_fc4799a0","line":6,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 10.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"      runner:"},{"line_number":5,"context_line":"        type: \"constant\""},{"line_number":6,"context_line":"        times: 1"},{"line_number":7,"context_line":"        concurrency: 1"},{"line_number":8,"context_line":"      context:"},{"line_number":9,"context_line":"        users:"},{"line_number":10,"context_line":"          tenants: 1"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_9cc9b528","line":7,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"        concurrency: 1"},{"line_number":8,"context_line":"      context:"},{"line_number":9,"context_line":"        users:"},{"line_number":10,"context_line":"          tenants: 1"},{"line_number":11,"context_line":"          users_per_tenant: 1"},{"line_number":12,"context_line":"        roles:"},{"line_number":13,"context_line":"         - \"monasca-user\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_bcccb135","line":10,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":8,"context_line":"      context:"},{"line_number":9,"context_line":"        users:"},{"line_number":10,"context_line":"          tenants: 1"},{"line_number":11,"context_line":"          users_per_tenant: 1"},{"line_number":12,"context_line":"        roles:"},{"line_number":13,"context_line":"         - \"monasca-user\""},{"line_number":14,"context_line":"        monasca:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_5ccfcd28","line":11,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":26,"context_line":"      runner:"},{"line_number":27,"context_line":"        type: \"constant\""},{"line_number":28,"context_line":"        times: 10"},{"line_number":29,"context_line":"        concurrency: 1"},{"line_number":30,"context_line":"      context:"},{"line_number":31,"context_line":"        users:"},{"line_number":32,"context_line":"          tenants: 1"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_dc4c1dca","line":29,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        concurrency: 1"},{"line_number":30,"context_line":"      context:"},{"line_number":31,"context_line":"        users:"},{"line_number":32,"context_line":"          tenants: 1"},{"line_number":33,"context_line":"          users_per_tenant: 1"},{"line_number":34,"context_line":"        roles:"},{"line_number":35,"context_line":"         - \"monasca-user\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_7cd2c9d2","line":32,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":30,"context_line":"      context:"},{"line_number":31,"context_line":"        users:"},{"line_number":32,"context_line":"          tenants: 1"},{"line_number":33,"context_line":"          users_per_tenant: 1"},{"line_number":34,"context_line":"        roles:"},{"line_number":35,"context_line":"         - \"monasca-user\""},{"line_number":36,"context_line":"        monasca:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_1cde25dd","line":33,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":54,"context_line":"      runner:"},{"line_number":55,"context_line":"        type: \"constant\""},{"line_number":56,"context_line":"        times: 10"},{"line_number":57,"context_line":"        concurrency: 1"},{"line_number":58,"context_line":"      context:"},{"line_number":59,"context_line":"        users:"},{"line_number":60,"context_line":"          tenants: 1"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_3cd9a1f3","line":57,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        concurrency: 1"},{"line_number":58,"context_line":"      context:"},{"line_number":59,"context_line":"        users:"},{"line_number":60,"context_line":"          tenants: 1"},{"line_number":61,"context_line":"          users_per_tenant: 1"},{"line_number":62,"context_line":"        roles:"},{"line_number":63,"context_line":"         - \"monasca-user\""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_dce3bda2","line":60,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":58,"context_line":"      context:"},{"line_number":59,"context_line":"        users:"},{"line_number":60,"context_line":"          tenants: 1"},{"line_number":61,"context_line":"          users_per_tenant: 1"},{"line_number":62,"context_line":"        roles:"},{"line_number":63,"context_line":"         - \"monasca-user\""},{"line_number":64,"context_line":"        monasca:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a740942_fcdeb9d8","line":61,"updated":"2015-12-13 23:20:40.000000000","message":"Please increase it to 2.","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"}],"rally/plugins/openstack/context/monasca/metrics.py":[{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"6e9c8e524caab9709bde3045d04f391b16fd590a","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"@context.configure(name\u003d\"monasca\", order\u003d500)"},{"line_number":44,"context_line":"class MonascaMetricGenerator(context.Context):"},{"line_number":45,"context_line":"    \"\"\"Context for creating metrics  for benchmarks.\"\"\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    CONFIG_SCHEMA \u003d {"},{"line_number":48,"context_line":"        \"type\": \"object\","}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_dd3908da","line":45,"updated":"2015-11-21 13:30:20.000000000","message":"there\u0027s an extra blank","commit_id":"182baef67c9c0ee3943f5ce0914975da7d438b4e"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"6a7ca6702421a7ddf60bf0d0c0579f2f48181ac7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CONF \u003d cfg.CONF"},{"line_number":39,"context_line":"benchmark_group \u003d cfg.OptGroup(name\u003d\"benchmark\", title\u003d\"benchmark options\")"},{"line_number":40,"context_line":"CONF.register_opts(MONASCA_BENCHMARK_OPTS, group\u003dbenchmark_group)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_e1f95a4f","line":39,"updated":"2015-12-11 17:32:18.000000000","message":"you should register new opts here - https://github.com/openstack/rally/blob/master/rally/common/opts.py\n\nalso, you should launch `tox -egenconfig`","commit_id":"43d95a9c4fad8c38110324a1c4b1bb9fcaea844b"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"b2970e358b1947707eff0d873dd39fa77921c46c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CONF \u003d cfg.CONF"},{"line_number":39,"context_line":"benchmark_group \u003d cfg.OptGroup(name\u003d\"benchmark\", title\u003d\"benchmark options\")"},{"line_number":40,"context_line":"CONF.register_opts(MONASCA_BENCHMARK_OPTS, group\u003dbenchmark_group)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_e2e395d7","line":39,"in_reply_to":"7a740942_e1f95a4f","updated":"2015-12-11 19:20:21.000000000","message":"Thanks. Will make the change for register new opts.\nAlso, I\u0027m not fully understand your second comment for \u0027tox -egenconfig\u0027. When/where to launch it? Are you talking about for self check test before submit the patch?\n\nYan","commit_id":"43d95a9c4fad8c38110324a1c4b1bb9fcaea844b"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"@context.configure(name\u003d\"monasca\", order\u003d500)"},{"line_number":31,"context_line":"class MonascaMetricGenerator(context.Context):"},{"line_number":32,"context_line":"    \"\"\"Context for creating metrics  for benchmarks.\"\"\""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_7ca08942","line":30,"updated":"2015-12-13 23:20:40.000000000","message":"rally/rally/plugins/openstack/context/vm/custom_image.py this order was taken. monasca is bad name here in cause of multiple contexts. Better monasca_metrics","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":92,"context_line":"                time.sleep(5)"},{"line_number":93,"context_line":"        time.sleep("},{"line_number":94,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Monasca`\"))"},{"line_number":97,"context_line":"    def cleanup(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_1c05c544","line":94,"updated":"2015-12-13 23:20:40.000000000","message":"Please use instead of time.sleep https://github.com/openstack/rally/blob/master/rally/common/utils.py#L460 And why we need it here?","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"31897ec01614397101a90789951d2ecf06d81972","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":90,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":91,"context_line":"        rutils.interruptable_sleep("},{"line_number":92,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":93,"context_line":"            atomic_delay\u003d1)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Monasca`\"))"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a7e1126_b915aa40","line":92,"updated":"2015-12-21 04:24:17.000000000","message":"just import CONF in this module \"CONF \u003d cfg.CONF\", which is an OpenStack style","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"0252967ce2ce7632dc12009006ca2c20e842f77f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":90,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":91,"context_line":"        rutils.interruptable_sleep("},{"line_number":92,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":93,"context_line":"            atomic_delay\u003d1)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Monasca`\"))"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a7e1126_99f78e58","line":92,"in_reply_to":"3a7e1126_b915aa40","updated":"2015-12-21 05:41:28.000000000","message":"I moved CONF to monasca/utils.py in this patch set. I think it\u0027s the better place to keep customized configuration for monasca tests to use.","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"@context.configure(name\u003d\"monasca\", order\u003d510)"},{"line_number":29,"context_line":"class MonascaMetricGenerator(context.Context):"},{"line_number":30,"context_line":"    \"\"\"Context for creating metrics  for benchmarks.\"\"\""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_a9fe3136","line":28,"range":{"start_line":28,"start_character":25,"end_line":28,"end_character":32},"updated":"2015-12-24 00:45:29.000000000","message":"Lets rename to \"monasca_metrics\"","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"36e47b505046794c812d8cbd4825a58d9839124c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"@context.configure(name\u003d\"monasca\", order\u003d510)"},{"line_number":29,"context_line":"class MonascaMetricGenerator(context.Context):"},{"line_number":30,"context_line":"    \"\"\"Context for creating metrics  for benchmarks.\"\"\""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_ddb493f3","line":28,"range":{"start_line":28,"start_character":25,"end_line":28,"end_character":32},"in_reply_to":"1a7b0d38_a9fe3136","updated":"2015-12-24 04:03:02.000000000","message":"Sorry. I\u0027m not convinced that this change is a must.","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Monasca`\"))"},{"line_number":79,"context_line":"    def setup(self):"},{"line_number":80,"context_line":"        new_metric \u003d {"},{"line_number":81,"context_line":"            \"name\": self.config[\"name\"],"},{"line_number":82,"context_line":"            \"region\": self.config[\"region\"],"},{"line_number":83,"context_line":"            \"service\": self.config[\"service\"],"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_4c91db98","line":80,"updated":"2015-12-24 00:45:29.000000000","message":"This is not a new metric. Maybe better metric_args","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"36e47b505046794c812d8cbd4825a58d9839124c","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Monasca`\"))"},{"line_number":79,"context_line":"    def setup(self):"},{"line_number":80,"context_line":"        new_metric \u003d {"},{"line_number":81,"context_line":"            \"name\": self.config[\"name\"],"},{"line_number":82,"context_line":"            \"region\": self.config[\"region\"],"},{"line_number":83,"context_line":"            \"service\": self.config[\"service\"],"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_3da597b4","line":80,"in_reply_to":"1a7b0d38_4c91db98","updated":"2015-12-24 04:03:02.000000000","message":"This call does make a new metric. As I mentioned earlier, I\u0027m not convinced the change is a \"MUST\".","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Monasca`\"))"},{"line_number":100,"context_line":"    def cleanup(self):"},{"line_number":101,"context_line":"        # We don\u0027t have API for removal of metrics"},{"line_number":102,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_a9acf135","line":101,"range":{"start_line":101,"start_character":18,"end_line":101,"end_character":19},"updated":"2015-12-24 00:45:29.000000000","message":"Its sad)","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6599ee92bf7fa7200377f7c8725605b8f205d6b2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    def setup(self):"},{"line_number":85,"context_line":"        new_metric \u003d {"},{"line_number":86,"context_line":"            \"name\": self.config[\"name\"],"},{"line_number":87,"context_line":"            \"dimensions\": self.config[\"dimensions\"]"},{"line_number":88,"context_line":"        }"},{"line_number":89,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":90,"context_line":"                self.context[\"users\"]):"}],"source_content_type":"text/x-python","patch_set":29,"id":"da6ed579_72f40a5a","line":87,"updated":"2016-01-15 13:08:28.000000000","message":"In schema dimensions is not the required field. So here we could get trace if I not specify it.","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"0cba45556f35923a394e4bc86c7d6287c5c1b36c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    def setup(self):"},{"line_number":85,"context_line":"        new_metric \u003d {"},{"line_number":86,"context_line":"            \"name\": self.config[\"name\"],"},{"line_number":87,"context_line":"            \"dimensions\": self.config[\"dimensions\"]"},{"line_number":88,"context_line":"        }"},{"line_number":89,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":90,"context_line":"                self.context[\"users\"]):"}],"source_content_type":"text/x-python","patch_set":29,"id":"5a5ae5dd_b6fe9636","line":87,"in_reply_to":"da6ed579_72f40a5a","updated":"2016-02-04 02:10:55.000000000","message":"Done","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9c66e62d1c2c2da82da38e5aa28d25ef635241d3","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            )"},{"line_number":98,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":99,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":100,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":101,"context_line":"        rutils.interruptable_sleep("},{"line_number":102,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":103,"context_line":"            atomic_delay\u003d1)"}],"source_content_type":"text/x-python","patch_set":32,"id":"1a122d0e_ae49ab90","line":100,"updated":"2016-05-04 11:47:19.000000000","message":"Please answer the question - why we need here to sleep?","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"d9ba7e5dac132a3741cdf22d3de6c94a1c442e46","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            )"},{"line_number":98,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":99,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":100,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":101,"context_line":"        rutils.interruptable_sleep("},{"line_number":102,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":103,"context_line":"            atomic_delay\u003d1)"}],"source_content_type":"text/x-python","patch_set":32,"id":"dab17558_4762bbd9","line":100,"in_reply_to":"1a122d0e_ae49ab90","updated":"2016-05-13 03:58:04.000000000","message":"This is intended for bigger timestamp difference between each metric posted","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9c66e62d1c2c2da82da38e5aa28d25ef635241d3","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":99,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":100,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":101,"context_line":"        rutils.interruptable_sleep("},{"line_number":102,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":103,"context_line":"            atomic_delay\u003d1)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"1a122d0e_b92573af","line":101,"updated":"2016-05-04 11:47:19.000000000","message":"why we need here to sleep?","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"d9ba7e5dac132a3741cdf22d3de6c94a1c442e46","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":99,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":100,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":101,"context_line":"        rutils.interruptable_sleep("},{"line_number":102,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":103,"context_line":"            atomic_delay\u003d1)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":32,"id":"dab17558_67ed3f25","line":101,"in_reply_to":"1a122d0e_b92573af","updated":"2016-05-13 03:58:04.000000000","message":"this sleep is to wait for monasca batch post to finish push data to database before the list metric call. so list metric call can get data out from database.","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e88e215eaf0e6c506fc233d5d56a9d2530e9ce9c","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Monasca`\"))"},{"line_number":84,"context_line":"    def setup(self):"},{"line_number":85,"context_line":"        if \"dimensions\" not in self.config:"},{"line_number":86,"context_line":"            raise AttributeError(\"Undefined dimensions\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        new_metric \u003d {"}],"source_content_type":"text/x-python","patch_set":35,"id":"7aa08908_c2b9b27e","line":85,"updated":"2016-06-15 08:54:11.000000000","message":"Why not simply add \"dimensions\" into \"required\" list at L75?","commit_id":"cb1cd4f1da7ffe740af7f3dd7e4f52802e3fca3c"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"23cd7b9b6b62eb282bdc0d6cce2e2bcd24173c0c","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Monasca`\"))"},{"line_number":84,"context_line":"    def setup(self):"},{"line_number":85,"context_line":"        if \"dimensions\" not in self.config:"},{"line_number":86,"context_line":"            raise AttributeError(\"Undefined dimensions\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        new_metric \u003d {"}],"source_content_type":"text/x-python","patch_set":35,"id":"3aaa91ec_a1062483","line":85,"in_reply_to":"7aa08908_c2b9b27e","updated":"2016-07-07 21:26:24.000000000","message":"dimensions are not \"required\" for monasca create metrics call according to monasca documentation. but dimensions are recomanded for better query after create","commit_id":"cb1cd4f1da7ffe740af7f3dd7e4f52802e3fca3c"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e88e215eaf0e6c506fc233d5d56a9d2530e9ce9c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                context\u003d{\"user\": user, \"task\": self.context[\"task\"]}"},{"line_number":97,"context_line":"            )"},{"line_number":98,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":99,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":100,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":101,"context_line":"        rutils.interruptable_sleep("},{"line_number":102,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"}],"source_content_type":"text/x-python","patch_set":35,"id":"7aa08908_fdda934a","line":99,"updated":"2016-06-15 08:54:11.000000000","message":"I would recommend to save these metrics in context, since this is a result of context work and it can be useful to have this result available without API calls. This is how other contexts do.","commit_id":"cb1cd4f1da7ffe740af7f3dd7e4f52802e3fca3c"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"23cd7b9b6b62eb282bdc0d6cce2e2bcd24173c0c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                context\u003d{\"user\": user, \"task\": self.context[\"task\"]}"},{"line_number":97,"context_line":"            )"},{"line_number":98,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":99,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":100,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":101,"context_line":"        rutils.interruptable_sleep("},{"line_number":102,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"}],"source_content_type":"text/x-python","patch_set":35,"id":"1aa78d24_116e6c96","line":99,"in_reply_to":"7aa08908_fdda934a","updated":"2016-07-07 21:26:24.000000000","message":"I\u0027m not sure if this is a good idea since create metric call actually does not return any content.","commit_id":"cb1cd4f1da7ffe740af7f3dd7e4f52802e3fca3c"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Monasca`\"))"},{"line_number":84,"context_line":"    def setup(self):"},{"line_number":85,"context_line":"        if \"dimensions\" not in self.config:"},{"line_number":86,"context_line":"            raise AttributeError(\"Undefined dimensions\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        new_metric \u003d {"},{"line_number":89,"context_line":"            \"name\": self.config[\"name\"],"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_d82634cd","line":86,"updated":"2016-07-26 08:58:31.000000000","message":"For that purpose we use config schema. Please use it","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            )"},{"line_number":98,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":99,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":100,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":101,"context_line":"        rutils.interruptable_sleep("},{"line_number":102,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":103,"context_line":"            atomic_delay\u003d1)"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_dbc58e8e","line":100,"updated":"2016-07-26 08:58:31.000000000","message":"Why we need to sleep for a five seconds?","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":99,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":100,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":101,"context_line":"        rutils.interruptable_sleep("},{"line_number":102,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":103,"context_line":"            atomic_delay\u003d1)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_fb6692b9","line":101,"updated":"2016-07-26 08:58:31.000000000","message":"Do we really need 12 seconds by default to sleep to wait for metric creation? How many time does it takes usually?","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"396589d68727bc6877f191470ab85e99c071e97c","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Monasca`\"))"},{"line_number":84,"context_line":"    def setup(self):"},{"line_number":85,"context_line":"        if \"dimensions\" not in self.config:"},{"line_number":86,"context_line":"            new_metric \u003d {"},{"line_number":87,"context_line":"                \"name\": self.config[\"name\"]"},{"line_number":88,"context_line":"            }"},{"line_number":89,"context_line":"        else:"},{"line_number":90,"context_line":"            new_metric \u003d {"},{"line_number":91,"context_line":"                \"name\": self.config[\"name\"],"},{"line_number":92,"context_line":"                \"dimensions\": self.config[\"dimensions\"]"},{"line_number":93,"context_line":"            }"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":96,"context_line":"                self.context[\"users\"]):"}],"source_content_type":"text/x-python","patch_set":37,"id":"dada55a8_1505ee12","line":93,"range":{"start_line":85,"start_character":0,"end_line":93,"end_character":13},"updated":"2016-07-27 11:59:05.000000000","message":"new_metric \u003d {\n                \"name\": self.config[\"name\"]}\nif \"dimensions\" in self.config:\n        new_metric \u003d {,\n            \"dimensions\": self.config[\"dimensions\"]\n        }","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"5979ae0b2eb007aac61f252e36b049b0a2fd8186","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Enter context: `Monasca`\"))"},{"line_number":84,"context_line":"    def setup(self):"},{"line_number":85,"context_line":"        if \"dimensions\" not in self.config:"},{"line_number":86,"context_line":"            new_metric \u003d {"},{"line_number":87,"context_line":"                \"name\": self.config[\"name\"]"},{"line_number":88,"context_line":"            }"},{"line_number":89,"context_line":"        else:"},{"line_number":90,"context_line":"            new_metric \u003d {"},{"line_number":91,"context_line":"                \"name\": self.config[\"name\"],"},{"line_number":92,"context_line":"                \"dimensions\": self.config[\"dimensions\"]"},{"line_number":93,"context_line":"            }"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        for user, tenant_id in rutils.iterate_per_tenants("},{"line_number":96,"context_line":"                self.context[\"users\"]):"}],"source_content_type":"text/x-python","patch_set":37,"id":"bacf61ea_8bd4f147","line":93,"range":{"start_line":85,"start_character":0,"end_line":93,"end_character":13},"in_reply_to":"dada55a8_1505ee12","updated":"2016-07-27 17:11:01.000000000","message":"name is required. fixed in next patch.","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"396589d68727bc6877f191470ab85e99c071e97c","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":103,"context_line":"        rutils.interruptable_sleep("},{"line_number":104,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":105,"context_line":"            atomic_delay\u003d1)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Monasca`\"))"},{"line_number":108,"context_line":"    def cleanup(self):"}],"source_content_type":"text/x-python","patch_set":37,"id":"dada55a8_78589f31","line":105,"updated":"2016-07-27 11:59:05.000000000","message":"You are not answer the question about sleep()s from the 36th patch","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"5979ae0b2eb007aac61f252e36b049b0a2fd8186","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":103,"context_line":"        rutils.interruptable_sleep("},{"line_number":104,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":105,"context_line":"            atomic_delay\u003d1)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Monasca`\"))"},{"line_number":108,"context_line":"    def cleanup(self):"}],"source_content_type":"text/x-python","patch_set":37,"id":"bacf61ea_4b52f9de","line":105,"in_reply_to":"dada55a8_78589f31","updated":"2016-07-27 17:11:01.000000000","message":"sleep here is for each metric has unique timestamp.","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f0da2f8446161659c00e244c180432629b274f31","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            )"},{"line_number":99,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":100,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":101,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":102,"context_line":"        rutils.interruptable_sleep("},{"line_number":103,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":104,"context_line":"            atomic_delay\u003d1)"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_ef81234f","line":101,"updated":"2016-07-27 21:30:12.000000000","message":"If this is only for unique timestamp then please reduce it to 0.001","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"9e9b4ff3dbec120d41336af17539f5d54a4afbe2","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            )"},{"line_number":99,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":100,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":101,"context_line":"                rutils.interruptable_sleep(5, atomic_delay\u003d1)"},{"line_number":102,"context_line":"        rutils.interruptable_sleep("},{"line_number":103,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":104,"context_line":"            atomic_delay\u003d1)"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_012bab83","line":101,"in_reply_to":"bacf61ea_ef81234f","updated":"2016-07-27 21:59:17.000000000","message":"Done","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"8d3178e32e678d17d887c4ac7d2108c3fba507db","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                context\u003d{\"user\": user, \"task\": self.context[\"task\"]}"},{"line_number":95,"context_line":"            )"},{"line_number":96,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":97,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":98,"context_line":"                rutils.interruptable_sleep(1, atomic_delay\u003d1)"},{"line_number":99,"context_line":"        rutils.interruptable_sleep("},{"line_number":100,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"}],"source_content_type":"text/x-python","patch_set":39,"id":"bacf61ea_cc022a09","line":97,"updated":"2016-07-28 22:08:02.000000000","message":"Okey now new_metric dict have only one key. Thus we can write\nscenario._create_metrics(dimensions\u003dself.config.get(\"dimensions\")) and delete 84-89 line","commit_id":"822f5800efe9eb285cde0348bac4ae58bfbd8642"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"8d3178e32e678d17d887c4ac7d2108c3fba507db","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            )"},{"line_number":96,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":97,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":98,"context_line":"                rutils.interruptable_sleep(1, atomic_delay\u003d1)"},{"line_number":99,"context_line":"        rutils.interruptable_sleep("},{"line_number":100,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":101,"context_line":"            atomic_delay\u003d1)"}],"source_content_type":"text/x-python","patch_set":39,"id":"bacf61ea_89730415","line":98,"updated":"2016-07-28 22:08:02.000000000","message":"The smallest value required to have unique timestamp for monasca measured in milliseconds forn Epoch is millisecond. I don\u0027t want to wait 1 second per metric in each tenant. Thus I want to see exactly rutils.interruptable_sleep(0.001)","commit_id":"822f5800efe9eb285cde0348bac4ae58bfbd8642"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f76aa229f4ec8bffb18734ed811b336126177b4b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                context\u003d{\"user\": user, \"task\": self.context[\"task\"]}"},{"line_number":95,"context_line":"            )"},{"line_number":96,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":97,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":98,"context_line":"                rutils.interruptable_sleep(1, atomic_delay\u003d1)"},{"line_number":99,"context_line":"        rutils.interruptable_sleep("},{"line_number":100,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"}],"source_content_type":"text/x-python","patch_set":40,"id":"bacf61ea_a287ebd5","line":97,"updated":"2016-07-29 09:24:20.000000000","message":"\"call fail at 422\"\n\nI don\u0027t understand where 422 line is, please in the future specify direct link of tell the name of the file.\n\n\"Thoughts?\"\nNow I want to see how monasca create metrics with empty dimensions. Please append:\n    -\n      runner:\n        type: \"constant\"\n        times: 10\n        concurrency: 2\n      context:\n        users:\n          tenants: 2\n          users_per_tenant: 2\n        roles:\n         - \"monasca-user\"\n        monasca_metrics:\n          \"metrics_per_tenant\": 10\n      sla:\n        failure_rate:\n          max: 0\nto rally-jobs/rally-monasca.yaml\n\n\"dimension is optional for post metric call. If I take your suggestion, post metric call fail at 422 if no dimension passed in config file\"\n\nIf its optional then It should have default value. Default value we could pass as the second argument to self.config.get()","commit_id":"368f88de0c59938a28adc8362f7e7176e17b5900"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"084ebd60b78b49c6d96bc042f64654ed9a3b8f85","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                context\u003d{\"user\": user, \"task\": self.context[\"task\"]}"},{"line_number":95,"context_line":"            )"},{"line_number":96,"context_line":"            for i in moves.xrange(self.config[\"metrics_per_tenant\"]):"},{"line_number":97,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":98,"context_line":"                rutils.interruptable_sleep(1, atomic_delay\u003d1)"},{"line_number":99,"context_line":"        rutils.interruptable_sleep("},{"line_number":100,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"}],"source_content_type":"text/x-python","patch_set":40,"id":"bacf61ea_99cdee5f","line":97,"in_reply_to":"bacf61ea_a287ebd5","updated":"2016-07-29 14:40:31.000000000","message":"I don\u0027t see the behavior is mentioned in the doc. but here is the error message in my env. \n\n2016-07-29 14:35:03.683 20999 DEBUG monascaclient.common.http [-] curl -i -X POST -H \u0027X-Auth-User: c_rally_77e94860_ckcgVRXS\u0027 -H \u0027X-Auth-Token: *****\u0027 -H \u0027X-Auth-Key: *****\u0027 -H \u0027Accept: application/json\u0027 -H \u0027User-Agent: python-monascaclient\u0027 -H \u0027Content-Type: application/json\u0027 -H \u0027X-Auth-Url: http://10.0.2.15/identity/v3\u0027 -d \u0027{\"timestamp\": 1469802903522, \"name\": \"s_rally_77e94860_BEgQduXI\", \"dimensions\": null, \"value\": 0.34256022756275173, \"value_meta\": {\"key\": \"23a44b1e-a\"}}\u0027 http://10.0.2.15:8070/v2.0/metrics log_curl_request /usr/local/lib/python2.7/dist-packages/monascaclient/common/http.py:156\n\nHTTP/1.1 422 Unprocessable Entity\nServer: gunicorn/19.6.0\nDate: Fri, 29 Jul 2016 14:35:03 GMT\nConnection: keep-alive\ncontent-type: application/json; charset\u003dUTF-8\ncontent-length: 95\nvary: Accept\n\n{\n    \"title\": \"Unprocessable Entity\",\n    \"description\": \"\u0027NoneType\u0027 object is not iterable\"\n}","commit_id":"368f88de0c59938a28adc8362f7e7176e17b5900"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f76aa229f4ec8bffb18734ed811b336126177b4b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":98,"context_line":"                rutils.interruptable_sleep(1, atomic_delay\u003d1)"},{"line_number":99,"context_line":"        rutils.interruptable_sleep("},{"line_number":100,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":101,"context_line":"            atomic_delay\u003d1)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Monasca`\"))"}],"source_content_type":"text/x-python","patch_set":40,"id":"bacf61ea_e21c4315","line":100,"updated":"2016-07-29 09:24:20.000000000","message":"\"I could change it to 0.001.\" - Yes, pleas make it.\n\"But, I think I need to extend the waiting time from 12 sec to 15sec for list metric call to be able to pull metrics info out. I tested this in my environment. if you are ok with it, I will go ahead make the change\" - As you wish. Its strange that monasca create take so long time, as I understand its simple resource. But I believe you, lets increase to 15","commit_id":"368f88de0c59938a28adc8362f7e7176e17b5900"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"084ebd60b78b49c6d96bc042f64654ed9a3b8f85","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                scenario._create_metrics(**new_metric)"},{"line_number":98,"context_line":"                rutils.interruptable_sleep(1, atomic_delay\u003d1)"},{"line_number":99,"context_line":"        rutils.interruptable_sleep("},{"line_number":100,"context_line":"            monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay,"},{"line_number":101,"context_line":"            atomic_delay\u003d1)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @logging.log_task_wrapper(LOG.info, _(\"Exit context: `Monasca`\"))"}],"source_content_type":"text/x-python","patch_set":40,"id":"bacf61ea_74459f6e","line":100,"in_reply_to":"bacf61ea_e21c4315","updated":"2016-07-29 14:40:31.000000000","message":"Done","commit_id":"368f88de0c59938a28adc8362f7e7176e17b5900"}],"rally/plugins/openstack/scenarios/monasca/metrics.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f0da2f8446161659c00e244c180432629b274f31","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":30,"context_line":"    @scenario.configure()"},{"line_number":31,"context_line":"    def list_metrics(self, **kwargs):"},{"line_number":32,"context_line":"        \"\"\"Fetch user\u0027s metrics.\"\"\""},{"line_number":33,"context_line":"        self._list_metrics(**kwargs)"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_8fe4e73b","line":32,"updated":"2016-07-27 21:30:12.000000000","message":":param kwargs: optional arguments for list query:\n               name, dimensions, start_time, etc","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"9e9b4ff3dbec120d41336af17539f5d54a4afbe2","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":30,"context_line":"    @scenario.configure()"},{"line_number":31,"context_line":"    def list_metrics(self, **kwargs):"},{"line_number":32,"context_line":"        \"\"\"Fetch user\u0027s metrics.\"\"\""},{"line_number":33,"context_line":"        self._list_metrics(**kwargs)"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_81379be2","line":32,"in_reply_to":"bacf61ea_8fe4e73b","updated":"2016-07-27 21:59:17.000000000","message":"Done","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"}],"rally/plugins/openstack/scenarios/monasca/utils.py":[{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"6e9c8e524caab9709bde3045d04f391b16fd590a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from rally.plugins.openstack import scenario"},{"line_number":19,"context_line":"from rally.task import atomic"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"cur_time \u003d int(time.time())"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class MonascaScenario(scenario.OpenStackScenario):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_7d9fbcb4","line":21,"updated":"2015-11-21 13:30:20.000000000","message":"why is this line out here?","commit_id":"182baef67c9c0ee3943f5ce0914975da7d438b4e"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"6a7ca6702421a7ddf60bf0d0c0579f2f48181ac7","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        :param region: region name for the metric to be created in"},{"line_number":50,"context_line":"        :param kwargs: contains attributes for metric creation"},{"line_number":51,"context_line":"        \"\"\""},{"line_number":52,"context_line":"        if not name:"},{"line_number":53,"context_line":"            name \u003d self.generate_random_name()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        value \u003d random.random()"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_53e925e5","line":52,"updated":"2015-12-11 17:32:18.000000000","message":"I prefer to not allow setting name. generate_random_name method generates names based on task uuid, so it is possible to determine which task left undeleted resources","commit_id":"43d95a9c4fad8c38110324a1c4b1bb9fcaea844b"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"b2970e358b1947707eff0d873dd39fa77921c46c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        :param region: region name for the metric to be created in"},{"line_number":50,"context_line":"        :param kwargs: contains attributes for metric creation"},{"line_number":51,"context_line":"        \"\"\""},{"line_number":52,"context_line":"        if not name:"},{"line_number":53,"context_line":"            name \u003d self.generate_random_name()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        value \u003d random.random()"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a740942_c7ef8b85","line":52,"in_reply_to":"7a740942_53e925e5","updated":"2015-12-11 19:20:21.000000000","message":"With Monasca POST call, the behavior is like below:\n\n* if metric\u0027s name is already exist, it will only populate a new data record for the metric\n* if metric\u0027s name is not there, it will create the metric and populate a data record for it.\n\nMy reason to keep allowing for setting name are as below:\n\n1. It is needed for other tests like list metric statistics and list metric measurements as we need to have existing data for GET calls to pull data from test metric according to name.\n\n2. Monasca POST call needs to cover both behavior mentioned above.\n\nthanks,\nYan","commit_id":"43d95a9c4fad8c38110324a1c4b1bb9fcaea844b"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    \"\"\"Base class for Monasca scenarios with basic atomic actions.\"\"\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @atomic.action_timer(\"monasca.list_metrics\")"},{"line_number":45,"context_line":"    def _list_metrics(self, name\u003dNone, region\u003dNone, **kwargs):"},{"line_number":46,"context_line":"        \"\"\"Get list of user\u0027s metrics.\"\"\""},{"line_number":47,"context_line":"        if name:"},{"line_number":48,"context_line":"            kwargs.update({"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_9c7bf5f4","line":45,"updated":"2015-12-13 23:20:40.000000000","message":"Please make signature of the function the same as here https://github.com/openstack/python-monascaclient/blob/master/monascaclient/v2_0/metrics.py#L31","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    @atomic.action_timer(\"monasca.create_metrics\")"},{"line_number":59,"context_line":"    def _create_metrics(self, name\u003dNone, region\u003dNone, service\u003dNone,"},{"line_number":60,"context_line":"                        hostname\u003dNone, **kwargs):"},{"line_number":61,"context_line":"        \"\"\"Create user metrics."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        :param name: metric name to be generated"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_1c570559","line":60,"updated":"2015-12-13 23:20:40.000000000","message":"the same as in 45th line","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.clients(\"monasca\").metrics.create(**kwargs)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @atomic.action_timer(\"monasca.list_measurements\")"},{"line_number":89,"context_line":"    def _list_measurements(self, name\u003dNone, **kwargs):"},{"line_number":90,"context_line":"        \"\"\"list metric measurements."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        :param name: metric name to be filtered"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_3c6be11f","line":89,"updated":"2015-12-13 23:20:40.000000000","message":"the same as in 45th line","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b305276ae6afd238c2d3938a87223ea38b12c2fb","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        return self.clients(\"monasca\").metrics.list_measurements(**kwargs)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @atomic.action_timer(\"monasca.list_statistics\")"},{"line_number":109,"context_line":"    def _list_statistics(self, name\u003dNone, statistics\u003dNone, **kwargs):"},{"line_number":110,"context_line":"        \"\"\"list metric statistics."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        :param name: metric name to be filtered"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_dc75fdf9","line":109,"updated":"2015-12-13 23:20:40.000000000","message":"the same as in 45th line","commit_id":"a924f1c63359b9eb79e1c740ea21b28a503a35dc"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"31897ec01614397101a90789951d2ecf06d81972","unresolved":false,"context_lines":[{"line_number":34,"context_line":"benchmark_group \u003d cfg.OptGroup(name\u003d\"benchmark\", title\u003d\"benchmark options\")"},{"line_number":35,"context_line":"CONF.register_opts(MONASCA_BENCHMARK_OPTS, group\u003dbenchmark_group)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"cur_time \u003d int(time.time())"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class MonascaScenario(scenario.OpenStackScenario):"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a7e1126_275d1679","line":37,"updated":"2015-12-21 04:24:17.000000000","message":"it seems cur_time is not used","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"0252967ce2ce7632dc12009006ca2c20e842f77f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"benchmark_group \u003d cfg.OptGroup(name\u003d\"benchmark\", title\u003d\"benchmark options\")"},{"line_number":35,"context_line":"CONF.register_opts(MONASCA_BENCHMARK_OPTS, group\u003dbenchmark_group)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"cur_time \u003d int(time.time())"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class MonascaScenario(scenario.OpenStackScenario):"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a7e1126_596a86ef","line":37,"in_reply_to":"3a7e1126_275d1679","updated":"2015-12-21 05:41:28.000000000","message":"yes. my bad. This is used in the original patch which had monasca list metrics statistics and monasca list metrics measurement call. Since I split the original patch to make this patch in smaller size, I forgot to remove this line. Will fix it in next patch.","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"31897ec01614397101a90789951d2ecf06d81972","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        value \u003d random.random()"},{"line_number":70,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"},{"line_number":71,"context_line":"        value_meta_value \u003d \"value_\" + str(uuid.uuid4())[:10]"},{"line_number":72,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":73,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":74,"context_line":"                       \"dimensions\": {"},{"line_number":75,"context_line":"                           \"region\": region,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a7e1126_c7dd32e1","line":72,"updated":"2015-12-21 04:24:17.000000000","message":"question on L72 and L80, this API of monasca doesn\u0027t accept a standard timestamp?","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"0252967ce2ce7632dc12009006ca2c20e842f77f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        value \u003d random.random()"},{"line_number":70,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"},{"line_number":71,"context_line":"        value_meta_value \u003d \"value_\" + str(uuid.uuid4())[:10]"},{"line_number":72,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":73,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":74,"context_line":"                       \"dimensions\": {"},{"line_number":75,"context_line":"                           \"region\": region,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a7e1126_997c6eb6","line":72,"in_reply_to":"3a7e1126_c7dd32e1","updated":"2015-12-21 05:41:28.000000000","message":"yes.","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"31897ec01614397101a90789951d2ecf06d81972","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        value_meta_value \u003d \"value_\" + str(uuid.uuid4())[:10]"},{"line_number":72,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":73,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":74,"context_line":"                       \"dimensions\": {"},{"line_number":75,"context_line":"                           \"region\": region,"},{"line_number":76,"context_line":"                           \"service\": service,"},{"line_number":77,"context_line":"                           \"hostname\": hostname,"},{"line_number":78,"context_line":"                           \"url\": \"http://\" + hostname + \":5000/v3\""},{"line_number":79,"context_line":"                       },"},{"line_number":80,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":81,"context_line":"                       \"value\": value,"},{"line_number":82,"context_line":"                       \"value_meta\": {"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a7e1126_676a3ef0","line":79,"range":{"start_line":74,"start_character":23,"end_line":79,"end_character":25},"updated":"2015-12-21 04:24:17.000000000","message":"Could we read endpoints from keystone API? For example, if the deployment uses https connection only, here will break. Port 5000 is also hard coded. Or do I misunderstand something?","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"0252967ce2ce7632dc12009006ca2c20e842f77f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        value_meta_value \u003d \"value_\" + str(uuid.uuid4())[:10]"},{"line_number":72,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":73,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":74,"context_line":"                       \"dimensions\": {"},{"line_number":75,"context_line":"                           \"region\": region,"},{"line_number":76,"context_line":"                           \"service\": service,"},{"line_number":77,"context_line":"                           \"hostname\": hostname,"},{"line_number":78,"context_line":"                           \"url\": \"http://\" + hostname + \":5000/v3\""},{"line_number":79,"context_line":"                       },"},{"line_number":80,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":81,"context_line":"                       \"value\": value,"},{"line_number":82,"context_line":"                       \"value_meta\": {"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a7e1126_3c01a805","line":79,"range":{"start_line":74,"start_character":23,"end_line":79,"end_character":25},"in_reply_to":"3a7e1126_676a3ef0","updated":"2015-12-21 05:41:28.000000000","message":"this url is customized parameter for list metric call for existing monasca metrics. it could be any string to be passed in. But you are right, I could just make it a configurable parameter instead of hard code the http the port/version in the code. Will fix it in next patch.","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    \"\"\"Base class for Monasca scenarios with basic atomic actions.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @atomic.action_timer(\"monasca.list_metrics\")"},{"line_number":42,"context_line":"    def _list_metrics(self, name\u003dNone, region\u003dNone, **kwargs):"},{"line_number":43,"context_line":"        \"\"\"Get list of user\u0027s metrics.\"\"\""},{"line_number":44,"context_line":"        if name:"},{"line_number":45,"context_line":"            kwargs.update({"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_8cb02345","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":21},"updated":"2015-12-24 00:45:29.000000000","message":"As I told in 6th patchset signature of the function should the same with https://github.com/openstack/python-monascaclient/blob/master/monascaclient/v2_0/metrics.py#L48","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"36e47b505046794c812d8cbd4825a58d9839124c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    \"\"\"Base class for Monasca scenarios with basic atomic actions.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @atomic.action_timer(\"monasca.list_metrics\")"},{"line_number":42,"context_line":"    def _list_metrics(self, name\u003dNone, region\u003dNone, **kwargs):"},{"line_number":43,"context_line":"        \"\"\"Get list of user\u0027s metrics.\"\"\""},{"line_number":44,"context_line":"        if name:"},{"line_number":45,"context_line":"            kwargs.update({"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_1dd45b1e","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":21},"in_reply_to":"1a7b0d38_8cb02345","updated":"2015-12-24 04:03:02.000000000","message":"As I explained in patch set 6. I don\u0027t see a good reason to change the call here. As I don\u0027t think the call has to be exactly same as the client call. Could you give me an example from the existing rally plugin test to confirm rally test call has to be same as client calls?","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        return self.clients(\"monasca\").metrics.list(**kwargs)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @atomic.action_timer(\"monasca.create_metrics\")"},{"line_number":56,"context_line":"    def _create_metrics(self, name\u003dNone, region\u003dNone, service\u003dNone,"},{"line_number":57,"context_line":"                        hostname\u003dNone, url\u003dNone, **kwargs):"},{"line_number":58,"context_line":"        \"\"\"Create user metrics."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_acab9fd5","line":56,"updated":"2015-12-24 00:45:29.000000000","message":"The same as in 42th line","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"36e47b505046794c812d8cbd4825a58d9839124c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        return self.clients(\"monasca\").metrics.list(**kwargs)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @atomic.action_timer(\"monasca.create_metrics\")"},{"line_number":56,"context_line":"    def _create_metrics(self, name\u003dNone, region\u003dNone, service\u003dNone,"},{"line_number":57,"context_line":"                        hostname\u003dNone, url\u003dNone, **kwargs):"},{"line_number":58,"context_line":"        \"\"\"Create user metrics."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_dddd7343","line":56,"in_reply_to":"1a7b0d38_acab9fd5","updated":"2015-12-24 04:03:02.000000000","message":"Same reply as in 42th line.","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"26b968c12e628a25b0d624c293ac2849d8365d58","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        return self.clients(\"monasca\").metrics.list(**kwargs)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @atomic.action_timer(\"monasca.create_metrics\")"},{"line_number":47,"context_line":"    def _create_metrics(self, name\u003dNone, region\u003dNone, service\u003dNone,"},{"line_number":48,"context_line":"                        hostname\u003dNone, url\u003dNone, **kwargs):"},{"line_number":49,"context_line":"        \"\"\"Create user metrics."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1a7b0d38_e6c9525a","line":47,"updated":"2015-12-29 15:35:21.000000000","message":"You forgot to fix arguments of this function https://github.com/openstack/python-monascaclient/blob/master/monascaclient/v2_0/metrics.py#L31","commit_id":"a2ed425c9e048e87022b32bef760868b81a5939a"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6599ee92bf7fa7200377f7c8725605b8f205d6b2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        if kwargs[\"name\"] \u003d\u003d \"\":"},{"line_number":53,"context_line":"            name \u003d self.generate_random_name()"},{"line_number":54,"context_line":"        else:"},{"line_number":55,"context_line":"            name \u003d kwargs[\"name\"]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        value \u003d random.random()"},{"line_number":58,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"}],"source_content_type":"text/x-python","patch_set":29,"id":"da6ed579_49c03850","line":55,"updated":"2016-01-15 13:08:28.000000000","message":"Its bad to enable exact name from config. Because if you run the same task twice you might got conflict of names. Better to have generate_random_name() See how we use generate_random_name()","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"e242b0c2fbc981545a11bb6c7152bfd28f6a1e42","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        if kwargs[\"name\"] \u003d\u003d \"\":"},{"line_number":53,"context_line":"            name \u003d self.generate_random_name()"},{"line_number":54,"context_line":"        else:"},{"line_number":55,"context_line":"            name \u003d kwargs[\"name\"]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        value \u003d random.random()"},{"line_number":58,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"}],"source_content_type":"text/x-python","patch_set":29,"id":"5a5ae5dd_7d9fad03","line":55,"in_reply_to":"da6ed579_49c03850","updated":"2016-02-03 22:54:08.000000000","message":"Hi Roman,\n\nRegarding to the metric name, it is actually ok in Monasca to have same names. In Monasca API create metrics call, if the metric name exists, the api creates data record for it. If the metric name does not exist, create metric api call creates the metric with name and record the data point for it.\n\nYan","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9c66e62d1c2c2da82da38e5aa28d25ef635241d3","unresolved":false,"context_lines":[{"line_number":25,"context_line":"MONASCA_BENCHMARK_OPTS \u003d ["},{"line_number":26,"context_line":"    cfg.FloatOpt("},{"line_number":27,"context_line":"        \"monasca_metric_create_prepoll_delay\","},{"line_number":28,"context_line":"        default\u003d12.0,"},{"line_number":29,"context_line":"        help\u003d\"Delay between creating Monasca metrics and polling for \""},{"line_number":30,"context_line":"             \"its elements.\")"},{"line_number":31,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":32,"id":"1a122d0e_d9b2efe4","line":28,"updated":"2016-05-04 11:47:19.000000000","message":"Isn\u0027t it too much?","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"d9ba7e5dac132a3741cdf22d3de6c94a1c442e46","unresolved":false,"context_lines":[{"line_number":25,"context_line":"MONASCA_BENCHMARK_OPTS \u003d ["},{"line_number":26,"context_line":"    cfg.FloatOpt("},{"line_number":27,"context_line":"        \"monasca_metric_create_prepoll_delay\","},{"line_number":28,"context_line":"        default\u003d12.0,"},{"line_number":29,"context_line":"        help\u003d\"Delay between creating Monasca metrics and polling for \""},{"line_number":30,"context_line":"             \"its elements.\")"},{"line_number":31,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":32,"id":"dab17558_44ad9987","line":28,"in_reply_to":"1a122d0e_d9b2efe4","updated":"2016-05-13 03:58:04.000000000","message":"In devstack, monasca default db is influx and monasca does batch write to db. This is to make sure list metric call returns data.","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9c66e62d1c2c2da82da38e5aa28d25ef635241d3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        if kwargs[\"name\"] \u003d\u003d \"\":"},{"line_number":53,"context_line":"            name \u003d self.generate_random_name()"},{"line_number":54,"context_line":"        else:"},{"line_number":55,"context_line":"            name \u003d kwargs[\"name\"]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        value \u003d random.random()"},{"line_number":58,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"}],"source_content_type":"text/x-python","patch_set":32,"id":"1a122d0e_79ad9b87","line":55,"updated":"2016-05-04 11:47:19.000000000","message":"name \u003d kwargs[\"name\"] or self.generate_random_name()\nMore pythonic","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"d9ba7e5dac132a3741cdf22d3de6c94a1c442e46","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        if kwargs[\"name\"] \u003d\u003d \"\":"},{"line_number":53,"context_line":"            name \u003d self.generate_random_name()"},{"line_number":54,"context_line":"        else:"},{"line_number":55,"context_line":"            name \u003d kwargs[\"name\"]"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        value \u003d random.random()"},{"line_number":58,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"}],"source_content_type":"text/x-python","patch_set":32,"id":"dab17558_240055aa","line":55,"in_reply_to":"1a122d0e_79ad9b87","updated":"2016-05-13 03:58:04.000000000","message":"Done","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9c66e62d1c2c2da82da38e5aa28d25ef635241d3","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        value \u003d random.random()"},{"line_number":58,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"},{"line_number":59,"context_line":"        value_meta_value \u003d \"value_\" + str(uuid.uuid4())[:10]"},{"line_number":60,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":61,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":62,"context_line":"                       \"timestamp\": timestamp,"}],"source_content_type":"text/x-python","patch_set":32,"id":"1a122d0e_d97e6f69","line":59,"updated":"2016-05-04 11:47:19.000000000","message":"We don\u0027t like local variable use only once)","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"d9ba7e5dac132a3741cdf22d3de6c94a1c442e46","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        value \u003d random.random()"},{"line_number":58,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"},{"line_number":59,"context_line":"        value_meta_value \u003d \"value_\" + str(uuid.uuid4())[:10]"},{"line_number":60,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":61,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":62,"context_line":"                       \"timestamp\": timestamp,"}],"source_content_type":"text/x-python","patch_set":32,"id":"dab17558_8725c3af","line":59,"in_reply_to":"1a122d0e_d97e6f69","updated":"2016-05-13 03:58:04.000000000","message":"Done","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"9c66e62d1c2c2da82da38e5aa28d25ef635241d3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        value \u003d random.random()"},{"line_number":58,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"},{"line_number":59,"context_line":"        value_meta_value \u003d \"value_\" + str(uuid.uuid4())[:10]"},{"line_number":60,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":61,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":62,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":63,"context_line":"                       \"value\": value,"}],"source_content_type":"text/x-python","patch_set":32,"id":"1a122d0e_1991079b","line":60,"updated":"2016-05-04 11:47:19.000000000","message":"Why you multiply it by 1000 ?","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"d9ba7e5dac132a3741cdf22d3de6c94a1c442e46","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        value \u003d random.random()"},{"line_number":58,"context_line":"        value_meta_key \u003d \"key_\" + str(uuid.uuid4())[:10]"},{"line_number":59,"context_line":"        value_meta_value \u003d \"value_\" + str(uuid.uuid4())[:10]"},{"line_number":60,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":61,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":62,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":63,"context_line":"                       \"value\": value,"}],"source_content_type":"text/x-python","patch_set":32,"id":"dab17558_474bdb59","line":60,"in_reply_to":"1a122d0e_1991079b","updated":"2016-05-13 03:58:04.000000000","message":"this is intend for bigger timestamp difference for each metric posted","commit_id":"b578fcd36d4d879af71f0f9695ca1dd9ae23bdb3"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    \"\"\"Base class for Monasca scenarios with basic atomic actions.\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @atomic.action_timer(\"monasca.list_metrics\")"},{"line_number":42,"context_line":"    def _list_metrics(self, **kwargs):"},{"line_number":43,"context_line":"        \"\"\"Get list of user\u0027s metrics.\"\"\""},{"line_number":44,"context_line":"        return self.clients(\"monasca\").metrics.list(**kwargs)"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_bbcffa54","line":42,"updated":"2016-07-26 08:58:31.000000000","message":"Please  document return value and parameters. Also it would be nice if you write what parameters we could pass into kwargs","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        return self.clients(\"monasca\").metrics.list(**kwargs)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @atomic.action_timer(\"monasca.create_metrics\")"},{"line_number":47,"context_line":"    def _create_metrics(self, **kwargs):"},{"line_number":48,"context_line":"        \"\"\"Create user metrics."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        :param kwargs: contains attributes for metric creation"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_9ba8368e","line":47,"updated":"2016-07-26 08:58:31.000000000","message":"This method should return metric, but it returns nothing.\nAlso it would be nice if you write what parameters we could pass into kwargs","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        :param kwargs: contains attributes for metric creation"},{"line_number":51,"context_line":"        \"\"\""},{"line_number":52,"context_line":"        name \u003d kwargs[\"name\"] or self.generate_random_name()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":55,"context_line":"        kwargs.update({\"name\": name,"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_9685add0","line":52,"updated":"2016-07-26 08:58:31.000000000","message":"Do not allow user to specify resource name. As monasca don\u0027t have cleanup, rally is not able to delete resources created by itself. Someone will need to delete them to not garbage the cloud. Please left self.generate_random_name() It will create resources with prefix \"s_rally_\" and thus they could be easily found","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\""},{"line_number":52,"context_line":"        name \u003d kwargs[\"name\"] or self.generate_random_name()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":55,"context_line":"        kwargs.update({\"name\": name,"},{"line_number":56,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":57,"context_line":"                       \"value\": random.random(),"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_76d4791f","line":54,"updated":"2016-07-26 08:58:31.000000000","message":"Could you explain why its needed? Is Monasca working only with integer timestamp?)","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"396589d68727bc6877f191470ab85e99c071e97c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _list_metrics(self, **kwargs):"},{"line_number":43,"context_line":"        \"\"\"Get list of user\u0027s metrics."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        This call returns metric name, id, and dimensions"},{"line_number":46,"context_line":"        :param kwargs: specifies optional arguments for query."},{"line_number":47,"context_line":"        optional arguments: name, dimensions, start_time,"},{"line_number":48,"context_line":"        end_time, limit"}],"source_content_type":"text/x-python","patch_set":37,"id":"dada55a8_180243b4","line":45,"updated":"2016-07-27 11:59:05.000000000","message":"This is worng docstring. The format of commenting return s is matter for parser of docs.\nYou need to add for axample:\n\"\"\"\n  Get list of user\u0027s metrics.\n\n  :param kwargs: optional arguments for list query:\n                 name, dimensions, start_time etc\n  :returns: list of monasca metrics\n\"\"\"","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"5979ae0b2eb007aac61f252e36b049b0a2fd8186","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _list_metrics(self, **kwargs):"},{"line_number":43,"context_line":"        \"\"\"Get list of user\u0027s metrics."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        This call returns metric name, id, and dimensions"},{"line_number":46,"context_line":"        :param kwargs: specifies optional arguments for query."},{"line_number":47,"context_line":"        optional arguments: name, dimensions, start_time,"},{"line_number":48,"context_line":"        end_time, limit"}],"source_content_type":"text/x-python","patch_set":37,"id":"bacf61ea_484b142c","line":45,"in_reply_to":"dada55a8_180243b4","updated":"2016-07-27 17:11:01.000000000","message":"Done","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"396589d68727bc6877f191470ab85e99c071e97c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       \"value\": random.random(),"},{"line_number":64,"context_line":"                       \"value_meta\": {"},{"line_number":65,"context_line":"                           \"key\": str(uuid.uuid4())[:10]}})"},{"line_number":66,"context_line":"        self.clients(\"monasca\").metrics.create(**kwargs)"}],"source_content_type":"text/x-python","patch_set":37,"id":"dada55a8_f813effe","line":66,"updated":"2016-07-27 11:59:05.000000000","message":"See comments in 36th patch set","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"5979ae0b2eb007aac61f252e36b049b0a2fd8186","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                       \"value\": random.random(),"},{"line_number":64,"context_line":"                       \"value_meta\": {"},{"line_number":65,"context_line":"                           \"key\": str(uuid.uuid4())[:10]}})"},{"line_number":66,"context_line":"        self.clients(\"monasca\").metrics.create(**kwargs)"}],"source_content_type":"text/x-python","patch_set":37,"id":"bacf61ea_e845a817","line":66,"in_reply_to":"dada55a8_f813effe","updated":"2016-07-27 17:11:01.000000000","message":"monasca post metric call works with timestamp in milliseconds from the Epoch","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f0da2f8446161659c00e244c180432629b274f31","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        :param kwargs: attributes for metric creation:"},{"line_number":56,"context_line":"                       name, dimension, timestamp, value, etc"},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":59,"context_line":"        kwargs.update({\"name\": kwargs[\"name\"],"},{"line_number":60,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":61,"context_line":"                       \"value\": random.random(),"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_4fc14f80","line":58,"updated":"2016-07-27 21:30:12.000000000","message":"Could you explain why its needed? Is Monasca working only with integer timestamp?)","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"9e9b4ff3dbec120d41336af17539f5d54a4afbe2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        :param kwargs: attributes for metric creation:"},{"line_number":56,"context_line":"                       name, dimension, timestamp, value, etc"},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":59,"context_line":"        kwargs.update({\"name\": kwargs[\"name\"],"},{"line_number":60,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":61,"context_line":"                       \"value\": random.random(),"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_cfc09fe3","line":58,"in_reply_to":"bacf61ea_4fc14f80","updated":"2016-07-27 21:59:17.000000000","message":"monasca post metric call works with timestamp in milliseconds from the Epoch","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29be3c5d4717c406a7263ed02457fc158183141c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        :param kwargs: attributes for metric creation:"},{"line_number":56,"context_line":"                       name, dimension, timestamp, value, etc"},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":59,"context_line":"        kwargs.update({\"name\": kwargs[\"name\"],"},{"line_number":60,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":61,"context_line":"                       \"value\": random.random(),"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_09b434cf","line":58,"in_reply_to":"bacf61ea_cfc09fe3","updated":"2016-07-28 22:00:09.000000000","message":"Then you are casting to integer in wrong place\n  int(123.99) * 1000 \u003d 123000\nbut you need 123.999 * 1000 \u003d 123999\nSo the right code would be:\ntimestamp \u003d int(time.time() * 1000)","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f0da2f8446161659c00e244c180432629b274f31","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                       name, dimension, timestamp, value, etc"},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":59,"context_line":"        kwargs.update({\"name\": kwargs[\"name\"],"},{"line_number":60,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":61,"context_line":"                       \"value\": random.random(),"},{"line_number":62,"context_line":"                       \"value_meta\": {"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_efd2c333","line":59,"updated":"2016-07-27 21:30:12.000000000","message":"No, this is not solved!\n\"Do not allow user to specify resource name. As monasca don\u0027t have cleanup, rally is not able to delete resources created by itself. Someone will need to delete them to not garbage the cloud. Please left self.generate_random_name() It will create resources with prefix \"s_rally_\" and thus they could be easily found\"\n--\u003e \nplease leave here instead of \"name\": kwargs[\"name\"]\n\"name\": self.generate_random_name()","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"9e9b4ff3dbec120d41336af17539f5d54a4afbe2","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                       name, dimension, timestamp, value, etc"},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":59,"context_line":"        kwargs.update({\"name\": kwargs[\"name\"],"},{"line_number":60,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":61,"context_line":"                       \"value\": random.random(),"},{"line_number":62,"context_line":"                       \"value_meta\": {"}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_01044b13","line":59,"in_reply_to":"bacf61ea_efd2c333","updated":"2016-07-27 21:59:17.000000000","message":"Done","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f76aa229f4ec8bffb18734ed811b336126177b4b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        :param kwargs: attributes for metric creation:"},{"line_number":56,"context_line":"                       name, dimension, timestamp, value, etc"},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":59,"context_line":"        kwargs.update({\"name\": self.generate_random_name(),"},{"line_number":60,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":61,"context_line":"                       \"value\": random.random(),"}],"source_content_type":"text/x-python","patch_set":40,"id":"bacf61ea_6299731f","line":58,"updated":"2016-07-29 09:24:20.000000000","message":"Then you are casting to integer in wrong place\n  int(123.99) * 1000 \u003d 123000\nbut you need 123.999 * 1000 \u003d 123999\nSo the right code would be:\ntimestamp \u003d int(time.time() * 1000)","commit_id":"368f88de0c59938a28adc8362f7e7176e17b5900"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"084ebd60b78b49c6d96bc042f64654ed9a3b8f85","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        :param kwargs: attributes for metric creation:"},{"line_number":56,"context_line":"                       name, dimension, timestamp, value, etc"},{"line_number":57,"context_line":"        \"\"\""},{"line_number":58,"context_line":"        timestamp \u003d int(time.time()) * 1000"},{"line_number":59,"context_line":"        kwargs.update({\"name\": self.generate_random_name(),"},{"line_number":60,"context_line":"                       \"timestamp\": timestamp,"},{"line_number":61,"context_line":"                       \"value\": random.random(),"}],"source_content_type":"text/x-python","patch_set":40,"id":"bacf61ea_79275a64","line":58,"in_reply_to":"bacf61ea_6299731f","updated":"2016-07-29 14:40:31.000000000","message":"Done","commit_id":"368f88de0c59938a28adc8362f7e7176e17b5900"}],"requirements.txt":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6599ee92bf7fa7200377f7c8725605b8f205d6b2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"python-neutronclient\u003e\u003d2.6.0"},{"line_number":27,"context_line":"python-cinderclient\u003e\u003d1.3.1"},{"line_number":28,"context_line":"python-manilaclient\u003e\u003d1.3.0"},{"line_number":29,"context_line":"python-monascaclient\u003e\u003d1.0.27"},{"line_number":30,"context_line":"python-heatclient\u003e\u003d0.6.0"},{"line_number":31,"context_line":"python-ceilometerclient\u003e\u003d2.0.0"},{"line_number":32,"context_line":"python-ironicclient\u003e\u003d0.8.0"}],"source_content_type":"text/plain","patch_set":29,"id":"da6ed579_32b692f9","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":20},"updated":"2016-01-15 13:08:28.000000000","message":"I can\u0027t find monasca here https://github.com/openstack/requirements/blob/master/global-requirements.txt So it should be in optional-requirements","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"}],"samples/tasks/scenarios/monasca/list-metrics.json":[{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"31897ec01614397101a90789951d2ecf06d81972","unresolved":false,"context_lines":[{"line_number":18,"context_line":"                    \"name\": \"\","},{"line_number":19,"context_line":"                    \"region\": \"RegionOne\","},{"line_number":20,"context_line":"                    \"service\": \"identity\","},{"line_number":21,"context_line":"                    \"hostname\": \"localhost\","},{"line_number":22,"context_line":"                    \"metrics_per_tenant\": 10"},{"line_number":23,"context_line":"                }"},{"line_number":24,"context_line":"            },"}],"source_content_type":"application/json","patch_set":14,"id":"3a7e1126_671f9e6c","line":21,"range":{"start_line":21,"start_character":33,"end_line":21,"end_character":42},"updated":"2015-12-21 04:24:17.000000000","message":"Why need we pass keystone endpoint there?","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"0252967ce2ce7632dc12009006ca2c20e842f77f","unresolved":false,"context_lines":[{"line_number":18,"context_line":"                    \"name\": \"\","},{"line_number":19,"context_line":"                    \"region\": \"RegionOne\","},{"line_number":20,"context_line":"                    \"service\": \"identity\","},{"line_number":21,"context_line":"                    \"hostname\": \"localhost\","},{"line_number":22,"context_line":"                    \"metrics_per_tenant\": 10"},{"line_number":23,"context_line":"                }"},{"line_number":24,"context_line":"            },"}],"source_content_type":"application/json","patch_set":14,"id":"3a7e1126_5c7b548c","line":21,"range":{"start_line":21,"start_character":33,"end_line":21,"end_character":42},"in_reply_to":"3a7e1126_671f9e6c","updated":"2015-12-21 05:41:28.000000000","message":"This is just an example of parameter for create metric call. Honestly, user could change the hostname or other parameters to any value according to their environment for create metric call.  It does not have to be keystone endpoint hostname.","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"31897ec01614397101a90789951d2ecf06d81972","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                }"},{"line_number":24,"context_line":"            },"},{"line_number":25,"context_line":"            \"args\": {"},{"line_number":26,"context_line":"                \"region\": \"RegionOne\","},{"line_number":27,"context_line":"                \"limit\": 5"},{"line_number":28,"context_line":"            }"},{"line_number":29,"context_line":"        }"}],"source_content_type":"application/json","patch_set":14,"id":"3a7e1126_7949825f","line":26,"updated":"2015-12-21 04:24:17.000000000","message":"Is monasca a cross-region service?","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"0252967ce2ce7632dc12009006ca2c20e842f77f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"                }"},{"line_number":24,"context_line":"            },"},{"line_number":25,"context_line":"            \"args\": {"},{"line_number":26,"context_line":"                \"region\": \"RegionOne\","},{"line_number":27,"context_line":"                \"limit\": 5"},{"line_number":28,"context_line":"            }"},{"line_number":29,"context_line":"        }"}],"source_content_type":"application/json","patch_set":14,"id":"3a7e1126_bc6a78b1","line":26,"in_reply_to":"3a7e1126_7949825f","updated":"2015-12-21 05:41:28.000000000","message":"No. monasca is not cross-region service","commit_id":"2c7624c80c981d4027915e35de26790079529444"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"4b5c8c07281d6b26cc34190f21f4c09489988e19","unresolved":false,"context_lines":[{"line_number":15,"context_line":"                    \"monasca-user\""},{"line_number":16,"context_line":"                ],"},{"line_number":17,"context_line":"                \"monasca\": {"},{"line_number":18,"context_line":"                    \"name\": \"\","},{"line_number":19,"context_line":"                    \"region\": \"RegionOne\","},{"line_number":20,"context_line":"                    \"service\": \"identity\","},{"line_number":21,"context_line":"                    \"hostname\": \"localhost\","},{"line_number":22,"context_line":"                    \"url\": \"http://localhost:5000/v2.0\","},{"line_number":23,"context_line":"                    \"metrics_per_tenant\": 10"},{"line_number":24,"context_line":"                }"},{"line_number":25,"context_line":"            },"}],"source_content_type":"application/json","patch_set":16,"id":"3a7e1126_0ff6f0f8","line":22,"range":{"start_line":18,"start_character":0,"end_line":22,"end_character":56},"updated":"2015-12-21 06:29:56.000000000","message":"Are those using for monasca endpoint? Why not retrieving those from keystone catalog list?","commit_id":"a8707d37822db16e544947119b8ed669b8a44659"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"8259b66d852cfd3e15dbd5baf809c90cd85b73bf","unresolved":false,"context_lines":[{"line_number":19,"context_line":"                    \"region\": \"RegionOne\","},{"line_number":20,"context_line":"                    \"service\": \"identity\","},{"line_number":21,"context_line":"                    \"hostname\": \"localhost\","},{"line_number":22,"context_line":"                    \"url\": \"http://localhost:5000/v2.0\","},{"line_number":23,"context_line":"                    \"metrics_per_tenant\": 10"},{"line_number":24,"context_line":"                }"},{"line_number":25,"context_line":"            },"}],"source_content_type":"application/json","patch_set":17,"id":"3a7e1126_699e5e64","line":22,"range":{"start_line":22,"start_character":35,"end_line":22,"end_character":44},"updated":"2015-12-22 06:23:31.000000000","message":"a question here, rally is design to be deployed alone with openstack, because rally calls api only. So the localhost here would be a problem. (btw you could fix this later)","commit_id":"90b4b00b800741e4fb3d21a9d7101ae25236ecd9"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6599ee92bf7fa7200377f7c8725605b8f205d6b2","unresolved":false,"context_lines":[{"line_number":20,"context_line":"                      \"region\": \"RegionOne\","},{"line_number":21,"context_line":"                      \"service\": \"identity\","},{"line_number":22,"context_line":"                      \"hostname\": \"fake_host\","},{"line_number":23,"context_line":"                      \"url\": \"http://fake_host:5000/v2.0\""},{"line_number":24,"context_line":"                    },"},{"line_number":25,"context_line":"                    \"metrics_per_tenant\": 10"},{"line_number":26,"context_line":"                }"}],"source_content_type":"application/json","patch_set":29,"id":"da6ed579_c97ae823","line":23,"updated":"2016-01-15 13:08:28.000000000","message":"It would be great if you make possible to run this sample. Without modifying it. If its possible. I mean that now with that url we can\u0027t run sample. Maybe we need to delete url to enable to run sample","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"e242b0c2fbc981545a11bb6c7152bfd28f6a1e42","unresolved":false,"context_lines":[{"line_number":20,"context_line":"                      \"region\": \"RegionOne\","},{"line_number":21,"context_line":"                      \"service\": \"identity\","},{"line_number":22,"context_line":"                      \"hostname\": \"fake_host\","},{"line_number":23,"context_line":"                      \"url\": \"http://fake_host:5000/v2.0\""},{"line_number":24,"context_line":"                    },"},{"line_number":25,"context_line":"                    \"metrics_per_tenant\": 10"},{"line_number":26,"context_line":"                }"}],"source_content_type":"application/json","patch_set":29,"id":"5a5ae5dd_40b0c643","line":23,"in_reply_to":"da6ed579_c97ae823","updated":"2016-02-03 22:54:08.000000000","message":"Hi Roman,\n\nThis sample should be running fine without modify anything.\n\nYan","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"}],"tests/unit/plugins/openstack/context/monasca/test_metrics.py":[{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"6e9c8e524caab9709bde3045d04f391b16fd590a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from rally.plugins.openstack.context.monasca import metrics"},{"line_number":17,"context_line":"from tests.unit import test"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"CTX \u003d \"rally.plugins.openstack.context.monasca\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class MonascaMetricGeneratorTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_3d805446","line":19,"updated":"2015-11-21 13:30:20.000000000","message":"CTX is not used","commit_id":"182baef67c9c0ee3943f5ce0914975da7d438b4e"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"6e9c8e524caab9709bde3045d04f391b16fd590a","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # Validating"},{"line_number":79,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":80,"context_line":"                         \"Scenario should be constructed same times as\""},{"line_number":81,"context_line":"                         \"number of tenants\")"},{"line_number":82,"context_line":"        self.assertEqual(mock_monasca_scenario.return_value._create_metrics."},{"line_number":83,"context_line":"                         call_count, metrics_per_tenant * tenants_count,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba8a016a_1d7b107d","line":80,"updated":"2015-11-21 13:30:20.000000000","message":"missing a blank after \"as\"","commit_id":"182baef67c9c0ee3943f5ce0914975da7d438b4e"},{"author":{"_account_id":13919,"name":"Evgeny Sikachev","email":"esikachov@gmail.com","username":"esikachev"},"change_message_id":"a2e2d97472fff9ea61d9042a342b3ab52b2bf0bc","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        tenants \u003d self._gen_tenants(tenants_count)"},{"line_number":33,"context_line":"        users \u003d []"},{"line_number":34,"context_line":"        for id_ in tenants.keys():"},{"line_number":35,"context_line":"            for i in range(users_per_tenant):"},{"line_number":36,"context_line":"                users.append({\"id\": i, \"tenant_id\": id_,"},{"line_number":37,"context_line":"                              \"endpoint\": mock.MagicMock()})"},{"line_number":38,"context_line":"        context \u003d test.get_test_context()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_7a0f8288","line":35,"range":{"start_line":35,"start_character":16,"end_line":35,"end_character":17},"updated":"2015-11-23 20:47:04.000000000","message":"bad name for variable","commit_id":"f7ff6e94a83db1e2a4bfa4b7d36d32ba03419f0b"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"45a71339830cac6f32721fff0d6763527417f101","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        tenants \u003d self._gen_tenants(tenants_count)"},{"line_number":33,"context_line":"        users \u003d []"},{"line_number":34,"context_line":"        for id_ in tenants.keys():"},{"line_number":35,"context_line":"            for i in range(users_per_tenant):"},{"line_number":36,"context_line":"                users.append({\"id\": i, \"tenant_id\": id_,"},{"line_number":37,"context_line":"                              \"endpoint\": mock.MagicMock()})"},{"line_number":38,"context_line":"        context \u003d test.get_test_context()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_5482d953","line":35,"in_reply_to":"ba8a016a_7a0f8288","updated":"2015-11-24 22:17:10.000000000","message":"Done","commit_id":"f7ff6e94a83db1e2a4bfa4b7d36d32ba03419f0b"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        monasca_ctx \u003d metrics.MonascaMetricGenerator(real_context)"},{"line_number":77,"context_line":"        monasca_ctx.setup()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        # Validating"},{"line_number":80,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":81,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":82,"context_line":"                         \"number of tenants\")"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_6c5e1714","line":79,"range":{"start_line":79,"start_character":10,"end_line":79,"end_character":20},"updated":"2015-12-24 00:45:29.000000000","message":"Redundant comment please delete it","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"36e47b505046794c812d8cbd4825a58d9839124c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        monasca_ctx \u003d metrics.MonascaMetricGenerator(real_context)"},{"line_number":77,"context_line":"        monasca_ctx.setup()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        # Validating"},{"line_number":80,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":81,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":82,"context_line":"                         \"number of tenants\")"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_1dd1bb57","line":79,"range":{"start_line":79,"start_character":10,"end_line":79,"end_character":20},"in_reply_to":"1a7b0d38_6c5e1714","updated":"2015-12-24 04:03:02.000000000","message":"I don\u0027t think this is redundant comment. It is there so people knows what is this part of code for.","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        # Validating"},{"line_number":80,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":81,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":82,"context_line":"                         \"number of tenants\")"},{"line_number":83,"context_line":"        self.assertEqual(mock_monasca_scenario.return_value._create_metrics."},{"line_number":84,"context_line":"                         call_count, metrics_per_tenant * tenants_count,"},{"line_number":85,"context_line":"                         \"Total number of metrics created should be tenant\""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_8c6903c1","line":82,"range":{"start_line":82,"start_character":33,"end_line":82,"end_character":35},"updated":"2015-12-24 00:45:29.000000000","message":"First arg expected, second actual value","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"36e47b505046794c812d8cbd4825a58d9839124c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        # Validating"},{"line_number":80,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":81,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":82,"context_line":"                         \"number of tenants\")"},{"line_number":83,"context_line":"        self.assertEqual(mock_monasca_scenario.return_value._create_metrics."},{"line_number":84,"context_line":"                         call_count, metrics_per_tenant * tenants_count,"},{"line_number":85,"context_line":"                         \"Total number of metrics created should be tenant\""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_7dba3f0c","line":82,"range":{"start_line":82,"start_character":33,"end_line":82,"end_character":35},"in_reply_to":"1a7b0d38_8c6903c1","updated":"2015-12-24 04:03:02.000000000","message":"I\u0027m not sure what do you mean here. second value is the actual value and it is needed here.","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6599ee92bf7fa7200377f7c8725605b8f205d6b2","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        monasca_ctx \u003d metrics.MonascaMetricGenerator(real_context)"},{"line_number":79,"context_line":"        monasca_ctx.setup()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":82,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":83,"context_line":"                         \"number of tenants\")"},{"line_number":84,"context_line":"        self.assertEqual(mock_monasca_scenario.return_value._create_metrics."}],"source_content_type":"text/x-python","patch_set":29,"id":"da6ed579_578bf81e","line":81,"updated":"2016-01-15 13:08:28.000000000","message":"Wrong order. It must be tenants_count then mock_...","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"e242b0c2fbc981545a11bb6c7152bfd28f6a1e42","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        monasca_ctx \u003d metrics.MonascaMetricGenerator(real_context)"},{"line_number":79,"context_line":"        monasca_ctx.setup()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":82,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":83,"context_line":"                         \"number of tenants\")"},{"line_number":84,"context_line":"        self.assertEqual(mock_monasca_scenario.return_value._create_metrics."}],"source_content_type":"text/x-python","patch_set":29,"id":"5a5ae5dd_1d56b929","line":81,"in_reply_to":"da6ed579_578bf81e","updated":"2016-02-03 22:54:08.000000000","message":"Done","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6599ee92bf7fa7200377f7c8725605b8f205d6b2","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":82,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":83,"context_line":"                         \"number of tenants\")"},{"line_number":84,"context_line":"        self.assertEqual(mock_monasca_scenario.return_value._create_metrics."},{"line_number":85,"context_line":"                         call_count, metrics_per_tenant * tenants_count,"},{"line_number":86,"context_line":"                         \"Total number of metrics created should be tenant\""},{"line_number":87,"context_line":"                         \"counts times metrics per tenant\")"}],"source_content_type":"text/x-python","patch_set":29,"id":"da6ed579_b7703441","line":84,"updated":"2016-01-15 13:08:28.000000000","message":"The same as line 81","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"e242b0c2fbc981545a11bb6c7152bfd28f6a1e42","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertEqual(mock_monasca_scenario.call_count, tenants_count,"},{"line_number":82,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":83,"context_line":"                         \"number of tenants\")"},{"line_number":84,"context_line":"        self.assertEqual(mock_monasca_scenario.return_value._create_metrics."},{"line_number":85,"context_line":"                         call_count, metrics_per_tenant * tenants_count,"},{"line_number":86,"context_line":"                         \"Total number of metrics created should be tenant\""},{"line_number":87,"context_line":"                         \"counts times metrics per tenant\")"}],"source_content_type":"text/x-python","patch_set":29,"id":"5a5ae5dd_bd31a50d","line":84,"in_reply_to":"da6ed579_b7703441","updated":"2016-02-03 22:54:08.000000000","message":"Done","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def _gen_tenants(self, count):"},{"line_number":26,"context_line":"        tenants \u003d {}"},{"line_number":27,"context_line":"        for id in range(count):"},{"line_number":28,"context_line":"            tenants[str(id)] \u003d {\"name\": str(id)}"},{"line_number":29,"context_line":"        return tenants"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_112f0789","line":27,"updated":"2016-07-26 08:58:31.000000000","message":"please use six.range here","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        tenants \u003d self._gen_tenants(tenants_count)"},{"line_number":34,"context_line":"        users \u003d []"},{"line_number":35,"context_line":"        for id in tenants.keys():"},{"line_number":36,"context_line":"            for i in range(users_per_tenant):"},{"line_number":37,"context_line":"                users.append({\"id\": i, \"tenant_id\": id,"},{"line_number":38,"context_line":"                              \"endpoint\": mock.MagicMock()})"},{"line_number":39,"context_line":"        context \u003d test.get_test_context()"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_31320bf3","line":36,"updated":"2016-07-26 08:58:31.000000000","message":"please use six.range here","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        monasca_ctx \u003d metrics.MonascaMetricGenerator(real_context)"},{"line_number":79,"context_line":"        monasca_ctx.setup()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(tenants_count, mock_monasca_scenario.call_count,"},{"line_number":82,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":83,"context_line":"                         \"number of tenants\")"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_11b9c715","line":80,"updated":"2016-07-26 08:58:31.000000000","message":"Also please check that exact mock was called. I mean That monasca create metric was called\n\nIf we will left sleep()s in the context then you need to check that they was called too","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        self.assertEqual(tenants_count, mock_monasca_scenario.call_count,"},{"line_number":82,"context_line":"                         \"Scenario should be constructed same times as \""},{"line_number":83,"context_line":"                         \"number of tenants\")"},{"line_number":84,"context_line":"        self.assertEqual(metrics_per_tenant * tenants_count,"},{"line_number":85,"context_line":"                         mock_monasca_scenario.return_value._create_metrics."},{"line_number":86,"context_line":"                         call_count,"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_b6e551a5","line":83,"updated":"2016-07-26 08:58:31.000000000","message":"First should be actual them expected value","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"32e902d5011b97849b06df30531c53cf1a442dae","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                         mock_monasca_scenario.return_value._create_metrics."},{"line_number":86,"context_line":"                         call_count,"},{"line_number":87,"context_line":"                         \"Total number of metrics created should be tenant\""},{"line_number":88,"context_line":"                         \"counts times metrics per tenant\")"}],"source_content_type":"text/x-python","patch_set":36,"id":"dada55a8_96eacd72","line":88,"updated":"2016-07-26 08:58:31.000000000","message":"First should be actual them expected value","commit_id":"9573ddb7af85dbf6f49aae6aea463cb00a4eb093"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"396589d68727bc6877f191470ab85e99c071e97c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                         mock_monasca_scenario.return_value._create_metrics."},{"line_number":87,"context_line":"                         call_count,"},{"line_number":88,"context_line":"                         \"Total number of metrics created should be tenant\""},{"line_number":89,"context_line":"                         \"counts times metrics per tenant\")"}],"source_content_type":"text/x-python","patch_set":37,"id":"dada55a8_181fe3b7","line":89,"updated":"2016-07-27 11:59:05.000000000","message":"You\u0027ve fixed not the all coments","commit_id":"5244582a23b7f8e72fb498da7a48faa3578df7de"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f0da2f8446161659c00e244c180432629b274f31","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            tenants_count, users_per_tenant, metrics_per_tenant)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        monasca_ctx \u003d metrics.MonascaMetricGenerator(real_context)"},{"line_number":80,"context_line":"        monasca_ctx.setup()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        self.assertEqual(tenants_count, mock_monasca_scenario.call_count,"},{"line_number":83,"context_line":"                         \"Scenario should be constructed same times as \""}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_8f9ce76a","line":80,"updated":"2016-07-27 21:30:12.000000000","message":"\"Also please check that exact mock was called. I mean That monasca create metric was called\nIf we will left sleep()s in the context then you need to check that they was called too\"\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nThis is still not resolved, please fix it","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29be3c5d4717c406a7263ed02457fc158183141c","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            tenants_count, users_per_tenant, metrics_per_tenant)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        monasca_ctx \u003d metrics.MonascaMetricGenerator(real_context)"},{"line_number":80,"context_line":"        monasca_ctx.setup()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        self.assertEqual(tenants_count, mock_monasca_scenario.call_count,"},{"line_number":83,"context_line":"                         \"Scenario should be constructed same times as \""}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_29101801","line":80,"in_reply_to":"bacf61ea_01872b62","updated":"2016-07-28 22:00:09.000000000","message":"Yes, also for the line:\n  utils.interruptable_sleep(monasca_utils.CONF.benchmark.monasca_metric_create_prepoll_delay, atomic_delay\u003d1)","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"9e9b4ff3dbec120d41336af17539f5d54a4afbe2","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            tenants_count, users_per_tenant, metrics_per_tenant)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        monasca_ctx \u003d metrics.MonascaMetricGenerator(real_context)"},{"line_number":80,"context_line":"        monasca_ctx.setup()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        self.assertEqual(tenants_count, mock_monasca_scenario.call_count,"},{"line_number":83,"context_line":"                         \"Scenario should be constructed same times as \""}],"source_content_type":"text/x-python","patch_set":38,"id":"bacf61ea_01872b62","line":80,"in_reply_to":"bacf61ea_8f9ce76a","updated":"2016-07-27 21:59:17.000000000","message":"Are you saying that I need to add test for this line in context/monasca/metrics.py?\n\n                rutils.interruptable_sleep(1, atomic_delay\u003d1)","commit_id":"93b630b894ab921ac13fdd08b4051dc179b46689"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f76aa229f4ec8bffb18734ed811b336126177b4b","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                         mock_interruptable_sleep.call_args_list,"},{"line_number":97,"context_line":"                         \"Method interruptable_sleep should be called \""},{"line_number":98,"context_line":"                         \"tenant counts times metrics plus one\")"},{"line_number":99,"context_line":"        "}],"source_content_type":"text/x-python","patch_set":40,"id":"bacf61ea_0204f747","line":99,"updated":"2016-07-29 09:24:20.000000000","message":"Please remove those spaces","commit_id":"368f88de0c59938a28adc8362f7e7176e17b5900"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"084ebd60b78b49c6d96bc042f64654ed9a3b8f85","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                         mock_interruptable_sleep.call_args_list,"},{"line_number":97,"context_line":"                         \"Method interruptable_sleep should be called \""},{"line_number":98,"context_line":"                         \"tenant counts times metrics plus one\")"},{"line_number":99,"context_line":"        "}],"source_content_type":"text/x-python","patch_set":40,"id":"bacf61ea_1930de9d","line":99,"in_reply_to":"bacf61ea_0204f747","updated":"2016-07-29 14:40:31.000000000","message":"Done","commit_id":"368f88de0c59938a28adc8362f7e7176e17b5900"}],"tests/unit/plugins/openstack/scenarios/monasca/test_metrics.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def test_list_metrics(self):"},{"line_number":24,"context_line":"        scenario \u003d metrics.MonascaMetrics(self.context)"},{"line_number":25,"context_line":"        scenario._list_metrics \u003d mock.MagicMock()"},{"line_number":26,"context_line":"        scenario.list_metrics()"},{"line_number":27,"context_line":"        scenario._list_metrics.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_49078d1c","line":26,"updated":"2015-12-24 00:45:29.000000000","message":"Lets pass some arguments here.","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"36e47b505046794c812d8cbd4825a58d9839124c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def test_list_metrics(self):"},{"line_number":24,"context_line":"        scenario \u003d metrics.MonascaMetrics(self.context)"},{"line_number":25,"context_line":"        scenario._list_metrics \u003d mock.MagicMock()"},{"line_number":26,"context_line":"        scenario.list_metrics()"},{"line_number":27,"context_line":"        scenario._list_metrics.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_bd6e6794","line":26,"in_reply_to":"1a7b0d38_49078d1c","updated":"2015-12-24 04:03:02.000000000","message":"I don\u0027t see any reason for it. This test is good enough to see if the list metrics call is made.","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        scenario \u003d metrics.MonascaMetrics(self.context)"},{"line_number":25,"context_line":"        scenario._list_metrics \u003d mock.MagicMock()"},{"line_number":26,"context_line":"        scenario.list_metrics()"},{"line_number":27,"context_line":"        scenario._list_metrics.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_0c00b300","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":16},"updated":"2015-12-24 00:45:29.000000000","message":"And check is it called with them?","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"36e47b505046794c812d8cbd4825a58d9839124c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        scenario \u003d metrics.MonascaMetrics(self.context)"},{"line_number":25,"context_line":"        scenario._list_metrics \u003d mock.MagicMock()"},{"line_number":26,"context_line":"        scenario.list_metrics()"},{"line_number":27,"context_line":"        scenario._list_metrics.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_3d0917de","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":16},"in_reply_to":"1a7b0d38_0c00b300","updated":"2015-12-24 04:03:02.000000000","message":"this check is to test to making sure it is called.","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6599ee92bf7fa7200377f7c8725605b8f205d6b2","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class MonascaMetricsTestCase(test.ScenarioTestCase):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def test_list_metrics(self):"},{"line_number":24,"context_line":"        scenario \u003d metrics.MonascaMetrics(self.context)"},{"line_number":25,"context_line":"        scenario._list_metrics \u003d mock.MagicMock()"},{"line_number":26,"context_line":"        scenario.list_metrics()"}],"source_content_type":"text/x-python","patch_set":29,"id":"da6ed579_49bcb8ba","line":23,"updated":"2016-01-15 13:08:28.000000000","message":"And please  add test with passing parameters to list_metrics() with usage of ddt module","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"e242b0c2fbc981545a11bb6c7152bfd28f6a1e42","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class MonascaMetricsTestCase(test.ScenarioTestCase):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def test_list_metrics(self):"},{"line_number":24,"context_line":"        scenario \u003d metrics.MonascaMetrics(self.context)"},{"line_number":25,"context_line":"        scenario._list_metrics \u003d mock.MagicMock()"},{"line_number":26,"context_line":"        scenario.list_metrics()"}],"source_content_type":"text/x-python","patch_set":29,"id":"5a5ae5dd_2f11ee52","line":23,"in_reply_to":"da6ed579_49bcb8ba","updated":"2016-02-03 22:54:08.000000000","message":"Done","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"}],"tests/unit/plugins/openstack/scenarios/monasca/test_utils.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            self.name, self.region)"},{"line_number":33,"context_line":"        self.assertEqual("},{"line_number":34,"context_line":"            self.clients(\"monasca\").metrics.list.return_value,"},{"line_number":35,"context_line":"            return_metric_value)"},{"line_number":36,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":37,"context_line":"                                       \"monasca.list_metrics\")"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_ac0f1f2d","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":31},"updated":"2015-12-24 00:45:29.000000000","message":"First should be expected value then actual","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"fad60d521573c11bb141837b8fff3f1203f1ea25","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            self.name, self.region, self.service, self.hostname)"},{"line_number":42,"context_line":"        self.assertEqual(1, self.clients(\"monasca\").metrics.create.call_count)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_create_metrics_withoutname(self):"},{"line_number":45,"context_line":"        self.scenario._create_metrics(region\u003dself.region,"},{"line_number":46,"context_line":"                                      service\u003dself.service,"},{"line_number":47,"context_line":"                                      hostname\u003dself.hostname)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a7b0d38_cc094b2e","line":44,"updated":"2015-12-24 00:45:29.000000000","message":"For tests with the same structure but different parameters we use ddt module. Here is an example https://github.com/openstack/rally/blob/master/tests/unit/plugins/openstack/scenarios/neutron/test_network.py#L354","commit_id":"06d053acf0973e688bd9fdeb2d3b71f13c5f2f76"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6599ee92bf7fa7200377f7c8725605b8f205d6b2","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.scenario._create_metrics(name\u003dself.name)"},{"line_number":44,"context_line":"        self.assertEqual(1, self.clients(\"monasca\").metrics.create.call_count)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_create_metrics_withoutname(self):"},{"line_number":47,"context_line":"        self.scenario._create_metrics(name\u003dself.name1, kwargs\u003dself.kwargs)"},{"line_number":48,"context_line":"        self.assertEqual(1, self.clients(\"monasca\").metrics.create.call_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"da6ed579_322212a4","line":46,"updated":"2016-01-15 13:08:28.000000000","message":"tests in line 42 and 46 should be written with usage of ddt library. This would help as to avoid duplication of code.","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"},{"author":{"_account_id":16558,"name":"Yan Ning","email":"yan.ning@charter.com","username":"ningyan"},"change_message_id":"e242b0c2fbc981545a11bb6c7152bfd28f6a1e42","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.scenario._create_metrics(name\u003dself.name)"},{"line_number":44,"context_line":"        self.assertEqual(1, self.clients(\"monasca\").metrics.create.call_count)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def test_create_metrics_withoutname(self):"},{"line_number":47,"context_line":"        self.scenario._create_metrics(name\u003dself.name1, kwargs\u003dself.kwargs)"},{"line_number":48,"context_line":"        self.assertEqual(1, self.clients(\"monasca\").metrics.create.call_count)"}],"source_content_type":"text/x-python","patch_set":29,"id":"5a5ae5dd_4f09ca2b","line":46,"in_reply_to":"da6ed579_322212a4","updated":"2016-02-03 22:54:08.000000000","message":"Done","commit_id":"4f35be2df1bb0d5fc6382e00609082718be16c06"}]}
