Exemplo n.º 1
0
    def test_edit_rules_get_exception(self):
        sec_group = self.security_groups.first()
        sec_group_list = self.security_groups.list()

        self.mox.StubOutWithMock(api, 'security_group_get')
        self.mox.StubOutWithMock(api, 'security_group_list')
        self.mox.StubOutWithMock(api, 'tenant_floating_ip_list')
        self.mox.StubOutWithMock(api.nova, 'keypair_list')
        self.mox.StubOutWithMock(api.nova, 'server_list')

        api.nova.server_list(IsA(http.HttpRequest),
                             all_tenants=True).AndReturn(self.servers.list())
        api.nova.keypair_list(IsA(http.HttpRequest)) \
                .AndReturn(self.keypairs.list())
        api.tenant_floating_ip_list(IsA(http.HttpRequest)) \
                                    .AndReturn(self.floating_ips.list())
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndRaise(self.exceptions.nova)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        self.mox.ReplayAll()

        res = self.client.get(self.edit_url)
        self.assertRedirects(res, INDEX_URL)
Exemplo n.º 2
0
    def test_edit_rules_get_exception(self):
        sec_group = self.security_groups.first()
        sec_group_list = self.security_groups.list()

        self.mox.StubOutWithMock(api, 'security_group_get')
        self.mox.StubOutWithMock(api, 'security_group_list')
        self.mox.StubOutWithMock(api, 'tenant_floating_ip_list')
        self.mox.StubOutWithMock(api.nova, 'keypair_list')
        self.mox.StubOutWithMock(api.nova, 'server_list')

        api.nova.server_list(IsA(http.HttpRequest),
                             all_tenants=True).AndReturn(self.servers.list())
        api.nova.keypair_list(IsA(http.HttpRequest)) \
                .AndReturn(self.keypairs.list())
        api.tenant_floating_ip_list(IsA(http.HttpRequest)) \
                                    .AndReturn(self.floating_ips.list())
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndRaise(self.exceptions.nova)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        self.mox.ReplayAll()

        res = self.client.get(self.edit_url)
        self.assertRedirects(res, INDEX_URL)
    def test_edit_rules_invalid_port_range(self):
        sec_group = self.security_groups.first()
        sec_group_list = self.security_groups.list()
        rule = self.security_group_rules.first()

        self.mox.StubOutWithMock(api, 'security_group_get')
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        self.mox.StubOutWithMock(api, 'security_group_list')
        api.security_group_list(IsA(
            http.HttpRequest)).AndReturn(sec_group_list)
        self.mox.ReplayAll()

        formData = {
            'method': 'AddRule',
            'security_group_id': sec_group.id,
            'from_port': rule.from_port,
            'to_port': int(rule.from_port) - 1,
            'ip_protocol': rule.ip_protocol,
            'cidr': rule.ip_range['cidr'],
            'source_group': ''
        }
        res = self.client.post(self.edit_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "greater than or equal to")
Exemplo n.º 4
0
    def test_edit_rules_add_rule_cidr_and_source_group(self):
        sec_group = self.security_groups.first()
        sec_group_other = self.security_groups.get(id=2)
        sec_group_list = self.security_groups.list()
        rule = self.security_group_rules.first()

        self.mox.StubOutWithMock(api, 'security_group_get')
        self.mox.StubOutWithMock(api, 'security_group_list')
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        self.mox.ReplayAll()

        formData = {'method': 'AddRule',
                    'security_group_id': sec_group.id,
                    'from_port': rule.from_port,
                    'to_port': rule.to_port,
                    'ip_protocol': rule.ip_protocol,
                    'cidr': "127.0.0.1/32",
                    'source_group': sec_group_other.id}
        res = self.client.post(self.edit_url, formData)
        self.assertNoMessages()
        msg = 'Either CIDR or Source Group may be specified, but not both.'
        self.assertFormErrors(res, count=1, message=msg)
