本文整理汇总了Python中webob.Response.headers['Location']方法的典型用法代码示例。如果您正苦于以下问题:Python Response.headers['Location']方法的具体用法?Python Response.headers['Location']怎么用?Python Response.headers['Location']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类webob.Response
的用法示例。
在下文中一共展示了Response.headers['Location']方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: POST
# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import headers['Location'] [as 别名]
def POST(self, request, start_response):
json = simplejson.loads(request.body)
res = Response()
urls = []
if json:
urls.extend(self.add(json, request))
else:
res.status = 400
return res
if len(urls) == 1:
res.headers['Location'] = urls[0]
res.write(urls.pop())
else:
for url in urls:
res.write(url)
return res
示例2: POST
# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import headers['Location'] [as 别名]
def POST(self, req, *parts):
"""
Handle POST machine request which will create a machine
"""
try:
request_data = get_request_data(req.body, self.req_content_type)
except Exception as error:
return get_err_response('MalformedBody')
if request_data:
data = request_data.get('body').get('VolumeCreate')
if not data:
data = request_data.get('body')
if data:
action = data.get('resourceURI')
# this is to ensure that the json format contains
# the right indicator for volume create
if not action or action != '/'.join([self.uri_prefix,
'VolumeCreate']):
data = None
if data:
new_body = {}
match_up(new_body, data, 'display_name', 'name')
match_up(new_body, data, 'display_description', 'description')
match_up(new_body, data, 'size',
'volumeTemplate/volumeConfig/capacity')
# map the properties to metadata
match_up(new_body, data, 'metadata', 'properties')
# check if there are some extra things
"""
if has_extra(data, {'resourceURI': None, 'xmlns': None,
'name': None, 'description': None,
'properties': None,
'volumeTemplate': {'volumeConfig':
{'capacity': None}}}):
return get_err_response('BadRequest')
"""
self.os_path = '/%s/volumes' % (self.tenant_id)
env = self._fresh_env(req)
env['SERVER_PORT'] = self.conf.get('volume_endpoint_port')
env['SCRIPT_NAME'] = '/v1'
env['HTTP_HOST'] = '%s:%s' % \
(self.conf.get('volume_endpoint_host'),
self.conf.get('volume_endpoint_port'))
new_body_json = json.dumps({'volume': new_body})
env['CONTENT_LENGTH'] = len(new_body_json)
status, headers, body, status_code = access_resource(env,
'POST', '/v1' + self.os_path, True, None, new_body_json)
if status:
# resource created successfully, we redirect the request
# to query machine
resp_data = json.loads(body)
data = resp_data.get('volume')
resp_data = {}
match_up(resp_data, data, 'name', 'display_name')
match_up(resp_data, data, 'description',
'display_description')
match_up(resp_data, data, 'capacity', 'size')
match_up(resp_data, data, 'created', 'created_at')
resp_data['id'] = ''.join([self.tenant_id,
'/volume/',
data.get('id')])
location = resp_data['id']
if self.res_content_type == 'application/xml':
response_data = {'Volume': resp_data}
else:
resp_data['resourceURI'] = '/'.join([self.uri_prefix,
'Volume'])
response_data = resp_data
new_content = make_response_data(response_data,
self.res_content_type,
self.volume_metadata,
self.uri_prefix)
resp = Response()
self._fixup_cimi_header(resp)
resp.headers['Content-Type'] = self.res_content_type
resp.headers['Location'] = \
'/'.join([self.request_prefix,
location])
resp.status = 201
resp.body = new_content
return resp
else:
return get_err_response('BadRequest')
else:
return get_err_response('BadRequest')
else:
return get_err_response('BadRequest')
示例3: POST
# 需要导入模块: from webob import Response [as 别名]
# 或者: from webob.Response import headers['Location'] [as 别名]
def POST(self, req, *parts):
"""
Handle POST machine request which will create a machine
"""
try:
request_data = get_request_data(req.body, self.req_content_type)
except Exception as error:
return get_err_response('MalformedBody')
if request_data:
data = request_data.get('body').get('MachineCreate')
if not data:
data = request_data.get('body')
if data:
new_body = {}
match_up(new_body, data, 'name', 'name')
if (data.get('machineTemplate') is None or
data.get('machineTemplate').get('machineImage') is None or
data.get('machineTemplate').get('machineConfig') is None):
return get_err_response('BadRequest')
match_up(new_body, data, 'imageRef',
'machineTemplate/machineImage/href')
match_up(new_body, data, 'flavorRef',
'machineTemplate/machineConfig/href')
if (new_body.get('flavorRef') is None or
new_body.get('imageRef') is None):
return get_err_response('BadRequest')
new_body['imageRef'] = new_body.get('imageRef').split('/')[-1]
new_body['flavorRef'] = \
new_body.get('flavorRef').split('/')[-1]
adminPass = data.get('credentials', {}).get('password')
if adminPass:
new_body['adminPass'] = adminPass
self.os_path = '/%s/servers' % (self.tenant_id)
new_req = self._fresh_request(req)
new_req.body = json.dumps({'server': new_body})
resp = new_req.get_response(self.app)
if resp.status_int == 201:
# resource created successfully, we redirect the request
# to query machine
resp_data = json.loads(resp.body)
id = resp_data.get('server').get('id')
env = self._fresh_env(req)
env['PATH_INFO'] = concat(self.request_prefix,
'/', self.tenant_id,
'/servers/', id)
env['REQUEST_METHOD'] = 'GET'
new_req = Request(env)
resp = new_req.get_response(self.app)
resp_data = {}
resp.headers['Location'] = \
'/'.join([self.request_prefix, self.tenant_id,
'Machine', id])
resp.status = 201
elif resp.status_int == 202:
resp_body_data = json.loads(resp.body).get('server')
id = resp_body_data.get('id')
resp_data = {}
resp_data['resourceURI'] = '/'.join([self.uri_prefix,
'Machine'])
match_up(resp_data, data, 'name', 'name')
resp_data['id'] = concat(self.tenant_id, '/Machine/', id)
resp_data['credentials'] = {'userName': 'root',
'password': resp_body_data.get('adminPass')}
if self.res_content_type == 'application/xml':
response_data = {'Machine': resp_data}
remove_member(response_data, 'resourceURI')
else:
response_data = resp_data
new_content = make_response_data(response_data,
self.res_content_type,
self.machine_metadata,
self.uri_prefix)
resp = Response()
self._fixup_cimi_header(resp)
resp.headers['Content-Type'] = self.res_content_type
resp.headers['Location'] = \
'/'.join([self.request_prefix, self.tenant_id,
'Machine', id])
resp.status = 202
resp.body = new_content
return resp
else:
return get_err_response('BadRequest')
else:
return get_err_response('BadRequest')