)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"47f799c7686a3922b903a79dba874e0d75eb6d0b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Performance testing framework."},{"line_number":8,"context_line":"Environment setup and data-plane performance testing."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I6a4a585fbc2f0d5151ec62f4d2fc7e585fc2c86d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"bab6814e_53e2eb2f","line":9,"updated":"2016-05-22 18:00:13.000000000","message":"Do you have some launchpad blueprint/spec to link to?","commit_id":"600cbdee62a7ecfde880ce758e445471fafdc075"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"68cd9bef02a8aed8997ae5f6dcb8ddcc0e5f1eb9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Performance testing framework."},{"line_number":8,"context_line":"Environment setup and data-plane performance testing."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I6a4a585fbc2f0d5151ec62f4d2fc7e585fc2c86d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"bab6814e_a847214a","line":9,"in_reply_to":"bab6814e_53e2eb2f","updated":"2016-05-24 06:04:40.000000000","message":"Thanks Irena for your feedback.\n\nYes, there is spec: http://docs.openstack.org/developer/dragonflow/specs/performance_testing.html\n\nWe are considering adding blueprint for this as well.","commit_id":"600cbdee62a7ecfde880ce758e445471fafdc075"}],"dragonflow/tests/performance/env_setup/create_VM.py":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"46685c2f5b009fe2defb82f5e7dd1743a9e42173","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    creds \u003d credentials()\r"},{"line_number":31,"context_line":"    print(creds)\r"},{"line_number":32,"context_line":"    auth_url \u003d creds[\u0027auth_url\u0027] + \"/v2.0\"\r"},{"line_number":33,"context_line":"#   auth_url \u003d \"http://10.100.100.43:5000/v2.0\"\r"},{"line_number":34,"context_line":"    nova \u003d novaclient.Client(\u00272\u0027, creds[\u0027username\u0027], creds[\u0027password\u0027],\r"},{"line_number":35,"context_line":"        \u0027demo\u0027, auth_url)\r"},{"line_number":36,"context_line":"#   print(nova.servers.list())\r"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_127aa5f1","line":33,"range":{"start_line":33,"start_character":1,"end_line":33,"end_character":47},"updated":"2016-05-08 12:17:18.000000000","message":"Please remove","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"ef9fca5fc99bbe11f93a0dd13e08d3efa276e20a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    creds \u003d credentials()\r"},{"line_number":31,"context_line":"    print(creds)\r"},{"line_number":32,"context_line":"    auth_url \u003d creds[\u0027auth_url\u0027] + \"/v2.0\"\r"},{"line_number":33,"context_line":"#   auth_url \u003d \"http://10.100.100.43:5000/v2.0\"\r"},{"line_number":34,"context_line":"    nova \u003d novaclient.Client(\u00272\u0027, creds[\u0027username\u0027], creds[\u0027password\u0027],\r"},{"line_number":35,"context_line":"        \u0027demo\u0027, auth_url)\r"},{"line_number":36,"context_line":"#   print(nova.servers.list())\r"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_d2593d5c","line":33,"range":{"start_line":33,"start_character":1,"end_line":33,"end_character":47},"in_reply_to":"dab17558_127aa5f1","updated":"2016-05-08 12:48:24.000000000","message":"Done","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"46685c2f5b009fe2defb82f5e7dd1743a9e42173","unresolved":false,"context_lines":[{"line_number":33,"context_line":"#   auth_url \u003d \"http://10.100.100.43:5000/v2.0\"\r"},{"line_number":34,"context_line":"    nova \u003d novaclient.Client(\u00272\u0027, creds[\u0027username\u0027], creds[\u0027password\u0027],\r"},{"line_number":35,"context_line":"        \u0027demo\u0027, auth_url)\r"},{"line_number":36,"context_line":"#   print(nova.servers.list())\r"},{"line_number":37,"context_line":"#   print(nova.flavors.list())\r"},{"line_number":38,"context_line":"#   print(nova.images.list())\r"},{"line_number":39,"context_line":"#   print(nova.keypairs.list())\r"},{"line_number":40,"context_line":"    image \u003d nova.images.find(name\u003d\"iPerfServer\")\r"},{"line_number":41,"context_line":"#   print(image)\r"},{"line_number":42,"context_line":"#   get the flavor\r"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_f27c41ed","line":39,"range":{"start_line":36,"start_character":0,"end_line":39,"end_character":31},"updated":"2016-05-08 12:17:18.000000000","message":"ditto","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"ef9fca5fc99bbe11f93a0dd13e08d3efa276e20a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"#   auth_url \u003d \"http://10.100.100.43:5000/v2.0\"\r"},{"line_number":34,"context_line":"    nova \u003d novaclient.Client(\u00272\u0027, creds[\u0027username\u0027], creds[\u0027password\u0027],\r"},{"line_number":35,"context_line":"        \u0027demo\u0027, auth_url)\r"},{"line_number":36,"context_line":"#   print(nova.servers.list())\r"},{"line_number":37,"context_line":"#   print(nova.flavors.list())\r"},{"line_number":38,"context_line":"#   print(nova.images.list())\r"},{"line_number":39,"context_line":"#   print(nova.keypairs.list())\r"},{"line_number":40,"context_line":"    image \u003d nova.images.find(name\u003d\"iPerfServer\")\r"},{"line_number":41,"context_line":"#   print(image)\r"},{"line_number":42,"context_line":"#   get the flavor\r"}],"source_content_type":"text/x-python","patch_set":6,"id":"dab17558_b2547921","line":39,"range":{"start_line":36,"start_character":0,"end_line":39,"end_character":31},"in_reply_to":"dab17558_f27c41ed","updated":"2016-05-08 12:48:24.000000000","message":"Done","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"}],"dragonflow/tests/performance/env_setup/create_VMs_on_CN.sh":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"46685c2f5b009fe2defb82f5e7dd1743a9e42173","unresolved":false,"context_lines":[{"line_number":6,"context_line":"\tthen\r"},{"line_number":7,"context_line":"\t\techo \"No arguments supplied\"\r"},{"line_number":8,"context_line":"\t\techo \"usage:\"\r"},{"line_number":9,"context_line":"\t\techo \"./create-VMsOn2Nets_byCN.sh number_of_VMs Compute_Name (Compute_Name is optional)\"\r"},{"line_number":10,"context_line":"\t\texit 1\r"},{"line_number":11,"context_line":"fi\r"},{"line_number":12,"context_line":"if [ $# -eq 2 ]\r"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_325ec976","line":9,"range":{"start_line":9,"start_character":9,"end_line":9,"end_character":34},"updated":"2016-05-08 12:17:18.000000000","message":"Please ajast name\n\nI am not sure I understand where do you use this script ?","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"ef9fca5fc99bbe11f93a0dd13e08d3efa276e20a","unresolved":false,"context_lines":[{"line_number":6,"context_line":"\tthen\r"},{"line_number":7,"context_line":"\t\techo \"No arguments supplied\"\r"},{"line_number":8,"context_line":"\t\techo \"usage:\"\r"},{"line_number":9,"context_line":"\t\techo \"./create-VMsOn2Nets_byCN.sh number_of_VMs Compute_Name (Compute_Name is optional)\"\r"},{"line_number":10,"context_line":"\t\texit 1\r"},{"line_number":11,"context_line":"fi\r"},{"line_number":12,"context_line":"if [ $# -eq 2 ]\r"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_3271a9e1","line":9,"range":{"start_line":9,"start_character":9,"end_line":9,"end_character":34},"in_reply_to":"dab17558_325ec976","updated":"2016-05-08 12:48:24.000000000","message":"This script is currently not being used currently, it\u0027s planned for future scenarios e.g. run perf. testing while single CN have 500 VMs (perf. testing with high num of flows).","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"d68b95f8d3c8aa46da481c33f510f2dcbaef01a4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        sleep $sleepTime\r"},{"line_number":45,"context_line":"\r"},{"line_number":46,"context_line":"\tcnt\u003d$((cnt + 1))\r"},{"line_number":47,"context_line":"\tif [ $cnt \u003d\u003d 60 ]; then\r"},{"line_number":48,"context_line":"\t\tcnt\u003d0\r"},{"line_number":49,"context_line":"\t\techo \"\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\"\r"},{"line_number":50,"context_line":"\t\techo \"sleeping 5 secs, after 60 VMs creation.\"\r"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_435d2646","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":16},"updated":"2016-05-10 15:07:35.000000000","message":"Why 60? why another sleep","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"d71080e0903ecbde1a30b1ac518d4b6286685b1b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        sleep $sleepTime\r"},{"line_number":45,"context_line":"\r"},{"line_number":46,"context_line":"\tcnt\u003d$((cnt + 1))\r"},{"line_number":47,"context_line":"\tif [ $cnt \u003d\u003d 60 ]; then\r"},{"line_number":48,"context_line":"\t\tcnt\u003d0\r"},{"line_number":49,"context_line":"\t\techo \"\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\"\r"},{"line_number":50,"context_line":"\t\techo \"sleeping 5 secs, after 60 VMs creation.\"\r"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_ff76983c","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":16},"in_reply_to":"dab17558_435d2646","updated":"2016-05-16 11:50:50.000000000","message":"While trying to setting up many VMs, weak server can get chocked. I had this problem while working on the our old server.\n\nThis sleep solves such issues.","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"}],"dragonflow/tests/performance/env_setup/create_net.py":[{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    return get_cloud_config(cloud\u003dcloud).get_auth_args()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class network(object):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        creds \u003d credentials()"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_e4296039","line":29,"range":{"start_line":29,"start_character":6,"end_line":29,"end_character":13},"updated":"2016-06-02 10:03:58.000000000","message":"Class name should use CamelCase convention.(Fist character should be uppercase)","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    return get_cloud_config(cloud\u003dcloud).get_auth_args()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class network(object):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        creds \u003d credentials()"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_c429bcf4","line":29,"range":{"start_line":29,"start_character":6,"end_line":29,"end_character":13},"updated":"2016-06-02 10:03:58.000000000","message":"can you reuse the code in test/common/app_testing_objects.py or test/common/fullstack/test_objects.py?","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    return get_cloud_config(cloud\u003dcloud).get_auth_args()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class network(object):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        creds \u003d credentials()"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_ed2ac87d","line":29,"range":{"start_line":29,"start_character":6,"end_line":29,"end_character":13},"in_reply_to":"9abb7d3a_c429bcf4","updated":"2016-06-06 07:36:52.000000000","message":"We are planing to create new project from this patch, so it\u0027ll not be a part from DF project.","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    return get_cloud_config(cloud\u003dcloud).get_auth_args()"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class network(object):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        creds \u003d credentials()"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_4d579c02","line":29,"range":{"start_line":29,"start_character":6,"end_line":29,"end_character":13},"in_reply_to":"9abb7d3a_e4296039","updated":"2016-06-06 07:36:52.000000000","message":"Done","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        creds \u003d credentials()"},{"line_number":33,"context_line":"        auth_url \u003d creds[\u0027auth_url\u0027] + \"/v2.0\""},{"line_number":34,"context_line":"        print creds"},{"line_number":35,"context_line":"        self.neutron \u003d client.Client(\u00272.0\u0027, username\u003dcreds[\u0027username\u0027],"},{"line_number":36,"context_line":"             password\u003dcreds[\u0027password\u0027], auth_url\u003dauth_url,"},{"line_number":37,"context_line":"             tenant_name\u003d\u0027demo\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_84c7b463","line":34,"range":{"start_line":34,"start_character":8,"end_line":34,"end_character":13},"updated":"2016-06-02 10:03:58.000000000","message":"remove it","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        creds \u003d credentials()"},{"line_number":33,"context_line":"        auth_url \u003d creds[\u0027auth_url\u0027] + \"/v2.0\""},{"line_number":34,"context_line":"        print creds"},{"line_number":35,"context_line":"        self.neutron \u003d client.Client(\u00272.0\u0027, username\u003dcreds[\u0027username\u0027],"},{"line_number":36,"context_line":"             password\u003dcreds[\u0027password\u0027], auth_url\u003dauth_url,"},{"line_number":37,"context_line":"             tenant_name\u003d\u0027demo\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_ed780892","line":34,"range":{"start_line":34,"start_character":8,"end_line":34,"end_character":13},"in_reply_to":"9abb7d3a_84c7b463","updated":"2016-06-06 07:36:52.000000000","message":"Done","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        print creds"},{"line_number":35,"context_line":"        self.neutron \u003d client.Client(\u00272.0\u0027, username\u003dcreds[\u0027username\u0027],"},{"line_number":36,"context_line":"             password\u003dcreds[\u0027password\u0027], auth_url\u003dauth_url,"},{"line_number":37,"context_line":"             tenant_name\u003d\u0027demo\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def create_get_router(self, name):"},{"line_number":40,"context_line":"        routers \u003d self.neutron.list_routers(name\u003dname)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_2491a853","line":37,"range":{"start_line":37,"start_character":13,"end_line":37,"end_character":24},"updated":"2016-06-02 10:03:58.000000000","message":"tenant_name \u003d creds[\u0027project_name\u0027]","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        print creds"},{"line_number":35,"context_line":"        self.neutron \u003d client.Client(\u00272.0\u0027, username\u003dcreds[\u0027username\u0027],"},{"line_number":36,"context_line":"             password\u003dcreds[\u0027password\u0027], auth_url\u003dauth_url,"},{"line_number":37,"context_line":"             tenant_name\u003d\u0027demo\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def create_get_router(self, name):"},{"line_number":40,"context_line":"        routers \u003d self.neutron.list_routers(name\u003dname)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_2da4d055","line":37,"range":{"start_line":37,"start_character":13,"end_line":37,"end_character":24},"in_reply_to":"9abb7d3a_2491a853","updated":"2016-06-06 07:36:52.000000000","message":"Done","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":36,"context_line":"             password\u003dcreds[\u0027password\u0027], auth_url\u003dauth_url,"},{"line_number":37,"context_line":"             tenant_name\u003d\u0027demo\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def create_get_router(self, name):"},{"line_number":40,"context_line":"        routers \u003d self.neutron.list_routers(name\u003dname)"},{"line_number":41,"context_line":"        routers \u003d routers[\u0027routers\u0027]"},{"line_number":42,"context_line":"        if len(routers) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_04e744ad","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":25},"updated":"2016-06-02 10:03:58.000000000","message":"the name is not ambiguous. consider using get_router instead?","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":36,"context_line":"             password\u003dcreds[\u0027password\u0027], auth_url\u003dauth_url,"},{"line_number":37,"context_line":"             tenant_name\u003d\u0027demo\u0027)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def create_get_router(self, name):"},{"line_number":40,"context_line":"        routers \u003d self.neutron.list_routers(name\u003dname)"},{"line_number":41,"context_line":"        routers \u003d routers[\u0027routers\u0027]"},{"line_number":42,"context_line":"        if len(routers) \u003e 0:"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_8ddd0473","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":25},"in_reply_to":"9abb7d3a_04e744ad","updated":"2016-06-06 07:36:52.000000000","message":"This code also create the router in case isn\u0027t already exists and then return the router.","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        network \u003d self.neutron.create_network({\u0027network\u0027: network})"},{"line_number":56,"context_line":"        return network[\u0027network\u0027][\u0027id\u0027]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def create_subnet_and_link_to_router(self, router_id, network_id, name,"},{"line_number":59,"context_line":"        ip_net):"},{"line_number":60,"context_line":"        subnet \u003d {"},{"line_number":61,"context_line":"            \u0027cidr\u0027: ip_net,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_788cf07f","line":58,"range":{"start_line":58,"start_character":8,"end_line":58,"end_character":40},"updated":"2016-06-02 10:03:58.000000000","message":"consider splitting this method into two, because create subnet and add router interface are two different functions.","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            self.neutron.add_interface_router(router_id, body\u003d{\u0027subnet_id\u0027:"},{"line_number":70,"context_line":"                subnet_id})"},{"line_number":71,"context_line":"        except Exception:"},{"line_number":72,"context_line":"            pass"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def create_subnet(self, router_id, network_id, name, ip_net):"},{"line_number":75,"context_line":"        subnet \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_b83ad896","line":72,"range":{"start_line":72,"start_character":12,"end_line":72,"end_character":16},"updated":"2016-06-02 10:03:58.000000000","message":"need some log here","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            self.neutron.add_interface_router(router_id, body\u003d{\u0027subnet_id\u0027:"},{"line_number":70,"context_line":"                subnet_id})"},{"line_number":71,"context_line":"        except Exception:"},{"line_number":72,"context_line":"            pass"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def create_subnet(self, router_id, network_id, name, ip_net):"},{"line_number":75,"context_line":"        subnet \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_68f52682","line":72,"range":{"start_line":72,"start_character":12,"end_line":72,"end_character":16},"in_reply_to":"9abb7d3a_b83ad896","updated":"2016-06-06 07:36:52.000000000","message":"Done","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":108,"context_line":"            for subnet in subnets:"},{"line_number":109,"context_line":"                print(subnet)"},{"line_number":110,"context_line":"                self.neutron.delete_subnet(subnet[\u0027id\u0027])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":10,"id":"9abb7d3a_b892d849","line":110,"range":{"start_line":110,"start_character":55,"end_line":110,"end_character":56},"updated":"2016-06-02 10:03:58.000000000","message":"do you need to delete the network also?","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            subnets \u003d subnets[\u0027subnets\u0027]"},{"line_number":108,"context_line":"            for subnet in subnets:"},{"line_number":109,"context_line":"                print(subnet)"},{"line_number":110,"context_line":"                self.neutron.delete_subnet(subnet[\u0027id\u0027])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aa08908_a89c2e6a","line":110,"range":{"start_line":110,"start_character":55,"end_line":110,"end_character":56},"in_reply_to":"9abb7d3a_b892d849","updated":"2016-06-06 07:36:52.000000000","message":"There is not point to delete the networks as well, I just deleting the subnets that were created previously to prevent collisions.","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"}],"dragonflow/tests/performance/env_setup/enable_remote_command.sh":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cfa76921851755d7acdd0de67dc7a71ba91204a2","unresolved":false,"context_lines":[{"line_number":19,"context_line":"if [ $masterSlave \u003d \"master\" ]; then"},{"line_number":20,"context_line":"\tcd ~/"},{"line_number":21,"context_line":"\tssh-keygen -t rsa"},{"line_number":22,"context_line":"\tssh-add .ssh/id_rsa"},{"line_number":23,"context_line":"\tsudo killall -9 ssh-agent"},{"line_number":24,"context_line":"\teval `ssh-agent`"},{"line_number":25,"context_line":"\tscp -r .ssh $2@$3:~/"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_cbdce414","line":22,"updated":"2016-05-08 19:26:25.000000000","message":"Shouldn\u0027t the order here be reversed? Once you kill the ssh-agent, the effects of ssh-add are cancelled.","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cfa76921851755d7acdd0de67dc7a71ba91204a2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"\tssh-add .ssh/id_rsa"},{"line_number":23,"context_line":"\tsudo killall -9 ssh-agent"},{"line_number":24,"context_line":"\teval `ssh-agent`"},{"line_number":25,"context_line":"\tscp -r .ssh $2@$3:~/"},{"line_number":26,"context_line":"\techo \"Done. Now run this script on the slave machine\""},{"line_number":27,"context_line":"elif [ $masterSlave \u003d \"slave\" ]; then"},{"line_number":28,"context_line":"\tcat ~/.ssh/id_rsa.pub \u003e\u003e ~/.ssh/authorized_keys"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_0b054c79","line":25,"updated":"2016-05-08 19:26:25.000000000","message":"Doing this also copies the private key. Is that what you want?\nWhy not use ssh-copy-id, which does exactly this?","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"}],"dragonflow/tests/performance/env_setup/setup_environment.sh":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"46685c2f5b009fe2defb82f5e7dd1743a9e42173","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"if [ $freshInstall \u003d\u003d 1 ]; then"},{"line_number":24,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nSetting up a fresh devstack installation\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":25,"context_line":"\tcd ~/devstack"},{"line_number":26,"context_line":"\t./unstack"},{"line_number":27,"context_line":"\tgit pull"},{"line_number":28,"context_line":"\tsudo rm -r /opt/stack/"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_f215619b","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":14},"updated":"2016-05-08 12:17:18.000000000","message":"what about cloning the devstack repository if it is not there \n\nWhat about setting the local.conf file","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"f2e24ca1afb95ad108999ceb2182c12591637354","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"if [ $freshInstall \u003d\u003d 1 ]; then"},{"line_number":24,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nSetting up a fresh devstack installation\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":25,"context_line":"\tcd ~/devstack"},{"line_number":26,"context_line":"\t./unstack"},{"line_number":27,"context_line":"\tgit pull"},{"line_number":28,"context_line":"\tsudo rm -r /opt/stack/"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_8371ce46","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":14},"in_reply_to":"dab17558_b27d99b3","updated":"2016-05-10 14:58:19.000000000","message":"Why not doing it here check if it was cloned and if not set it up","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"ef9fca5fc99bbe11f93a0dd13e08d3efa276e20a","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"if [ $freshInstall \u003d\u003d 1 ]; then"},{"line_number":24,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nSetting up a fresh devstack installation\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":25,"context_line":"\tcd ~/devstack"},{"line_number":26,"context_line":"\t./unstack"},{"line_number":27,"context_line":"\tgit pull"},{"line_number":28,"context_line":"\tsudo rm -r /opt/stack/"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_b27d99b3","line":25,"range":{"start_line":25,"start_character":1,"end_line":25,"end_character":14},"in_reply_to":"dab17558_f215619b","updated":"2016-05-08 12:48:24.000000000","message":"This is another abstraction layer that will be added in the future.","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"46685c2f5b009fe2defb82f5e7dd1743a9e42173","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\tgit pull"},{"line_number":28,"context_line":"\tsudo rm -r /opt/stack/"},{"line_number":29,"context_line":"\t./stack.sh"},{"line_number":30,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nEnded setting up devstack\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":31,"context_line":"else"},{"line_number":32,"context_line":"\t# OpenStack local login"},{"line_number":33,"context_line":"\t. ~/devstack/openrc admin demo"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_9227b511","line":30,"range":{"start_line":30,"start_character":9,"end_line":30,"end_character":21},"updated":"2016-05-08 12:17:18.000000000","message":"I think you need to call . ~/devstack/openrc admin demo\nhere","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"ef9fca5fc99bbe11f93a0dd13e08d3efa276e20a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\tgit pull"},{"line_number":28,"context_line":"\tsudo rm -r /opt/stack/"},{"line_number":29,"context_line":"\t./stack.sh"},{"line_number":30,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nEnded setting up devstack\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":31,"context_line":"else"},{"line_number":32,"context_line":"\t# OpenStack local login"},{"line_number":33,"context_line":"\t. ~/devstack/openrc admin demo"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_124bc588","line":30,"range":{"start_line":30,"start_character":9,"end_line":30,"end_character":21},"in_reply_to":"dab17558_9227b511","updated":"2016-05-08 12:48:24.000000000","message":"Done","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"46685c2f5b009fe2defb82f5e7dd1743a9e42173","unresolved":false,"context_lines":[{"line_number":116,"context_line":"do"},{"line_number":117,"context_line":"\tvmPortID\u003d\"$(neutron port-list | grep $ip | awk \u0027{print $2}\u0027)\""},{"line_number":118,"context_line":"\tfloatingIP\u003d\"$(neutron floatingip-list | grep $vmPortID | awk \u0027{print $6}\u0027)\""},{"line_number":119,"context_line":"\t"},{"line_number":120,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nSetting up iPerf and hPing3 on $floatingIP VM\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":121,"context_line":"\tscp -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno vm_setup.sh ubuntu@$floatingIP:/tmp/"},{"line_number":122,"context_line":"\tssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno ubuntu@$floatingIP \u0027chmod +x /tmp/vm_setup.sh\u0027"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_72221103","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":1},"updated":"2016-05-08 12:17:18.000000000","message":"please remove white spaces","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"ef9fca5fc99bbe11f93a0dd13e08d3efa276e20a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"do"},{"line_number":117,"context_line":"\tvmPortID\u003d\"$(neutron port-list | grep $ip | awk \u0027{print $2}\u0027)\""},{"line_number":118,"context_line":"\tfloatingIP\u003d\"$(neutron floatingip-list | grep $vmPortID | awk \u0027{print $6}\u0027)\""},{"line_number":119,"context_line":"\t"},{"line_number":120,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nSetting up iPerf and hPing3 on $floatingIP VM\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":121,"context_line":"\tscp -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno vm_setup.sh ubuntu@$floatingIP:/tmp/"},{"line_number":122,"context_line":"\tssh -o UserKnownHostsFile\u003d/dev/null -o StrictHostKeyChecking\u003dno ubuntu@$floatingIP \u0027chmod +x /tmp/vm_setup.sh\u0027"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_52454d6e","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":1},"in_reply_to":"dab17558_72221103","updated":"2016-05-08 12:48:24.000000000","message":"Done","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"d68b95f8d3c8aa46da481c33f510f2dcbaef01a4","unresolved":false,"context_lines":[{"line_number":57,"context_line":"netId2\u003d\"$(neutron net-list | grep private2 | awk \u0027{print $2}\u0027)\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nAdd ingress rules for ICMP and SSH to the default security group\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":60,"context_line":"nova secgroup-add-rule default tcp 22 22 0.0.0.0/0"},{"line_number":61,"context_line":"nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nDeleting all floating IPs\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_405d1c46","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":4},"updated":"2016-05-10 15:07:35.000000000","message":"you should run SG on Neutron not Nova","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"d71080e0903ecbde1a30b1ac518d4b6286685b1b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"netId2\u003d\"$(neutron net-list | grep private2 | awk \u0027{print $2}\u0027)\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nAdd ingress rules for ICMP and SSH to the default security group\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":60,"context_line":"nova secgroup-add-rule default tcp 22 22 0.0.0.0/0"},{"line_number":61,"context_line":"nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nDeleting all floating IPs\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_3237b7b1","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":4},"in_reply_to":"dab17558_405d1c46","updated":"2016-05-16 11:50:50.000000000","message":"Done","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"d68b95f8d3c8aa46da481c33f510f2dcbaef01a4","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nAdd ingress rules for ICMP and SSH to the default security group\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":60,"context_line":"nova secgroup-add-rule default tcp 22 22 0.0.0.0/0"},{"line_number":61,"context_line":"nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nDeleting all floating IPs\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":64,"context_line":"./delete_all_floatingIPs.sh"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_63430a43","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":4},"updated":"2016-05-10 15:07:35.000000000","message":"Ditto","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"d71080e0903ecbde1a30b1ac518d4b6286685b1b","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nAdd ingress rules for ICMP and SSH to the default security group\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":60,"context_line":"nova secgroup-add-rule default tcp 22 22 0.0.0.0/0"},{"line_number":61,"context_line":"nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nDeleting all floating IPs\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":64,"context_line":"./delete_all_floatingIPs.sh"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_123a7398","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":4},"in_reply_to":"dab17558_63430a43","updated":"2016-05-16 11:50:50.000000000","message":"Done","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"d68b95f8d3c8aa46da481c33f510f2dcbaef01a4","unresolved":false,"context_lines":[{"line_number":87,"context_line":"do"},{"line_number":88,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nCreating iPerf-client$i VM on $computeNode\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":89,"context_line":"\tnova boot --image iPerfServer --flavor m1.small --nic net-id\u003d$netId1 --availability-zone nova:$computeNode --key-name\u003dssh-key iPerf-client$i"},{"line_number":90,"context_line":"\tnova add-secgroup iPerf-client$i default"},{"line_number":91,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nCreating iPerf-server$j VM on $controllerNode\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":92,"context_line":"\tnova boot --image iPerfServer --flavor m1.small --nic net-id\u003d$netId1 --availability-zone nova:$controllerNode --key-name\u003dssh-key iPerf-server$j"},{"line_number":93,"context_line":"\tnova add-secgroup iPerf-server$j default"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_26a3d001","line":90,"range":{"start_line":90,"start_character":1,"end_line":90,"end_character":5},"updated":"2016-05-10 15:07:35.000000000","message":"should be neutron and I think this should be added to the VM setup","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"d71080e0903ecbde1a30b1ac518d4b6286685b1b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"do"},{"line_number":88,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nCreating iPerf-client$i VM on $computeNode\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":89,"context_line":"\tnova boot --image iPerfServer --flavor m1.small --nic net-id\u003d$netId1 --availability-zone nova:$computeNode --key-name\u003dssh-key iPerf-client$i"},{"line_number":90,"context_line":"\tnova add-secgroup iPerf-client$i default"},{"line_number":91,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nCreating iPerf-server$j VM on $controllerNode\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":92,"context_line":"\tnova boot --image iPerfServer --flavor m1.small --nic net-id\u003d$netId1 --availability-zone nova:$controllerNode --key-name\u003dssh-key iPerf-server$j"},{"line_number":93,"context_line":"\tnova add-secgroup iPerf-server$j default"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_32d3373a","line":90,"range":{"start_line":90,"start_character":1,"end_line":90,"end_character":5},"in_reply_to":"dab17558_26a3d001","updated":"2016-05-16 11:50:50.000000000","message":"Done","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"d68b95f8d3c8aa46da481c33f510f2dcbaef01a4","unresolved":false,"context_lines":[{"line_number":90,"context_line":"\tnova add-secgroup iPerf-client$i default"},{"line_number":91,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nCreating iPerf-server$j VM on $controllerNode\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":92,"context_line":"\tnova boot --image iPerfServer --flavor m1.small --nic net-id\u003d$netId1 --availability-zone nova:$controllerNode --key-name\u003dssh-key iPerf-server$j"},{"line_number":93,"context_line":"\tnova add-secgroup iPerf-server$j default"},{"line_number":94,"context_line":"\tlet \"j++\""},{"line_number":95,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nCreating iPerf-server$j VM on $controllerNode\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":96,"context_line":"\tnova boot --image iPerfServer --flavor m1.small --nic net-id\u003d$netId2 --availability-zone nova:$controllerNode --key-name\u003dssh-key iPerf-server$j"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_46aed4e6","line":93,"range":{"start_line":93,"start_character":1,"end_line":93,"end_character":5},"updated":"2016-05-10 15:07:35.000000000","message":"same this is using nova networks","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"d71080e0903ecbde1a30b1ac518d4b6286685b1b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"\tnova add-secgroup iPerf-client$i default"},{"line_number":91,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nCreating iPerf-server$j VM on $controllerNode\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":92,"context_line":"\tnova boot --image iPerfServer --flavor m1.small --nic net-id\u003d$netId1 --availability-zone nova:$controllerNode --key-name\u003dssh-key iPerf-server$j"},{"line_number":93,"context_line":"\tnova add-secgroup iPerf-server$j default"},{"line_number":94,"context_line":"\tlet \"j++\""},{"line_number":95,"context_line":"\techo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nCreating iPerf-server$j VM on $controllerNode\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":96,"context_line":"\tnova boot --image iPerfServer --flavor m1.small --nic net-id\u003d$netId2 --availability-zone nova:$controllerNode --key-name\u003dssh-key iPerf-server$j"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_12d6f326","line":93,"range":{"start_line":93,"start_character":1,"end_line":93,"end_character":5},"in_reply_to":"dab17558_46aed4e6","updated":"2016-05-16 11:50:50.000000000","message":"Done","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"d68b95f8d3c8aa46da481c33f510f2dcbaef01a4","unresolved":false,"context_lines":[{"line_number":136,"context_line":"done"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nStarting iPerf servers on $computeNode CN2\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":139,"context_line":"ssh $CN_userName@$CN_IP \u0027iperf -s -u -i 1 -p 8686\u0026\u0027\u0026"},{"line_number":140,"context_line":"ssh $CN_userName@$CN_IP \u0027iperf -s\u0026\u0027\u0026"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nFinished setting up the test environment.\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_03b79ef5","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":52},"updated":"2016-05-10 15:07:35.000000000","message":"It is a bit confusing, it seem that you are running the same command in vm_setup and here ?","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"d71080e0903ecbde1a30b1ac518d4b6286685b1b","unresolved":false,"context_lines":[{"line_number":136,"context_line":"done"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nStarting iPerf servers on $computeNode CN2\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""},{"line_number":139,"context_line":"ssh $CN_userName@$CN_IP \u0027iperf -s -u -i 1 -p 8686\u0026\u0027\u0026"},{"line_number":140,"context_line":"ssh $CN_userName@$CN_IP \u0027iperf -s\u0026\u0027\u0026"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"echo -e \"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\nFinished setting up the test environment.\\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\""}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_5f9c045d","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":52},"in_reply_to":"dab17558_03b79ef5","updated":"2016-05-16 11:50:50.000000000","message":"This is starting up iPerf server on the 2nd compute node, the vm_setup script configuring the VMs.","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"}],"dragonflow/tests/performance/run_perf_tests.sh":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"46685c2f5b009fe2defb82f5e7dd1743a9e42173","unresolved":false,"context_lines":[{"line_number":4,"context_line":"numOfRuns\u003d10\r"},{"line_number":5,"context_line":"\r"},{"line_number":6,"context_line":"eastWestIPsArr\u003d(\r"},{"line_number":7,"context_line":"\t\"10.1.0.9\"\r"},{"line_number":8,"context_line":"\t\"10.1.0.10\"\r"},{"line_number":9,"context_line":"\t\"10.1.0.11\"\r"},{"line_number":10,"context_line":"\t\"10.1.0.13\"\r"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_72f4d186","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":1},"updated":"2016-05-08 12:17:18.000000000","message":"Please remove all the extra white spaces","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"ef9fca5fc99bbe11f93a0dd13e08d3efa276e20a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"numOfRuns\u003d10\r"},{"line_number":5,"context_line":"\r"},{"line_number":6,"context_line":"eastWestIPsArr\u003d(\r"},{"line_number":7,"context_line":"\t\"10.1.0.9\"\r"},{"line_number":8,"context_line":"\t\"10.1.0.10\"\r"},{"line_number":9,"context_line":"\t\"10.1.0.11\"\r"},{"line_number":10,"context_line":"\t\"10.1.0.13\"\r"}],"source_content_type":"text/x-sh","patch_set":6,"id":"dab17558_925fb540","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":1},"in_reply_to":"dab17558_72f4d186","updated":"2016-05-08 12:48:24.000000000","message":"Done","commit_id":"591097cbe505eaf9ac97f0dd56e5f90771a8578d"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"d68b95f8d3c8aa46da481c33f510f2dcbaef01a4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\tIP\u003d${IPsArr[$ipIndex]}\r"},{"line_number":27,"context_line":"\tfor ((i\u003d0; i\u003cnumOfRuns; i++)); do\r"},{"line_number":28,"context_line":"\t\techo \"$2 test on $IP run #: $i\"\r"},{"line_number":29,"context_line":"\t\tiperf -c $IP | tee -a $2.txt $IP.txt\r"},{"line_number":30,"context_line":"\t\tsleep 5\r"},{"line_number":31,"context_line":"\tdone\r"},{"line_number":32,"context_line":"}\r"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_a3a85221","line":29,"range":{"start_line":29,"start_character":31,"end_line":29,"end_character":38},"updated":"2016-05-10 15:07:35.000000000","message":"Where are you writing this file now to the home dir\n\nI think that it should be written to a location in the VM that is assailable via HTTP, so we could view the result and have a process that access all the logs from all the VMs and create a HTML report","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"d71080e0903ecbde1a30b1ac518d4b6286685b1b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\tIP\u003d${IPsArr[$ipIndex]}\r"},{"line_number":27,"context_line":"\tfor ((i\u003d0; i\u003cnumOfRuns; i++)); do\r"},{"line_number":28,"context_line":"\t\techo \"$2 test on $IP run #: $i\"\r"},{"line_number":29,"context_line":"\t\tiperf -c $IP | tee -a $2.txt $IP.txt\r"},{"line_number":30,"context_line":"\t\tsleep 5\r"},{"line_number":31,"context_line":"\tdone\r"},{"line_number":32,"context_line":"}\r"}],"source_content_type":"text/x-sh","patch_set":7,"id":"dab17558_3fb660dc","line":29,"range":{"start_line":29,"start_character":31,"end_line":29,"end_character":38},"in_reply_to":"dab17558_a3a85221","updated":"2016-05-16 11:50:50.000000000","message":"All files are written in /tmp (see line 13), then the txt files will be downloaded using SCP.","commit_id":"fba2452074b7ac3c6543a78c1280c1133da7071a"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"cd /tmp"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"declare -a eastWestIPsArr\u003d\"$(head -1 conf_file | tail -1 | tr \"\\n\" \" \")\""},{"line_number":23,"context_line":"declare -a VM2FIPIPsArr\u003d\"$(head -2 conf_file | tail -1 | tr \"\\n\" \" \")\""},{"line_number":24,"context_line":"declare -a sNATIPsArr\u003d\"$(head -3 conf_file | tail -1 | tr \"\\n\" \" \")\""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-sh","patch_set":10,"id":"9abb7d3a_9a48bbcd","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":7},"updated":"2016-06-02 10:03:58.000000000","message":"please do this only if the conf_file exists.","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"cd /tmp"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"declare -a eastWestIPsArr\u003d\"$(head -1 conf_file | tail -1 | tr \"\\n\" \" \")\""},{"line_number":23,"context_line":"declare -a VM2FIPIPsArr\u003d\"$(head -2 conf_file | tail -1 | tr \"\\n\" \" \")\""},{"line_number":24,"context_line":"declare -a sNATIPsArr\u003d\"$(head -3 conf_file | tail -1 | tr \"\\n\" \" \")\""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-sh","patch_set":10,"id":"7aa08908_b2e2df9d","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":7},"in_reply_to":"9abb7d3a_9a48bbcd","updated":"2016-06-06 07:36:52.000000000","message":"The file must be exists, otherwise the the tests can\u0027t run.\nI will upload soon the script that generates the file automatically.","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"2cc452cbf1c4a0878726c233adea4ae695b44aec","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        for ((j\u003d$ipIndex; j\u003c${#IPsArr[@]}; j+\u003d$numOfVMs)); do"},{"line_number":34,"context_line":"                localIP\u003d\"$(ifconfig | grep Bcast | tr -s \u0027:\u0027 \u0027 \u0027 | awk \u0027{print $3}\u0027)\""},{"line_number":35,"context_line":"                targetIP\u003d${IPsArr[$j]}"},{"line_number":36,"context_line":"\t\tif [[ $targetIP \u003d\u003d $(echo $subnet1 | tr \".\" \" \" | awk \u0027{print $1\".\"$2\".\"}\u0027)* ]]; then"},{"line_number":37,"context_line":"\t\t\tif [ \"$j\" -lt \"$numOfVMs\" ]; then"},{"line_number":38,"context_line":"\t\t\t\tfilename\u003d$2-\"L2-sameNode-\"$localIP-$targetIP.txt"},{"line_number":39,"context_line":"\t\t\telse"}],"source_content_type":"text/x-sh","patch_set":10,"id":"9abb7d3a_8e61a0d5","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":2},"updated":"2016-06-02 10:03:58.000000000","message":"It\u0027s hard to read in pycharm. suggest using space instead of tab.","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"a5dcd3e0d10658ed30d1ae95980e80f6fc863a45","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        for ((j\u003d$ipIndex; j\u003c${#IPsArr[@]}; j+\u003d$numOfVMs)); do"},{"line_number":34,"context_line":"                localIP\u003d\"$(ifconfig | grep Bcast | tr -s \u0027:\u0027 \u0027 \u0027 | awk \u0027{print $3}\u0027)\""},{"line_number":35,"context_line":"                targetIP\u003d${IPsArr[$j]}"},{"line_number":36,"context_line":"\t\tif [[ $targetIP \u003d\u003d $(echo $subnet1 | tr \".\" \" \" | awk \u0027{print $1\".\"$2\".\"}\u0027)* ]]; then"},{"line_number":37,"context_line":"\t\t\tif [ \"$j\" -lt \"$numOfVMs\" ]; then"},{"line_number":38,"context_line":"\t\t\t\tfilename\u003d$2-\"L2-sameNode-\"$localIP-$targetIP.txt"},{"line_number":39,"context_line":"\t\t\telse"}],"source_content_type":"text/x-sh","patch_set":10,"id":"7aa08908_529f3b03","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":2},"in_reply_to":"9abb7d3a_8e61a0d5","updated":"2016-06-06 07:36:52.000000000","message":"The most of the project is written in bash scripts and not in Python. Currently only single file (that being used) is written in python, so I don\u0027t this PyCharm is the right IDE in our case.","commit_id":"2764e164690bc4f9d6ad137c802ed1ef3d55e9f1"}]}
