~hudson-openstack/nova/trunk

« back to all changes in this revision

Viewing changes to nova/tests/integrated/test_servers.py

  • Committer: Tarmac
  • Author(s): Brian Lamar, Dan Prince
  • Date: 2011-08-31 22:55:34 UTC
  • mfrom: (1443.3.61 instance_states)
  • Revision ID: tarmac-20110831225534-upfhtsvcsafyql6x
Fixed and improved the way instance "states" are set. Instead of relying on solely the power_state of a VM, there are now explicitly defined VM states and VM task states which respectively define the current state of the VM and the task which is currently being performed by the VM.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
 
29
29
class ServersTest(integrated_helpers._IntegratedTestBase):
30
30
 
 
31
    def _wait_for_creation(self, server):
 
32
        retries = 0
 
33
        while server['status'] == 'BUILD':
 
34
            time.sleep(1)
 
35
            server = self.api.get_server(server['id'])
 
36
            print server
 
37
            retries = retries + 1
 
38
            if retries > 5:
 
39
                break
 
40
        return server
 
41
 
31
42
    def test_get_servers(self):
32
43
        """Simple check that listing servers works."""
33
44
        servers = self.api.get_servers()
36
47
 
37
48
    def test_create_and_delete_server(self):
38
49
        """Creates and deletes a server."""
 
50
        self.flags(stub_network=True)
39
51
 
40
52
        # Create server
41
 
 
42
53
        # Build the server data gradually, checking errors along the way
43
54
        server = {}
44
55
        good_server = self._build_minimal_create_server_request()
91
102
        server_ids = [server['id'] for server in servers]
92
103
        self.assertTrue(created_server_id in server_ids)
93
104
 
94
 
        # Wait (briefly) for creation
95
 
        retries = 0
96
 
        while found_server['status'] == 'build':
97
 
            LOG.debug("found server: %s" % found_server)
98
 
            time.sleep(1)
99
 
            found_server = self.api.get_server(created_server_id)
100
 
            retries = retries + 1
101
 
            if retries > 5:
102
 
                break
 
105
        found_server = self._wait_for_creation(found_server)
103
106
 
104
107
        # It should be available...
105
108
        # TODO(justinsb): Mock doesn't yet do this...
106
 
        #self.assertEqual('available', found_server['status'])
 
109
        self.assertEqual('ACTIVE', found_server['status'])
107
110
        servers = self.api.get_servers(detail=True)
108
111
        for server in servers:
109
112
            self.assertTrue("image" in server)
181
184
 
182
185
    def test_create_and_rebuild_server(self):
183
186
        """Rebuild a server."""
 
187
        self.flags(stub_network=True)
184
188
 
185
189
        # create a server with initially has no metadata
186
190
        server = self._build_minimal_create_server_request()
190
194
        self.assertTrue(created_server['id'])
191
195
        created_server_id = created_server['id']
192
196
 
 
197
        created_server = self._wait_for_creation(created_server)
 
198
 
193
199
        # rebuild the server with metadata
194
200
        post = {}
195
201
        post['rebuild'] = {
212
218
 
213
219
    def test_create_and_rebuild_server_with_metadata(self):
214
220
        """Rebuild a server with metadata."""
 
221
        self.flags(stub_network=True)
215
222
 
216
223
        # create a server with initially has no metadata
217
224
        server = self._build_minimal_create_server_request()
221
228
        self.assertTrue(created_server['id'])
222
229
        created_server_id = created_server['id']
223
230
 
 
231
        created_server = self._wait_for_creation(created_server)
 
232
 
224
233
        # rebuild the server with metadata
225
234
        post = {}
226
235
        post['rebuild'] = {
248
257
 
249
258
    def test_create_and_rebuild_server_with_metadata_removal(self):
250
259
        """Rebuild a server with metadata."""
 
260
        self.flags(stub_network=True)
251
261
 
252
262
        # create a server with initially has no metadata
253
263
        server = self._build_minimal_create_server_request()
264
274
        self.assertTrue(created_server['id'])
265
275
        created_server_id = created_server['id']
266
276
 
 
277
        created_server = self._wait_for_creation(created_server)
 
278
 
267
279
        # rebuild the server with metadata
268
280
        post = {}
269
281
        post['rebuild'] = {