def to_json(self, obj): try: if not self.name: return json.dumps(obj) data = json.dumps({self.name: obj}) json_data = self._get_json(data) self._validate(json_data) return data except (MalformedJSONError, ValidationError), e: raise ValueError('Can not represent object as json %s' % (str(e)))
def index(_): response = { 'GitHub page': 'https://github.com/islamgulov/libcloud.rest', 'libcloud_version': libcloud.__version__, 'api_version': versions[libcloud.__version__] } return Response(json.dumps(response))
def from_json(self, data, driver): json_data = self._get_json(data) if not self.name in json_data: if hasattr(self, 'default'): return self.default raise MissingArguments(arguments=[self.name]) data_list = json_data[self.name] return [self.object_entry.from_json(json.dumps(data), driver) for data in data_list]
def delete_record(request): json_data = { 'zone_id': request.args['zone_id'], 'record_id': request.args['record_id'] } return invoke_method('delete_record', request, data=json.dumps(json_data), status_code=httplib.ACCEPTED)
def delete_member(request): """ @return:This operation does not return a response body. """ json_data = {'loadbalancer_id': request.args['lb_id'], 'member_id': request.args['member_id']} return invoke_method('balancer_detach_member', request, data=json.dumps(json_data), status_code=httplib.ACCEPTED)
def destroy_balancer(request): """ Get balancer id from params and invoke destroy_balancer driver method. @return: Empty response body """ json_data = {'loadbalancer_id': request.args['loadbalancer_id']} return invoke_method('destroy_balancer', request, data=json.dumps(json_data), status_code=httplib.ACCEPTED)
def get_object(request): data = { 'container_name': request.args['container'], 'object_name': request.args['object'] } return invoke_method('download_object_as_stream', request, data=json.dumps(data), file_result=True)
def create_record(request): json_data = json.loads(request.data) json_data['zone_id'] = request.args['zone_id'] response = invoke_method('create_record', request, data=json.dumps(json_data), status_code=httplib.ACCEPTED) record_id = json.loads(response.data)['id'] response.autocorrect_location_header = False response.headers.add_header('Location', record_id) response.status_code = httplib.CREATED return response
def delete_member(request): """ @return:This operation does not return a response body. """ json_data = { 'loadbalancer_id': request.args['lb_id'], 'member_id': request.args['member_id'] } return invoke_method('balancer_detach_member', request, data=json.dumps(json_data), status_code=httplib.ACCEPTED)
def preprocess_request(self, request): request_header_validator = valid.DictValidator({ 'Content-Length': valid.IntegerValidator(max=MAX_BODY_LENGTH), 'Content-Type': valid.ConstValidator('application/json'), }) if request.method in ['POST', 'PUT'] and\ not re.match(self.storage_url, request.path): request_header_validator(dict(request.headers)) #TODO: FIXME GK if request.method == 'GET': data = url_decode(request.query_string, cls=dict) request.data = json.dumps(data)
def get_driver_instance(Driver, kwargs): """ @param Driver: @param kwargs: @return: """ try: json_data = json.dumps(kwargs) driver_method = DriverMethod(Driver, '__init__') return driver_method.invoke(json_data) except MissingArguments, error: str_repr = ', '.join([ARGS_TO_XHEADERS_DICT.get(arg, arg) for arg in error.arguments]) raise MissingHeadersError(headers=str_repr)
def update_balancer(request): json_data = json.loads(request.data) json_data['loadbalancer_id'] = request.args['loadbalancer_id'] return invoke_method('update_balancer', request, data=json.dumps(json_data))
def list_members(request): json_data = json.loads(request.data) json_data['loadbalancer_id'] = request.args['lb_id'] return invoke_method('balancer_list_members', request, data=json.dumps(json_data))
def create_member(request): json_data = json.loads(request.data) json_data['loadbalancer_id'] = request.args['lb_id'] return invoke_method('balancer_attach_member', request, data=json.dumps(json_data))
def delete_container(request): data = {"container_name": request.args["container"]} return invoke_method("delete_container", request, data=json.dumps(data), status_code=httplib.NO_CONTENT)
def get_container(request): data = {"container_name": request.args["container"]} return invoke_method("get_container", request, data=json.dumps(data))
def list_recods(request): json_data = {'zone_id': request.args['zone_id']} return invoke_method('list_records', request, data=json.dumps(json_data))
def delete_container(request): data = {'container_name': request.args['container']} return invoke_method('delete_container', request, data=json.dumps(data), status_code=httplib.NO_CONTENT)
def list_objects(request): data = {'container_name': request.args['cont']} return invoke_method('list_container_objects', request, data=json.dumps(data))
def get_container(request): data = {'container_name': request.args['container']} return invoke_method('get_container', request, data=json.dumps(data))
def delete_zone(request): json_data = {'zone_id': request.args['zone_id']} return invoke_method('delete_zone', request, data=json.dumps(json_data), status_code=httplib.ACCEPTED)
def to_json(self, obj_list): data = [json.loads(self.object_entry.to_json(obj)) for obj in obj_list] return json.dumps(data)
def get_record(request): json_data = {'zone_id': request.args['zone_id'], 'record_id': request.args['record_id']} return invoke_method('get_record', request, data=json.dumps(json_data))
def get_balancer(request): data = json.dumps({'balancer_id': request.args['balancer_id']}) return invoke_method('get_balancer', request, data=data)
def list_objects(request): data = {"container_name": request.args["cont"]} return invoke_method("list_container_objects", request, data=json.dumps(data))
def delete_object(request): data = {"container_name": request.args["container"], "object_name": request.args["object"]} return invoke_method("delete_object", request, data=json.dumps(data))
def destroy_node(request): json_data = {'node_id': request.args['node_id']} return invoke_method('destroy_node', request, data=json.dumps(json_data), status_code=httplib.ACCEPTED)
def get_record(request): json_data = { 'zone_id': request.args['zone_id'], 'record_id': request.args['record_id'] } return invoke_method('get_record', request, data=json.dumps(json_data))
continue try: driver_method = DriverMethod(driver, method_name) except MethodParsingException, e: logger.info(str(e) + ' ' + driver.name + '.' + method_name) continue supported_methods[method_name] = driver_method.get_description() init_description = DriverMethod(driver, '__init__').get_description() init_arguments = init_description['arguments'] for arg in init_arguments[:]: arg['name'] = ARGS_TO_XHEADERS_DICT[arg['name']] result = {'name': driver.name, 'website': driver.website, 'X-headers': init_arguments, 'supported_methods': supported_methods} return JsonResponse(json.dumps(result)) class ServiceHandler(object): def __init__(self, url_prefix): self.url_prefix = url_prefix self._endpoint_handlers = [] def add_handler(self, path, handler, methods=None): if methods is None: methods = ['GET'] rule = Rule(path, endpoint=handler, methods=methods) self._endpoint_handlers.append(rule) def add_handlers(self, handlers): for handler in handlers:
def get_object(request): data = {"container_name": request.args["container"], "object_name": request.args["object"]} return invoke_method("download_object_as_stream", request, data=json.dumps(data), file_result=True)
def list_providers(providers, _): providers_info = get_providers_info(providers) return JsonResponse(json.dumps(providers_info))
def update_record(request): json_data = json.loads(request.data) json_data['zone_id'] = request.args['zone_id'] json_data['record_id'] = request.args['record_id'] return invoke_method('update_record', request, data=json.dumps(json_data))
driver_method = DriverMethod(driver, method_name) except MethodParsingException, e: logger.info(str(e) + ' ' + driver.name + '.' + method_name) continue supported_methods[method_name] = driver_method.get_description() init_description = DriverMethod(driver, '__init__').get_description() init_arguments = init_description['arguments'] for arg in init_arguments[:]: arg['name'] = ARGS_TO_XHEADERS_DICT[arg['name']] result = { 'name': driver.name, 'website': driver.website, 'X-headers': init_arguments, 'supported_methods': supported_methods } return JsonResponse(json.dumps(result)) class ServiceHandler(object): def __init__(self, url_prefix): self.url_prefix = url_prefix self._endpoint_handlers = [] def add_handler(self, path, handler, methods=None): if methods is None: methods = ['GET'] rule = Rule(path, endpoint=handler, methods=methods) self._endpoint_handlers.append(rule) def add_handlers(self, handlers): for handler in handlers:
def get_object_metadata(request): data = { 'container_name': request.args['container'], 'object_name': request.args['object'] } return invoke_method('get_object', request, data=json.dumps(data))