)]}'
{"tempest/api/network/test_routers.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5da2bcb732a531d04ca700f8f085ddfa17387b54","unresolved":false,"context_lines":[{"line_number":374,"context_line":"                         interface_port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027])"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"    def _check_for_ip_address_updated_ctrl(self, HOST, router_id):"},{"line_number":377,"context_line":"        cmd \u003d (\u0027sudo ip netns exec qrouter-\u0027 + router_id + \u0027 ifconfig\u0027)"},{"line_number":378,"context_line":"        ssh \u003d subprocess.Popen([\"ssh\", \"%s\" % HOST, cmd],"},{"line_number":379,"context_line":"                               shell\u003dFalse,"},{"line_number":380,"context_line":"                               stdout\u003dsubprocess.PIPE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_1bf6c8f8","line":377,"updated":"2016-04-20 10:20:52.000000000","message":"You should do without ifconfig. It\u0027s not portable. Try to use the \"ip\" binary.","commit_id":"ec1e703390e44b8bd2c932be48c3955fd2e9b11f"},{"author":{"_account_id":13342,"name":"Abhishek G M","email":"abhishek.gm@hpe.com","username":"abhishek60014726"},"change_message_id":"c51a1af51f679e2387d66a0d7a3658456c7e3083","unresolved":false,"context_lines":[{"line_number":374,"context_line":"                         interface_port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027])"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"    def _check_for_ip_address_updated_ctrl(self, HOST, router_id):"},{"line_number":377,"context_line":"        cmd \u003d (\u0027sudo ip netns exec qrouter-\u0027 + router_id + \u0027 ifconfig\u0027)"},{"line_number":378,"context_line":"        ssh \u003d subprocess.Popen([\"ssh\", \"%s\" % HOST, cmd],"},{"line_number":379,"context_line":"                               shell\u003dFalse,"},{"line_number":380,"context_line":"                               stdout\u003dsubprocess.PIPE,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_626b9f1e","line":377,"in_reply_to":"1a122d0e_1bf6c8f8","updated":"2016-04-21 05:31:16.000000000","message":"How to use \"ip\" binary?\nI want the ip address of qg interface, that the reason i used ifconfig.","commit_id":"ec1e703390e44b8bd2c932be48c3955fd2e9b11f"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5da2bcb732a531d04ca700f8f085ddfa17387b54","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                               stdout\u003dsubprocess.PIPE,"},{"line_number":381,"context_line":"                               stderr\u003dsubprocess.PIPE)"},{"line_number":382,"context_line":"        output \u003d ssh.stdout.readlines()"},{"line_number":383,"context_line":"        variable \u003d output[19].split()[0]"},{"line_number":384,"context_line":"        return variable"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def _check_for_ip_address_ctrl(self, HOST, router_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_5b120058","line":383,"updated":"2016-04-20 10:20:52.000000000","message":"Where does the \"19\" come from ?\n\nPlease use a more descriptive name than \"variable\". Everything is a variable.","commit_id":"ec1e703390e44b8bd2c932be48c3955fd2e9b11f"},{"author":{"_account_id":13342,"name":"Abhishek G M","email":"abhishek.gm@hpe.com","username":"abhishek60014726"},"change_message_id":"c51a1af51f679e2387d66a0d7a3658456c7e3083","unresolved":false,"context_lines":[{"line_number":380,"context_line":"                               stdout\u003dsubprocess.PIPE,"},{"line_number":381,"context_line":"                               stderr\u003dsubprocess.PIPE)"},{"line_number":382,"context_line":"        output \u003d ssh.stdout.readlines()"},{"line_number":383,"context_line":"        variable \u003d output[19].split()[0]"},{"line_number":384,"context_line":"        return variable"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    def _check_for_ip_address_ctrl(self, HOST, router_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_5dada2e7","line":383,"in_reply_to":"1a122d0e_5b120058","updated":"2016-04-21 05:31:16.000000000","message":"I want to verify whether qg interface has got ip address or not. That is the reason i used output[19] to check the qg interface has got ipaddress.\n\nSure i will change the variable name","commit_id":"ec1e703390e44b8bd2c932be48c3955fd2e9b11f"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5da2bcb732a531d04ca700f8f085ddfa17387b54","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        self.addCleanup(self.admin_routers_client.delete_router,"},{"line_number":404,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027])"},{"line_number":405,"context_line":"        router_id \u003d create_body[\u0027router\u0027][\u0027id\u0027]"},{"line_number":406,"context_line":"        time.sleep(20)"},{"line_number":407,"context_line":"        router \u003d self.admin_routers_client.list_l3_agents_hosting_router("},{"line_number":408,"context_line":"            router_id)"},{"line_number":409,"context_line":"        count \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_3b1e245f","line":406,"updated":"2016-04-20 10:20:52.000000000","message":"Why sleep 20 sec ? Why not 19 ?","commit_id":"ec1e703390e44b8bd2c932be48c3955fd2e9b11f"},{"author":{"_account_id":13342,"name":"Abhishek G M","email":"abhishek.gm@hpe.com","username":"abhishek60014726"},"change_message_id":"86d68fe97c52869499c819fcaa51de492faa9748","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        self.addCleanup(self.admin_routers_client.delete_router,"},{"line_number":404,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027])"},{"line_number":405,"context_line":"        router_id \u003d create_body[\u0027router\u0027][\u0027id\u0027]"},{"line_number":406,"context_line":"        time.sleep(20)"},{"line_number":407,"context_line":"        router \u003d self.admin_routers_client.list_l3_agents_hosting_router("},{"line_number":408,"context_line":"            router_id)"},{"line_number":409,"context_line":"        count \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_0137484d","line":406,"in_reply_to":"1a122d0e_3b1e245f","updated":"2016-04-21 06:33:44.000000000","message":"When router is created, It takes around 20 sec to show the \"active\" l3 agent for the created router.","commit_id":"ec1e703390e44b8bd2c932be48c3955fd2e9b11f"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5da2bcb732a531d04ca700f8f085ddfa17387b54","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        if create_body[\u0027router\u0027][\u0027ha\u0027] is True and count \u003d\u003d 2:"},{"line_number":419,"context_line":"            self.admin_agents_client.update_agent(agent_id\u003dl3_agent,"},{"line_number":420,"context_line":"                                                  agent\u003dagent_status)"},{"line_number":421,"context_line":"            time.sleep(10)"},{"line_number":422,"context_line":"            ip_address1 \u003d self._check_for_ip_address_ctrl(active_host_name,"},{"line_number":423,"context_line":"                                                          router_id)"},{"line_number":424,"context_line":"            ip_address2 \u003d self._check_for_ip_address_updated_ctrl("}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_5b3960d6","line":421,"updated":"2016-04-20 10:20:52.000000000","message":"Why sleep 10 sec ?","commit_id":"ec1e703390e44b8bd2c932be48c3955fd2e9b11f"},{"author":{"_account_id":13342,"name":"Abhishek G M","email":"abhishek.gm@hpe.com","username":"abhishek60014726"},"change_message_id":"e702ab8d8487a4f661162da749f2a0732016c801","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        if create_body[\u0027router\u0027][\u0027ha\u0027] is True and count \u003d\u003d 2:"},{"line_number":419,"context_line":"            self.admin_agents_client.update_agent(agent_id\u003dl3_agent,"},{"line_number":420,"context_line":"                                                  agent\u003dagent_status)"},{"line_number":421,"context_line":"            time.sleep(10)"},{"line_number":422,"context_line":"            ip_address1 \u003d self._check_for_ip_address_ctrl(active_host_name,"},{"line_number":423,"context_line":"                                                          router_id)"},{"line_number":424,"context_line":"            ip_address2 \u003d self._check_for_ip_address_updated_ctrl("}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_1d432a14","line":421,"in_reply_to":"1a122d0e_5b3960d6","updated":"2016-04-21 05:37:04.000000000","message":"The switch over of router interface takes some time after making admin state of l3 agent to false","commit_id":"ec1e703390e44b8bd2c932be48c3955fd2e9b11f"},{"author":{"_account_id":16437,"name":"Anna Babich","email":"anna.v.babich@gmail.com","username":"ababich"},"change_message_id":"999ee19d632401e1a66793c2490f6c47cdab52e9","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        self.addCleanup(self.admin_routers_client.delete_router,"},{"line_number":404,"context_line":"                        create_body[\u0027router\u0027][\u0027id\u0027])"},{"line_number":405,"context_line":"        router_id \u003d create_body[\u0027router\u0027][\u0027id\u0027]"},{"line_number":406,"context_line":"        time.sleep(20)"},{"line_number":407,"context_line":"        router \u003d self.admin_routers_client.list_l3_agents_hosting_router("},{"line_number":408,"context_line":"            router_id)"},{"line_number":409,"context_line":"        count \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_ff863bda","line":406,"updated":"2016-10-04 11:56:09.000000000","message":"But this value will vary, it depends on environment where tests are run. IMO, we shouldn\u0027t hard-code any time intervals like this in test\u0027s code, except timeouts taken from tempest configuration. It\u0027s better to create some waiters\u0027 method to poll a router to reach Active state instead of sleep().","commit_id":"ed87eb09d1560b75550418f07a42b1573ac90626"}]}
