Exemple #1
0
    def put_file(self, fileput):

        if not self.file_exist(fileput):
            return False

        try:
            log_time = time.strftime("%Y-%m-%d %H:%M:%S")
            print "Connecting %s..." % fileput['ip']
            socket.setdefaulttimeout(5)
            t = paramiko.Transport((fileput['ip'], fileput['port']))
            t.connect(username=fileput['username'], password=fileput['passwd'])
            sftp = paramiko.SFTPClient.from_transport(t)
            sftp.put(fileput['file2put'], fileput['file2save'])
            t.close()
        except IOError:
            error_msg = fileput['file2save'] + " is wrong."
            ReportLog.send_results(
                False,
                "[ERROR %s]: upload %s to %s" %
                (log_time, fileput['file2put'], fileput['ip']),
                des_str=error_msg)
            return False
        except Exception, e:
            ReportLog.send_results(
                False,
                "[ERROR %s]: upload %s to %s" %
                (log_time, fileput['file2put'], fileput['ip']),
                des_str=str(e))
            return False
Exemple #2
0
	def read_local_conf(self):
		conf_file = "./conf/volcano.conf"
		tmp_conf_file = "./conf/volcano.conf.tmp"
		
		if not os.path.exists(conf_file):
			ReportLog.sys_info("%s does not exists !"%(conf_file))
		cmd = "sed \'/^$/D\' %s | grep -v \"^[[:blank:]]*#\" > %s"%(conf_file,tmp_conf_file)
		os.system(cmd)	
		fd = open(tmp_conf_file)
		self.hosts_list = []
		while True:
			hosts = {}
			line = fd.readline()
			if not line :
				break
			hosts['ip'] = line.split()[0]
			hosts['passwd'] = line.split()[1]
			hosts['port'] = 22
			hosts['username'] = "******"
#			put_dir_test(hosts)
			exec_cmd_test(hosts)
			self.hosts_list.append(hosts)
		fd.close()
		os.system("rm -f %s"%tmp_conf_file)
		return self.hosts_list
Exemple #3
0
	def exec_cmd(self,exec_cmd):
		try :
