def test_router_resetrouterrules(self): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) default_rules = [{'source': 'any', 'destination': 'any', 'action': 'permit', 'nexthops': [], 'id': '2'}] del post_router['router_rules'][:] post_router['router_rules'].extend(default_rules) api.neutron.is_extension_supported(IsA(http.HttpRequest), 'extraroute')\ .AndReturn(False) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(post_router) params = {} params['router_rules'] = rulemanager.format_for_api( post_router['router_rules']) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) router_update.AndReturn({'router': post_router}) api.neutron.port_list(IsA(http.HttpRequest), device_id=pre_router.id)\ .AndReturn([self.ports.first()]) self._mock_external_network_get(pre_router) self._mock_network_list(pre_router['tenant_id']) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(post_router) self.mox.ReplayAll() form_data = {'router_id': pre_router.id, 'action': 'routerrules__resetrules'} url = reverse(self.DETAIL_PATH, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res)
def _test_router_addrouterrule(self, raise_error=False): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) rule = { "source": "1.2.3.4/32", "destination": "4.3.2.1/32", "id": 99, "action": "permit", "nexthops": ["1.1.1.1", "2.2.2.2"], } post_router["router_rules"].insert(0, rule) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) params = {} params["router_rules"] = rulemanager.format_for_api(post_router["router_rules"]) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) if raise_error: router_update.AndRaise(self.exceptions.neutron) else: router_update.AndReturn({"router": post_router}) self.mox.ReplayAll() form_data = { "router_id": pre_router.id, "source": rule["source"], "destination": rule["destination"], "action": rule["action"], "nexthops": ",".join(rule["nexthops"]), } url = reverse("horizon:%s:routers:addrouterrule" % self.DASHBOARD, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res) detail_url = reverse(self.DETAIL_PATH, args=[pre_router.id]) self.assertRedirectsNoFollow(res, detail_url)
def _test_router_addrouterrule(self, raise_error=False): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) rule = {'source': '1.2.3.4/32', 'destination': '4.3.2.1/32', 'id': 99, 'action': 'permit', 'nexthops': ['1.1.1.1', '2.2.2.2']} post_router['router_rules'].insert(0, rule) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) params = {} params['router_rules'] = rulemanager.format_for_api( post_router['router_rules']) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) if raise_error: router_update.AndRaise(self.exceptions.neutron) else: router_update.AndReturn({'router': post_router}) self.mox.ReplayAll() form_data = {'router_id': pre_router.id, 'source': rule['source'], 'destination': rule['destination'], 'action': rule['action'], 'nexthops': ','.join(rule['nexthops'])} url = reverse('horizon:%s:routers:addrouterrule' % self.DASHBOARD, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res) detail_url = reverse(self.DETAIL_PATH, args=[pre_router.id]) self.assertRedirectsNoFollow(res, detail_url)
def test_router_removerouterrule(self): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) rule = post_router['router_rules'].pop() api.neutron.is_extension_supported(IsA(http.HttpRequest), 'extraroute')\ .AndReturn(False) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) params = {} params['router_rules'] = rulemanager.format_for_api( post_router['router_rules']) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) router_update.AndReturn({'router': post_router}) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) api.neutron.port_list(IsA(http.HttpRequest), device_id=pre_router.id)\ .AndReturn([self.ports.first()]) self._mock_external_network_get(pre_router) self.mox.ReplayAll() form_rule_id = rule['source'] + rule['destination'] form_data = {'router_id': pre_router.id, 'action': 'routerrules__delete__%s' % form_rule_id} url = reverse(self.DETAIL_PATH, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res)
def test_router_resetrouterrules(self): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) default_rules = [{ 'source': 'any', 'destination': 'any', 'action': 'permit', 'nexthops': [], 'id': '2' }] del post_router['router_rules'][:] post_router['router_rules'].extend(default_rules) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(post_router) params = {} params['router_rules'] = rulemanager.format_for_api( post_router['router_rules']) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) router_update.AndReturn({'router': post_router}) api.neutron.port_list(IsA(http.HttpRequest), device_id=pre_router.id)\ .AndReturn([self.ports.first()]) self._mock_external_network_get(pre_router) self._mock_network_list(pre_router['tenant_id']) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(post_router) self.mox.ReplayAll() form_data = { 'router_id': pre_router.id, 'action': 'routerrules__resetrules' } url = reverse(self.DETAIL_PATH, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res)
def test_router_removerouterrule(self): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) rule = post_router['router_rules'].pop() api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) params = {} params['router_rules'] = rulemanager.format_for_api( post_router['router_rules']) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) router_update.AndReturn({'router': post_router}) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) api.neutron.port_list(IsA(http.HttpRequest), device_id=pre_router.id)\ .AndReturn([self.ports.first()]) self._mock_external_network_get(pre_router) self.mox.ReplayAll() form_rule_id = rule['source'] + rule['destination'] form_data = { 'router_id': pre_router.id, 'action': 'routerrules__delete__%s' % form_rule_id } url = reverse(self.DETAIL_PATH, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res)
def _test_router_addrouterrule(self, raise_error=False): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) rule = {'source': '1.2.3.4/32', 'destination': '4.3.2.1/32', 'id': 99, 'action': 'permit', 'nexthops': ['1.1.1.1', '2.2.2.2']} post_router['router_rules'].insert(0, rule) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) params = {} params['router_rules'] = rulemanager.format_for_api( post_router['router_rules']) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) if raise_error: router_update.AndRaise(self.exceptions.neutron) else: router_update.AndReturn({'router': post_router}) self.mox.ReplayAll() form_data = {'router_id': pre_router.id, 'source': rule['source'], 'destination': rule['destination'], 'action': rule['action'], 'nexthops': ','.join(rule['nexthops'])} url = reverse('horizon:%s:routers:addrouterrule' % self.DASHBOARD, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res) detail_url = reverse(self.DETAIL_PATH, args=[pre_router.id]) self.assertRedirectsNoFollow(res, detail_url)
def test_router_removerouterrule(self): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) rule = post_router["router_rules"].pop() api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) params = {} params["router_rules"] = rulemanager.format_for_api(post_router["router_rules"]) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) router_update.AndReturn({"router": post_router}) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(pre_router) api.neutron.port_list(IsA(http.HttpRequest), device_id=pre_router.id).AndReturn([self.ports.first()]) self._mock_external_network_get(pre_router) self.mox.ReplayAll() form_rule_id = rule["source"] + rule["destination"] form_data = {"router_id": pre_router.id, "action": "routerrules__delete__%s" % form_rule_id} url = reverse(self.DETAIL_PATH, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res)
def test_router_resetrouterrules(self): pre_router = self.routers_with_rules.first() post_router = copy.deepcopy(pre_router) default_rules = [{"source": "any", "destination": "any", "action": "permit", "nexthops": [], "id": "2"}] del post_router["router_rules"][:] post_router["router_rules"].extend(default_rules) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(post_router) params = {} params["router_rules"] = rulemanager.format_for_api(post_router["router_rules"]) router_update = api.neutron.router_update(IsA(http.HttpRequest), pre_router.id, **params) router_update.AndReturn({"router": post_router}) api.neutron.port_list(IsA(http.HttpRequest), device_id=pre_router.id).AndReturn([self.ports.first()]) self._mock_external_network_get(pre_router) self._mock_network_list(pre_router["tenant_id"]) api.neutron.router_get(IsA(http.HttpRequest), pre_router.id).AndReturn(post_router) self.mox.ReplayAll() form_data = {"router_id": pre_router.id, "action": "routerrules__resetrules"} url = reverse(self.DETAIL_PATH, args=[pre_router.id]) res = self.client.post(url, form_data) self.assertNoFormErrors(res)