Exemplo n.º 5
0
    def test_edit_rules_get_exception(self):
        sec_group = self.security_groups.first()

        self.mox.StubOutWithMock(api, 'security_group_get')
        exc = novaclient_exceptions.ClientException('ClientException')
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndRaise(exc)
        self.mox.ReplayAll()

        res = self.client.get(self.edit_url)
        self.assertRedirects(res, INDEX_URL)
Exemplo n.º 6
0
    def test_edit_rules_get(self):
        sec_group = self.security_groups.first()
        self.mox.StubOutWithMock(api, 'security_group_get')
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        self.mox.ReplayAll()

        res = self.client.get(self.edit_url)
        self.assertTemplateUsed(res,
                    'nova/access_and_security/security_groups/edit_rules.html')
        self.assertItemsEqual(res.context['security_group'].name,
                              sec_group.name)
Exemplo n.º 7
0
    def test_edit_rules_get_exception(self):
        sec_group = self.security_groups.first()

        self.mox.StubOutWithMock(api, 'security_group_get')
        self.mox.StubOutWithMock(api, 'security_group_list')

        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndRaise(self.exceptions.nova)
        self.mox.ReplayAll()

        res = self.client.get(self.edit_url)
        self.assertRedirectsNoFollow(res, INDEX_URL)
Exemplo n.º 8
0
    def test_edit_rules_get_exception(self):
        exception = novaclient_exceptions.ClientException('ClientException',
                                                  message='ClientException')

        self.mox.StubOutWithMock(api, 'security_group_get')
        api.security_group_get(IsA(http.HttpRequest), SECGROUP_ID).AndRaise(
                                   exception)

        self.mox.ReplayAll()

        res = self.client.get(SG_EDIT_RULE_URL)

        self.assertRedirectsNoFollow(res, SG_INDEX_URL)
Exemplo n.º 9
0
    def test_edit_rules_get(self):

        self.mox.StubOutWithMock(api, 'security_group_get')
        api.security_group_get(IsA(http.HttpRequest),
                               SECGROUP_ID).AndReturn(self.security_groups[0])

        self.mox.ReplayAll()

        res = self.client.get(SG_EDIT_RULE_URL)

        self.assertTemplateUsed(res, 'nova/security_groups/edit_rules.html')
        self.assertItemsEqual(res.context['security_group'].name,
                              self.security_groups[0].name)
Exemplo n.º 10
0
    def test_edit_rules_get(self):

        self.mox.StubOutWithMock(api, 'security_group_get')
        api.security_group_get(IsA(http.HttpRequest), SECGROUP_ID).AndReturn(
                                   self.security_groups[0])

        self.mox.ReplayAll()

        res = self.client.get(SG_EDIT_RULE_URL)

        self.assertTemplateUsed(res, 'nova/security_groups/edit_rules.html')
        self.assertItemsEqual(res.context['security_group'].name,
                              self.security_groups[0].name)
Exemplo n.º 11
0
    def test_edit_rules_get_exception(self):
        exception = novaclient_exceptions.ClientException(
            'ClientException', message='ClientException')

        self.mox.StubOutWithMock(api, 'security_group_get')
        api.security_group_get(IsA(http.HttpRequest),
                               SECGROUP_ID).AndRaise(exception)

        self.mox.ReplayAll()

        res = self.client.get(SG_EDIT_RULE_URL)

        self.assertRedirectsNoFollow(res, SG_INDEX_URL)
Exemplo n.º 12
0
def edit_rules(request, security_group_id):
    tenant_id = request.user.tenant_id
    add_form, handled = AddRule.maybe_handle(request,
                                             initial={
                                                 'tenant_id':
                                                 tenant_id,
                                                 'security_group_id':
                                                 security_group_id
                                             })
    if handled:
        return handled

    delete_form, handled = DeleteRule.maybe_handle(request,
                                                   initial={
                                                       'tenant_id':
                                                       tenant_id,
                                                       'security_group_id':
                                                       security_group_id
                                                   })
    if handled:
        return handled

    try:
        security_group = api.security_group_get(request, security_group_id)
    except novaclient_exceptions.ClientException, e:
        LOG.exception("ClientException in security_groups rules edit")
        messages.error(request,
                       _('Error getting security_group: %s') % e.message)
        return shortcuts.redirect('horizon:nova:access_and_security:index')
