def post(self): assert util.development() or oauth.is_current_user_admin() util.log_upload_data(self.request.path, self.request.get("data")) files_added = {} data = StringIO.StringIO(self.request.get("data")) for line in data: data = json.loads(line) # We first load the fileset into the database # For use later, we also add a list of filenames in the fileset f = model.FileSet(key_name=data["name"], display_name=data["name"], files=data["setfiles"]) f.put() for filename in data["setfiles"]: if filename not in files_added: files_added[filename] = [data["name"]] else: files_added[filename].append(data["name"]) # We now update the database with the elements in files_added for filename in files_added: # TODO: Is there a better way of assigning display names? split_index = filename.rfind("_") model.File(key_name=filename, display_name=filename[:split_index], file_sets=files_added[filename]).put() model.filesets().invalidate() model.files().invalidate()
def post(self): assert util.development() or oauth.is_current_user_admin() util.log_upload_data(self.request.path, self.request.get("data")) gerrit.poll() data = StringIO.StringIO(self.request.get("data")) new_commits = [] for line in data: new_commits.append(self.load(json.loads(line))) model.commits().invalidate() self.update_depth(new_commits)
def get(self): devel = util.development() values = { "user": users.get_current_user(), "login_url": users.create_login_url("/"), "logout_url": users.create_logout_url("/") } if devel: values["development"] = True self.response.out.write(template.render("index.html", values))
def post(self): assert util.development() or oauth.is_current_user_admin() util.log_upload_data(self.request.path, self.request.get("data")) data = StringIO.StringIO(self.request.get("data")) for line in data: data = json.loads(line) # We first load the fileset into the database # For use later, we also add a list of filenames in the fileset m = model.Metric(key_name=data["name"], display_name=data["display name"], distortion=data["distortion"], yaxis=data.get("yaxis", None)) m.put() model.metrics().invalidate()
def get(self, metrics, configs, filesets, commits, filenames, opentrees): # Note that we also must keep track of which trees are open devel = util.development() values = { "metrics": urllib.unquote(metrics), "configs": urllib.unquote(configs), "filesets": urllib.unquote(filesets), "commits": urllib.unquote(commits), "filenames": urllib.unquote(filenames), "opentrees": urllib.unquote(opentrees), "user": users.get_current_user(), "login_url": users.create_login_url("/"), "logout_url": users.create_logout_url("/") } if devel: values["development"] = True self.response.out.write(template.render("index.html", values))
def put_metric_index(self, parent, metrics, files): assert util.development() or oauth.is_current_user_admin() util.log_upload_data(self.request.path, self.request.get("data")) if metrics and files: metric_list = list(metrics) file_list = list(files) h = hashlib.sha1() h.update(parent.key().name()) h.update(parent.commit) h.update(parent.config_name) map(h.update, metric_list) map(h.update, file_list) model.CodecMetricIndex(key_name=h.hexdigest(), parent=parent, commit=parent.commit, config_name=parent.config_name, metrics=metric_list, files=file_list).put()