)]}'
{"shade/openstackcloud.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"aa64fa72ce515ca3640e95e4cb6411b38ef9c9bf","unresolved":false,"context_lines":[{"line_number":4436,"context_line":"        if ext_gw_info:"},{"line_number":4437,"context_line":"            router[\u0027external_gateway_info\u0027] \u003d ext_gw_info"},{"line_number":4438,"context_line":""},{"line_number":4439,"context_line":"        if routes:"},{"line_number":4440,"context_line":"            router[\u0027routes\u0027] \u003d routes"},{"line_number":4441,"context_line":""},{"line_number":4442,"context_line":"        if not router:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_75f969c3","line":4439,"updated":"2018-07-24 21:10:54.000000000","message":"according to neutron API ref, it is available only when \"extraroute\" extension is available: https://developer.openstack.org/api-ref/network/v2/#extra-routes-extension\nso You should check here if this extension is available in the cloud.","commit_id":"1a04677b5e1aac08e8603ce6e3aa14563c17f725"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"33d670517b1ff5008fe9f7fa0ab3d1286003f3cc","unresolved":false,"context_lines":[{"line_number":4436,"context_line":"        if ext_gw_info:"},{"line_number":4437,"context_line":"            router[\u0027external_gateway_info\u0027] \u003d ext_gw_info"},{"line_number":4438,"context_line":""},{"line_number":4439,"context_line":"        if routes:"},{"line_number":4440,"context_line":"            router[\u0027routes\u0027] \u003d routes"},{"line_number":4441,"context_line":""},{"line_number":4442,"context_line":"        if not router:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_2aa4d004","line":4439,"updated":"2018-07-25 20:01:42.000000000","message":"what about validation if \"extraroute\" is available in neutron?","commit_id":"649ca72e1f29f1872a57b3dc353f361a1818c19e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"60d6ca04bdd74a48e991eea3e038055296b887e4","unresolved":false,"context_lines":[{"line_number":4440,"context_line":"            if not self._has_neutron_extension(\u0027extraroute\u0027):"},{"line_number":4441,"context_line":"                self.log.warn("},{"line_number":4442,"context_line":"                    \u0027extra routes extension is not available on target cloud\u0027)"},{"line_number":4443,"context_line":"            router[\u0027routes\u0027] \u003d routes"},{"line_number":4444,"context_line":""},{"line_number":4445,"context_line":"        if not router:"},{"line_number":4446,"context_line":"            self.log.debug(\"No router data to update\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_56b3eeec","line":4443,"updated":"2018-07-26 08:50:03.000000000","message":"one, last concern. If extension is not available, will request be fine if You will add \"router\" to body?","commit_id":"93577cf1735a4bf696d6d130b1157c85a4228275"},{"author":{"_account_id":8532,"name":"Ryan Brady","email":"rbrady@redhat.com","username":"rbrady"},"change_message_id":"0f7f4689d59c327e1d85cd81df38dddc0b2c6fd7","unresolved":false,"context_lines":[{"line_number":4440,"context_line":"            if not self._has_neutron_extension(\u0027extraroute\u0027):"},{"line_number":4441,"context_line":"                self.log.warn("},{"line_number":4442,"context_line":"                    \u0027extra routes extension is not available on target cloud\u0027)"},{"line_number":4443,"context_line":"            router[\u0027routes\u0027] \u003d routes"},{"line_number":4444,"context_line":""},{"line_number":4445,"context_line":"        if not router:"},{"line_number":4446,"context_line":"            self.log.debug(\"No router data to update\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_8317019e","line":4443,"in_reply_to":"5f7c97a3_56b3eeec","updated":"2018-07-26 11:56:59.000000000","message":"I\u0027m not sure, but the latest change should mitigate that.","commit_id":"93577cf1735a4bf696d6d130b1157c85a4228275"}],"shade/tests/functional/test_router.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"aa64fa72ce515ca3640e95e4cb6411b38ef9c9bf","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        routes \u003d [{"},{"line_number":284,"context_line":"            \"destination\": \"10.8.8.0/24\","},{"line_number":285,"context_line":"            \"nexthop\": \"10.8.8.99\""},{"line_number":286,"context_line":"        }]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        updated \u003d self.operator_cloud.update_router("}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_3589b124","line":285,"updated":"2018-07-24 21:10:54.000000000","message":"according to comment in neutron code: https://github.com/openstack/neutron/blob/14cfb7181d3ac1f645585d791493766280e2dfa0/neutron/db/extraroute_db.py#L79 nexthop should belongs to cidr from one of router ports.\nSo to make You test passing You should create some network with subnet and connect it to router before creating this extra route.","commit_id":"1a04677b5e1aac08e8603ce6e3aa14563c17f725"},{"author":{"_account_id":8532,"name":"Ryan Brady","email":"rbrady@redhat.com","username":"rbrady"},"change_message_id":"69462766fcefba54fd27347750923a61fadbaac5","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        routes \u003d [{"},{"line_number":284,"context_line":"            \"destination\": \"10.8.8.0/24\","},{"line_number":285,"context_line":"            \"nexthop\": \"10.8.8.99\""},{"line_number":286,"context_line":"        }]"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        updated \u003d self.operator_cloud.update_router("}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_eb66e756","line":285,"in_reply_to":"5f7c97a3_3589b124","updated":"2018-07-25 19:51:57.000000000","message":"The call to _create_and_verify_advanced_router[1] creates the network and subnet.  Thank you for the link!  Reading the code here was very helpful though as it helped me understand the destination needs to be a CIDR of a network attached to the router and the next hop needs to be an IP within that range.","commit_id":"1a04677b5e1aac08e8603ce6e3aa14563c17f725"}]}
