~cerberus/nova/xs_migrations

« back to all changes in this revision

Viewing changes to nova/tests/api/openstack/test_servers.py

  • Committer: Cerberus
  • Date: 2011-02-17 20:23:28 UTC
  • mfrom: (569.1.124 nova)
  • Revision ID: matt.dietz@rackspace.com-20110217202328-i5iswmy28n9dme63
MergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
#    License for the specific language governing permissions and limitations
16
16
#    under the License.
17
17
 
 
18
import datetime
18
19
import json
19
20
import unittest
20
21
 
39
40
    return stub_instance(id)
40
41
 
41
42
 
 
43
def return_server_with_addresses(private, public):
 
44
    def _return_server(context, id):
 
45
        return stub_instance(id, private_address=private,
 
46
                             public_addresses=public)
 
47
    return _return_server
 
48
 
 
49
 
42
50
def return_servers(context, user_id=1):
43
51
    return [stub_instance(i, user_id) for i in xrange(5)]
44
52
 
55
63
    return None
56
64
 
57
65
 
58
 
def stub_instance(id, user_id=1):
59
 
    return Instance(id=id, state=0, image_id=10, user_id=user_id,
60
 
                    display_name='server%s' % id)
 
66
def stub_instance(id, user_id=1, private_address=None, public_addresses=None):
 
67
    if public_addresses == None:
 
68
        public_addresses = list()
 
69
 
 
70
    instance = {
 
71
        "id": id,
 
72
        "admin_pass": "",
 
73
        "user_id": user_id,
 
74
        "project_id": "",
 
75
        "image_id": 10,
 
76
        "kernel_id": "",
 
77
        "ramdisk_id": "",
 
78
        "launch_index": 0,
 
79
        "key_name": "",
 
80
        "key_data": "",
 
81
        "state": 0,
 
82
        "state_description": "",
 
83
        "memory_mb": 0,
 
84
        "vcpus": 0,
 
85
        "local_gb": 0,
 
86
        "hostname": "",
 
87
        "host": "",
 
88
        "instance_type": "",
 
89
        "user_data": "",
 
90
        "reservation_id": "",
 
91
        "mac_address": "",
 
92
        "scheduled_at": datetime.datetime.now(),
 
93
        "launched_at": datetime.datetime.now(),
 
94
        "terminated_at": datetime.datetime.now(),
 
95
        "availability_zone": "",
 
96
        "display_name": "server%s" % id,
 
97
        "display_description": "",
 
98
        "locked": False}
 
99
 
 
100
    instance["fixed_ip"] = {
 
101
        "address": private_address,
 
102
        "floating_ips": [{"address":ip} for ip in public_addresses]}
 
103
 
 
104
    return instance
61
105
 
62
106
 
63
107
def fake_compute_api(cls, req, id):
105
149
        self.assertEqual(res_dict['server']['id'], '1')
106
150
        self.assertEqual(res_dict['server']['name'], 'server1')
107
151
 
 
152
    def test_get_server_by_id_with_addresses(self):
 
153
        private = "192.168.0.3"
 
154
        public = ["1.2.3.4"]
 
155
        new_return_server = return_server_with_addresses(private, public)
 
156
        self.stubs.Set(nova.db.api, 'instance_get', new_return_server)
 
157
        req = webob.Request.blank('/v1.0/servers/1')
 
158
        res = req.get_response(fakes.wsgi_app())
 
159
        res_dict = json.loads(res.body)
 
160
        self.assertEqual(res_dict['server']['id'], '1')
 
161
        self.assertEqual(res_dict['server']['name'], 'server1')
 
162
        addresses = res_dict['server']['addresses']
 
163
        self.assertEqual(len(addresses["public"]), len(public))
 
164
        self.assertEqual(addresses["public"][0], public[0])
 
165
        self.assertEqual(len(addresses["private"]), 1)
 
166
        self.assertEqual(addresses["private"][0], private)
 
167
 
108
168
    def test_get_server_list(self):
109
169
        req = webob.Request.blank('/v1.0/servers')
110
170
        res = req.get_response(fakes.wsgi_app())
281
341
        res = req.get_response(fakes.wsgi_app())
282
342
        self.assertEqual(res.status_int, 202)
283
343
 
 
344
    def test_server_reset_network(self):
 
345
        FLAGS.allow_admin_api = True
 
346
        body = dict(server=dict(
 
347
            name='server_test', imageId=2, flavorId=2, metadata={},
 
348
            personality={}))
 
349
        req = webob.Request.blank('/v1.0/servers/1/reset_network')
 
350
        req.method = 'POST'
 
351
        req.content_type = 'application/json'
 
352
        req.body = json.dumps(body)
 
353
        res = req.get_response(fakes.wsgi_app())
 
354
        self.assertEqual(res.status_int, 202)
 
355
 
284
356
    def test_server_diagnostics(self):
285
357
        req = webob.Request.blank("/v1.0/servers/1/diagnostics")
286
358
        req.method = "GET"