)]}'
{"tempest/stress/actions/create_destroy_server.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"51f1d0e27bacb170c1b82d98d79186eaff50d345","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class CreateDestroyServerTest(testObject.testObject):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, manager, logger, *args, **kwargs):"},{"line_number":22,"context_line":"        super(CreateDestroyServerTest, self).__init__("},{"line_number":23,"context_line":"            manager, logger, *args, **kwargs)"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2Fuj4%3D","line":21,"updated":"2013-07-12 10:23:51.000000000","message":"This function does nothing now, It does not need to be here.\n\nThe base class\u0027s __init__ will be called. (Method Resolution Order)","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf19cfa3bed18240a07f5d6169c56af7dfaa45b2","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class CreateDestroyServerTest(testObject.testObject):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, manager, logger, *args, **kwargs):"},{"line_number":22,"context_line":"        super(CreateDestroyServerTest, self).__init__("},{"line_number":23,"context_line":"            manager, logger, *args, **kwargs)"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FtaU%3D","line":21,"in_reply_to":"AAAAP3%2F%2Fuj4%3D","updated":"2013-07-12 21:58:21.000000000","message":"Done","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"}],"tempest/stress/actions/volume_create_delete.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"51f1d0e27bacb170c1b82d98d79186eaff50d345","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    limitations under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":14,"context_line":"import tempest.stress.testObject as testObject"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class CreateDeleteTest(testObject.testObject):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2Fumk%3D","line":14,"updated":"2013-07-12 10:23:51.000000000","message":"Strange import line.","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf19cfa3bed18240a07f5d6169c56af7dfaa45b2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    limitations under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":14,"context_line":"import tempest.stress.testObject as testObject"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class CreateDeleteTest(testObject.testObject):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FtYk%3D","line":14,"in_reply_to":"AAAAP3%2F%2Fumk%3D","updated":"2013-07-12 21:58:21.000000000","message":"I have to add the as testObject here because of limitations in importlib.import_module not resolving tempest.stress.testObject to testObject.\n\nI\u0027ve changed the name of testObject to stressaction and the object inside of it to StressAction.  So the import is now \n\nimport tempest.stress.stressaction as stressaction\n\nI don\u0027t know how to fix the importlib problem to get it to properly assign the import module to it\u0027s correct name.","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"51f1d0e27bacb170c1b82d98d79186eaff50d345","unresolved":false,"context_lines":[{"line_number":14,"context_line":"import tempest.stress.testObject as testObject"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class CreateDeleteTest(testObject.testObject):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def __init__(self, manager, logger, *args, **kwargs):"},{"line_number":20,"context_line":"        super(CreateDeleteTest, self).__init__(manager, logger,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2Fumc%3D","line":17,"updated":"2013-07-12 10:23:51.000000000","message":"The module name should not contain an upper case letter.\nthe class name should start with an upper case letter.\n\nThis notes are from the pep8 guideline.","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf19cfa3bed18240a07f5d6169c56af7dfaa45b2","unresolved":false,"context_lines":[{"line_number":14,"context_line":"import tempest.stress.testObject as testObject"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class CreateDeleteTest(testObject.testObject):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def __init__(self, manager, logger, *args, **kwargs):"},{"line_number":20,"context_line":"        super(CreateDeleteTest, self).__init__(manager, logger,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FtYg%3D","line":17,"in_reply_to":"AAAAP3%2F%2Fumc%3D","updated":"2013-07-12 21:58:21.000000000","message":"Done","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"51f1d0e27bacb170c1b82d98d79186eaff50d345","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def __init__(self, manager, logger, *args, **kwargs):"},{"line_number":20,"context_line":"        super(CreateDeleteTest, self).__init__(manager, logger,"},{"line_number":21,"context_line":"                                               *args, **kwargs)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def run(self, **kwargs):"},{"line_number":24,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2Fum8%3D","line":21,"updated":"2013-07-12 10:23:51.000000000","message":"The base class has a different signature.","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf19cfa3bed18240a07f5d6169c56af7dfaa45b2","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def __init__(self, manager, logger, *args, **kwargs):"},{"line_number":20,"context_line":"        super(CreateDeleteTest, self).__init__(manager, logger,"},{"line_number":21,"context_line":"                                               *args, **kwargs)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def run(self, **kwargs):"},{"line_number":24,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FtYc%3D","line":21,"in_reply_to":"AAAAP3%2F%2Fum8%3D","updated":"2013-07-12 21:58:21.000000000","message":"Done","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"}],"tempest/stress/cleanup.py":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"9a87db6a5967dcd30707279809ec5570fb015c51","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import clients"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def cleanup(logger):"},{"line_number":23,"context_line":"    admin_manager \u003d clients.AdminManager()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    _, body \u003d admin_manager.servers_client.list_servers({\"all_tenants\": True})"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAP3%2F%2Fp4c%3D","line":22,"updated":"2013-07-15 07:39:29.000000000","message":"Please adapt tools/cleanup.py as well. Otherwise it doesn\u0027t work.","commit_id":"95789a918ffd4cbb11740f9286a23f34577aae2a"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"f08f3df3bdc7c900261a18d63dca2f6e0ba072df","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import clients"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def cleanup(logger):"},{"line_number":23,"context_line":"    admin_manager \u003d clients.AdminManager()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    _, body \u003d admin_manager.servers_client.list_servers({\"all_tenants\": True})"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAP3%2F%2Fod0%3D","line":22,"in_reply_to":"AAAAP3%2F%2Fp4c%3D","updated":"2013-07-15 16:08:54.000000000","message":"Done","commit_id":"95789a918ffd4cbb11740f9286a23f34577aae2a"}],"tempest/stress/driver.py":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"15fccfbfb057cfd4d10cf9e7c7bcc636b77338ee","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        p \u003d process[\u0027process\u0027]"},{"line_number":165,"context_line":"        test_run \u003d process[\u0027run_object\u0027]"},{"line_number":166,"context_line":"        p.terminate()"},{"line_number":167,"context_line":"        test_run.tearDown()"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    if not had_errors:"},{"line_number":170,"context_line":"        logger.info(\"cleaning up\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FuhQ%3D","line":167,"updated":"2013-07-12 10:30:40.000000000","message":"After a long debugging session:\ntest_run.tearDown() is executed in the parent process but not in the child process. So all local changes inside of the child are lost This causes problems... we need another solution for this...","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf19cfa3bed18240a07f5d6169c56af7dfaa45b2","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        p \u003d process[\u0027process\u0027]"},{"line_number":165,"context_line":"        test_run \u003d process[\u0027run_object\u0027]"},{"line_number":166,"context_line":"        p.terminate()"},{"line_number":167,"context_line":"        test_run.tearDown()"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    if not had_errors:"},{"line_number":170,"context_line":"        logger.info(\"cleaning up\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FtYM%3D","line":167,"in_reply_to":"AAAAP3%2F%2FuhQ%3D","updated":"2013-07-12 21:58:21.000000000","message":"I redid the driver\u0027s interaction here a bit.  I renamed testObject to StressAction and it\u0027s now a bit of a wrapper for running tests.  It automatically registers a few signal handlers and calls tearDown now in the correct context.","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"7b4b5721e5c004d30f104645cc5badf78d5883b4","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        p \u003d process[\u0027process\u0027]"},{"line_number":165,"context_line":"        test_run \u003d process[\u0027run_object\u0027]"},{"line_number":166,"context_line":"        p.terminate()"},{"line_number":167,"context_line":"        test_run.tearDown()"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    if not had_errors:"},{"line_number":170,"context_line":"        logger.info(\"cleaning up\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FuTg%3D","line":167,"in_reply_to":"AAAAP3%2F%2FuhQ%3D","updated":"2013-07-12 12:17:36.000000000","message":"You can use signals like SIGHUP, for asking the child for cleanup and exit.\nWait for ~20 sec, before sending a SIGKILL just to make sure.","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"}],"tempest/stress/testObject.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"51f1d0e27bacb170c1b82d98d79186eaff50d345","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class testObject(object):"},{"line_number":19,"context_line":"    def __init__(self, manager, logger):"},{"line_number":20,"context_line":"        self.manager \u003d manager"},{"line_number":21,"context_line":"        self.logger \u003d logger"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FuoQ%3D","line":18,"updated":"2013-07-12 10:23:51.000000000","message":"The class names should start with capital letter.","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf19cfa3bed18240a07f5d6169c56af7dfaa45b2","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class testObject(object):"},{"line_number":19,"context_line":"    def __init__(self, manager, logger):"},{"line_number":20,"context_line":"        self.manager \u003d manager"},{"line_number":21,"context_line":"        self.logger \u003d logger"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FtY0%3D","line":18,"in_reply_to":"AAAAP3%2F%2FuoQ%3D","updated":"2013-07-12 21:58:21.000000000","message":"renamed the file to stressaction.py\nAlso renamed this class to StressAction","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"51f1d0e27bacb170c1b82d98d79186eaff50d345","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class testObject(object):"},{"line_number":19,"context_line":"    def __init__(self, manager, logger):"},{"line_number":20,"context_line":"        self.manager \u003d manager"},{"line_number":21,"context_line":"        self.logger \u003d logger"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2Funo%3D","line":19,"updated":"2013-07-12 10:23:51.000000000","message":"This signature is differs from the one used by the super calls. (-1)","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf19cfa3bed18240a07f5d6169c56af7dfaa45b2","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class testObject(object):"},{"line_number":19,"context_line":"    def __init__(self, manager, logger):"},{"line_number":20,"context_line":"        self.manager \u003d manager"},{"line_number":21,"context_line":"        self.logger \u003d logger"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FtYw%3D","line":19,"in_reply_to":"AAAAP3%2F%2Funo%3D","updated":"2013-07-12 21:58:21.000000000","message":"Done","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"51f1d0e27bacb170c1b82d98d79186eaff50d345","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        \"\"\"Called after run is stopped.\"\"\""},{"line_number":29,"context_line":"        pass"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def run(self, **kwargs):"},{"line_number":32,"context_line":"        raise NotImplemented()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FunM%3D","line":31,"updated":"2013-07-12 10:23:51.000000000","message":"In python the abstract base classes are just an optional things (duck typing), but they increases the readability.\n\nThey are very good place to add verbose sphinx friendly documentation.","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"cf19cfa3bed18240a07f5d6169c56af7dfaa45b2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        \"\"\"Called after run is stopped.\"\"\""},{"line_number":29,"context_line":"        pass"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def run(self, **kwargs):"},{"line_number":32,"context_line":"        raise NotImplemented()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FtYs%3D","line":31,"in_reply_to":"AAAAP3%2F%2FunM%3D","updated":"2013-07-12 21:58:21.000000000","message":"Done","commit_id":"779047acb2afb3f36f4147e5f108f8e62c3d4ec8"}],"tempest/stress/tools/cleanup.py":[{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"073f5eae8615b83c5325c88b7ef11b26a1b34c15","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.stress import stresslogging as log"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"cleanup.cleanup(log.logger)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2Flgo%3D","line":21,"updated":"2013-07-16 08:23:54.000000000","message":"Using the default stresslogger will show nothing on stdout. \nMaybe we could do something like http://paste.openstack.org/show/40518/","commit_id":"c0ff60104763fb4419bfc97c78db4e10df6ff189"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1458bd58fcf1576bead3d9cd68f2343c0c7ff843","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.stress import stresslogging as log"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"cleanup.cleanup(log.logger)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2FjGM%3D","line":21,"in_reply_to":"AAAAP3%2F%2Flgo%3D","updated":"2013-07-16 18:15:59.000000000","message":"Done","commit_id":"c0ff60104763fb4419bfc97c78db4e10df6ff189"}]}
