)]}'
{"dragonflow/tests/fullstack/test_neutron_api.py":[{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":37,"context_line":"class RouterTestWrapper():"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self, neutron, nb_api):"},{"line_number":40,"context_line":"        self.router_id \u003d \"\""},{"line_number":41,"context_line":"        self.neutron \u003d neutron"},{"line_number":42,"context_line":"        self.nb_api \u003d nb_api"},{"line_number":43,"context_line":"        self.deleted \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_a403ca72","line":40,"updated":"2015-12-23 14:44:34.000000000","message":"Think its better to use \u0027None\u0027","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    def __init__(self, neutron, nb_api):"},{"line_number":40,"context_line":"        self.router_id \u003d \"\""},{"line_number":41,"context_line":"        self.neutron \u003d neutron"},{"line_number":42,"context_line":"        self.nb_api \u003d nb_api"},{"line_number":43,"context_line":"        self.deleted \u003d False"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def create(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_e41792a1","line":42,"updated":"2015-12-23 14:44:34.000000000","message":"I personally think that this check (using the nb_api) shouldnt be inside this object.\nBut if you really want you can keep it","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.nb_api \u003d nb_api"},{"line_number":43,"context_line":"        self.deleted \u003d False"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def create(self):"},{"line_number":46,"context_line":"        router \u003d {\u0027name\u0027: \u0027myrouter1\u0027, \u0027admin_state_up\u0027: True}"},{"line_number":47,"context_line":"        new_router \u003d self.neutron.create_router({\u0027router\u0027: router})"},{"line_number":48,"context_line":"        self.router_id \u003d new_router[\u0027router\u0027][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_a4d66ac3","line":45,"updated":"2015-12-23 14:44:34.000000000","message":"The create method should recieve the router object, so its\n\ncreate(self, router) and it just create the router, this way we can test different structures for router with this object","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        return self.router_id"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def __del__(self):"},{"line_number":52,"context_line":"        print(\"in delete\")"},{"line_number":53,"context_line":"        if self.deleted or len(self.router_id) \u003d\u003d 0:"},{"line_number":54,"context_line":"            return"},{"line_number":55,"context_line":"        print(\"in delete2\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_24e35aa5","line":52,"updated":"2015-12-23 14:44:34.000000000","message":"remove print","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def __del__(self):"},{"line_number":52,"context_line":"        print(\"in delete\")"},{"line_number":53,"context_line":"        if self.deleted or len(self.router_id) \u003d\u003d 0:"},{"line_number":54,"context_line":"            return"},{"line_number":55,"context_line":"        print(\"in delete2\")"},{"line_number":56,"context_line":"        self.delete()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_a4a42a57","line":53,"updated":"2015-12-23 14:44:34.000000000","message":"or self.router_id \u003d\u003d None","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        print(\"in delete\")"},{"line_number":53,"context_line":"        if self.deleted or len(self.router_id) \u003d\u003d 0:"},{"line_number":54,"context_line":"            return"},{"line_number":55,"context_line":"        print(\"in delete2\")"},{"line_number":56,"context_line":"        self.delete()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def delete(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_c4ee168b","line":55,"updated":"2015-12-23 14:44:34.000000000","message":"remove print","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.delete()"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def delete(self):"},{"line_number":59,"context_line":"        #router \u003d self.neutron.show_router(router_id)"},{"line_number":60,"context_line":"        ports \u003d self.neutron.list_ports(device_id\u003dself.router_id)"},{"line_number":61,"context_line":"        ports \u003d ports[\u0027ports\u0027]"},{"line_number":62,"context_line":"        for port in ports:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_448a26c1","line":59,"updated":"2015-12-23 14:44:34.000000000","message":"remove comment","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":74,"context_line":"class NetworkTestWrapper():"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def __init__(self, neutron, nb_api):"},{"line_number":77,"context_line":"        self.network_id \u003d \"\""},{"line_number":78,"context_line":"        self.neutron \u003d neutron"},{"line_number":79,"context_line":"        self.nb_api \u003d nb_api"},{"line_number":80,"context_line":"        self.deleted \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_0482de94","line":77,"updated":"2015-12-23 14:44:34.000000000","message":"same comments here as in the router wrapper","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        super(TestNeutronAPIandDB, self).setUp()"},{"line_number":113,"context_line":"        creds \u003d credentials()"},{"line_number":114,"context_line":"        tenant_name \u003d creds[\u0027project_name\u0027]"},{"line_number":115,"context_line":"        auth_url \u003d creds[\u0027auth_url\u0027] #+ \"/v2.0\""},{"line_number":116,"context_line":"        self.neutron \u003d client.Client(\u00272.0\u0027, username\u003dcreds[\u0027username\u0027],"},{"line_number":117,"context_line":"             password\u003dcreds[\u0027password\u0027], auth_url\u003dauth_url,"},{"line_number":118,"context_line":"             tenant_name\u003dtenant_name)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_c431360d","line":115,"updated":"2015-12-23 14:44:34.000000000","message":"remove the \u0027#\u0027","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        self.test_network_name \u003d \u0027mynetwork1\u0027"},{"line_number":128,"context_line":"        #self.clean_all()"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    def clean_all(self):"},{"line_number":131,"context_line":"        #routers \u003d self.neutron.list_routers(retrieve_all\u003dTrue)"},{"line_number":132,"context_line":"        routers \u003d self.neutron.list_routers(name\u003dself.test_router_name)"},{"line_number":133,"context_line":"        routers \u003d routers[\u0027routers\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_440d463d","line":130,"updated":"2015-12-23 14:44:34.000000000","message":"remove this method","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        network \u003d NetworkTestWrapper(self.neutron, self.nb_api)"},{"line_number":151,"context_line":"        network_id \u003d network.create()"},{"line_number":152,"context_line":"        network_found \u003d network.check()"},{"line_number":153,"context_line":"        self.assertTrue( network_found )"},{"line_number":154,"context_line":"        network.delete()"},{"line_number":155,"context_line":"        network_found \u003d network.check()"},{"line_number":156,"context_line":"        self.assertFalse( network_found )"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_67116452","line":153,"updated":"2015-12-23 14:44:34.000000000","message":"change the .check() method name to \u003d\u003e exists_in_df_db()","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        self.assertTrue( network_found )"},{"line_number":154,"context_line":"        network.delete()"},{"line_number":155,"context_line":"        network_found \u003d network.check()"},{"line_number":156,"context_line":"        self.assertFalse( network_found )"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"    def test_dhcp_port_created(self):"},{"line_number":159,"context_line":"        network \u003d NetworkTestWrapper(self.neutron, self.nb_api)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_073500d9","line":156,"updated":"2015-12-23 14:44:34.000000000","message":"you can just use self.assertFalse(network.exists_in_df_db())\n\nSame for the assertTrue above","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    def test_dhcp_port_created(self):"},{"line_number":159,"context_line":"        network \u003d NetworkTestWrapper(self.neutron, self.nb_api)"},{"line_number":160,"context_line":"        network_id \u003d network.create()"},{"line_number":161,"context_line":"        network_found \u003d network.check()"},{"line_number":162,"context_line":"        self.assertTrue( network_found )"},{"line_number":163,"context_line":"        subnet \u003d {\u0027network_id\u0027: network_id,"},{"line_number":164,"context_line":"            \u0027cidr\u0027: \u002710.1.0.0/24\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_c74db873","line":161,"updated":"2015-12-23 14:44:34.000000000","message":"same comments as above","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        self.assertEqual(dhcp_ports_found, 0)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def test_create_delete_router(self):"},{"line_number":187,"context_line":"        router \u003d RouterTestWrapper( self.neutron, self.nb_api)"},{"line_number":188,"context_line":"        router_id \u003d router.create()"},{"line_number":189,"context_line":"        router_found \u003d router.check()"},{"line_number":190,"context_line":"        self.assertTrue( router_found )"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_e787945f","line":187,"updated":"2015-12-23 14:44:34.000000000","message":"same comments as above","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"de324e5aca5cecaab4a0e0f5541f0504b44c6095","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        port \u003d self.neutron.add_interface_router( router_id, body\u003dsubnet_msg)"},{"line_number":210,"context_line":"        router.delete()"},{"line_number":211,"context_line":"        network.delete()"},{"line_number":212,"context_line":"        #self.neutron.delete_port( port[\u0027port_id\u0027] )"},{"line_number":213,"context_line":"        #self.neutron.delete_router( router_id )"},{"line_number":214,"context_line":"        #self.neutron.delete_subnet( subnet[\u0027id\u0027] )"},{"line_number":215,"context_line":"        #self.neutron.delete_network( network_id )"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_07bae023","line":212,"updated":"2015-12-23 14:44:34.000000000","message":"remove comments","commit_id":"37189fafd662072787d02c28f66efbdfa025a686"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"e3c6098c71e36d66904753459fde01707520f742","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        router_id \u003d router.create()"},{"line_number":106,"context_line":"        self.assertTrue(router.exists())"},{"line_number":107,"context_line":"        subnet_msg \u003d {\u0027subnet_id\u0027: subnet[\u0027id\u0027]}"},{"line_number":108,"context_line":"        self.neutron.add_interface_router(router_id, body\u003dsubnet_msg)"},{"line_number":109,"context_line":"        router.delete()"},{"line_number":110,"context_line":"        network.delete()"},{"line_number":111,"context_line":"        self.assertFalse(router.exists())"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_8ada034b","line":108,"range":{"start_line":108,"start_character":21,"end_line":108,"end_character":41},"updated":"2015-12-27 11:23:17.000000000","message":"It will be good to test that the router port was actually created in the NB DB\n\nYou could check that it is on the correct subnet","commit_id":"0ccecd3efebf1a6f56c32ac4d732adf03e18cfe3"},{"author":{"_account_id":18903,"name":"Yuli","email":"stremovsky@gmail.com","username":"yuli"},"change_message_id":"ac288d015bfffba3affaa8b26b75a324c750784c","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        router_id \u003d router.create()"},{"line_number":106,"context_line":"        self.assertTrue(router.exists())"},{"line_number":107,"context_line":"        subnet_msg \u003d {\u0027subnet_id\u0027: subnet[\u0027id\u0027]}"},{"line_number":108,"context_line":"        self.neutron.add_interface_router(router_id, body\u003dsubnet_msg)"},{"line_number":109,"context_line":"        router.delete()"},{"line_number":110,"context_line":"        network.delete()"},{"line_number":111,"context_line":"        self.assertFalse(router.exists())"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_156874b8","line":108,"range":{"start_line":108,"start_character":21,"end_line":108,"end_character":41},"in_reply_to":"1a7b0d38_8ada034b","updated":"2015-12-27 12:50:50.000000000","message":"Done","commit_id":"0ccecd3efebf1a6f56c32ac4d732adf03e18cfe3"},{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"e3c6098c71e36d66904753459fde01707520f742","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        self.neutron.add_interface_router(router_id, body\u003dsubnet_msg)"},{"line_number":109,"context_line":"        router.delete()"},{"line_number":110,"context_line":"        network.delete()"},{"line_number":111,"context_line":"        self.assertFalse(router.exists())"},{"line_number":112,"context_line":"        self.assertFalse(network.exists())"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_4ae09bfa","line":111,"range":{"start_line":111,"start_character":38,"end_line":111,"end_character":41},"updated":"2015-12-27 11:23:17.000000000","message":"please test that the router port was deleted from the NB DB","commit_id":"0ccecd3efebf1a6f56c32ac4d732adf03e18cfe3"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"3ba8062b24b0927c281899b2688eefd4e5ccb5fd","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertIsNotNone(port)"},{"line_number":111,"context_line":"        router.delete()"},{"line_number":112,"context_line":"        network.delete()"},{"line_number":113,"context_line":"        self.assertFalse(router.exists())"},{"line_number":114,"context_line":"        self.assertFalse(network.exists())"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a7b0d38_55aefc98","line":113,"updated":"2015-12-27 13:42:36.000000000","message":"Maybe add a test to verify that the port is also deleted from DB (the router interface)","commit_id":"e77e011431325bd2234f91e08971ec8c49687952"}],"dragonflow/tests/fullstack/test_objects.py":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"e3c6098c71e36d66904753459fde01707520f742","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.delete()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def delete(self):"},{"line_number":34,"context_line":"        #router \u003d self.neutron.show_router(router_id)"},{"line_number":35,"context_line":"        ports \u003d self.neutron.list_ports(device_id\u003dself.router_id)"},{"line_number":36,"context_line":"        ports \u003d ports[\u0027ports\u0027]"},{"line_number":37,"context_line":"        for port in ports:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_ca156be5","line":34,"range":{"start_line":34,"start_character":9,"end_line":34,"end_character":15},"updated":"2015-12-27 11:23:17.000000000","message":"please remove comment","commit_id":"0ccecd3efebf1a6f56c32ac4d732adf03e18cfe3"},{"author":{"_account_id":18903,"name":"Yuli","email":"stremovsky@gmail.com","username":"yuli"},"change_message_id":"ac288d015bfffba3affaa8b26b75a324c750784c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.delete()"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def delete(self):"},{"line_number":34,"context_line":"        #router \u003d self.neutron.show_router(router_id)"},{"line_number":35,"context_line":"        ports \u003d self.neutron.list_ports(device_id\u003dself.router_id)"},{"line_number":36,"context_line":"        ports \u003d ports[\u0027ports\u0027]"},{"line_number":37,"context_line":"        for port in ports:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_7501b804","line":34,"range":{"start_line":34,"start_character":9,"end_line":34,"end_character":15},"in_reply_to":"1a7b0d38_ca156be5","updated":"2015-12-27 12:50:50.000000000","message":"Done","commit_id":"0ccecd3efebf1a6f56c32ac4d732adf03e18cfe3"}]}
