Exemplo n.º 1
0
    def test_firewall_add_router(self):
        tenant_id = self.tenant.id
        firewall = self.firewalls.first()
        routers = self.routers.list()

        existing_router_ids = firewall.router_ids
        add_router_ids = [routers[1].id]

        form_data = {'router_ids': add_router_ids}
        post_data = {'router_ids': add_router_ids + existing_router_ids}

        api_fwaas.firewall_get(
            IsA(http.HttpRequest), firewall.id).AndReturn(firewall)
        api_fwaas.firewall_unassociated_routers_list(
            IsA(http.HttpRequest), tenant_id).AndReturn(routers)

        firewall.router_ids = [add_router_ids, existing_router_ids]

        api_fwaas.firewall_update(
            IsA(http.HttpRequest),
            firewall.id, **post_data).AndReturn(firewall)

        self.mox.ReplayAll()

        res = self.client.post(
            reverse(self.ADDROUTER_PATH, args=(firewall.id,)), form_data)

        self.assertNoFormErrors(res)
        self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
Exemplo n.º 2
0
    def test_update_firewall_post(self):
        firewall = self.firewalls.first()
        tenant_id = self.tenant.id
        api_fwaas.firewall_get(IsA(http.HttpRequest),
                               firewall.id).AndReturn(firewall)

        data = {'name': 'new name',
                'description': 'new desc',
                'firewall_policy_id': firewall.firewall_policy_id,
                'admin_state_up': False
                }

        policies = self.fw_policies.list()
        api_fwaas.policy_list_for_tenant(
            IsA(http.HttpRequest), tenant_id).AndReturn(policies)

        api_fwaas.firewall_update(IsA(http.HttpRequest), firewall.id, **data)\
            .AndReturn(firewall)

        self.mox.ReplayAll()

        res = self.client.post(
            reverse(self.UPDATEFIREWALL_PATH, args=(firewall.id,)), data)

        self.assertNoFormErrors(res)
        self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
    def test_firewall_update(self):
        firewall = self.firewalls.first()
        firewall_dict = self.api_firewalls.first()

        firewall.name = 'new name'
        firewall.description = 'new desc'
        firewall.admin_state_up = False

        firewall_dict['name'] = 'new name'
        firewall_dict['description'] = 'new desc'
        firewall_dict['admin_state_up'] = False

        form_data = {
            'name': firewall.name,
            'description': firewall.description,
            'admin_state_up': firewall.admin_state_up
        }

        form_dict = {'firewall': form_data}
        ret_dict = {'firewall': firewall_dict}

        neutronclient.update_firewall(firewall.id,
                                      form_dict).AndReturn(ret_dict)
        self.mox.ReplayAll()

        ret_val = api_fwaas.firewall_update(self.request, firewall.id,
                                            **form_data)
        self.assertIsInstance(ret_val, api_fwaas.Firewall)
        self.assertEqual(firewall.name, ret_val.name)
        self.assertTrue(ret_val.id)
Exemplo n.º 4
0
 def handle(self, request, context):
     firewall_id = self.initial['firewall_id']
     firewall_name_or_id = self.initial['name'] or firewall_id
     try:
         body = {'router_ids': self.get_new_router_ids(context)}
         firewall = api_fwaas.firewall_update(request, firewall_id, **body)
         msg = (_('Router(s)  was successfully removed from firewall '
                  '%(firewall)s.') % {
                      'firewall': firewall_name_or_id
                  })
         messages.success(request, msg)
         return firewall
     except Exception as e:
         LOG.error(
             'Failed to remove router(s) from firewall %(id)s: '
             '%(reason)s', {
                 'id': firewall_id,
                 'reason': e
             })
         msg = (_('Failed to remove router(s) from firewall %(name)s: '
                  '%(reason)s') % {
                      'name': firewall_name_or_id,
                      'reason': e
                  })
         redirect = reverse(self.failure_url)
         exceptions.handle(request, msg, redirect=redirect)
    def test_firewall_update(self):
        firewall = self.firewalls.first()
        firewall_dict = self.api_firewalls.first()

        firewall.name = 'new name'
        firewall.description = 'new desc'
        firewall.admin_state_up = False

        firewall_dict['name'] = 'new name'
        firewall_dict['description'] = 'new desc'
        firewall_dict['admin_state_up'] = False

        form_data = {'name': firewall.name,
                     'description': firewall.description,
                     'admin_state_up': firewall.admin_state_up
                     }

        form_dict = {'firewall': form_data}
        ret_dict = {'firewall': firewall_dict}

        self.mock_update_firewall.return_value = ret_dict

        ret_val = api_fwaas.firewall_update(self.request,
                                            firewall.id, **form_data)
        self.assertIsInstance(ret_val, api_fwaas.Firewall)
        self.assertEqual(firewall.name, ret_val.name)
        self.assertTrue(ret_val.id)
        self.mock_update_firewall.assert_called_once_with(firewall.id,
                                                          form_dict)
Exemplo n.º 6
0
    def test_firewall_remove_router(self):
        firewall = self.firewalls.first()
        tenant_id = self.tenant.id
        routers = self.routers.list()
        existing_router_ids = firewall.router_ids

        form_data = {'router_ids': existing_router_ids}

        api_fwaas.firewall_get(IsA(http.HttpRequest),
                               firewall.id).AndReturn(firewall)
        api.neutron.router_list(IsA(http.HttpRequest),
                                tenant_id=tenant_id).AndReturn(routers)
        firewall.router_ids = []
        api_fwaas.firewall_update(IsA(http.HttpRequest), firewall.id,
                                  **form_data).AndReturn(firewall)

        self.mox.ReplayAll()

        res = self.client.post(
            reverse(self.REMOVEROUTER_PATH, args=(firewall.id, )), form_data)

        self.assertNoFormErrors(res)
        self.assertRedirectsNoFollow(res, str(self.INDEX_URL))
Exemplo n.º 7
0
 def handle(self, request, context):
     firewall_id = self.initial['firewall_id']
     name_or_id = context.get('name') or firewall_id
     try:
         firewall = api_fwaas.firewall_update(request, firewall_id,
                                              **context)
         msg = _('Firewall %s was successfully updated.') % name_or_id
         messages.success(request, msg)
         return firewall
     except Exception as e:
         LOG.error('Failed to update firewall %(id)s: %(reason)s', {
             'id': firewall_id,
             'reason': e
         })
         msg = (_('Failed to update firewall %(name)s: %(reason)s') % {
             'name': name_or_id,
             'reason': e
         })
         redirect = reverse(self.failure_url)
         exceptions.handle(request, msg, redirect=redirect)