blob: e81f5faec7c311f7933890c74dbdfbb62178f7e8 [file] [log] [blame]
Daryl Wallecked8bef32011-12-05 23:02:08 -06001from nose.plugins.attrib import attr
2from tempest import openstack
3from tempest import exceptions
4from tempest.common.utils.data_utils import rand_name
5import base64
Daryl Wallecked8bef32011-12-05 23:02:08 -06006import unittest2 as unittest
7
8
9class ServerPersonalityTest(unittest.TestCase):
10
11 @classmethod
12 def setUpClass(cls):
13 cls.os = openstack.Manager()
14 cls.client = cls.os.servers_client
15 cls.config = cls.config = cls.os.config
16 cls.image_ref = cls.config.env.image_ref
17 cls.flavor_ref = cls.config.env.flavor_ref
18 cls.user_client = cls.os.limits_client
19
20 def test_personality_files_exceed_limit(self):
21 """
22 Server creation should fail if greater than the maximum allowed
23 number of files are injected into the server.
24 """
25 name = rand_name('server')
26 file_contents = 'This is a test file.'
27 personality = []
28 resp, max_file_limit = self.user_client.get_personality_file_limit()
29 for i in range(0, max_file_limit + 1):
30 path = 'etc/test' + str(i) + '.txt'
31 personality.append({'path': path,
32 'contents': base64.b64encode(file_contents)})
33 try:
34 resp, resp_body = self.client.create_server(name, self.image_ref,
35 self.flavor_ref,
36 personality=personality)
37 except exceptions.OverLimit:
38 pass
39 else:
40 self.fail('This request did not fail as expected')
41
42 @attr(type='positive')
43 def test_can_create_server_with_max_number_personality_files(self):
44 """
45 Server should be created successfully if maximum allowed number of
46 files is injected into the server during creation.
47 """
48 name = rand_name('server')
49 file_contents = 'This is a test file.'
50
51 resp, max_file_limit = self.user_client.get_personality_file_limit()
52 self.assertEqual(200, resp.status)
53
54 personality = []
55 for i in range(0, max_file_limit):
56 path = 'etc/test' + str(i) + '.txt'
57 personality.append({'path': path,
58 'contents': base64.b64encode(file_contents)})
59
60 resp, server = self.client.create_server(name, self.image_ref,
61 self.flavor_ref,
62 personality=personality)
63 self.assertEqual('202', resp['status'])
64
65 #Teardown
66 self.client.delete_server(server['id'])