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