Exemplo n.º 13
0
 def get_context_data(self, request):
     image_id = self.tab_group.kwargs['image_id']
     try:
         image = api.quantum.image_get(self.request, image_id)
         image.category = api.quantum.category_get(self.request,
                                                   image.category_id)
         image.vendor = api.quantum.vendor_get(self.request,
                                                   image.vendor_id)
         image.full_flavor = api.flavor_get(self.request,
                                                   image.flavor_id)
         image.security_group = api.security_group_get(
                                        self.request, image.security_group_id)
         image.glance_image = api.glance.image_get(self.request,
                                                   image.image_id)
         metadata = api.quantum.metadata_list_for_image(self.request,
                                                   image_id)
         image.metadata = api.quantum.metadata_get(self.request,
                                                   metadata[0].id)
         personality = api.quantum.personality_list_for_image(self.request,
                                                   image_id)
         image.personality = api.quantum.personality_get(self.request,
                                                   personality[0].id)
         
     except:
         redirect = reverse('horizon:nova:images:index')
         msg = _('Unable to retrieve image map details.')
         exceptions.handle(request, msg, redirect=redirect)
     return {'image': image}
    def test_edit_rules_get_exception(self):
        sec_group = self.security_groups.first()
        sec_group_list = self.security_groups.list()

        self.mox.StubOutWithMock(api, 'security_group_get')
        exc = novaclient_exceptions.ClientException('ClientException')
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndRaise(exc)
        self.mox.StubOutWithMock(api, 'security_group_list')
        api.security_group_list(IsA(
            http.HttpRequest)).AndReturn(sec_group_list)
        api.security_group_list(IsA(
            http.HttpRequest)).AndReturn(sec_group_list)
        self.mox.ReplayAll()

        res = self.client.get(self.edit_url)
        self.assertRedirects(res, INDEX_URL)
Exemplo n.º 15
0
    def test_edit_rules_get(self):
        sec_group = self.security_groups.first()
        sec_group_list = self.security_groups.list()

        self.mox.StubOutWithMock(api, 'security_group_get')
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        self.mox.StubOutWithMock(api, 'security_group_list')
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        self.mox.ReplayAll()

        res = self.client.get(self.edit_url)
        self.assertTemplateUsed(res,
                'project/access_and_security/security_groups/edit_rules.html')
        self.assertItemsEqual(res.context['security_group'].name,
                              sec_group.name)
Exemplo n.º 16
0
 def get_data(self):
     security_group_id = int(self.kwargs["security_group_id"])
     try:
         self.object = api.security_group_get(self.request, security_group_id)
         rules = [api.nova.SecurityGroupRule(rule) for rule in self.object.rules]
     except:
         self.object = None
         rules = []
         exceptions.handle(self.request, _("Unable to retrieve security group."))
     return rules
Exemplo n.º 17
0
    def test_edit_rules_invalid_port_range(self):
        sec_group = self.security_groups.first()
        rule = self.security_group_rules.first()

        self.mox.StubOutWithMock(api, 'security_group_get')
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        self.mox.ReplayAll()

        formData = {'method': 'AddRule',
                    'tenant_id': self.tenant.id,
                    'security_group_id': sec_group.id,
                    'from_port': rule.from_port,
                    'to_port': int(rule.from_port) - 1,
                    'ip_protocol': rule.ip_protocol,
                    'cidr': rule.ip_range['cidr']}
        res = self.client.post(self.edit_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "greater than or equal to")
Exemplo n.º 18
0
 def get_data(self):
     security_group_id = self.kwargs['security_group_id']
     try:
         self.object = api.security_group_get(self.request,
                                             security_group_id)
         rules = [api.nova.SecurityGroupRule(rule) for
                  rule in self.object.rules]
     except novaclient_exceptions.ClientException, e:
         self.object = None
         rules = []
         LOG.exception("ClientException in security_groups rules edit")
         messages.error(self.request,
                        _('Error getting security_group: %s') % e)
