当前位置: 首页>>代码示例>>Python>>正文


Python Response.headers['Location']方法代码示例

本文整理汇总了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
开发者ID:whitmo,项目名称:psid,代码行数:20,代码来源:app.py

示例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')
开发者ID:chrrrles,项目名称:cimi,代码行数:94,代码来源:volume.py

示例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')
开发者ID:chrrrles,项目名称:cimi,代码行数:98,代码来源:machine.py


注:本文中的webob.Response.headers['Location']方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。