~usc-isi/nova/hpc-trunk

« back to all changes in this revision

Viewing changes to nova/tests/test_metadata.py

  • Committer: Lorin Hochstein
  • Date: 2011-08-25 16:40:05 UTC
  • mfrom: (662.621.209 nova)
  • Revision ID: lorin@isi.edu-20110825164005-fkbcxu0ikwpxdq6r
Merged upstream revision 1492 with resolved conflicts

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
import webob
25
25
 
 
26
from nova import exception
26
27
from nova import test
27
28
from nova import wsgi
28
29
from nova.api.ec2 import metadatarequesthandler
29
30
from nova.db.sqlalchemy import api
30
31
 
31
32
 
 
33
USER_DATA_STRING = ("This is an encoded string")
 
34
ENCODE_USER_DATA_STRING = base64.b64encode(USER_DATA_STRING)
 
35
 
 
36
 
 
37
def return_non_existing_server_by_address(context, address):
 
38
    raise exception.NotFound()
 
39
 
 
40
 
32
41
class MetadataTestCase(test.TestCase):
33
42
    """Test that metadata is returning proper values."""
34
43
 
39
48
                         'key_name': None,
40
49
                         'host': 'test',
41
50
                         'launch_index': 1,
42
 
                         'instance_type': 'm1.tiny',
 
51
                         'instance_type': {'name': 'm1.tiny'},
43
52
                         'reservation_id': 'r-xxxxxxxx',
44
53
                         'user_data': '',
45
54
                         'image_ref': 7,
79
88
        self.stubs.Set(api, 'security_group_get_by_instance', sg_get)
80
89
        self.assertEqual(self.request('/meta-data/security-groups'),
81
90
                         'default\nother')
 
91
 
 
92
    def test_user_data_non_existing_fixed_address(self):
 
93
        self.stubs.Set(api, 'instance_get_all_by_filters',
 
94
                       return_non_existing_server_by_address)
 
95
        request = webob.Request.blank('/user-data')
 
96
        request.remote_addr = "127.1.1.1"
 
97
        response = request.get_response(self.app)
 
98
        self.assertEqual(response.status_int, 404)
 
99
 
 
100
    def test_user_data_none_fixed_address(self):
 
101
        self.stubs.Set(api, 'instance_get_all_by_filters',
 
102
                       return_non_existing_server_by_address)
 
103
        request = webob.Request.blank('/user-data')
 
104
        request.remote_addr = None
 
105
        response = request.get_response(self.app)
 
106
        self.assertEqual(response.status_int, 500)
 
107
 
 
108
    def test_user_data_invalid_url(self):
 
109
        request = webob.Request.blank('/user-data-invalid')
 
110
        request.remote_addr = "127.0.0.1"
 
111
        response = request.get_response(self.app)
 
112
        self.assertEqual(response.status_int, 404)
 
113
 
 
114
    def test_user_data_with_use_forwarded_header(self):
 
115
        self.instance['user_data'] = ENCODE_USER_DATA_STRING
 
116
        self.flags(use_forwarded_for=True)
 
117
        request = webob.Request.blank('/user-data')
 
118
        request.remote_addr = "127.0.0.1"
 
119
        response = request.get_response(self.app)
 
120
        self.assertEqual(response.status_int, 200)
 
121
        self.assertEqual(response.body, USER_DATA_STRING)