def test_edit_rules_add_rule_exception(self): exception = engineclient_exceptions.ClientException('ClientException', message='ClientException') RULE_ID = '1' FROM_PORT = '-1' TO_PORT = '-1' IP_PROTOCOL = 'icmp' CIDR = '0.0.0.0/0' formData = {'method': 'AddRule', 'tenant_id': self.TEST_TENANT, 'security_group_id': SECGROUP_ID, 'from_port': FROM_PORT, 'to_port': TO_PORT, 'ip_protocol': IP_PROTOCOL, 'cidr': CIDR} self.mox.StubOutWithMock(api, 'security_group_rule_create') api.security_group_rule_create(IsA(http.HttpRequest), SECGROUP_ID, IP_PROTOCOL, FROM_PORT, TO_PORT, CIDR).AndRaise(exception) self.mox.ReplayAll() res = self.client.post(SG_EDIT_RULE_URL, formData) self.assertRedirectsNoFollow(res, SG_EDIT_RULE_URL)
def test_edit_rules_add_rule(self): RULE_ID = '1' FROM_PORT = '-1' TO_PORT = '-1' IP_PROTOCOL = 'icmp' CIDR = '0.0.0.0/0' new_rule = self.mox.CreateMock(api.SecurityGroup) new_rule.from_port = FROM_PORT new_rule.to_port = TO_PORT new_rule.ip_protocol = IP_PROTOCOL new_rule.cidr = CIDR new_rule.security_group_id = SECGROUP_ID new_rule.id = RULE_ID formData = {'method': 'AddRule', 'tenant_id': self.TEST_TENANT, 'security_group_id': SECGROUP_ID, 'from_port': FROM_PORT, 'to_port': TO_PORT, 'ip_protocol': IP_PROTOCOL, 'cidr': CIDR} self.mox.StubOutWithMock(api, 'security_group_rule_create') api.security_group_rule_create(IsA(http.HttpRequest), SECGROUP_ID, IP_PROTOCOL, FROM_PORT, TO_PORT, CIDR)\ .AndReturn(new_rule) self.mox.ReplayAll() res = self.client.post(SG_EDIT_RULE_URL, formData) self.assertRedirectsNoFollow(res, SG_EDIT_RULE_URL)
def handle(self, request, data): tenant_id = data['tenant_id'] try: LOG.info('Add security_group_rule: "%s"' % data) rule = api.security_group_rule_create(request, data['security_group_id'], data['ip_protocol'], data['from_port'], data['to_port'], data['cidr']) messages.success(request, _('Successfully added rule: %s') \ % rule.id) except engineclient_exceptions.ClientException, e: LOG.exception("ClientException in AddRule") messages.error(request, _('Error adding rule security group: %s') % e.message)