##// END OF EJS Templates
jroutils_ftp.py: SSHClient changes file permissions on remote server after upload a file
Miguel Valdez -
r576:58b2c6816db8
parent child
Show More
@@ -170,7 +170,7 class Remote(threading.Thread):
170 def run(self):
170 def run(self):
171
171
172 if not self.cd(self.remotefolder):
172 if not self.cd(self.remotefolder):
173 raise ValueError, "It could not change to the new remote directory: %s" %remotefolder
173 raise ValueError, "Could not access to the new remote directory: %s" %self.remotefolder
174
174
175 while True:
175 while True:
176
176
@@ -423,11 +423,16 class SSHClient(Remote):
423 self.server = server
423 self.server = server
424 self.username = username
424 self.username = username
425 self.password = password
425 self.password = password
426 self.remotefolder = remotefolder
427 self.__sshClientObj = sshClientObj
426 self.__sshClientObj = sshClientObj
428 self.__scpClientObj = scpClientObj
427 self.__scpClientObj = scpClientObj
429 self.status = 1
428 self.status = 1
430
429
430 if not self.cd(remotefolder):
431 raise ValueError, "Could not access to remote folder: %s" %remotefolder
432 return 0
433
434 self.remotefolder = remotefolder
435
431 return 1
436 return 1
432
437
433 def close(self):
438 def close(self):
@@ -438,40 +443,52 class SSHClient(Remote):
438 return 0
443 return 0
439
444
440 self.__sshObj.close()
445 self.__sshObj.close()
441
446
442 def mkdir(self, remotefolder):
447 def __execute(self, command):
443 """
448 """
444 mkdir is used to make a new directory in remote server
449 __execute a command on remote server
445
450
446 Input:
451 Input:
447 remotefolder - directory name
452 command - Exmaple 'ls -l'
448
453
449 Return:
454 Return:
450 0 in error case else 1
455 0 in error case else 1
451 """
456 """
452 if not self.status:
457 if not self.status:
453 return 0
458 return 0
459
460 stdin, stdout, stderr = self.__sshClientObj.exec_command(command)
454
461
455 stdin, stdout, stderr = self.__sshClientObj.exec_command('mkdir %s' %remotefolder)
462 result = stderr.readlines()
456 result = stderr.readlines()[0]
457
458 if len(result) > 1:
463 if len(result) > 1:
459 return 0
464 return 0
465
466 result = stdout.readlines()
467 if len(result) > 1:
468 return result[0][:-1]
460
469
461 return 1
470 return 1
471
472 def mkdir(self, remotefolder):
473 """
474 mkdir is used to make a new directory in remote server
475
476 Input:
477 remotefolder - directory name
478
479 Return:
480 0 in error case else 1
481 """
482
483 command = 'mkdir %s' %remotefolder
484
485 return self.__execute(command)
462
486
463 def pwd(self):
487 def pwd(self):
464
488
465 if not self.status:
489 command = 'pwd'
466 return None
467
490
468 stdin, stdout, stderr = self.__sshClientObj.exec_command('pwd')
491 return self.__execute(command)
469 result = stdout.readlines()[0]
470
471 if len(result) < 1:
472 return None
473
474 return result[:-1]
475
492
476 def cd(self, remotefolder):
493 def cd(self, remotefolder):
477 """
494 """
@@ -488,9 +505,17 class SSHClient(Remote):
488 """
505 """
489 if not self.status:
506 if not self.status:
490 return 0
507 return 0
491
508
492 if remotefolder == self.remotefolder:
509 if remotefolder == self.remotefolder:
493 return 1
510 return 1
511
512 chk_command = "cd %s; pwd" %remotefolder
513 mkdir_command = "mkdir %s" %remotefolder
514
515 if not self.__execute(chk_command):
516 if not self.__execute(mkdir_command):
517 self.remotefolder = None
518 return 0
494
519
495 self.remotefolder = remotefolder
520 self.remotefolder = remotefolder
496
521
@@ -506,7 +531,10 class SSHClient(Remote):
506 except:
531 except:
507 return 0
532 return 0
508
533
509 return 1
534 remotefile = os.path.join(self.remotefolder, os.path.split(fullfilename)[-1])
535 command = 'chmod 775 %s' %remotefile
536
537 return self.__execute(command)
510
538
511 class SendToServer(ProcessingUnit):
539 class SendToServer(ProcessingUnit):
512
540
General Comments 0
You need to be logged in to leave comments. Login now