)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12038,"name":"Vitaly Gridnev","email":"gridnevvvit@gmail.com","username":"vgridnev"},"change_message_id":"40c478699a9269643698c5bdd8b58f1ba4469529","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-02-25 11:08:03 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support of several scenario files in integration tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I798218b9ce99a62bfea4ac50d8ad875f0db2834b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba7be1f8_4ac10853","line":8,"updated":"2015-02-25 08:42:39.000000000","message":"blueprint link missed","commit_id":"daaa5357eb94be158e28dd2c59000716f2b8bc18"}],"sahara/tests/scenario/runner.py":[{"author":{"_account_id":12038,"name":"Vitaly Gridnev","email":"gridnevvvit@gmail.com","username":"vgridnev"},"change_message_id":"40c478699a9269643698c5bdd8b58f1ba4469529","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    if dict_with_section.get(section) is not None:"},{"line_number":70,"context_line":"        for key in dict_with_section[section]:"},{"line_number":71,"context_line":"            if dict_for_merge[section].get(key) is not None:"},{"line_number":72,"context_line":"                if dict_for_merge[section][key] !\u003d\\"},{"line_number":73,"context_line":"                        dict_with_section[section][key]:"},{"line_number":74,"context_line":"                    raise ValueError(\u0027Sections %s is different\u0027 % section)"},{"line_number":75,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_8a122007","line":72,"range":{"start_line":72,"start_character":50,"end_line":72,"end_character":51},"updated":"2015-02-25 08:42:39.000000000","message":"let\u0027s use brackets instead","commit_id":"daaa5357eb94be158e28dd2c59000716f2b8bc18"},{"author":{"_account_id":12038,"name":"Vitaly Gridnev","email":"gridnevvvit@gmail.com","username":"vgridnev"},"change_message_id":"40c478699a9269643698c5bdd8b58f1ba4469529","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        if test_scenario.get(\u0027edp_jobs_flow\u0027) is not None:"},{"line_number":113,"context_line":"            for key in test_scenario[\u0027edp_jobs_flow\u0027]:"},{"line_number":114,"context_line":"                config[\u0027edp_jobs_flow\u0027][key] \u003d\\"},{"line_number":115,"context_line":"                    test_scenario[\u0027edp_jobs_flow\u0027][key]"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    # validate config"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_ea00fcac","line":114,"range":{"start_line":114,"start_character":45,"end_line":114,"end_character":47},"updated":"2015-02-25 08:42:39.000000000","message":"ditto","commit_id":"daaa5357eb94be158e28dd2c59000716f2b8bc18"},{"author":{"_account_id":12038,"name":"Vitaly Gridnev","email":"gridnevvvit@gmail.com","username":"vgridnev"},"change_message_id":"ebe298849142b299fe718ded30afe03fe514aca4","unresolved":false,"context_lines":[{"line_number":79,"context_line":"def main():"},{"line_number":80,"context_line":"    # parse args"},{"line_number":81,"context_line":"    parser \u003d argparse.ArgumentParser(description\u003d\"Scenario tests runner.\")"},{"line_number":82,"context_line":"    parser.add_argument(\u0027scenario_arguments\u0027, help\u003d\"Path to scenario file.\","},{"line_number":83,"context_line":"                        nargs\u003d\u0027+\u0027)"},{"line_number":84,"context_line":"    args \u003d parser.parse_args()"},{"line_number":85,"context_line":"    scenario_arguments \u003d args.scenario_arguments"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_1a4af725","line":82,"range":{"start_line":82,"start_character":52,"end_line":82,"end_character":76},"updated":"2015-02-25 11:26:21.000000000","message":"Seems, that help string should be updated","commit_id":"d0b3dff9b1ae961955134289730fd79bfedb626d"},{"author":{"_account_id":7710,"name":"Sergey Reshetnyak","email":"sreshetniak@mirantis.com","username":"sreshetniak"},"change_message_id":"d147c13aefd0291593f9314e28feac15665e24d2","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        if os.path.isdir(scenario_argument):"},{"line_number":95,"context_line":"            for (dirpath, dirnames, filenames) in os.walk(scenario_argument):"},{"line_number":96,"context_line":"                if len(filenames) \u003e 0:"},{"line_number":97,"context_line":"                    path \u003d \u0027%s/%s\u0027 % (dirpath, filenames[0])"},{"line_number":98,"context_line":"                    files.append(path)"},{"line_number":99,"context_line":"        if os.path.isfile(scenario_argument):"},{"line_number":100,"context_line":"            files.append(scenario_argument)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_92a96392","line":97,"range":{"start_line":97,"start_character":47,"end_line":97,"end_character":59},"updated":"2015-02-25 15:12:15.000000000","message":"only one file from directory?","commit_id":"33b8b4fb1083378e85c6e5f67e436d197851d9b1"},{"author":{"_account_id":7710,"name":"Sergey Reshetnyak","email":"sreshetniak@mirantis.com","username":"sreshetniak"},"change_message_id":"d147c13aefd0291593f9314e28feac15665e24d2","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        if os.path.isdir(scenario_argument):"},{"line_number":95,"context_line":"            for (dirpath, dirnames, filenames) in os.walk(scenario_argument):"},{"line_number":96,"context_line":"                if len(filenames) \u003e 0:"},{"line_number":97,"context_line":"                    path \u003d \u0027%s/%s\u0027 % (dirpath, filenames[0])"},{"line_number":98,"context_line":"                    files.append(path)"},{"line_number":99,"context_line":"        if os.path.isfile(scenario_argument):"},{"line_number":100,"context_line":"            files.append(scenario_argument)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_329a776e","line":97,"range":{"start_line":97,"start_character":27,"end_line":97,"end_character":33},"updated":"2015-02-25 15:12:15.000000000","message":"use os.path.join here","commit_id":"33b8b4fb1083378e85c6e5f67e436d197851d9b1"},{"author":{"_account_id":7710,"name":"Sergey Reshetnyak","email":"sreshetniak@mirantis.com","username":"sreshetniak"},"change_message_id":"00134069252b82436439901778f7de32871bfa1f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    list_of_files \u003d []"},{"line_number":81,"context_line":"    for file in os.listdir(directory):"},{"line_number":82,"context_line":"        path \u003d os.path.join(directory, file)"},{"line_number":83,"context_line":"        if not os.path.isdir(path):"},{"line_number":84,"context_line":"            list_of_files.append(path)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            list_of_files +\u003d recursive_walk(path)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_6bb3f94c","line":83,"range":{"start_line":83,"start_character":11,"end_line":83,"end_character":29},"updated":"2015-02-26 09:29:16.000000000","message":"os.path.isfile better :)","commit_id":"a5701ea17b68678e90c15c276404ecfe4a2a6307"},{"author":{"_account_id":8090,"name":"Chad Roberts","email":"croberts@redhat.com","username":"croberts"},"change_message_id":"bc097d47ec7f88315b8deaa88f9d6831e26079ef","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    list_of_files \u003d []"},{"line_number":81,"context_line":"    for file in os.listdir(directory):"},{"line_number":82,"context_line":"        path \u003d os.path.join(directory, file)"},{"line_number":83,"context_line":"        if not os.path.isdir(path):"},{"line_number":84,"context_line":"            list_of_files.append(path)"},{"line_number":85,"context_line":"        else:"},{"line_number":86,"context_line":"            list_of_files +\u003d recursive_walk(path)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_757bc17a","line":83,"in_reply_to":"ba7be1f8_6bb3f94c","updated":"2015-02-26 16:25:56.000000000","message":"+1","commit_id":"a5701ea17b68678e90c15c276404ecfe4a2a6307"},{"author":{"_account_id":8091,"name":"Trevor McKay","email":"tmckay@redhat.com","username":"tmckay"},"change_message_id":"1662a242b48247b751c5be8f798e2a8e5df4ce2a","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        config \u003d _merge_dicts_sections(test_scenario, config, \u0027network\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        if test_scenario.get(\u0027clusters\u0027) is not None:"},{"line_number":116,"context_line":"            config[\u0027clusters\u0027] +\u003d test_scenario[\u0027clusters\u0027]"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        if test_scenario.get(\u0027edp_jobs_flow\u0027) is not None:"},{"line_number":119,"context_line":"            for key in test_scenario[\u0027edp_jobs_flow\u0027]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_da668dba","line":116,"updated":"2015-02-25 17:06:20.000000000","message":"So for clusters, we just collect all the definitions we find.\n\nBut for edp_jobs_flow, we overwrite? What if more than one scenario file sets a job flow? Should that be an error?","commit_id":"a5701ea17b68678e90c15c276404ecfe4a2a6307"},{"author":{"_account_id":7710,"name":"Sergey Reshetnyak","email":"sreshetniak@mirantis.com","username":"sreshetniak"},"change_message_id":"00134069252b82436439901778f7de32871bfa1f","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        config \u003d _merge_dicts_sections(test_scenario, config, \u0027network\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        if test_scenario.get(\u0027clusters\u0027) is not None:"},{"line_number":116,"context_line":"            config[\u0027clusters\u0027] +\u003d test_scenario[\u0027clusters\u0027]"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        if test_scenario.get(\u0027edp_jobs_flow\u0027) is not None:"},{"line_number":119,"context_line":"            for key in test_scenario[\u0027edp_jobs_flow\u0027]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_8b502d0c","line":116,"in_reply_to":"ba7be1f8_da668dba","updated":"2015-02-26 09:29:16.000000000","message":"+1","commit_id":"a5701ea17b68678e90c15c276404ecfe4a2a6307"},{"author":{"_account_id":8091,"name":"Trevor McKay","email":"tmckay@redhat.com","username":"tmckay"},"change_message_id":"1662a242b48247b751c5be8f798e2a8e5df4ce2a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            config[\u0027clusters\u0027] +\u003d test_scenario[\u0027clusters\u0027]"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        if test_scenario.get(\u0027edp_jobs_flow\u0027) is not None:"},{"line_number":119,"context_line":"            for key in test_scenario[\u0027edp_jobs_flow\u0027]:"},{"line_number":120,"context_line":"                config[\u0027edp_jobs_flow\u0027][key] \u003d ("},{"line_number":121,"context_line":"                    test_scenario[\u0027edp_jobs_flow\u0027][key])"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_daebedd9","line":119,"updated":"2015-02-25 17:06:20.000000000","message":"can this loop just be\n\nconfigs[\u0027edp_jobs_flow\u0027].update(test_scenario[\u0027edp_jobs_flow\u0027])","commit_id":"a5701ea17b68678e90c15c276404ecfe4a2a6307"}]}
