)]}'
{"tempest/common/compute.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"a16ac1fe6f25fb370e1581ab4014c950d8054d0e","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # The name of the method to associate a floating IP to as server is too"},{"line_number":181,"context_line":"    # long for PEP8 compliance so:"},{"line_number":182,"context_line":"    assoc \u003d clients.floating_ips_client.update_floatingip"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    if wait_until:"},{"line_number":185,"context_line":"        for server in servers:"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_8fcc6035","line":182,"range":{"start_line":182,"start_character":20,"end_line":182,"end_character":57},"updated":"2017-06-06 07:22:20.000000000","message":"now the method name is not that long, so the alias may be removed","commit_id":"73319c004e915962f43a2abb3d2fbd1b9cc2fd7e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5d2631db108091d7462f722e65c06ce9ef4261c8","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # The name of the method to associate a floating IP to as server is too"},{"line_number":181,"context_line":"    # long for PEP8 compliance so:"},{"line_number":182,"context_line":"    assoc \u003d clients.floating_ips_client.update_floatingip"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    if wait_until:"},{"line_number":185,"context_line":"        for server in servers:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f231b9d_3c06b253","line":182,"range":{"start_line":182,"start_character":20,"end_line":182,"end_character":57},"in_reply_to":"df140735_8fcc6035","updated":"2017-06-19 08:19:06.000000000","message":"Done","commit_id":"73319c004e915962f43a2abb3d2fbd1b9cc2fd7e"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"a16ac1fe6f25fb370e1581ab4014c950d8054d0e","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                # creation will fail with the condition above (l.58)."},{"line_number":192,"context_line":"                if CONF.validation.run_validation and validatable:"},{"line_number":193,"context_line":"                    if CONF.validation.connect_method \u003d\u003d \u0027floating\u0027:"},{"line_number":194,"context_line":"                        ifaces \u003d clients.interfaces_client.list_interfaces("},{"line_number":195,"context_line":"                            server[\u0027id\u0027])"},{"line_number":196,"context_line":"                        port_id \u003d ifaces[\u0027interfaceAttachments\u0027][0][\u0027port_id\u0027]"},{"line_number":197,"context_line":"                        assoc(validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_6fe8ec7a","line":194,"updated":"2017-06-06 07:22:20.000000000","message":"if neutron is not available, we may still have to use nova\u0027s floating ip.\nref: https://review.openstack.org/#/c/471116/","commit_id":"73319c004e915962f43a2abb3d2fbd1b9cc2fd7e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"29b2a5bc07d01881c7337b93024cfd68234aa92d","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                # creation will fail with the condition above (l.58)."},{"line_number":192,"context_line":"                if CONF.validation.run_validation and validatable:"},{"line_number":193,"context_line":"                    if CONF.validation.connect_method \u003d\u003d \u0027floating\u0027:"},{"line_number":194,"context_line":"                        ifaces \u003d clients.interfaces_client.list_interfaces("},{"line_number":195,"context_line":"                            server[\u0027id\u0027])"},{"line_number":196,"context_line":"                        port_id \u003d ifaces[\u0027interfaceAttachments\u0027][0][\u0027port_id\u0027]"},{"line_number":197,"context_line":"                        assoc(validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f231b9d_c8bed4d3","line":194,"in_reply_to":"7f231b9d_4d41b6a8","updated":"2017-06-19 08:50:48.000000000","message":"Aaand done.","commit_id":"73319c004e915962f43a2abb3d2fbd1b9cc2fd7e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"5d2631db108091d7462f722e65c06ce9ef4261c8","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                # creation will fail with the condition above (l.58)."},{"line_number":192,"context_line":"                if CONF.validation.run_validation and validatable:"},{"line_number":193,"context_line":"                    if CONF.validation.connect_method \u003d\u003d \u0027floating\u0027:"},{"line_number":194,"context_line":"                        ifaces \u003d clients.interfaces_client.list_interfaces("},{"line_number":195,"context_line":"                            server[\u0027id\u0027])"},{"line_number":196,"context_line":"                        port_id \u003d ifaces[\u0027interfaceAttachments\u0027][0][\u0027port_id\u0027]"},{"line_number":197,"context_line":"                        assoc(validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f231b9d_4d41b6a8","line":194,"in_reply_to":"df140735_6fe8ec7a","updated":"2017-06-19 08:19:06.000000000","message":"Good point - I pushed a new PS to make sure my rebase to depend on [1] didn\u0027t fail, but I\u0027ll fix this in the next PS.\n\n[1] https://review.openstack.org/#/c/470774/","commit_id":"73319c004e915962f43a2abb3d2fbd1b9cc2fd7e"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"fa149ac41cd0b502db570d2e6a977bc8615cc75b","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                server[\u0027id\u0027])"},{"line_number":184,"context_line":"            for iface in ifaces[\u0027interfaceAttachments\u0027]:"},{"line_number":185,"context_line":"                if iface[\u0027net_id\u0027] \u003d\u003d tenant_network[\u0027id\u0027]:"},{"line_number":186,"context_line":"                    validation_port \u003d iface[\u0027port_id\u0027]"},{"line_number":187,"context_line":"                    break"},{"line_number":188,"context_line":"            clients.floating_ips_client.update_floatingip("},{"line_number":189,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f201791_5874ab99","line":186,"range":{"start_line":186,"start_character":20,"end_line":186,"end_character":35},"updated":"2017-06-21 04:05:57.000000000","message":"if no port is found, the trackback info may look unfriendly","commit_id":"a90a839b62adebfdd1dff91f5b84ac7fb64577cb"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"61434e549d35051f439877d61452ee9772975c07","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                server[\u0027id\u0027])"},{"line_number":184,"context_line":"            for iface in ifaces[\u0027interfaceAttachments\u0027]:"},{"line_number":185,"context_line":"                if iface[\u0027net_id\u0027] \u003d\u003d tenant_network[\u0027id\u0027]:"},{"line_number":186,"context_line":"                    validation_port \u003d iface[\u0027port_id\u0027]"},{"line_number":187,"context_line":"                    break"},{"line_number":188,"context_line":"            clients.floating_ips_client.update_floatingip("},{"line_number":189,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f201791_28d2af5d","line":186,"range":{"start_line":186,"start_character":20,"end_line":186,"end_character":35},"in_reply_to":"5f201791_5874ab99","updated":"2017-06-21 15:33:33.000000000","message":"Hrmm, you\u0027re right. We\u0027re catching everything on L209, but as it is we\u0027ll get either an inscrutable KeyError about port_id not being found, or validation_port will end up being None and something will fail in update_floatingip on L188.","commit_id":"a90a839b62adebfdd1dff91f5b84ac7fb64577cb"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"cbe03d727787487f8c0a6075d9e464d05f4894de","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def _setup_validation_fip():"},{"line_number":181,"context_line":"        if CONF.service_available.neutron:"},{"line_number":182,"context_line":"            ifaces \u003d clients.interfaces_client.list_interfaces("},{"line_number":183,"context_line":"                server[\u0027id\u0027])"},{"line_number":184,"context_line":"            validation_port \u003d None"},{"line_number":185,"context_line":"            for iface in ifaces[\u0027interfaceAttachments\u0027]:"},{"line_number":186,"context_line":"                if iface[\u0027net_id\u0027] \u003d\u003d tenant_network[\u0027id\u0027]:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f201791_55666853","line":183,"range":{"start_line":182,"start_character":0,"end_line":183,"end_character":29},"updated":"2017-06-23 07:15:50.000000000","message":"this can be put in one line","commit_id":"abd1d6475cd73c8262b3d42e63548ed95acc0925"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"1cd20941ad79109ae17faa397c4417f4027732fd","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def _setup_validation_fip():"},{"line_number":181,"context_line":"        if CONF.service_available.neutron:"},{"line_number":182,"context_line":"            ifaces \u003d clients.interfaces_client.list_interfaces("},{"line_number":183,"context_line":"                server[\u0027id\u0027])"},{"line_number":184,"context_line":"            validation_port \u003d None"},{"line_number":185,"context_line":"            for iface in ifaces[\u0027interfaceAttachments\u0027]:"},{"line_number":186,"context_line":"                if iface[\u0027net_id\u0027] \u003d\u003d tenant_network[\u0027id\u0027]:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5f201791_c0c62f9b","line":183,"range":{"start_line":182,"start_character":0,"end_line":183,"end_character":29},"in_reply_to":"5f201791_55666853","updated":"2017-06-23 10:08:01.000000000","message":"Done","commit_id":"abd1d6475cd73c8262b3d42e63548ed95acc0925"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"aef737c037f918d4633f5c4e07a029c4a082c5eb","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"},{"line_number":195,"context_line":"                port_id\u003dvalidation_port)"},{"line_number":196,"context_line":"        else:"},{"line_number":197,"context_line":"            fip_client \u003d clients.floating_ips_client"},{"line_number":198,"context_line":"            fip_client.associate_floating_ip_to_server("},{"line_number":199,"context_line":"                floating_ip\u003dvalidation_resources[\u0027floating_ip\u0027][\u0027ip\u0027],"},{"line_number":200,"context_line":"                server_id\u003dservers[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f201791_b5136e5c","line":197,"range":{"start_line":197,"start_character":12,"end_line":197,"end_character":52},"updated":"2017-06-23 14:46:17.000000000","message":"This could be used for both conditions: on L198 and L193 if it is placed above both conditions, on L181.","commit_id":"3c5f2759dab62dc3517c70403d2d7c63c2d3eac0"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"a0367ad55805c5eee900ac2d3958d101f2551a49","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        body \u003d rest_client.ResponseBody(body.response, body[\u0027server\u0027])"},{"line_number":178,"context_line":"        servers \u003d [body]"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def _setup_validation_fip():"},{"line_number":181,"context_line":"        if CONF.service_available.neutron:"},{"line_number":182,"context_line":"            ifaces \u003d clients.interfaces_client.list_interfaces(server[\u0027id\u0027])"},{"line_number":183,"context_line":"            validation_port \u003d None"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f436f4f_60b7b2da","line":180,"range":{"start_line":180,"start_character":4,"end_line":180,"end_character":32},"updated":"2017-08-18 19:24:11.000000000","message":"why do you define a function inline with the test?","commit_id":"3f526a71016d6bee5c8c7132c21aaff1b9f765a8"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"039df73ecea7ebc60360b03c678ca5b0cf7ab32c","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        body \u003d rest_client.ResponseBody(body.response, body[\u0027server\u0027])"},{"line_number":178,"context_line":"        servers \u003d [body]"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def _setup_validation_fip():"},{"line_number":181,"context_line":"        if CONF.service_available.neutron:"},{"line_number":182,"context_line":"            ifaces \u003d clients.interfaces_client.list_interfaces(server[\u0027id\u0027])"},{"line_number":183,"context_line":"            validation_port \u003d None"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_37f30c0d","line":180,"range":{"start_line":180,"start_character":4,"end_line":180,"end_character":32},"in_reply_to":"9f436f4f_60b7b2da","updated":"2017-08-24 15:13:26.000000000","message":"You\u0027d rather I moved it out of create_test_server()? It\u0027s only used here, and it\u0027s a separate function for legibility, if I inline it where it\u0027s called (L212) we\u0027re going to end up with more a dozen levels of indentation.","commit_id":"3f526a71016d6bee5c8c7132c21aaff1b9f765a8"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"a0367ad55805c5eee900ac2d3958d101f2551a49","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"},{"line_number":195,"context_line":"                port_id\u003dvalidation_port)"},{"line_number":196,"context_line":"        else:"},{"line_number":197,"context_line":"            fip_client \u003d clients.floating_ips_client"},{"line_number":198,"context_line":"            fip_client.associate_floating_ip_to_server("},{"line_number":199,"context_line":"                floating_ip\u003dvalidation_resources[\u0027floating_ip\u0027][\u0027ip\u0027],"},{"line_number":200,"context_line":"                server_id\u003dservers[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f436f4f_e0ca824d","line":197,"range":{"start_line":197,"start_character":25,"end_line":197,"end_character":52},"updated":"2017-08-18 19:24:11.000000000","message":"You cannot use a neutron client if neutron is not available.\nAs long as we run nova-net jobs we must have a non-neutron option here.","commit_id":"3f526a71016d6bee5c8c7132c21aaff1b9f765a8"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"039df73ecea7ebc60360b03c678ca5b0cf7ab32c","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                validation_resources[\u0027floating_ip\u0027][\u0027id\u0027],"},{"line_number":195,"context_line":"                port_id\u003dvalidation_port)"},{"line_number":196,"context_line":"        else:"},{"line_number":197,"context_line":"            fip_client \u003d clients.floating_ips_client"},{"line_number":198,"context_line":"            fip_client.associate_floating_ip_to_server("},{"line_number":199,"context_line":"                floating_ip\u003dvalidation_resources[\u0027floating_ip\u0027][\u0027ip\u0027],"},{"line_number":200,"context_line":"                server_id\u003dservers[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f287b81_1781304b","line":197,"range":{"start_line":197,"start_character":25,"end_line":197,"end_character":52},"in_reply_to":"9f436f4f_e0ca824d","updated":"2017-08-24 15:13:26.000000000","message":"Whoops, I\u0027m pretty sure I meant to use clients.compute_floating_ips_client in order to keep it as before if neutron isn\u0027t available. Fixed.","commit_id":"3f526a71016d6bee5c8c7132c21aaff1b9f765a8"}]}
