2012-05-03 10 views
1

私はDjangoとファブリックのデプロイメントツールを開発中です。このケースでは、初期フォームにいくつかのパラメータ(ホスト名やユーザ名など)を入れてから、Djangoアプリに残りの処理を行い、Webブラウザで出力を収集するようにファブリックメソッドを呼び出させます。sudoのパスワードのFabric + django非同期プロンプト

OSからファブリックへのパスワードプロンプトが表示されている(つまり、sudoコマンドなどを実行している)場合は、パスワードを入力するための1フィールドフォームをポップアップしたいと思います(たとえば、jQuery UIエレメントを使用) 。その人は、ユーザの入力のためにパスワードフィールドを記入し、ファブリックは物事を続けるでしょう。この状況は実現可能か?私はブラウザへの非同期呼び出しを考えていましたが、他の側からどうやってそれを行うことはできません。おそらく別の方法があります。

提案がありましたら教えてください。ありがとう!

答えて

2

はい、あなたは例外をキャッチどこ続けたい場合は、持っているものを知っている変数を保持するフォームをポップアップするよりも、パスワードの例外を捕捉し、そしてenv.password = userpassword

で再び生地のスクリプトを実行します例外が発生したときにはまだ実行されていません(つまりnlinesが実行されています)。あなたが残した場所を続けるためにスクリプトを再実行するときにロジックを使用してください。

1

パスワードプロンプトは、必要な場合にのみ行うことはできません。以前はプロンプトが表示され、必要に応じてキャッシュされ、バックエンドにアクセスできるようになりました。

ファブリックコマンドにsudoのパスワードを渡すには、sudoを-S ...すなわち

エコーパスワードを使用することができます| sudoの-Sコマンド

関連する問題