@@ -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, " |
|
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 |
|
|
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