Fabric: hide ('running') pada level tugas rusak

Dibuat pada 25 Agu 2011  ·  9Komentar  ·  Sumber: fabric/fabric

1) tidak menyembunyikan hal-hal seperti 'menjalankan tugas ...'
2) menghapus baris baru dari keluaran terakhir, sehingga bergabung dengan baris keluaran berikutnya

fabfile adalah:
@tugas
def show_hostname ():
dengan pengaturan (sembunyikan ('berjalan')):
jalankan ('hostname')
lari ('tanggal')

% /opt/python-2.7/bin/fab -f output.py -H x1, x2 show_hostname
[x1] Menjalankan tugas 'show_hostname'
[x1] keluar: x1domainku.de
[x1] keluar: [x1] keluar: Kam 25 Agustus 10:34:10 CEST 2011
[x1] keluar: [x2] Menjalankan tugas 'show_hostname'
[x2] keluar: x2.mydomain.de
[x2] keluar: [x2] keluar: Kam 25 Agustus 10:34:11 CEST 2011
[x2] keluar:
Selesai.

dan sementara kita melakukannya:

3) run ('hostname') misalnya selalu mengeluarkan baris kosong seperti:

[h1] Menjalankan tugas 'show_hostname'
[h1] keluar: h1.mydomain.de
[h1] keluar:

adalah 3) dengan sengaja dan apakah 1,2 masalah berasal dari baris kosong itu?

Terima kasih,
Sven

Bug UI

Komentar yang paling membantu

  • bagaimana juga menyembunyikan "Selesai." dicetak setelah selesai?
  • bagaimana cara menyembunyikan "Memutuskan dari my.server.com ... selesai."?

Akan berguna jika saya bisa menonaktifkan SEMUA (benar-benar semua) keluaran kecuali yang saya cetak secara eksplisit, kecuali jika ada masalah.

Semua 9 komentar

jika Anda melihat kain. main: main , Anda akan melihat 'mengeksekusi' terjadi _outside_ tugas, itulah mengapa tidak disembunyikan, oleh sembunyi. Sebagai solusi (global!) Anda dapat menyetel fabric.state.output ['running'] = False, atau meneruskan --hide = running.

Gregg benar re: mengeksekusi - ini perlu menjadi pengaturan global karena ketika baris "Pelaksana" dicetak - meskipun saya mengakui bahwa itu tidak terlalu intuitif dan berharap ada cara yang lebih baik untuk mengatasinya. (Saya dapat memikirkan satu cara untuk melakukannya untuk tugas gaya baru, tetapi tidak yakin itu layak meningkatkan perbedaan perilaku antara kedua jenis, saat ini ...)

Baris baru di akhir stdout blok disengaja, IIRC, meskipun saya tidak dapat mengingat apakah kita secara eksplisit memasukkannya atau jika itu sebenarnya dari ujung jarak jauh (dan hanya memicu awalan baris baru.) Tapi Saya tidak berpikir itu bug _per se_.

Baris baru yang "hilang" mungkin terkait - saya harus memeriksa ulang. Mungkin situasi di mana itu akan terlihat jelek dengan satu atau lain cara dan kami harus mengalihkan keburukan ke kasus yang kurang umum.

Apakah ada pembaruan tentang bug / ketidakkonsistenan UI ini? Saya mencoba untuk mengekor file melalui fabric, dan akan sangat bagus untuk menutupi output "[hostname]" itu.

Saya mencoba fabric.state.output['running'] = False , tidak ada yang berubah.

@charlax Anda dapat menggunakan fab --hide=running dan itu akan membalik tingkat keluaran itu dari awal proses, jadi itu harus menyembunyikan semua hal 'menjalankan tugas x' yang tidak bisa disembunyikan dari dalam tugas itu sendiri. Tidak yakin mengapa saya tidak menyebutkan ini di komentar sebelumnya.

Anda juga harus dapat membuat fabric.state.output perubahan yang Anda sebutkan, pada tingkat modul (atas) di fabfile Anda - di mana tepatnya Anda meletakkannya ketika Anda mencoba? Jika ada di dalam tugas, itu tetap tidak akan berfungsi.

Oh iya, sebenarnya yang saya coba lakukan adalah menyembunyikan bagian [host.com] out: , maaf atas kesalahpahamannya.

Artinya _hanya_ bagian dari garis itu? Ada pengaturan konfigurasi pribadi untuk itu, tetapi saya tidak melihat bahwa perubahan sebelum fab 2.0 keluar, jadi saya akan memberi tahu Anda rahasianya: ini env.output_prefix , setel ke False dan itu hanya akan cetak stdout / stderr literal tanpa awalan baris.

Terima kasih!

Sepertinya dekorator @hosts () harus memungkinkan untuk menyembunyikan bagian 'host' dari output yang sedang berjalan tanpa memaksa penonaktifan

fabric.state.output['running']

secara global. Ini akan memungkinkan menimpa env.hosts untuk satu metode yang dimaksudkan untuk dilakukan. Tampaknya itu harus berperilaku sebagai env.hosts dalam pengaturan itu ke iterator kosong (atau None) harus memicu eksekusi local_only yang tidak akan mencetak host. Saat ini, iterator kosong di @hosts diabaikan dan kembali menggunakan env.hosts. Jika ditarik, saya akan menulis tambalan.

  • bagaimana juga menyembunyikan "Selesai." dicetak setelah selesai?
  • bagaimana cara menyembunyikan "Memutuskan dari my.server.com ... selesai."?

Akan berguna jika saya bisa menonaktifkan SEMUA (benar-benar semua) keluaran kecuali yang saya cetak secara eksplisit, kecuali jika ada masalah.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat