Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
    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)
Пример #8
0
 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)
Пример #9
0
 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)