##// 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 170 def run(self):
171 171
172 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 175 while True:
176 176
@@ -423,11 +423,16 class SSHClient(Remote):
423 423 self.server = server
424 424 self.username = username
425 425 self.password = password
426 self.remotefolder = remotefolder
427 426 self.__sshClientObj = sshClientObj
428 427 self.__scpClientObj = scpClientObj
429 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 436 return 1
432 437
433 438 def close(self):
@@ -438,40 +443,52 class SSHClient(Remote):
438 443 return 0
439 444
440 445 self.__sshObj.close()
441
442 def mkdir(self, remotefolder):
446
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 451 Input:
447 remotefolder - directory name
452 command - Exmaple 'ls -l'
448 453
449 454 Return:
450 455 0 in error case else 1
451 456 """
452 457 if not self.status:
453 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)
456 result = stderr.readlines()[0]
457
462 result = stderr.readlines()
458 463 if len(result) > 1:
459 464 return 0
465
466 result = stdout.readlines()
467 if len(result) > 1:
468 return result[0][:-1]
460 469
461 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 487 def pwd(self):
464 488
465 if not self.status:
466 return None
489 command = 'pwd'
467 490
468 stdin, stdout, stderr = self.__sshClientObj.exec_command('pwd')
469 result = stdout.readlines()[0]
470
471 if len(result) < 1:
472 return None
473
474 return result[:-1]
491 return self.__execute(command)
475 492
476 493 def cd(self, remotefolder):
477 494 """
@@ -488,9 +505,17 class SSHClient(Remote):
488 505 """
489 506 if not self.status:
490 507 return 0
491
508
492 509 if remotefolder == self.remotefolder:
493 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 520 self.remotefolder = remotefolder
496 521
@@ -506,7 +531,10 class SSHClient(Remote):
506 531 except:
507 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 539 class SendToServer(ProcessingUnit):
512 540
General Comments 0
You need to be logged in to leave comments. Login now