)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"7b044605441b2259cdfd192944aad86a49337bcb","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The current test checks the floating IP status as soon as possible"},{"line_number":10,"context_line":"without allowing the status to converge.  This doesn\u0027t allow for the"},{"line_number":11,"context_line":"fact that the current Neutron implementation doesn\u0027t report the new"},{"line_number":12,"context_line":"status until after the change has been affected by the L3 agent and"},{"line_number":13,"context_line":"that there may be some lag that is not allowed by the current test."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Icfe4bb2c40fde540bc2a6371630aa3f12dd945ff"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9aa7fdbe_a6d9ee23","line":12,"updated":"2014-10-23 23:27:02.000000000","message":"A lag may exist also in other backend implementations. So I\u0027d be clear about that.","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a3270cbc60dcbf03941209a2ac582560ce50c406","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The current test checks the floating IP status as soon as possible"},{"line_number":10,"context_line":"without allowing the status to converge.  This doesn\u0027t allow for the"},{"line_number":11,"context_line":"fact that the current Neutron implementation doesn\u0027t report the new"},{"line_number":12,"context_line":"status until after the change has been affected by the L3 agent and"},{"line_number":13,"context_line":"that there may be some lag that is not allowed by the current test."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Icfe4bb2c40fde540bc2a6371630aa3f12dd945ff"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9aa7fdbe_9db0a244","line":12,"in_reply_to":"9aa7fdbe_a6d9ee23","updated":"2014-10-24 16:06:14.000000000","message":"Done","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"}],"tempest/scenario/manager.py":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"83dd4d77492fd001aca6da810eed8db5e94b448d","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        return floating_ip"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def check_floating_ip_status(self, floating_ip, status):"},{"line_number":627,"context_line":"        \"\"\"Verifies floatingip reaches the given status with reasonable lag"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"        :param floating_ip: net_resources.DeletableFloatingIp floating IP to"},{"line_number":630,"context_line":"        to check status"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_7e078118","line":627,"updated":"2014-10-24 10:12:29.000000000","message":"reasonable is a very relative term that should be defined and/or be configurable","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"e72d2b4ff66723aa9791110f7c82dfe931987ea7","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        return floating_ip"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def check_floating_ip_status(self, floating_ip, status):"},{"line_number":627,"context_line":"        \"\"\"Verifies floatingip reaches the given status with reasonable lag"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"        :param floating_ip: net_resources.DeletableFloatingIp floating IP to"},{"line_number":630,"context_line":"        to check status"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_e16bd61b","line":627,"in_reply_to":"9aa7fdbe_7e078118","updated":"2014-10-24 11:25:23.000000000","message":"+1 can we just add another param here and default it to \u0027reasonable\u0027 ;)","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a3270cbc60dcbf03941209a2ac582560ce50c406","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        return floating_ip"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    def check_floating_ip_status(self, floating_ip, status):"},{"line_number":627,"context_line":"        \"\"\"Verifies floatingip reaches the given status with reasonable lag"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"        :param floating_ip: net_resources.DeletableFloatingIp floating IP to"},{"line_number":630,"context_line":"        to check status"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_dae4f03d","line":627,"in_reply_to":"9aa7fdbe_e16bd61b","updated":"2014-10-24 16:06:14.000000000","message":"If I find some time today, I may figure out how to make it configurable.","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"7b044605441b2259cdfd192944aad86a49337bcb","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 5, 1)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_e6df760b","line":638,"updated":"2014-10-23 23:27:02.000000000","message":"I think we should be slightly more conservative here. This can be dependent on the backend and/or the environment, and 5 seconds wait cannot be enough. Perhaps 30/5 will work with DVR. Will check and get back.","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"00e0c86465e397e40e4aab03f893fad608f06782","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 5, 1)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_bae65e13","line":638,"in_reply_to":"9aa7fdbe_0652ba3a","updated":"2014-10-24 00:22:41.000000000","message":"Yeah, feel free to add the job to tempest experimental if we need another data point. As for the timeout there are CONF.network.build_interval and CONF.network.build_timeout that can be used here.\n\nThe only downside is that they\u0027d probably be too conservative at a 300sec timeout with a 1 sec interval, but that might be ok. Hard coding timeouts like this is just something we try to avoid in tempest, because there\u0027s never going to be a value that works for everyone or in every env out there.","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"83dd4d77492fd001aca6da810eed8db5e94b448d","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 5, 1)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_1eb4b533","line":638,"in_reply_to":"9aa7fdbe_bae65e13","updated":"2014-10-24 10:12:29.000000000","message":"I agree that we shouldn\u0027t hard code the timeout.\nBut using the default 5min limit is wrong, IMO.\n\nThe initial approach was to have the test verify the status with a waiter prior to connectivity check. this was rejected since it would have potentially masked races.\nI don\u0027t like adding a waiter at after the connectivity check for the same reason\nthough this might be the lesser of two evils","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a3270cbc60dcbf03941209a2ac582560ce50c406","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 5, 1)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_1abcb8db","line":638,"in_reply_to":"9aa7fdbe_c155f250","updated":"2014-10-24 16:06:14.000000000","message":"@Yair Fried  What race condition?  Status updates are sent after connectivity is torn down.  Lag is expected and should be allowed.\n\n@Armando @Marios I will increase the timeout.\n\n@Armando Good idea to run the dvr job on this.  The data will help us tune it.","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"e72d2b4ff66723aa9791110f7c82dfe931987ea7","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 5, 1)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_c155f250","line":638,"in_reply_to":"9aa7fdbe_e6df760b","updated":"2014-10-24 11:25:23.000000000","message":"+1 Armando - from the bug report the trace shows 4 seconds between PUT and GET for example, so 5 seconds is probably not enough","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"0fce23275df83dbb6b92bb84ef36bd451e134609","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 5, 1)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_0652ba3a","line":638,"in_reply_to":"9aa7fdbe_e6df760b","updated":"2014-10-23 23:37:25.000000000","message":"I wonder if we should add the dvr job to the experimental queue for tempest, so that we can test this change in the context of the upstream CI and tune this numbers accordingly.\n\nIn my local env 5/1 was fine, but I suspect the upstream nodes are gonna be a bit more sluggish.","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"d2a3cc4d777af4785b10f04b4fd67d364dcff012","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 30, 2)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_cf2342a5","line":638,"updated":"2014-10-25 18:04:40.000000000","message":"please set some constant names at very least. would be better to add these values to tempest conf though. we have more status checks coming down the pipe (ie various ports\u0027 status) that could reuse such values","commit_id":"63f1b66896987c005c50adb00fb60be16a5b7509"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"bd97ec1cf32cae7327c6b3f5bf09fabd0119a16b","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 30, 2)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_41b38797","line":638,"in_reply_to":"9aa7fdbe_39feca6b","updated":"2014-10-27 23:11:06.000000000","message":"I agree we shouldn\u0027t have hardcoded timeout values in tempest. But, I\u0027d say to just reuse the CONF.network.build_timeout and CONF.network.build_interval options here. Sure the defaults there are probably way too long, but I don\u0027t like the idea of having a separate knob for every resource type that gets excessive. In the case of a total failure here it will just add 5min for each use of this, but it shouldn\u0027t be the end of the world, because something would be really messed up. If the default is too long we can adjust that value.","commit_id":"63f1b66896987c005c50adb00fb60be16a5b7509"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"588e0e3049b67d6dbd6ed816b738edbb740c94c2","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 30, 2)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_fc57bec7","line":638,"in_reply_to":"9aa7fdbe_41b38797","updated":"2014-10-27 23:38:30.000000000","message":"I agree that this shouldn\u0027t be merged with hard-coded values.  But, they are good enough to collect some data points from the experimental dvr job which is what I\u0027m interested in pre-merge.\n\nNow that I\u0027ve seen the feedback on making this \"configurable\" I\u0027m leaning toward going with Matthew suggestion to use CONF.network.build_timeout here.","commit_id":"63f1b66896987c005c50adb00fb60be16a5b7509"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"9a07dca6ec04e3a5d3c847d8bea566d25d2abc5a","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            floating_ip.refresh()"},{"line_number":636,"context_line":"            return status \u003d\u003d floating_ip.status"},{"line_number":637,"context_line":""},{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh, 30, 2)"},{"line_number":639,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":640,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":641,"context_line":"                                 \"failed  to reach status: {st}\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_39feca6b","line":638,"in_reply_to":"9aa7fdbe_cf2342a5","updated":"2014-10-27 12:52:38.000000000","message":"def check_floating_ip_status(self, floating_ip, status, duration\u003d30, sleep_for\u003d2):","commit_id":"63f1b66896987c005c50adb00fb60be16a5b7509"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e8d3b02e320ece062d64bc132a5eab52abaf24bb","unresolved":false,"context_lines":[{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh,"},{"line_number":639,"context_line":"                                     CONF.network.build_timeout,"},{"line_number":640,"context_line":"                                     CONF.network.build_interval)"},{"line_number":641,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":642,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":643,"context_line":"                                 \"failed  to reach status: {st}\""},{"line_number":644,"context_line":"                         .format(fp\u003dfloating_ip, cst\u003dfloating_ip.status,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_9c707241","line":641,"updated":"2014-10-27 23:50:43.000000000","message":"Just a nit, you could have baked this into the above call by dropping this assert and doing something like:\n\nif not tempest.test.call_until_true(refresh, CONF.network.build_timeout,\n                                                CONF.network.build_interval):\n    msg \u003d \"FloatingIP: {fp} is at status: {cst}. failed to reach status: {st}\".format(\n        fp\u003dfloating_ip, cst\u003dfloating_ip.status, st\u003dstatus)\n    self.fail(msg)\n\nbut this works too.","commit_id":"a754e2d12cdc2c1a7f860f20f2d915dd576c5155"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"128753e66035d4039b1c5a056afdf4c2369fc30d","unresolved":false,"context_lines":[{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh,"},{"line_number":639,"context_line":"                                     CONF.network.build_timeout,"},{"line_number":640,"context_line":"                                     CONF.network.build_interval)"},{"line_number":641,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":642,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":643,"context_line":"                                 \"failed  to reach status: {st}\""},{"line_number":644,"context_line":"                         .format(fp\u003dfloating_ip, cst\u003dfloating_ip.status,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_bc2e16f9","line":641,"in_reply_to":"9aa7fdbe_9c707241","updated":"2014-10-27 23:55:43.000000000","message":"oh, or \n\nself.assertTrue(tempest.test.call_until_true...\n\nwould probably be even better then what I just said.","commit_id":"a754e2d12cdc2c1a7f860f20f2d915dd576c5155"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c72c6954fd1d0260ea2512c979d08137eccee0e6","unresolved":false,"context_lines":[{"line_number":638,"context_line":"        tempest.test.call_until_true(refresh,"},{"line_number":639,"context_line":"                                     CONF.network.build_timeout,"},{"line_number":640,"context_line":"                                     CONF.network.build_interval)"},{"line_number":641,"context_line":"        self.assertEqual(status, floating_ip.status,"},{"line_number":642,"context_line":"                         message\u003d\"FloatingIP: {fp} is at status: {cst}. \""},{"line_number":643,"context_line":"                                 \"failed  to reach status: {st}\""},{"line_number":644,"context_line":"                         .format(fp\u003dfloating_ip, cst\u003dfloating_ip.status,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_f360cc02","line":641,"in_reply_to":"9aa7fdbe_bc2e16f9","updated":"2014-10-28 02:30:55.000000000","message":"I prefer Matt\u0027s first suggestion, but current code also seems OK for me.","commit_id":"a754e2d12cdc2c1a7f860f20f2d915dd576c5155"}],"tempest/scenario/test_network_basic_ops.py":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"83dd4d77492fd001aca6da810eed8db5e94b448d","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                                           msg\u003dNone):"},{"line_number":179,"context_line":"        \"\"\"Verifies connectivty to a VM via public network and floating IP,"},{"line_number":180,"context_line":"        and verifies floating IP has resource status is correct."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        :param should_connect: bool. determines if connectivity check is"},{"line_number":183,"context_line":"        negative or positive."},{"line_number":184,"context_line":"        :param msg: Failure message to add to Error message. Should describe"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_7e55c1f8","line":181,"updated":"2014-10-24 10:12:29.000000000","message":"why remove this doc?\nYou could edit it, but the doc should still state that we are also checking the \"status\"","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a3270cbc60dcbf03941209a2ac582560ce50c406","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                                           msg\u003dNone):"},{"line_number":179,"context_line":"        \"\"\"Verifies connectivty to a VM via public network and floating IP,"},{"line_number":180,"context_line":"        and verifies floating IP has resource status is correct."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        :param should_connect: bool. determines if connectivity check is"},{"line_number":183,"context_line":"        negative or positive."},{"line_number":184,"context_line":"        :param msg: Failure message to add to Error message. Should describe"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_ba1e4c0a","line":181,"in_reply_to":"9aa7fdbe_7e55c1f8","updated":"2014-10-24 16:06:14.000000000","message":"The doc *does* say it is checking status.  (L180)\n\nThe comment I removed doesn\u0027t make sense to me at all.  Could you explain what it means?  I don\u0027t get how \"floating IP status is verified after connectivity test\" leads to \"not add extra waiting and mask racing conditions.\"","commit_id":"247c43490d222d62bbb5c5fccbf8a8e271e09248"}]}
