)]}'
{"tempest/stress/actions/create_destroy_server.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"24a8e33d2894e4f51dcd96380dde4ecee42b8899","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    def run(self, **kwargs):"},{"line_number":26,"context_line":"        image \u003d self.manager.config.compute.image_ref"},{"line_number":27,"context_line":"        flavor \u003d self.manager.config.compute.flavor_ref"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        name \u003d rand_name(\"instance\")"},{"line_number":30,"context_line":"        self.logger.info(\"creating %s\" % name)"},{"line_number":31,"context_line":"        resp, server \u003d self.manager.servers_client.create_server("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FsM8%3D","line":28,"updated":"2013-07-12 22:34:31.000000000","message":"I did the same thing in my patch, removing the while True: here and put it in\nthe new StressAction base class.","commit_id":"e59200833051ff380841ff74c501fcd12acc46b2"}],"tempest/stress/driver.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"fe9a450bc904e5b87a3d6752c5a504679799b859","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                                        kwargs\u003dtest.get(\u0027kwargs\u0027, {}))"},{"line_number":149,"context_line":"            process \u003d {\u0027process\u0027: p, \u0027run_object\u0027: process_wapper,"},{"line_number":150,"context_line":"                       \u0027p_number\u0027: p_number, \u0027action\u0027: test[\u0027action\u0027],"},{"line_number":151,"context_line":"                       \u0027num_runs\u0027: num_runs, \u0027num_fails\u0027: num_fails}"},{"line_number":152,"context_line":"            processes.append(process)"},{"line_number":153,"context_line":"            p.start()"},{"line_number":154,"context_line":"    end_time \u003d time.time() + duration"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FsNI%3D","line":151,"updated":"2013-07-12 22:33:19.000000000","message":"We need to merge these 2 ideas now.  I\u0027ve made changes here that affect your patch.  Take a look at what I\u0027ve done and lets see how we can merge them together and not have conflicts.","commit_id":"e59200833051ff380841ff74c501fcd12acc46b2"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf7e8d4c65561751c8bb435d8ed59490137f078b","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            logger.debug(\"calling Target Object %s\" %"},{"line_number":141,"context_line":"                         test_run.__class__.__name__)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            manager \u003d multiprocessing.Manager()"},{"line_number":144,"context_line":"            shared_statistic \u003d manager.dict()"},{"line_number":145,"context_line":"            shared_statistic[\u0027runs\u0027] \u003d 0"},{"line_number":146,"context_line":"            shared_statistic[\u0027fails\u0027] \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fn5U%3D","line":143,"updated":"2013-07-15 18:22:52.000000000","message":"This should be called something different here.  It\u0027s the source of the \nself.manager errors when running the tests.\n\nI changed it locally to proc_manager and all the issues went away.","commit_id":"60218859329d2ea09f8325d0daa865f1e88c6c2b"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"d3719519b4a89a2c1399000fff2380680d30707c","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            logger.debug(\"calling Target Object %s\" %"},{"line_number":141,"context_line":"                         test_run.__class__.__name__)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            manager \u003d multiprocessing.Manager()"},{"line_number":144,"context_line":"            shared_statistic \u003d manager.dict()"},{"line_number":145,"context_line":"            shared_statistic[\u0027runs\u0027] \u003d 0"},{"line_number":146,"context_line":"            shared_statistic[\u0027fails\u0027] \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Flyk%3D","line":143,"in_reply_to":"AAAAP3%2F%2Fn5U%3D","updated":"2013-07-16 06:28:12.000000000","message":"ohhh, thanks for the hint\n\nDONE","commit_id":"60218859329d2ea09f8325d0daa865f1e88c6c2b"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"d07cce492e27e78ff75b48a9bb8bc11f82475384","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                     process[\u0027statistic\u0027][\u0027fails\u0027]))"},{"line_number":198,"context_line":"    logger.info(\"Summary:\")"},{"line_number":199,"context_line":"    logger.info(\"Run %d actions (%d failed)\" %"},{"line_number":200,"context_line":"                (sum_runs, sum_fails))"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    if not had_errors:"},{"line_number":203,"context_line":"        logger.info(\"cleaning up\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fn24%3D","line":200,"updated":"2013-07-15 18:30:29.000000000","message":"Probably should relabel this as \"Run N times (%d failed)\" because we aren\u0027t actually tracking how many test actions are taking inside each run() call yet.   We should add some hooks in the service methods to track the # of times actions are called, and track success v failures of those instead of just how many times run() succeeds v. fails.","commit_id":"60218859329d2ea09f8325d0daa865f1e88c6c2b"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"a01ab1424234b3c63847dff55b11fb95c5ae2750","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                     process[\u0027statistic\u0027][\u0027fails\u0027]))"},{"line_number":198,"context_line":"    logger.info(\"Summary:\")"},{"line_number":199,"context_line":"    logger.info(\"Run %d actions (%d failed)\" %"},{"line_number":200,"context_line":"                (sum_runs, sum_fails))"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    if not had_errors:"},{"line_number":203,"context_line":"        logger.info(\"cleaning up\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Flrw%3D","line":200,"in_reply_to":"AAAAP3%2F%2Fls0%3D","updated":"2013-07-16 06:38:51.000000000","message":"ok yah that\u0027s fine.   I was thinking actions are openstack api calls that the run loop makes.   We do need to track those at some point, as my stand along stress tool does.","commit_id":"60218859329d2ea09f8325d0daa865f1e88c6c2b"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"d3719519b4a89a2c1399000fff2380680d30707c","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                     process[\u0027statistic\u0027][\u0027fails\u0027]))"},{"line_number":198,"context_line":"    logger.info(\"Summary:\")"},{"line_number":199,"context_line":"    logger.info(\"Run %d actions (%d failed)\" %"},{"line_number":200,"context_line":"                (sum_runs, sum_fails))"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    if not had_errors:"},{"line_number":203,"context_line":"        logger.info(\"cleaning up\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fls0%3D","line":200,"in_reply_to":"AAAAP3%2F%2Fn24%3D","updated":"2013-07-16 06:28:12.000000000","message":"I think this is more a terminology thing, so the folder is called \"actions\" and in the json files a single function call is also called action.  For me it\u0027s more a work flow than a action, and a work flow consist of steps and steps of a action and a check.","commit_id":"60218859329d2ea09f8325d0daa865f1e88c6c2b"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"3efd29b90360611e12a2b1732ad51b494e73f333","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        for process in processes:"},{"line_number":174,"context_line":"            process[\u0027process\u0027].terminate()"},{"line_number":175,"context_line":"    else:"},{"line_number":176,"context_line":"        if logfiles:"},{"line_number":177,"context_line":"            errors \u003d _error_in_logs(logfiles, computes)"},{"line_number":178,"context_line":"            if errors:"},{"line_number":179,"context_line":"                had_errors \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2F80M%3D","line":176,"updated":"2013-07-18 16:15:07.000000000","message":"Seems like if max_runs is specified then the check for error in the logs only happens once at the beginning.","commit_id":"756705aee58f9a49f59e9f65aa42d732406d1088"}],"tempest/stress/process_wrapper.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"24a8e33d2894e4f51dcd96380dde4ecee42b8899","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        self.test_obj.setUp(**dict(kwargs.iteritems()))"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def run(self, num_runs, num_fails, **kwargs):"},{"line_number":30,"context_line":"        while self.max_runs is None or num_runs.value \u003c self.max_runs:"},{"line_number":31,"context_line":"            try:"},{"line_number":32,"context_line":"                self.test_obj.run(**dict(kwargs.iteritems()))"},{"line_number":33,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FsMk%3D","line":30,"updated":"2013-07-12 22:34:31.000000000","message":"Looks like we can merge this into my new StressAction base class ?","commit_id":"e59200833051ff380841ff74c501fcd12acc46b2"}],"tempest/stress/run_stress.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"fe9a450bc904e5b87a3d6752c5a504679799b859","unresolved":false,"context_lines":[{"line_number":31,"context_line":"parser.add_argument(\u0027-d\u0027, \u0027--duration\u0027, default\u003d300, type\u003dint,"},{"line_number":32,"context_line":"                    help\u003d\"Duration of test.\")"},{"line_number":33,"context_line":"parser.add_argument(\u0027-n\u0027, \u0027--number\u0027, default\u003dNone, type\u003dint,"},{"line_number":34,"context_line":"                    help\u003d\"How often an action is executed for each process.\")"},{"line_number":35,"context_line":"parser.add_argument(\u0027tests\u0027, help\u003d\"Name of the file with test description.\")"},{"line_number":36,"context_line":"main(parser.parse_args())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FsNo%3D","line":34,"updated":"2013-07-12 22:33:19.000000000","message":"awesomeness here.  Thank you for this.","commit_id":"e59200833051ff380841ff74c501fcd12acc46b2"}]}
