def post(self): data = {} try: project_name = self.get_argument("project_name", "").strip() LOG.debug("reindex project: project_name %s", project_name) data["project"] = project_name projects = Projects() if project_name != "": project_import = ProjectImport(CONFIG["process_num"]) project = Project() project.parse_dict(projects.get(project_name)) project.hash() SEARCH_IX.delete(project_name) flag = SEARCH_IX.add(project_name) if flag: flag = yield project_import.import_project(project) if flag: LOG.info("Reindex Project[%s] Success", project_name) else: LOG.info("Reindex Project[%s] Failed", project_name) raise errors.ReindexProjectError except Exception, e: LOG.exception(e) data["exception"] = "%s" % e
LOG = logging.getLogger(__name__) if __name__ == "__main__": os.environ["GOPATH"] = "%s%s" % (os.environ["GOPATH"] + ":" if os.environ.has_key("GOPATH") else "", CONFIG["go_path"]) logger.config_logging(file_name="test.log", log_level=CONFIG["log_level"], dir_name="logs", day_rotate=False, when="D", interval=1, max_size=20, backup_count=5, console=True) LOG.info("Test Start") t = time.time() p = Projects() p_1 = Project() p_1.go_path = "go_path" p_1.main_path = "main_path" p_1.project_path = "project_path" p_1.project_name = "project_name" p_1.hash() p.add(p_1) # p.delete("project_path") tt = time.time() LOG.info("Use Time: %ss", tt - t) LOG.info("Test Exit!")
def post(self): data = {} try: project_name = self.get_argument("project_name", "").strip() project_path = self.get_argument("project_path", "").strip() project_path = project_path.rstrip("/") if project_path != "/" else "/" go_path = self.get_argument("go_path", "").strip() go_path = go_path.rstrip("/") if go_path != "/" else "/" main_path = self.get_argument("main_path", "").strip() LOG.debug("add project: project_name %s, project_path: %s, go_path: %s, main_path: %s", project_name, project_path, go_path, main_path) if not validate_params(project_name, project_path, go_path, main_path): raise errors.InvalidParamsError data["nodes"] = [] data["tree"] = [] data["project"] = "" projects = Projects() if project_name != "" and projects.exist(project_name): raise errors.ExistProjectError elif project_name != "" and not projects.exist(project_name): project = Project() project.go_path = go_path project.main_path = main_path project.project_path = project_path project.project_name = project_name project.hash() flag = projects.add(project) data["projects"] = [v for v in projects.all().itervalues()] data["projects"].sort(lambda x,y : cmp(x['project_name'], y['project_name'])) if flag: project_import = ProjectImport(CONFIG["process_num"]) data["project"] = project_name nodes = [] project = Project() project.parse_dict(projects.get(project_name)) project.hash() data["project_path"] = project.project_path data["main_path"] = project.main_path data["go_path"] = project.go_path SEARCH_IX.delete(project_name) flag = SEARCH_IX.add(project_name) if flag: flag = yield project_import.import_project(project) if flag: LOG.info("Add Project[%s] Success", project_name) else: LOG.info("Add Project[%s] Failed", project_name) flag = projects.delete(project.project_name) if flag: LOG.info("Delete Project[%s] (by add project failed) Success", project_name) else: LOG.error("Delete Project[%s] (by add project failed) Failed", project_name) raise errors.AddProjectError dirs, files = project.listdir() if dirs != [] or files != []: parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"} else: parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"} for d in dirs: nodes.append({"id": os.path.join(project.project_path, d["name"]), "parent": project.project_path, "text": d["name"].replace("<", "<").replace(">", ">"), "type": "directory"}) for f in files: nodes.append({"id": os.path.join(project.project_path, f["name"]), "parent": project.project_path, "text": f["name"].replace("<", "<").replace(">", ">"), "type": "file"}) nodes.insert(0, parent) data["nodes"] = nodes elif len(data["projects"]) > 0: nodes = [] data["project"] = data["projects"][0]["project_name"] project = Project() project.parse_dict(data["projects"][0]) data["project_path"] = project.project_path data["main_path"] = project.main_path data["go_path"] = project.go_path dirs, files = project.listdir() if dirs != [] or files != []: parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"} else: parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"} for d in dirs: nodes.append({"id": os.path.join(project.project_path, d["name"]), "parent": project.project_path, "text": d["name"].replace("<", "<").replace(">", ">"), "type": "directory"}) for f in files: nodes.append({"id": os.path.join(project.project_path, f["name"]), "parent": project.project_path, "text": f["name"].replace("<", "<").replace(">", ">"), "type": "file"}) nodes.insert(0, parent) data["nodes"] = nodes else: data["projects"] = [v for v in projects.all().itervalues()] data["projects"].sort(lambda x,y : cmp(x['project_name'], y['project_name'])) nodes = [] data["project"] = data["projects"][0]["project_name"] project = Project() project.parse_dict(data["projects"][0]) data["project_path"] = project.project_path data["main_path"] = project.main_path data["go_path"] = project.go_path dirs, files = project.listdir() if dirs != [] or files != []: parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "directory"} else: parent = {"id": project.project_path, "parent": "#", "text": os.path.split(project.project_path)[-1], "type": "file"} for d in dirs: nodes.append({"id": os.path.join(project.project_path, d["name"]), "parent": project.project_path, "text": d["name"].replace("<", "<").replace(">", ">"), "type": "directory"}) for f in files: nodes.append({"id": os.path.join(project.project_path, f["name"]), "parent": project.project_path, "text": f["name"].replace("<", "<").replace(">", ">"), "type": "file"}) nodes.insert(0, parent) data["nodes"] = nodes except Exception, e: LOG.exception(e) data["exception"] = "%s" % e