)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"761466c35308b93f87846c42f1ddf305c08c09ff","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Limit RPS runner by duration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Allow to limit the duration for RPS scenario; defaults to no limit."},{"line_number":10,"context_line":"When the execution lasts longer than the duration RPS task is stopped."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I2f5244784b969ea4bde147ea15bc770abb93ccdb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bab6814e_05d41d1e","line":9,"updated":"2016-05-19 07:17:33.000000000","message":"RPS runner","commit_id":"9cab0c8b5759dabaf587d157b6289d13f56fffa7"}],"rally/plugins/common/runners/rps.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"7416d8f989b46e081b05e186aaa0c0a1eaf5c640","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        collector_thr_by_timeout.start()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    the_timer \u003d timeutils.StopWatch(duration\u003dduration)"},{"line_number":77,"context_line":"    the_timer.start()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    i \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_238094f6","line":76,"updated":"2016-05-17 18:22:28.000000000","message":"I don\u0027t see benefits of usage StopWatch. The logic of that class is quite simple but need more imports. Also we can do that be join with time out in more proper place https://github.com/openstack/rally/blob/master/rally/task/runner.py#L201 Also this change will stop to add iteration without any user friendly message but started tasks will continue to work.  So it will not really interrupt rps runner proccess, just stop to add new iterations","commit_id":"9cab0c8b5759dabaf587d157b6289d13f56fffa7"},{"author":{"_account_id":5950,"name":"Ilya Shakhat","email":"shakhat@gmail.com","username":"shakhat"},"change_message_id":"7cc6eb784b6b620bfb7178496a10dd29c198e4d6","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        )"},{"line_number":74,"context_line":"        collector_thr_by_timeout.start()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    the_timer \u003d timeutils.StopWatch(duration\u003dduration)"},{"line_number":77,"context_line":"    the_timer.start()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    i \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_287211e6","line":76,"in_reply_to":"dab17558_238094f6","updated":"2016-05-18 10:03:15.000000000","message":"What\u0027s wrong with one more import??? Why you consider writing own code instead of fancy library?\n\nAs of the logic -- the goal is not to stop the execution immediately, but to stop adding new tasks once time ran out. It\u0027s clear that stopping the whole execution in a single moment wouldn\u0027t be possible as requires cleanup as so on.\n\nAs of the message - I\u0027ll add the one in the following patch.","commit_id":"9cab0c8b5759dabaf587d157b6289d13f56fffa7"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"761466c35308b93f87846c42f1ddf305c08c09ff","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                \"type\": \"integer\","},{"line_number":156,"context_line":"                \"minimum\": 1"},{"line_number":157,"context_line":"            },"},{"line_number":158,"context_line":"            \"duration\": {"},{"line_number":159,"context_line":"                \"type\": \"integer\""},{"line_number":160,"context_line":"            }"},{"line_number":161,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_a5eef1b1","line":158,"updated":"2016-05-19 07:17:33.000000000","message":"Ilya, thanks for patch, however from commit message I do not understand this. \n\nFrom current point of view I see this:\n\n    duration \u003d times / rps\n\n\nE.g. if you need to run load for 10 seconds and you have 5 rps you should put times \u003d 10 * 5 \u003d 50\n\n\nI am ok with creating \"duration\" as a alias for \"times\", however than we don\u0027t need new logic, it will be enough to transfare duration to times, and change a bit json schema validation to check that we are putting only one value duration or times.","commit_id":"9cab0c8b5759dabaf587d157b6289d13f56fffa7"}]}
