Пример #1
0
 def _make_request(self, url, method='GET'):
     req = webob.Request.blank(url)
     req.headers['Accept'] = self.content_type
     req.method = method
     res = req.get_response(
            fakes.wsgi_app_v21(init_only=('servers', 'os-server-password')))
     return res
Пример #2
0
 def test_get_version_list_302(self):
     req = webob.Request.blank('/v2.1')
     req.accept = "application/json"
     res = req.get_response(fakes.wsgi_app_v21())
     self.assertEqual(res.status_int, 302)
     redirect_req = webob.Request.blank('/v2.1/')
     self.assertEqual(res.location, redirect_req.url)
Пример #3
0
 def test_create_root_volume_bdm_v2(self):
     body = dict(server=dict(
             name='test_server', imageRef=IMAGE_UUID,
             flavorRef=2, min_count=1, max_count=1,
             block_device_mapping_v2=[dict(
                     source_type='volume',
                     uuid='1',
                     device_name='/dev/vda',
                     boot_index=0,
                     delete_on_termination=False,
                     )]
             ))
     req = fakes.HTTPRequest.blank('/v2/fake/os-volumes_boot')
     req.method = 'POST'
     req.body = jsonutils.dump_as_bytes(body)
     req.headers['content-type'] = 'application/json'
     res = req.get_response(fakes.wsgi_app_v21(
         init_only=('os-volumes', 'servers')))
     self.assertEqual(202, res.status_int)
     server = jsonutils.loads(res.body)['server']
     self.assertEqual(FAKE_UUID, server['id'])
     self.assertEqual(CONF.password_length, len(server['adminPass']))
     self.assertEqual(1, len(self._block_device_mapping_seen))
     self.assertFalse(self._legacy_bdm_seen)
     self.assertEqual('1', self._block_device_mapping_seen[0]['volume_id'])
     self.assertEqual(0, self._block_device_mapping_seen[0]['boot_index'])
     self.assertEqual('/dev/vda',
                      self._block_device_mapping_seen[0]['device_name'])
Пример #4
0
 def app(self):
     return fakes.wsgi_app_v21(init_only=('os-flavor-manage',
                                          'os-flavor-access',
                                          'os-flavor-rxtx', 'flavors',
                                          'os-flavor-extra-data'),
                              fake_auth_context=self._get_http_request().
                                  environ['nova.context'])
Пример #5
0
    def setUp(self):
        super(ServerActionsControllerTest, self).setUp()

        CONF.set_override('host', 'localhost', group='glance')
        self.stubs.Set(db, 'instance_get_by_uuid',
                       fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
                                               host='fake_host'))
        self.stubs.Set(db, 'instance_update_and_get_original',
                       instance_update_and_get_original)

        fakes.stub_out_nw_api(self.stubs)
        fakes.stub_out_compute_api_snapshot(self.stubs)
        fake.stub_out_image_service(self.stubs)
        self.flags(allow_instance_snapshots=True,
                   enable_instance_password=True)
        self.uuid = FAKE_UUID
        self.url = '/servers/%s/action' % self.uuid
        self._image_href = '155d900f-4e14-4e4c-a73d-069cbf4541e6'

        ext_info = plugins.LoadedExtensionInfo()
        self.controller = servers.ServersController(extension_info=ext_info)
        self.compute_api = self.controller.compute_api
        self.context = context.RequestContext('fake', 'fake')
        self.app = fakes.wsgi_app_v21(init_only=('servers',),
                                      fake_auth_context=self.context)
Пример #6
0
 def setUp(self):
     super(AdminPasswordTestV21, self).setUp()
     self.stubs.Set(compute_api.API, 'set_admin_password',
                    fake_set_admin_password)
     self.stubs.Set(compute_api.API, 'get', fake_get)
     self.app = fakes.wsgi_app_v21(init_only=('servers',
                                              self.plugin.ALIAS))
Пример #7
0
 def setUp(self):
     super(TestNoAuthMiddlewareV21, self).setUp()
     fakes.stub_out_rate_limiting(self.stubs)
     fakes.stub_out_networking(self)
     self.wsgi_app = fakes.wsgi_app_v21(use_no_auth=True)
     self.req_url = '/v2'
     self.expected_url = "http://localhost/v2/user1_project"
Пример #8
0
 def _make_request(self, url):
     req = webob.Request.blank(url)
     req.headers['Accept'] = self.content_type
     res = req.get_response(fakes.wsgi_app_v21(
         init_only=('servers',
                    'os-extended-status')))
     return res
