def render_POST(self, request): request_raw = json.loads(request.content.read()) try: if "meta" in request_raw: request_raw["metadata"] = process_metadata(request_raw.pop("meta")) if "size" in request_raw: request_raw["maximum_size"] = parse_num(request_raw.pop("size")) except Exception, e: request.setHeader("content-type", "application/json") request.setHeader("access-control-allow-origin", "*") request.setResponseCode(400) return json.dumps(dict(error=str(e)))
def render_POST(self, request): request_raw = json.loads(request.content.read()) try: if "meta" in request_raw: request_raw["metadata"] = process_metadata( request_raw.pop("meta")) if "size" in request_raw: request_raw["maximum_size"] = parse_num( request_raw.pop("size")) except Exception, e: request.setHeader("content-type", "application/json") request.setHeader("access-control-allow-origin", "*") request.setResponseCode(400) return json.dumps(dict(error=str(e)))
def got_nodes(nodes): args = {} # size if self["size"]: args["maximum_size"] = parse_num(self["size"]) # primary node args["primary"] = filter_primary_node(self["node"], nodes) # metadata args["metadata"] = process_metadata(self["metadata"]) # TODO: don't allow non-unique name in metadata (by # convention) d = self.client.post( self.base_url + "/configuration/datasets", json.dumps(args), headers={'Content-Type': ['application/json']}) d.addCallback(treq.json_content) return d