ошибка задачи фабрики при запросе пароля - PullRequest
1 голос
/ 12 октября 2011

У меня ошибка, я не могу пройти мимо.У меня есть простая задача фабрики, которую нужно запускать от имени другого пользователя в удаленной системе, например:

def update():
    env.user = 'otheruser'
    #~ env.password = 'otherpass'  # this works, but I don't want it here.
    with cd(env.sitefolder):
        run('hg pull -u')

Если я запускаю это с жестко закодированным env.password, это работает.Если я использую fab -p otherpass update, это тоже работает.Если я опущу это , документы скажут, что мне предложат.Это правда, но это не работает.Каждый раз после ввода пароля я получаю эту ошибку:

> fab dev update
[darkstar] Executing task 'update'
[darkstar] run: hg pull -u
[darkstar] Login password: 
ERROR:paramiko.transport:Exception: Error reading SSH protocol banner
...
Fatal error: Error reading SSH protocol banner

Aborting.

Использование ткани 1.2.2 на Ubuntu Natty.Я также попробовал опцию env.no_keys, но она ничего не изменила.Кто-нибудь может помочь?

Ответы [ 2 ]

4 голосов
/ 10 ноября 2011

Запрашивайте пароль самостоятельно!

def update():
    env.user = 'otheruser'
    env.password = getpass.getpass('Enter password: ')
    with cd(env.sitefolder):
        run('hg pull -u')

getpass является частью стандартной библиотеки, это просто raw_input, который не повторяет то, что вы вводите

1 голос
/ 13 декабря 2011

Это также может произойти, если в цели недостаточно памяти / дискового пространства. Перезапуск и / или решение проблем памяти / дискового пространства может решить эту проблему.

...