def do_mysql(self, arg, opts=None): from node import MySQL mysql = MySQL(self.server.current_node) if opts.dserver: dest_server = None line = string.strip(opts.dserver) dbid = line if string.find(line, '[') != -1: (dbid, info) = string.split(line, '[') (dbid, info) = string.split(info, ':') dest_server = self.server.current_node.get_node(int(dbid)) if dest_server is None: print 'Not find the destination :%s' % line return if opts.backup and opts.sport: backup_path = mysql.backup(db_name=opts.databases if opts.databases else None, port=opts.sport, no_data=True if opts.no_data else False) if len(backup_path) > 0: print "Backup databases [%s] finished -> %s:%s " % (opts.databases, mysql.server, backup_path) if opts.dserver: trans = Transfer(mysql.server, backup_path) trans.add_dest_server(dest_server) trans.send('/home/databackup/') print "Trans backup file finished -> %s:%s " % (dest_server, '/home/databackup/') if opts.merage and opts.sport and opts.dserver and opts.dport: #db_lists=None #if opts.databases: #db_lists=string.split(opts.databases,',') #else: #db_lists=[None] mysql.merage(opts.databases, sport=opts.sport, dest_server=dest_server, dport=opts.dport, bk_nodata=True if opts.no_data else False) return
def do_mysql(self, arg, opts=None): from node import MySQL mysql = MySQL(self.server.current_node) if opts.dserver: dest_server = None line = string.strip(opts.dserver) dbid = line if string.find(line, '[') != -1: (dbid, info) = string.split(line, '[') (dbid, info) = string.split(info, ':') dest_server = self.server.current_node.get_node(int(dbid)) if dest_server is None: print 'Not find the destination :%s' % line return if opts.backup and opts.sport: backup_path = mysql.backup( db_name=opts.databases if opts.databases else None, port=opts.sport, no_data=True if opts.no_data else False) if len(backup_path) > 0: print "Backup databases [%s] finished -> %s:%s " % ( opts.databases, mysql.server, backup_path) if opts.dserver: trans = Transfer(mysql.server, backup_path) trans.add_dest_server(dest_server) trans.send('/home/databackup/') print "Trans backup file finished -> %s:%s " % ( dest_server, '/home/databackup/') if opts.merage and opts.sport and opts.dserver and opts.dport: #db_lists=None #if opts.databases: #db_lists=string.split(opts.databases,',') #else: #db_lists=[None] mysql.merage(opts.databases, sport=opts.sport, dest_server=dest_server, dport=opts.dport, bk_nodata=True if opts.no_data else False) return
def do_trans(self, arg, opts=None): server_list = self._get_operation_list( self.server.current_node, inPiece=opts.piece if opts.piece else None, inCurrent=False, inChilds=True if opts.childs else False, useRecursion=True if opts.recursion else False, objClass=None) trans_task = Transfer() if opts.get_version: src_path = Transfer.get_from_lftp(self.server.current_node.root, 'get-version', 'db_version/ALL/', opts.get_version) if src_path: trans_task.set_source_server(self.server.current_node.root) trans_task.set_source_path(src_path) else: return else: trans_task.set_source_server(self.server.current_node) trans_task.set_source_path(opts.target) #self.server.current_node,opts.target) if opts.who: line = string.strip(opts.who) dbid = line if string.find(line, '[') != -1: (dbid, info) = string.split(line, '[') (dbid, info) = string.split(info, ':') server_list.append(self.server.current_node.get_node( int(dbid))) if len(server_list) > 0: trans_task.add_dest_server(*server_list) print "Servers Count:%s" % len(trans_task.dest_servers) trans_task.send(opts.deploy_dir if opts.deploy_dir else '/tmp') trans_task.clear()
def do_trans(self, arg, opts=None): server_list = self._get_operation_list(self.server.current_node, inPiece=opts.piece if opts.piece else None, inCurrent=False, inChilds=True if opts.childs else False, useRecursion=True if opts.recursion else False, objClass=None) trans_task = Transfer() if opts.get_version: src_path = Transfer.get_from_lftp(self.server.current_node.root, 'get-version', 'db_version/ALL/', opts.get_version) if src_path: trans_task.set_source_server(self.server.current_node.root) trans_task.set_source_path(src_path) else: return else: trans_task.set_source_server(self.server.current_node) trans_task.set_source_path(opts.target) #self.server.current_node,opts.target) if opts.who: line = string.strip(opts.who) dbid = line if string.find(line, '[') != -1: (dbid, info) = string.split(line, '[') (dbid, info) = string.split(info, ':') server_list.append(self.server.current_node.get_node(int(dbid))) if len(server_list) > 0: trans_task.add_dest_server(*server_list) print "Servers Count:%s" % len(trans_task.dest_servers) trans_task.send(opts.deploy_dir if opts.deploy_dir else '/tmp') trans_task.clear()