#			print exec_cmd['ip'],exec_cmd['passwd']
#			print "\n"
			print "\nConnecting %s..."%exec_cmd['ip']
			log_time = time.strftime("%Y-%m-%d %H:%M:%S")
			socket.setdefaulttimeout(2)
			ssh = paramiko.SSHClient()
			ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
			ssh.connect(exec_cmd['ip'],exec_cmd['port'],exec_cmd['username'],exec_cmd['passwd'])
			print "Connected %s Successfully..."%exec_cmd['ip']
			stdin, stdout, stderr = ssh.exec_command(exec_cmd['cmd2exec'])
			err_message = stderr.read()
			if err_message:
				print err_message
				ReportLog.send_results(True,"[INFO %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str=err_message)
				return True
			ok_message = stdout.read()
			ReportLog.send_results(True,"[INFO %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str=str(ok_message))
			ssh.close()
		except socket.timeout:
			ReportLog.send_results(False,"[ERROR %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str="%s Connection timed out"%(exec_cmd['ip']))
			return False
		except socket.error:
			ReportLog.send_results(False,"[ERROR %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str="%s Connection timed out"%(exec_cmd['ip']))
			return False
		except paramiko.AuthenticationException:
			ReportLog.send_results(False,"[ERROR %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str="[IP=%s Password=%s] Authentication failured"%(exec_cmd['ip'],exec_cmd['passwd']))
			return False		
		return True
Exemple #4
0
 def file_exist(self, fileput):
     if not os.path.isfile(fileput['file2put']):
         ReportLog.send_results(False,
                                "NO: locate [%s]" % (fileput['file2put']),
                                des_str="%s doesn't exist." %
                                (fileput['file2put']))
         return False
     return True
Exemple #5
0
 def dir_exists(self, dirput):
     if not os.path.isdir(dirput['dir2put']):
         ReportLog.send_results(False,
                                "NO: locate [%s]" % (dirput['dir2put']),
                                des_str="%s doesn't exist." %
                                (dirput['dir2put']))
         return False
     return True
Exemple #6
0
	def get_dir2transfer(self):
		remote_dir_path=''
		local_dir_path=''
		local_dir_path = raw_input("Please input local path : ")
		if not os.path.isdir(local_dir_path):
			ReportLog.sys_info("%s does not exists !"%(local_dir_path))
			sys.exit(1)
		remote_dir_path = raw_input("Please input remote path : ")
		return (local_dir_path,remote_dir_path)
Exemple #7
0
 def exec_cmd(self, exec_cmd):
     try:
         #			print exec_cmd['ip'],exec_cmd['passwd']
         #			print "\n"
         print "\nConnecting %s..." % exec_cmd['ip']
         log_time = time.strftime("%Y-%m-%d %H:%M:%S")
         socket.setdefaulttimeout(2)
         ssh = paramiko.SSHClient()
         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
         ssh.connect(exec_cmd['ip'], exec_cmd['port'], exec_cmd['username'],
                     exec_cmd['passwd'])
         print "Connected %s Successfully..." % exec_cmd['ip']
         stdin, stdout, stderr = ssh.exec_command(exec_cmd['cmd2exec'])
         err_message = stderr.read()
         if err_message:
             print err_message
             ReportLog.send_results(
                 True,
                 "[INFO %s]: execute [%s] on %s" %
                 (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']),
                 des_str=err_message)
             return True
         ok_message = stdout.read()
         ReportLog.send_results(
             True,
             "[INFO %s]: execute [%s] on %s" %
             (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']),
             des_str=str(ok_message))
         ssh.close()
     except socket.timeout:
         ReportLog.send_results(
             False,
             "[ERROR %s]: execute [%s] on %s" %
             (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']),
             des_str="%s Connection timed out" % (exec_cmd['ip']))
         return False
     except socket.error:
         ReportLog.send_results(
             False,
             "[ERROR %s]: execute [%s] on %s" %
             (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']),
             des_str="%s Connection timed out" % (exec_cmd['ip']))
         return False
     except paramiko.AuthenticationException:
         ReportLog.send_results(
             False,
             "[ERROR %s]: execute [%s] on %s" %
             (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']),
             des_str="[IP=%s Password=%s] Authentication failured" %
             (exec_cmd['ip'], exec_cmd['passwd']))
         return False
     return True
Exemple #8
0
	def put_file(self,fileput):

		if not self.file_exist(fileput):
			return False

		try:
			log_time = time.strftime("%Y-%m-%d %H:%M:%S")
			print "Connecting %s..."%fileput['ip']
			socket.setdefaulttimeout(5)
			t = paramiko.Transport((fileput['ip'],fileput['port']))
			t.connect(username = fileput['username'], password = fileput['passwd'])
			sftp = paramiko.SFTPClient.from_transport(t)
			sftp.put(fileput['file2put'],fileput['file2save'])
			t.close()
		except IOError:
			error_msg = fileput['file2save'] + " is wrong."
			ReportLog.send_results(False,"[ERROR %s]: upload %s to %s"%(log_time,fileput['file2put'],fileput['ip']),des_str=error_msg)
			return False
		except Exception,e:
			ReportLog.send_results(False,"[ERROR %s]: upload %s to %s"%(log_time,fileput['file2put'],fileput['ip']),des_str=str(e))
			return False
Exemple #9
0
	def put_dir(self,dirput):

		if not self.dir_exists(dirput):
			return False
		socket.setdefaulttimeout(2)
		print "Connecting %s..."%dirput['ip']
		log_name = "/tmp/" + dirput['ip'].split('/')[-1] + "_put_dir.log"
		put_dir_cmd = "./put_dir.sh %s %s %s %s > %s 2>&1"%(dirput['ip'],dirput['passwd'],dirput['dir2put'],dirput['dir2save'],log_name)
#		print put_dir_cmd
		log_time = time.strftime("%Y-%m-%d %H:%M:%S")
		os.popen(put_dir_cmd)
		fd = open(log_name,'r')
		log = fd.read(1024)
		if 'No such file or directory' in log:
			ReportLog.send_results(False,"[ERROR %s]: upload %s to %s"%(log_time,dirput['dir2put'],dirput['ip']),des_str="%s doesn't exist on %s ."%(dirput['dir2save'],dirput['ip']))
			return False
		elif 'timed out' in log or 'Connection refused' in log:
			ReportLog.send_results(False,"[ERROR %s]: upload %s to %s"%(log_time,dirput['dir2put'],dirput['ip']),des_str="%s: Connection timed out."%(dirput['ip']))
			return False
#		print log
		ReportLog.send_results(True,"[INFO %s]: upload %s to %s"%(log_time,dirput['dir2put'],dirput['ip']))
		fd.close()
		return True
Exemple #10
0
    def put_dir(self, dirput):

        if not self.dir_exists(dirput):
            return False
        socket.setdefaulttimeout(2)
        print "Connecting %s..." % dirput['ip']
        log_name = "/tmp/" + dirput['ip'].split('/')[-1] + "_put_dir.log"
        put_dir_cmd = "./put_dir.sh %s %s %s %s > %s 2>&1" % (
            dirput['ip'], dirput['passwd'], dirput['dir2put'],
            dirput['dir2save'], log_name)
        #		print put_dir_cmd
        log_time = time.strftime("%Y-%m-%d %H:%M:%S")
        os.popen(put_dir_cmd)
        fd = open(log_name, 'r')
        log = fd.read(1024)
        if 'No such file or directory' in log:
            ReportLog.send_results(False,
                                   "[ERROR %s]: upload %s to %s" %
                                   (log_time, dirput['dir2put'], dirput['ip']),
                                   des_str="%s doesn't exist on %s ." %
                                   (dirput['dir2save'], dirput['ip']))
            return False
        elif 'timed out' in log or 'Connection refused' in log:
            ReportLog.send_results(False,
                                   "[ERROR %s]: upload %s to %s" %
                                   (log_time, dirput['dir2put'], dirput['ip']),
                                   des_str="%s: Connection timed out." %
                                   (dirput['ip']))
            return False


#		print log
        ReportLog.send_results(
            True, "[INFO %s]: upload %s to %s" %
            (log_time, dirput['dir2put'], dirput['ip']))
        fd.close()
        return True
Exemple #11
0
	def dir_exists(self,dirput):
		if not os.path.isdir(dirput['dir2put']):
			ReportLog.send_results(False,"NO: locate [%s]"%(dirput['dir2put']),des_str="%s doesn't exist."%(dirput['dir2put']))
			return False
		return True
Exemple #12
0
	def file_exist(self,fileput):
		if not os.path.isfile(fileput['file2put']):
			ReportLog.send_results(False,"NO: locate [%s]"%(fileput['file2put']),des_str="%s doesn't exist."%(fileput['file2put']))
			return False
		return True