def post(self): key = self.request.get('key') data = self.request.get('data') if (key == None or data == None): return # We don't need a try here, because it's already been checked in the # import handler by this point. data_json = json.loads(data) trace = Trace.get_by_id(int(key)) if 'secret' not in data_json: return secret = data_json['secret'] project = Project.query().filter(Project.secret==secret).get() if (project == None): return if (trace == None): return @ndb.transactional(xg=True) def process_trace(project, trace, data_json): blob_reader = blobstore.BlobReader(trace.file_key) action_details_imported = TraceProcessor().process(project, blob_reader.read(), trace, data_json) # Tidy up the trace file if needed. if trace.delete_trace_after_import: blobstore.delete(trace.file_key) trace.key.delete() return action_details_imported action_details_imported = process_trace(project, trace, data_json)
def get(self): secret = self.request.get('secret') labels = self.request.get('labels') trace_key = self.request.get('trace') if (trace_key == ''): self.response.write('no trace key') return trace = Trace.get_by_id(int(trace_key)) if (secret == ''): self.response.write("no secret") return if (trace == None): self.response.write("no trace") return project = Project.query().filter(Project.secret==secret).get() if (project == None): self.response.write("no project") return labels_list = labels.split(',') labels_list_stringified = '"' + '","'.join(labels_list) + '"' if (labels == ''): labels_list_stringified = '' data = '{"secret":"' + secret + '", "labels": [' + labels_list_stringified + ']}' data_json = json.loads(data) blob_reader = blobstore.BlobReader(trace.file_key) TraceProcessor().process(project, blob_reader.read(), trace, data_json)