def response(self): '''save ''' # node_name中不可包含`/`特殊字符 if self.node_name and not ZnodeService.is_node_name_ok(self.node_name): return self.ajax_popup(code=300, msg="节点名不允许包含特殊字符'/'!") zk_path = "" if not self.path: # 新增节点需要进行存在检验 zk_path = os.path.join(self.parent_path, self.node_name) if ZookeeperService.exists(self.cluster_name, zk_path): return self.ajax_popup(code=300, msg="节点已经存在!") else: zk_path = self.path # znode_type, 0代表普通节点, 1代表文件节点 zk_data = "" if self.znode_type == "1": if 'uploadfile' not in self.request.files: return self.ajax_popup(code=300, msg="请选择上传文件!") upload_file = self.request.files['uploadfile'][0] zk_data = upload_file['body'] else: zk_data = self.data # 更新在zookeeper和mysql上存储的配置信息, 同时进行快照备份 ZnodeService.set_znode(cluster_name=self.cluster_name, path=zk_path, data=zk_data, znode_type=self.znode_type, business=self.business) return self.ajax_ok(close_current=True)
def response(self): '''savecopy ''' # node_name中不可包含`/`特殊字符 if self.path and not ZnodeService.is_node_name_ok(self.path): return self.ajax_popup(code=300, msg="节点名不允许包含特殊字符'/'!") zk_path = "" if not self.path: # 新增节点需要进行存在检验 return self.ajax_popup(code=300, msg="节点名称不能为空!") else: zk_path = os.path.join(self.parent_path, self.path) if ZookeeperService.exists(self.cluster_name, zk_path): return self.ajax_popup(code=300, msg="节点已经存在!") normalized_path = normalize_path(self.old_path) nodes = [] if USE_QCONF: ZnodeService.get_znode_tree_from_qconf(self.cluster_name, normalized_path, nodes) else: zoo_client = ZookeeperService.get_zoo_client(self.cluster_name) if not zoo_client: return self.ajax_popup(code=300, msg="连接zookeeper出错!") ZnodeService.get_znode_tree(zoo_client, normalized_path, nodes) path = full_path(self.path,self.parent_path) #ZnodeService.save_znode_tree(self.cluster_name , normalized_path , path) index = self.old_path.rfind('/') old_node_name = self.old_path[index+1:] for node in nodes: new_path = node['path'].replace(old_node_name,self.path,1) ZnodeService.save_znode_tree(self.cluster_name , node['path'] ,new_path) #ret = ZnodeService.save_znode_tree(self.cluster_name ,self.parent_path,self.old_path,self.path) #if not ret: # return self.ajax_popup(code=300,msg='添加失败') return self.ajax_ok(close_current=True)