Пример #9
0
 def test_microversions_no_header(self, mock_namespace):
     app = fakes.wsgi_app_v21(init_only='test-microversions')
     req = fakes.HTTPRequest.blank('/v2/fake/microversions')
     res = req.get_response(app)
     self.assertEqual(200, res.status_int)
     resp_json = jsonutils.loads(res.body)
     self.assertEqual('val', resp_json['param'])
 def _make_request(self, url):
     req = fakes.HTTPRequest.blank(url)
     req.headers['Accept'] = self.content_type
     req.headers = {os_wsgi.API_VERSION_REQUEST_HEADER:
                    'compute %s' % self.wsgi_api_version}
     res = req.get_response(
         fakes.wsgi_app_v21())
     return res
Пример #11
0
    def test_microversions2_version_too_high(self, mock_namespace, mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.5")

        app = fakes.wsgi_app_v21(init_only="test-microversions")
        req = fakes.HTTPRequest.blank("/v2/fake/microversions2")
        req.headers = {"X-OpenStack-Compute-API-Version": "3.2"}
        res = req.get_response(app)
        self.assertEqual(404, res.status_int)
Пример #12
0
 def test_microversions_with_header_exact_match(self, mock_namespace):
     app = fakes.wsgi_app_v21(init_only='test-microversions')
     req = fakes.HTTPRequest.blank('/v2/fake/microversions')
     req.headers = {'X-OpenStack-Compute-API-Version': '2.2'}
     res = req.get_response(app)
     self.assertEqual(200, res.status_int)
     resp_json = jsonutils.loads(res.body)
     self.assertEqual('val2', resp_json['param'])
Пример #13
0
 def test_microversions2_later_version(self, mock_namespace):
     app = fakes.wsgi_app_v21(init_only='test-microversions')
     req = fakes.HTTPRequest.blank('/v2/fake/microversions2')
     req.headers = {'X-OpenStack-Compute-API-Version': '3.0'}
     res = req.get_response(app)
     self.assertEqual(202, res.status_int)
     resp_json = jsonutils.loads(res.body)
     self.assertEqual('controller2_val2', resp_json['param'])
Пример #14
0
 def test_microversions_return_header(self, mock_namespace):
     app = fakes.wsgi_app_v21(init_only="test-microversions")
     req = fakes.HTTPRequest.blank("/v2/fake/microversions")
     res = req.get_response(app)
     self.assertEqual(200, res.status_int)
     resp_json = jsonutils.loads(res.body)
     self.assertEqual("val", resp_json["param"])
     self.assertEqual("2.1", res.headers["X-OpenStack-Compute-API-Version"])
     self.assertEqual("X-OpenStack-Compute-API-Version", res.headers["Vary"])
Пример #15
0
 def test_path_version_v21(self):
     # Test URL path specifying v2.1 returns v2.1 content.
     req = fakes.HTTPRequest.blank('/v2.1/')
     req.accept = "application/json"
     res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',)))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('v2.1', body['version']['id'])
Пример #16
0
 def test_get_version_21_detail(self):
     req = webob.Request.blank('/v2.1/')
     req.accept = "application/json"
     res = req.get_response(fakes.wsgi_app_v21())
     self.assertEqual(res.status_int, 200)
     self.assertEqual(res.content_type, "application/json")
     version = jsonutils.loads(res.body)
     expected = {"version": self.exp_versions['v2.1']}
     self.assertEqual(expected, version)
Пример #17
0
    def test_microversions2_version_too_high(self, mock_namespace,
                                             mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.5")

        app = fakes.wsgi_app_v21()
        req = fakes.HTTPRequest.blank('/v2/fake/microversions2')
        req.headers = {self.header_name: '3.2'}
        res = req.get_response(app)
        self.assertEqual(404, res.status_int)
Пример #18
0
    def test_plugin_framework_index(self, mock_namespace):
        mock_namespace.return_value = 'nova.api.v21.test_extensions'

        app = fakes.wsgi_app_v21(init_only='test-basic')
        req = fakes.HTTPRequest.blank('/v2/fake/test')
        res = req.get_response(app)
        self.assertEqual(200, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual('val', resp_json['param'])
Пример #19
0
 def test_path_version_v2(self):
     # Test URL path specifying v2 returns v2 content.
     req = fakes.HTTPRequest.blank('/v2/')
     req.accept = "application/json"
     res = req.get_response(fakes.wsgi_app_v21(v2_compatible=True))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('v2.0', body['version']['id'])
Пример #20
0
 def test_microversions_return_header(self, mock_namespace):
     app = fakes.wsgi_app_v21(init_only='test-microversions')
     req = fakes.HTTPRequest.blank('/v2/fake/microversions')
     res = req.get_response(app)
     self.assertEqual(200, res.status_int)
     resp_json = jsonutils.loads(res.body)
     self.assertEqual('val', resp_json['param'])
     self.assertEqual("2.1", res.headers[self.header_name])
     self.assertEqual(self.header_name, res.headers['Vary'])
    def test_microversions2_version_too_high(self, mock_namespace,
                                             mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.5")

        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank('/v2/fake/microversions2')
        req.headers = {'X-OpenStack-Compute-API-Version': '3.2'}
        res = req.get_response(app)
        self.assertEqual(404, res.status_int)
Пример #22
0
 def test_accept_version_v2(self):
     # Test Accept header specifying v2 returns v2 content.
     req = fakes.HTTPRequest.blank('/')
     req.accept = "application/json;version=2"
     res = req.get_response(fakes.wsgi_app_v21(v2_compatible=True))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('v2.0', body['version']['id'])
Пример #23
0
 def test_accept_version_v21(self):
     # Test Accept header specifying v2.1 returns v2.1 content.
     req = webob.Request.blank('/')
     req.accept = "application/json;version=2.1"
     res = req.get_response(fakes.wsgi_app_v21(init_only=('versions', )))
     self.assertEqual(res.status_int, 200)
     self.assertEqual(res.content_type, "application/json")
     body = jsonutils.loads(res.body)
     self.assertEqual(body['version']['id'], 'v2.1')
Пример #24
0
 def test_accept_version_v21(self):
     # Test Accept header specifying v2.1 returns v2.1 content.
     req = webob.Request.blank('/')
     req.accept = "application/json;version=2.1"
     res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',)))
     self.assertEqual(res.status_int, 200)
     self.assertEqual(res.content_type, "application/json")
     body = jsonutils.loads(res.body)
     self.assertEqual(body['version']['id'], 'v2.1')
Пример #25
0
 def test_accept_version_v21(self):
     # Test Accept header specifying v2.1 returns v2.1 content.
     req = fakes.HTTPRequest.blank('/')
     req.accept = "application/json;version=2.1"
     res = req.get_response(fakes.wsgi_app_v21())
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('v2.1', body['version']['id'])
Пример #26
0
 def test_authorize_user(self):
     req = webob.Request.blank('/v2/fake')
     req.headers['X-Auth-User'] = '******'
     req.headers['X-Auth-Key'] = 'user1_key'
     req.headers['X-Auth-Project-Id'] = 'user1_project'
     result = req.get_response(fakes.wsgi_app_v21(use_no_auth=True))
     self.assertEqual(result.status, '204 No Content')
     self.assertEqual(result.headers['X-Server-Management-Url'],
         "http://localhost/v2/fake")
Пример #27
0
 def test_auth_token_no_empty_headers(self):
     req = webob.Request.blank('/v2/fake')
     req.headers['X-Auth-User'] = '******'
     req.headers['X-Auth-Key'] = 'user1_key'
     req.headers['X-Auth-Project-Id'] = 'user1_project'
     result = req.get_response(fakes.wsgi_app_v21(use_no_auth=True))
     self.assertEqual(result.status, '204 No Content')
     self.assertNotIn('X-CDN-Management-Url', result.headers)
     self.assertNotIn('X-Storage-Url', result.headers)
Пример #28
0
 def test_path_version_v21(self):
     # Test URL path specifying v2.1 returns v2.1 content.
     req = fakes.HTTPRequest.blank("/v2.1/")
     req.accept = "application/json"
     res = req.get_response(fakes.wsgi_app_v21(init_only=("versions",)))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual("v2.1", body["version"]["id"])
Пример #29
0
 def _make_request(self, url):
     req = fakes.HTTPRequest.blank(url)
     req.headers['Accept'] = self.content_type
     req.headers = {
         os_wsgi.API_VERSION_REQUEST_HEADER:
         'compute %s' % self.wsgi_api_version
     }
     res = req.get_response(fakes.wsgi_app_v21())
     return res
Пример #30
0
 def test_auth_token_no_empty_headers(self):
     req = webob.Request.blank('/v2/fake')
     req.headers['X-Auth-User'] = '******'
     req.headers['X-Auth-Key'] = 'user1_key'
     req.headers['X-Auth-Project-Id'] = 'user1_project'
     result = req.get_response(fakes.wsgi_app_v21(use_no_auth=True))
     self.assertEqual(result.status, '204 No Content')
     self.assertNotIn('X-CDN-Management-Url', result.headers)
     self.assertNotIn('X-Storage-Url', result.headers)
Пример #31
0
 def test_accept_version_v2(self):
     # Test Accept header specifying v2 returns v2 content.
     req = fakes.HTTPRequest.blank("/")
     req.accept = "application/json;version=2"
     res = req.get_response(fakes.wsgi_app_v21(init_only=("versions",), v2_compatible=True))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual("v2.0", body["version"]["id"])
Пример #32
0
 def test_authorize_user(self):
     req = webob.Request.blank('/v2/fake')
     req.headers['X-Auth-User'] = '******'
     req.headers['X-Auth-Key'] = 'user1_key'
     req.headers['X-Auth-Project-Id'] = 'user1_project'
     result = req.get_response(fakes.wsgi_app_v21(use_no_auth=True))
     self.assertEqual(result.status, '204 No Content')
     self.assertEqual(result.headers['X-Server-Management-Url'],
         "http://localhost/v2/fake")
Пример #33
0
 def test_get_version_21_detail_content_type(self):
     req = webob.Request.blank('/')
     req.accept = "application/json;version=2.1"
     res = req.get_response(fakes.wsgi_app_v21())
     self.assertEqual(res.status_int, 200)
     self.assertEqual(res.content_type, "application/json")
     version = jsonutils.loads(res.body)
     expected = {"version": self.exp_versions['v2.1']}
     self.assertEqual(expected, version)
 def _make_request(self, url):
     req = fakes.HTTPRequest.blank(url)
     req.headers['Accept'] = self.content_type
     req.headers = {os_wsgi.API_VERSION_REQUEST_HEADER:
                    'compute %s' % self.wsgi_api_version}
     res = req.get_response(
         fakes.wsgi_app_v21(init_only=('servers',
                                       'os-extended-server-attributes')))
     return res
Пример #35
0
    def test_microversions2_version_too_high(self, mock_namespace,
                                             mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.5")

        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank('/v2/fake/microversions2')
        req.headers = {self.header_name: '3.2'}
        res = req.get_response(app)
        self.assertEqual(404, res.status_int)
Пример #36
0
    def test_plugin_framework_index(self, mock_namespace):
        mock_namespace.return_value = 'nova.api.v3.test_extensions'

        app = fakes.wsgi_app_v21(init_only='test-basic')
        req = fakes.HTTPRequest.blank('/v2/fake/test')
        res = req.get_response(app)
        self.assertEqual(200, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual('val', resp_json['param'])
Пример #37
0
 def test_path_version_v21(self):
     # Test URL path specifying v2.1 returns v2.1 content.
     req = webob.Request.blank('/v2.1/')
     req.accept = "application/json"
     res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',)))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('v2.1', body['version']['id'])
Пример #38
0
 def test_get_version_21_versions_v20_detail(self):
     req = webob.Request.blank('/v2.1/fake/versions/v2.0')
     req.accept = "application/json"
     res = req.get_response(fakes.wsgi_app_v21())
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     version = jsonutils.loads(res.body)
     expected = {"version": self.exp_versions['v2.0']}
     self.assertEqual(expected, version)
Пример #39
0
 def test_accept_content_type_v21(self):
     # Test Accept header specifying JSON returns JSON content.
     req = fakes.HTTPRequest.blank('/')
     req.content_type = "application/json;version=2.1"
     req.accept = "application/xml;q=0.8, application/json"
     res = req.get_response(fakes.wsgi_app_v21())
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('v2.1', body['version']['id'])
Пример #40
0
 def test_path_content_type_v21(self):
     # Test URL path specifying JSON returns JSON content.
     url = '/v2.1/fake/extensions/extensions.json'
     req = webob.Request.blank(url)
     req.accept = "application/xml"
     res = req.get_response(fakes.wsgi_app_v21())
     self.assertEqual(res.status_int, 200)
     self.assertEqual(res.content_type, "application/json")
     body = jsonutils.loads(res.body)
     self.assertEqual(body['extension']['name'], 'Extensions')
Пример #41
0
    def test_microversions2_later_version(self, mock_namespace, mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.1")

        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank('/v2/fake/microversions2')
        req.headers = {self.header_name: '3.0'}
        res = req.get_response(app)
        self.assertEqual(202, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual('controller2_val2', resp_json['param'])
Пример #42
0
 def test_accept_content_type_v21(self):
     # Test Accept header specifying JSON returns JSON content.
     url = '/v2.1/fake/extensions/extensions'
     req = webob.Request.blank(url)
     req.accept = "application/xml;q=0.8, application/json"
     res = req.get_response(fakes.wsgi_app_v21(init_only=('extensions', )))
     self.assertEqual(res.status_int, 200)
     self.assertEqual(res.content_type, "application/json")
     body = jsonutils.loads(res.body)
     self.assertEqual(body['extension']['name'], 'Extensions')
 def _make_request(self, url):
     req = fakes.HTTPRequest.blank(url)
     req.headers['Accept'] = self.content_type
     req.headers = {
         os_wsgi.API_VERSION_REQUEST_HEADER: self.wsgi_api_version
     }
     res = req.get_response(
         fakes.wsgi_app_v21(init_only=('servers',
                                       'os-extended-server-attributes')))
     return res
    def test_microversions_with_header(self, mock_namespace, mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("2.3")

        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank('/v2/fake/microversions')
        req.headers = {'X-OpenStack-Compute-API-Version': '2.3'}
        res = req.get_response(app)
        self.assertEqual(200, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual('val2', resp_json['param'])
Пример #45
0
    def test_microversions2_later_version(self, mock_namespace, mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.1")

        app = fakes.wsgi_app_v21()
        req = fakes.HTTPRequest.blank('/v2/fake/microversions2')
        req.headers = self._make_header('3.0')
        res = req.get_response(app)
        self.assertEqual(202, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual('controller2_val2', resp_json['param'])
Пример #46
0
 def test_accept_content_type_v21(self):
     # Test Accept header specifying JSON returns JSON content.
     req = webob.Request.blank('/')
     req.content_type = "application/json;version=2.1"
     req.accept = "application/xml;q=0.8, application/json"
     res = req.get_response(fakes.wsgi_app_v21(init_only=('versions',)))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('v2.1', body['version']['id'])
Пример #47
0
    def test_microversions_with_header_exact_match(self, mock_namespace, mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("2.3")

        app = fakes.wsgi_app_v21(init_only="test-microversions")
        req = fakes.HTTPRequest.blank("/v2/fake/microversions")
        req.headers = {"X-OpenStack-Compute-API-Version": "2.2"}
        res = req.get_response(app)
        self.assertEqual(200, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual("val2", resp_json["param"])
Пример #48
0
 def test_content_type_version_v21(self):
     # Test Content-Type specifying v2.1 returns v2 content.
     req = webob.Request.blank('/')
     req.content_type = "application/json;version=2.1"
     req.accept = "application/json"
     res = req.get_response(fakes.wsgi_app_v21(init_only=('versions', )))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('v2.1', body['version']['id'])
Пример #49
0
    def _check_microversion_response(self, url, req_version, resp_param,
                                     mock_namespace, mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest('2.3')

        app = fakes.wsgi_app_v21()
        req = fakes.HTTPRequest.blank(url)
        req.headers = self._make_header(req_version)
        res = req.get_response(app)
        self.assertEqual(200, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual(resp_param, resp_json['param'])
Пример #50
0
 def test_path_content_type(self):
     # Test URL path specifying JSON returns JSON content.
     url = '/v2/fake/images/cedef40a-ed67-4d10-800e-17455edce175.json'
     req = webob.Request.blank(url)
     req.accept = "application/xml"
     res = req.get_response(fakes.wsgi_app_v21(init_only=('images', )))
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('cedef40a-ed67-4d10-800e-17455edce175',
                      body['image']['id'])
Пример #51
0
 def test_accept_content_type(self):
     # Test Accept header specifying JSON returns JSON content.
     url = '/v2/fake/images/cedef40a-ed67-4d10-800e-17455edce175'
     req = fakes.HTTPRequest.blank(url)
     req.accept = "application/xml;q=0.8, application/json"
     res = req.get_response(fakes.wsgi_app_v21())
     self.assertEqual(200, res.status_int)
     self.assertEqual("application/json", res.content_type)
     body = jsonutils.loads(res.body)
     self.assertEqual('cedef40a-ed67-4d10-800e-17455edce175',
                      body['image']['id'])
Пример #52
0
    def test_microversions_return_header_fault(self, mock_namespace,
                                               mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.0")

        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank('/v2/fake/microversions')
        req.headers = {self.header_name: '3.0'}
        res = req.get_response(app)
        self.assertEqual(400, res.status_int)
        self.assertEqual("3.0", res.headers[self.header_name])
        self.assertEqual(self.header_name, res.headers['Vary'])
Пример #53
0
    def _check_microversion_response(self, url, req_version, resp_param,
                                     mock_namespace, mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest('2.3')

        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank(url)
        req.headers = {'X-OpenStack-Compute-API-Version': req_version}
        res = req.get_response(app)
        self.assertEqual(200, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual(resp_param, resp_json['param'])
Пример #54
0
 def test_microversions_return_header(self, mock_namespace):
     app = fakes.wsgi_app_v21()
     req = fakes.HTTPRequest.blank('/v2/fake/microversions')
     res = req.get_response(app)
     self.assertEqual(200, res.status_int)
     resp_json = jsonutils.loads(res.body)
     self.assertEqual('val', resp_json['param'])
     if 'nova' in self.header_name.lower():
         self.assertEqual("2.1", res.headers[self.header_name])
     else:
         self.assertEqual("compute 2.1", res.headers[self.header_name])
     self.assertIn(self.header_name, res.headers.getall('Vary'))
    def setUp(self):
        super(PauseServerTests, self).setUp()
        self.controller = pause_server.PauseServerController()
        self.compute_api = self.controller.compute_api

        def _fake_controller(*args, **kwargs):
            return self.controller

        self.stubs.Set(pause_server, 'PauseServerController', _fake_controller)
        self.app = fakes.wsgi_app_v21(init_only=('servers', 'os-pause-server'),
                                      fake_auth_context=self.context)
        self.mox.StubOutWithMock(self.compute_api, 'get')
    def _make_request(self, url, body=None):
        req = fakes.HTTPRequest.blank(url)
        if body:
            req.method = 'POST'
            req.body = encodeutils.safe_encode(self._encode_body(body))
        req.content_type = self.content_type
        req.headers['Accept'] = self.content_type

        # NOTE: This 'os-security-groups' is for enabling security_groups
        #       attribute on response body.
        res = req.get_response(fakes.wsgi_app_v21())
        return res
Пример #57
0
    def test_microversions_return_header_non_default(self, mock_namespace,
                                                     mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("2.3")

        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank('/v2/fake/microversions')
        req.headers = {self.header_name: '2.3'}
        res = req.get_response(app)
        self.assertEqual(200, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual('val2', resp_json['param'])
        self.assertEqual("2.3", res.headers[self.header_name])
        self.assertEqual(self.header_name, res.headers['Vary'])
Пример #58
0
    def test_microversions_global_version_too_high(self, mock_namespace,
                                                   mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.5")

        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank('/v2/fake/microversions2')
        req.headers = {'X-OpenStack-Compute-API-Version': '3.7'}
        res = req.get_response(app)
        self.assertEqual(406, res.status_int)
        res_json = jsonutils.loads(res.body)
        self.assertEqual("Version 3.7 is not supported by the API. "
                         "Minimum is 2.1 and maximum is 3.5.",
                         res_json['computeFault']['message'])
Пример #59
0
    def _test_microversions_inner_function(self, version, expected_resp,
                                           mock_namespace, mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("2.2")
        app = fakes.wsgi_app_v21(init_only='test-microversions')
        req = fakes.HTTPRequest.blank('/v2/fake/microversions4')
        req.headers = {self.header_name: version}
        req.environ['CONTENT_TYPE'] = "application/json"
        req.method = 'POST'

        res = req.get_response(app)
        self.assertEqual(200, res.status_int)
        resp_json = jsonutils.loads(res.body)
        self.assertEqual(expected_resp, resp_json['param'])
        self.assertEqual(version, res.headers[self.header_name])
Пример #60
0
    def test_microversions_return_header_fault(self, mock_namespace,
                                               mock_maxver):
        mock_maxver.return_value = api_version.APIVersionRequest("3.0")

        app = fakes.wsgi_app_v21()
        req = fakes.HTTPRequest.blank('/v2/fake/microversions')
        req.headers = self._make_header('3.0')
        res = req.get_response(app)
        self.assertEqual(400, res.status_int)
        if 'nova' in self.header_name.lower():
            self.assertEqual("3.0", res.headers[self.header_name])
        else:
            self.assertEqual("compute 3.0", res.headers[self.header_name])
        self.assertIn(self.header_name, res.headers.getall('Vary'))