)]}'
{"specs/stress-api-tracking.rst":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"10033adb52e0574a6c1a6f8be48dea9f3d4232a3","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"https://blueprints.launchpad.net/tempest/+spec/stress-api-tracking"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implement Cinder v2 API test by sharing service client and test code with v1."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_520aa6d2","line":16,"updated":"2014-06-19 01:27:02.000000000","message":"I don\u0027t think this is for this blueprint.","commit_id":"ab4caaabcfce20d38ecdbbb057d562eb1e9004fc"},{"author":{"_account_id":9624,"name":"Ramy Asselin","email":"ramyasselin@yahoo.com","username":"asselin"},"change_message_id":"beb192eed3571bb1d8f1cdc5f7a3b2fd19f05407","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"https://blueprints.launchpad.net/tempest/+spec/stress-api-tracking"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Implement Cinder v2 API test by sharing service client and test code with v1."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_ec2280a2","line":16,"in_reply_to":"1ae5cdf2_520aa6d2","updated":"2014-06-23 21:39:19.000000000","message":"Done","commit_id":"ab4caaabcfce20d38ecdbbb057d562eb1e9004fc"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"10033adb52e0574a6c1a6f8be48dea9f3d4232a3","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Create a decorator that can be applied to select clients that will"},{"line_number":30,"context_line":"automatically monitor the number of calls, successes, and failures."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"e.g.::"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_c221364e","line":30,"updated":"2014-06-19 01:27:02.000000000","message":"So I think we need a bit more implementation detail around exactly what creating the decorator entails. Where will it live, how is it storing the call counts, etc. I can look at the code, but I think having some prose about the details would be useful.","commit_id":"ab4caaabcfce20d38ecdbbb057d562eb1e9004fc"},{"author":{"_account_id":9624,"name":"Ramy Asselin","email":"ramyasselin@yahoo.com","username":"asselin"},"change_message_id":"beb192eed3571bb1d8f1cdc5f7a3b2fd19f05407","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Create a decorator that can be applied to select clients that will"},{"line_number":30,"context_line":"automatically monitor the number of calls, successes, and failures."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"e.g.::"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_85038a0f","line":30,"in_reply_to":"1ae5cdf2_c221364e","updated":"2014-06-23 21:39:19.000000000","message":"Done","commit_id":"ab4caaabcfce20d38ecdbbb057d562eb1e9004fc"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"10033adb52e0574a6c1a6f8be48dea9f3d4232a3","unresolved":false,"context_lines":[{"line_number":72,"context_line":"[2013-05-24][10:12:28][A:668,E:2] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":73,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 668 actions."},{"line_number":74,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 75 create volume actions."},{"line_number":75,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 75 delete volume actions."},{"line_number":76,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 108 create snapshot actions."},{"line_number":77,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 108 delete snapshot actions."},{"line_number":78,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 151 attach volume actions."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_42d5261a","line":75,"updated":"2014-06-19 01:27:02.000000000","message":"This logging format seems a bit weird to me. Why does each line in the summary need a date, timestamp, and total count? Especially if it\u0027s all the same for the summary. I think just having the summary by itself is fine.","commit_id":"ab4caaabcfce20d38ecdbbb057d562eb1e9004fc"},{"author":{"_account_id":9624,"name":"Ramy Asselin","email":"ramyasselin@yahoo.com","username":"asselin"},"change_message_id":"beb192eed3571bb1d8f1cdc5f7a3b2fd19f05407","unresolved":false,"context_lines":[{"line_number":72,"context_line":"[2013-05-24][10:12:28][A:668,E:2] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":73,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 668 actions."},{"line_number":74,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 75 create volume actions."},{"line_number":75,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 75 delete volume actions."},{"line_number":76,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 108 create snapshot actions."},{"line_number":77,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 108 delete snapshot actions."},{"line_number":78,"context_line":"[2013-05-24][10:12:28][A:668,E:2] Test performed 151 attach volume actions."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_453c2231","line":75,"in_reply_to":"1ae5cdf2_42d5261a","updated":"2014-06-23 21:39:19.000000000","message":"The date and timestamp come from the basic LOG.info() functionality. In the next patch I took this out and put in what the code currently outputs.","commit_id":"ab4caaabcfce20d38ecdbbb057d562eb1e9004fc"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6f6d51890e27864b63f702be0d0cb0ab84ab3626","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Create a decorator that can be applied to select clients that will"},{"line_number":27,"context_line":"automatically monitor the number of calls, successes, and failures of its public methods."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Create a new class called \"Trace\" with a single public method called \"decorate\" that will "},{"line_number":30,"context_line":"wrap any desired class\u0027s public methods with the following functionality: "},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. When such methods return normally the call is successful"}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_f145e317","line":29,"updated":"2014-07-09 11:09:40.000000000","message":"very nit, there are some tailing spaces. can you remove these?\nThere is no efficiency for the generated document, though.","commit_id":"89315b4c71ff8a6226844442ce74751a47c8b254"},{"author":{"_account_id":9624,"name":"Ramy Asselin","email":"ramyasselin@yahoo.com","username":"asselin"},"change_message_id":"53424868a90e8d11da654c0661138a3f9f19f454","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Create a decorator that can be applied to select clients that will"},{"line_number":27,"context_line":"automatically monitor the number of calls, successes, and failures of its public methods."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Create a new class called \"Trace\" with a single public method called \"decorate\" that will "},{"line_number":30,"context_line":"wrap any desired class\u0027s public methods with the following functionality: "},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. When such methods return normally the call is successful"}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_1bc189e4","line":29,"in_reply_to":"baada198_f145e317","updated":"2014-07-09 16:46:52.000000000","message":"Done","commit_id":"89315b4c71ff8a6226844442ce74751a47c8b254"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6f6d51890e27864b63f702be0d0cb0ab84ab3626","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"For each decorated method, maintain a dictionary that tracks:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. The number of succesfull calls"},{"line_number":46,"context_line":"#. The number of failed calls"},{"line_number":47,"context_line":"#. The list of observed stacktraces for the failed calls"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_11e6d716","line":45,"updated":"2014-07-09 11:09:40.000000000","message":"nit, s/succesfull/successful","commit_id":"89315b4c71ff8a6226844442ce74751a47c8b254"},{"author":{"_account_id":9624,"name":"Ramy Asselin","email":"ramyasselin@yahoo.com","username":"asselin"},"change_message_id":"53424868a90e8d11da654c0661138a3f9f19f454","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"For each decorated method, maintain a dictionary that tracks:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"#. The number of succesfull calls"},{"line_number":46,"context_line":"#. The number of failed calls"},{"line_number":47,"context_line":"#. The list of observed stacktraces for the failed calls"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_5bbb0172","line":45,"in_reply_to":"baada198_11e6d716","updated":"2014-07-09 16:46:52.000000000","message":"Done","commit_id":"89315b4c71ff8a6226844442ce74751a47c8b254"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6f6d51890e27864b63f702be0d0cb0ab84ab3626","unresolved":false,"context_lines":[{"line_number":47,"context_line":"#. The list of observed stacktraces for the failed calls"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Client APIs can then be decorated by e.g.::"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def setUpTracking(self, trace):"},{"line_number":53,"context_line":"        \"\"\"add stats tracking decorator to services.\"\"\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_3173dbe8","line":50,"updated":"2014-07-09 11:09:40.000000000","message":"I think this is only for stress tests. So do you have any idea about the implementation for all Tempest tests?\nHow about adding the decorator to the clients directly?","commit_id":"89315b4c71ff8a6226844442ce74751a47c8b254"},{"author":{"_account_id":9624,"name":"Ramy Asselin","email":"ramyasselin@yahoo.com","username":"asselin"},"change_message_id":"53424868a90e8d11da654c0661138a3f9f19f454","unresolved":false,"context_lines":[{"line_number":47,"context_line":"#. The list of observed stacktraces for the failed calls"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Client APIs can then be decorated by e.g.::"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def setUpTracking(self, trace):"},{"line_number":53,"context_line":"        \"\"\"add stats tracking decorator to services.\"\"\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_ad6144d5","line":50,"in_reply_to":"baada198_3173dbe8","updated":"2014-07-09 16:46:52.000000000","message":"I guess it depends how we want to do it. I thought it best to avoid modifying the clients directly and instead put it on the consumer. However, the idea to track all tempest calls is new, so perhaps that assumption is no longer needed. Let\u0027s discuss on irc with more people and make a decision.","commit_id":"89315b4c71ff8a6226844442ce74751a47c8b254"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"6f6d51890e27864b63f702be0d0cb0ab84ab3626","unresolved":false,"context_lines":[{"line_number":78,"context_line":"Finally, the Stats class provides a basic implementation to log collected statistics as well as return the "},{"line_number":79,"context_line":"statistics object for custom logging and other use cases."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"At the end of a stress test run, print out the statistics gathered e.g. using LOG.inf() logging::"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    2014-03-13 15:23:40.729 12273 INFO tempest.stress.driver [-] [VolumesClientJSON:get_volume] 6225 pass, 0 fail"},{"line_number":84,"context_line":"    2014-03-13 15:23:40.729 12273 INFO tempest.stress.driver [-] [VolumesClientJSON:create_volume] 151 pass, 0 fail"}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_917827fa","line":81,"updated":"2014-07-09 11:09:40.000000000","message":"nit, s/LOG.inf()/LOG.info()","commit_id":"89315b4c71ff8a6226844442ce74751a47c8b254"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0bbfdb85c8f830e8a1712d7afaf3c9441f1bb612","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Implement API Tracking"},{"line_number":12,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Previous BP URL: https://blueprints.launchpad.net/tempest/+spec/stress-api-tracking"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_159ea654","line":14,"updated":"2014-07-22 17:46:35.000000000","message":"It\u0027s still the bp url. :) This is just the specification that will be linked to in LP once it\u0027s approved.","commit_id":"f5a6eb8763bf80a70cc459a7ba19e3366cbff816"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"a27975f2cd354bae3a5db9a4404d2695ede7890f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Implement API Tracking"},{"line_number":12,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Previous BP URL: https://blueprints.launchpad.net/tempest/+spec/stress-api-tracking"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_0a4f0b35","line":14,"updated":"2014-07-11 22:29:03.000000000","message":"Why previous?","commit_id":"f5a6eb8763bf80a70cc459a7ba19e3366cbff816"},{"author":{"_account_id":9624,"name":"Ramy Asselin","email":"ramyasselin@yahoo.com","username":"asselin"},"change_message_id":"b1d1201fed9e1b69d1cf67a26bf52b1ed47fafe1","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Implement API Tracking"},{"line_number":12,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Previous BP URL: https://blueprints.launchpad.net/tempest/+spec/stress-api-tracking"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_6d3ee18c","line":14,"in_reply_to":"baada198_0a4f0b35","updated":"2014-07-11 23:25:38.000000000","message":"This is an original BP URL from the havana timeframe. I don\u0027t know where this new \"spec\" will go.","commit_id":"f5a6eb8763bf80a70cc459a7ba19e3366cbff816"}]}