Exemplo n.º 19
0
 def get_data(self):
     security_group_id = int(self.kwargs['security_group_id'])
     try:
         self.object = api.security_group_get(self.request,
                                              security_group_id)
         rules = [api.nova.SecurityGroupRule(rule) for
                  rule in self.object.rules]
     except:
         self.object = None
         rules = []
         exceptions.handle(self.request,
                           _('Unable to retrieve security group.'))
     return rules
Exemplo n.º 20
0
 def get_data(self):
     security_group_id = self.kwargs['security_group_id']
     try:
         self.object = api.security_group_get(self.request,
                                              security_group_id)
         rules = [
             api.nova.SecurityGroupRule(rule) for rule in self.object.rules
         ]
     except novaclient_exceptions.ClientException, e:
         self.object = None
         rules = []
         LOG.exception("ClientException in security_groups rules edit")
         messages.error(self.request,
                        _('Error getting security_group: %s') % e)
Exemplo n.º 21
0
def edit_rules(request, security_group_id):
    tenant_id = request.user.tenant_id
    add_form, handled = AddRule.maybe_handle(
        request, initial={"tenant_id": tenant_id, "security_group_id": security_group_id}
    )
    if handled:
        return handled

    delete_form, handled = DeleteRule.maybe_handle(
        request, initial={"tenant_id": tenant_id, "security_group_id": security_group_id}
    )
    if handled:
        return handled

    try:
        security_group = api.security_group_get(request, security_group_id)
    except novaclient_exceptions.ClientException, e:
        LOG.exception("ClientException in security_groups rules edit")
        messages.error(request, _("Error getting security_group: %s") % e.message)
        return shortcuts.redirect("horizon:nova:access_and_security:index")
Exemplo n.º 22
0
    def test_edit_rules_invalid_icmp_rule(self):
        sec_group = self.security_groups.first()
        sec_group_list = self.security_groups.list()
        icmp_rule = self.security_group_rules.list()[1]

        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        api.security_group_get(IsA(http.HttpRequest),
                               sec_group.id).AndReturn(sec_group)
        api.security_group_list(
                        IsA(http.HttpRequest)).AndReturn(sec_group_list)
        self.mox.ReplayAll()

        formData = {'method': 'AddRule',
                    'security_group_id': sec_group.id,
                    'from_port': 256,
                    'to_port': icmp_rule.to_port,
                    'ip_protocol': icmp_rule.ip_protocol,
                    'cidr': icmp_rule.ip_range['cidr'],
                    'source_group': ''}
        res = self.client.post(self.edit_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "The ICMP type not in range (-1, 255)")

        formData = {'method': 'AddRule',
                    'security_group_id': sec_group.id,
                    'from_port': icmp_rule.from_port,
                    'to_port': 256,
                    'ip_protocol': icmp_rule.ip_protocol,
                    'cidr': icmp_rule.ip_range['cidr'],
                    'source_group': ''}
        res = self.client.post(self.edit_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "The ICMP code not in range (-1, 255)")

        formData = {'method': 'AddRule',
                    'security_group_id': sec_group.id,
                    'from_port': icmp_rule.from_port,
                    'to_port': None,
                    'ip_protocol': icmp_rule.ip_protocol,
                    'cidr': icmp_rule.ip_range['cidr'],
                    'source_group': ''}
        res = self.client.post(self.edit_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "The ICMP code is invalid")

        formData = {'method': 'AddRule',
                    'security_group_id': sec_group.id,
                    'from_port': None,
                    'to_port': icmp_rule.to_port,
                    'ip_protocol': icmp_rule.ip_protocol,
                    'cidr': icmp_rule.ip_range['cidr'],
                    'source_group': ''}
        res = self.client.post(self.edit_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "The ICMP type is invalid")