)]}'
{"tempest/api/network/base.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b7027d0edfbe621974a285f64eaaf9d4623dccc3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            interfaces \u003d body[\u0027ports\u0027]"},{"line_number":82,"context_line":"            for i in interfaces:"},{"line_number":83,"context_line":"                subnet_id \u003d None"},{"line_number":84,"context_line":"                if type(i[\u0027fixed_ips\u0027]) is dict:"},{"line_number":85,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][\u0027fixed_ip\u0027][\u0027subnet_id\u0027]"},{"line_number":86,"context_line":"                else:"},{"line_number":87,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BsIU%3D","line":84,"updated":"2013-11-21 14:29:27.000000000","message":"Can you clarify in which instances the Neutron API can return a fixed_ips fields which is a dict instead of a list?\n\nAlso - consider using isinstance instead of type, if we really need to do that.","commit_id":"119e22e346d390fee8d4850b1a7e33bdfa2d8bd8"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"8a62c8a04a575effd91e5d0e467d3f88ba051356","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            interfaces \u003d body[\u0027ports\u0027]"},{"line_number":82,"context_line":"            for i in interfaces:"},{"line_number":83,"context_line":"                subnet_id \u003d None"},{"line_number":84,"context_line":"                if type(i[\u0027fixed_ips\u0027]) is dict:"},{"line_number":85,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][\u0027fixed_ip\u0027][\u0027subnet_id\u0027]"},{"line_number":86,"context_line":"                else:"},{"line_number":87,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Bn6k%3D","line":84,"in_reply_to":"AAAATn%2F%2Brqk%3D","updated":"2013-11-22 10:13:56.000000000","message":"Sorry, my comment was not so clear. I\u0027d like to fix it, in another patch","commit_id":"119e22e346d390fee8d4850b1a7e33bdfa2d8bd8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"d46f5efbcf7396315c864b24319d27660c9b3427","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            interfaces \u003d body[\u0027ports\u0027]"},{"line_number":82,"context_line":"            for i in interfaces:"},{"line_number":83,"context_line":"                subnet_id \u003d None"},{"line_number":84,"context_line":"                if type(i[\u0027fixed_ips\u0027]) is dict:"},{"line_number":85,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][\u0027fixed_ip\u0027][\u0027subnet_id\u0027]"},{"line_number":86,"context_line":"                else:"},{"line_number":87,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Brqk%3D","line":84,"in_reply_to":"AAAATn%2F%2Brvw%3D","updated":"2013-11-21 15:55:31.000000000","message":"No - you don\u0027t need to fix it here.\nThanks for raising this point - this is an API bug.","commit_id":"119e22e346d390fee8d4850b1a7e33bdfa2d8bd8"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"5e3d1fd38750509402c753418c9ab120ce0c0a0b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            interfaces \u003d body[\u0027ports\u0027]"},{"line_number":82,"context_line":"            for i in interfaces:"},{"line_number":83,"context_line":"                subnet_id \u003d None"},{"line_number":84,"context_line":"                if type(i[\u0027fixed_ips\u0027]) is dict:"},{"line_number":85,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][\u0027fixed_ip\u0027][\u0027subnet_id\u0027]"},{"line_number":86,"context_line":"                else:"},{"line_number":87,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2Brvw%3D","line":84,"in_reply_to":"AAAATn%2F%2BsIU%3D","updated":"2013-11-21 15:38:19.000000000","message":"Salvatore, discard my previous comment. The problem is the when using the JSON client the fixed_ips is a list, when using the XML client the fixed_ips is a dict. I am gonna fix it.","commit_id":"119e22e346d390fee8d4850b1a7e33bdfa2d8bd8"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"6173b400d6ac51c6220b1b57052535d346825148","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            interfaces \u003d body[\u0027ports\u0027]"},{"line_number":82,"context_line":"            for i in interfaces:"},{"line_number":83,"context_line":"                subnet_id \u003d None"},{"line_number":84,"context_line":"                if type(i[\u0027fixed_ips\u0027]) is dict:"},{"line_number":85,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][\u0027fixed_ip\u0027][\u0027subnet_id\u0027]"},{"line_number":86,"context_line":"                else:"},{"line_number":87,"context_line":"                    subnet_id \u003d i[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BsC0%3D","line":84,"in_reply_to":"AAAATn%2F%2BsIU%3D","updated":"2013-11-21 14:38:18.000000000","message":"Salvatore, thanks for the question. Actually I wanted to ask somebody because I was a bit confused by the return value. In the test I create two routers. For both I do create_router_interface.\nFor one router the fixed_ips is a dict, for the other is a list. Does it make sense to you? If you need more details please ask, I may be misinterpreting something.","commit_id":"119e22e346d390fee8d4850b1a7e33bdfa2d8bd8"}],"tempest/api/network/test_floating_ips.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2f681813c9390259cc5349c18b2b969497ac8377","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    \"\"\""},{"line_number":27,"context_line":"    Tests the following operations in the Quantum API using the REST client for"},{"line_number":28,"context_line":"    Quantum:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        Create a Floating IP"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FCGI%3D","line":27,"updated":"2013-11-15 12:07:35.000000000","message":"Not part of your patch, but this sentence should be cleaned up at some point, i.e. Quantum is now Neutron.","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"0ac925b52ff2388943111cc593a9d60596eb340c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    \"\"\""},{"line_number":27,"context_line":"    Tests the following operations in the Quantum API using the REST client for"},{"line_number":28,"context_line":"    Quantum:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"        Create a Floating IP"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FCD4%3D","line":27,"in_reply_to":"AAAATn%2F%2FCGI%3D","updated":"2013-11-15 14:18:03.000000000","message":"Done","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2f681813c9390259cc5349c18b2b969497ac8377","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        Associate a Floating IP with a port and then with a port on another"},{"line_number":37,"context_line":"        router"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    v2.0 of the Quantum API is assumed. It is also assumed that the following"},{"line_number":40,"context_line":"    options are defined in the [network] section of etc/tempest.conf:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        public_network_id which is the id for the external network present"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FCGA%3D","line":39,"updated":"2013-11-15 12:07:35.000000000","message":"Here too.","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"0ac925b52ff2388943111cc593a9d60596eb340c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        Associate a Floating IP with a port and then with a port on another"},{"line_number":37,"context_line":"        router"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    v2.0 of the Quantum API is assumed. It is also assumed that the following"},{"line_number":40,"context_line":"    options are defined in the [network] section of etc/tempest.conf:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        public_network_id which is the id for the external network present"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FCD0%3D","line":39,"in_reply_to":"AAAATn%2F%2FCGA%3D","updated":"2013-11-15 14:18:03.000000000","message":"Done","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2f681813c9390259cc5349c18b2b969497ac8377","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        resp, floating_ip \u003d self.client.create_floating_ip("},{"line_number":144,"context_line":"            self.ext_net_id)"},{"line_number":145,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":146,"context_line":"        create_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":147,"context_line":"        self.addCleanup(self._delete_floating_ip, create_floating_ip[\u0027id\u0027])"},{"line_number":148,"context_line":"        # Create a port"},{"line_number":149,"context_line":"        resp, port \u003d self.client.create_port(self.network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FCFY%3D","line":146,"updated":"2013-11-15 12:07:35.000000000","message":"nit: rename the var to created_floating_ip","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"0ac925b52ff2388943111cc593a9d60596eb340c","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        resp, floating_ip \u003d self.client.create_floating_ip("},{"line_number":144,"context_line":"            self.ext_net_id)"},{"line_number":145,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":146,"context_line":"        create_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":147,"context_line":"        self.addCleanup(self._delete_floating_ip, create_floating_ip[\u0027id\u0027])"},{"line_number":148,"context_line":"        # Create a port"},{"line_number":149,"context_line":"        resp, port \u003d self.client.create_port(self.network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FCDc%3D","line":146,"in_reply_to":"AAAATn%2F%2FCFY%3D","updated":"2013-11-15 14:18:03.000000000","message":"Done","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"5944e7fa8b65c42878e56d4959ef899f057f7d8c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            self.ext_net_id)"},{"line_number":145,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":146,"context_line":"        create_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":147,"context_line":"        self.addCleanup(self._delete_floating_ip, create_floating_ip[\u0027id\u0027])"},{"line_number":148,"context_line":"        # Create a port"},{"line_number":149,"context_line":"        resp, port \u003d self.client.create_port(self.network[\u0027id\u0027])"},{"line_number":150,"context_line":"        create_port \u003d port[\u0027port\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FB%2Fs%3D","line":147,"updated":"2013-11-15 12:31:51.000000000","message":"You might find easier to have a floating_ips attribute for the class just like we have routers and networks, plus a utility create_floating_ip method in BaseNetworkTest.\n\nThis will allow for avoiding the explicit call to addCleanup","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"9326e57c30fa6becf25587f7dd7665a2feda2cd1","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            self.ext_net_id)"},{"line_number":145,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":146,"context_line":"        create_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":147,"context_line":"        self.addCleanup(self._delete_floating_ip, create_floating_ip[\u0027id\u0027])"},{"line_number":148,"context_line":"        # Create a port"},{"line_number":149,"context_line":"        resp, port \u003d self.client.create_port(self.network[\u0027id\u0027])"},{"line_number":150,"context_line":"        create_port \u003d port[\u0027port\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FBbM%3D","line":147,"in_reply_to":"AAAATn%2F%2FB%2Fs%3D","updated":"2013-11-15 16:34:20.000000000","message":"Thanks Salvatore, good idea","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2f681813c9390259cc5349c18b2b969497ac8377","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        resp, floating_ip \u003d self.client.create_floating_ip("},{"line_number":171,"context_line":"            self.ext_net_id, port_id\u003dself.port[0][\u0027id\u0027])"},{"line_number":172,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":173,"context_line":"        create_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":174,"context_line":"        self.assertEqual(create_floating_ip[\u0027router_id\u0027], self.router[\u0027id\u0027])"},{"line_number":175,"context_line":"        network2 \u003d self.create_network()"},{"line_number":176,"context_line":"        subnet2 \u003d self.create_subnet(network2)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FCFM%3D","line":173,"updated":"2013-11-15 12:07:35.000000000","message":"ditto","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"0ac925b52ff2388943111cc593a9d60596eb340c","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        resp, floating_ip \u003d self.client.create_floating_ip("},{"line_number":171,"context_line":"            self.ext_net_id, port_id\u003dself.port[0][\u0027id\u0027])"},{"line_number":172,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":173,"context_line":"        create_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":174,"context_line":"        self.assertEqual(create_floating_ip[\u0027router_id\u0027], self.router[\u0027id\u0027])"},{"line_number":175,"context_line":"        network2 \u003d self.create_network()"},{"line_number":176,"context_line":"        subnet2 \u003d self.create_subnet(network2)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FBpQ%3D","line":173,"in_reply_to":"AAAATn%2F%2FCFM%3D","updated":"2013-11-15 14:18:03.000000000","message":"Done","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"unresolved":false,"context_lines":[{"line_number":183,"context_line":"        resp, floating_ip \u003d self.client.update_floating_ip("},{"line_number":184,"context_line":"            create_floating_ip[\u0027id\u0027], port_id\u003dport_other_router[\u0027id\u0027])"},{"line_number":185,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":186,"context_line":"        update_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":187,"context_line":"        self.assertEqual(update_floating_ip[\u0027router_id\u0027], router2[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FBwk%3D","line":186,"updated":"2013-11-15 14:26:49.000000000","message":"Similar to what Matt already mentioned: I think this should be \"updated_floating_ip\"","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"9326e57c30fa6becf25587f7dd7665a2feda2cd1","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        resp, floating_ip \u003d self.client.update_floating_ip("},{"line_number":184,"context_line":"            create_floating_ip[\u0027id\u0027], port_id\u003dport_other_router[\u0027id\u0027])"},{"line_number":185,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":186,"context_line":"        update_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":187,"context_line":"        self.assertEqual(update_floating_ip[\u0027router_id\u0027], router2[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FBbA%3D","line":186,"in_reply_to":"AAAATn%2F%2FBwk%3D","updated":"2013-11-15 16:34:20.000000000","message":"Yes thanks","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"5944e7fa8b65c42878e56d4959ef899f057f7d8c","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            create_floating_ip[\u0027id\u0027], port_id\u003dport_other_router[\u0027id\u0027])"},{"line_number":185,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":186,"context_line":"        update_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":187,"context_line":"        self.assertEqual(update_floating_ip[\u0027router_id\u0027], router2[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"class FloatingIPTestXML(FloatingIPTestJSON):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FB%2FE%3D","line":187,"updated":"2013-11-15 12:31:51.000000000","message":"It won\u0027t be bad to have an explicit check for port_id and fixed_ip_address as well.","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"9326e57c30fa6becf25587f7dd7665a2feda2cd1","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            create_floating_ip[\u0027id\u0027], port_id\u003dport_other_router[\u0027id\u0027])"},{"line_number":185,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":186,"context_line":"        update_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":187,"context_line":"        self.assertEqual(update_floating_ip[\u0027router_id\u0027], router2[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"class FloatingIPTestXML(FloatingIPTestJSON):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FBUs%3D","line":187,"in_reply_to":"AAAATn%2F%2FB%2FE%3D","updated":"2013-11-15 16:34:20.000000000","message":"Thanks!","commit_id":"3d96230ad2806db8076da5c92e34f9b00d0ad30f"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"a2c0e64cde2efb902340f1096febd8af0715a637","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        super(FloatingIPTestJSON, cls).tearDownClass()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @classmethod"},{"line_number":65,"context_line":"    def _create_router_add_interface(cls, subnet_id):"},{"line_number":66,"context_line":"        router \u003d cls.create_router("},{"line_number":67,"context_line":"            rand_name(\u0027router-\u0027),"},{"line_number":68,"context_line":"            external_network_id\u003dcls.ext_net_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2B%2F%2FU%3D","line":65,"updated":"2013-11-15 22:25:19.000000000","message":"I would prefer to see this method in base.py since it\u0027s quite generic.","commit_id":"8e02549ef9ad486484a0a06cbd83269e2ccdb643"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"14655462f9e048a89ca4ac2ab3517eb68f9e5e53","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        super(FloatingIPTestJSON, cls).tearDownClass()"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @classmethod"},{"line_number":65,"context_line":"    def _create_router_add_interface(cls, subnet_id):"},{"line_number":66,"context_line":"        router \u003d cls.create_router("},{"line_number":67,"context_line":"            rand_name(\u0027router-\u0027),"},{"line_number":68,"context_line":"            external_network_id\u003dcls.ext_net_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2B7G0%3D","line":65,"in_reply_to":"AAAATn%2F%2B%2F%2FU%3D","updated":"2013-11-18 14:56:25.000000000","message":"Thanks Emilien, good catch, actually there is already a method in base.py, I\u0027ve overlooked it.","commit_id":"8e02549ef9ad486484a0a06cbd83269e2ccdb643"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b7027d0edfbe621974a285f64eaaf9d4623dccc3","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":103,"context_line":"        updated_floating_ip \u003d floating_ip[\u0027floatingip\u0027]"},{"line_number":104,"context_line":"        self.assertEqual(updated_floating_ip[\u0027port_id\u0027], self.port[1][\u0027id\u0027])"},{"line_number":105,"context_line":"        self.assertIsNotNone(updated_floating_ip[\u0027fixed_ip_address\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(updated_floating_ip[\u0027router_id\u0027], self.router[\u0027id\u0027])"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        # Disassociate floating IP from the port"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BsHc%3D","line":105,"updated":"2013-11-21 14:29:27.000000000","message":"here I think you should actually check that the fixed_ip_address \u003d\u003d port[1][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027]","commit_id":"119e22e346d390fee8d4850b1a7e33bdfa2d8bd8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b7027d0edfbe621974a285f64eaaf9d4623dccc3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        created_floating_ip \u003d self.create_floating_ip(self.ext_net_id)"},{"line_number":121,"context_line":"        # Create a port"},{"line_number":122,"context_line":"        resp, port \u003d self.client.create_port(self.network[\u0027id\u0027])"},{"line_number":123,"context_line":"        create_port \u003d port[\u0027port\u0027]"},{"line_number":124,"context_line":"        resp, floating_ip \u003d self.client.update_floating_ip("},{"line_number":125,"context_line":"            created_floating_ip[\u0027id\u0027], port_id\u003dcreate_port[\u0027id\u0027])"},{"line_number":126,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATn%2F%2BsHY%3D","line":123,"updated":"2013-11-21 14:29:27.000000000","message":"for consistency, name this local created_port","commit_id":"119e22e346d390fee8d4850b1a7e33bdfa2d8bd8"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"d598d848f65d6703aa96a5db852ff59e2df44715","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.network import base"},{"line_number":19,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BOxs%3D","line":19,"updated":"2013-11-28 17:42:23.000000000","message":"I would prefer to keep import of module here - http://docs.openstack.org/developer/hacking/#imports","commit_id":"8251dcc82f3724bdadf4ce6553034f918852a974"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"122ca94c38ea33a6e7c67bee6107d219eaf5bf61","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.network import base"},{"line_number":19,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BMjs%3D","line":19,"in_reply_to":"AAAATn%2F%2BOxs%3D","updated":"2013-11-29 12:43:31.000000000","message":"Thanks Pavel","commit_id":"8251dcc82f3724bdadf4ce6553034f918852a974"}]}
