<p>mc mengirim pesan status yang tidak perlu ke stdout saat itu adalah TTY</p>

Dibuat pada 20 Nov 2020  ·  13Komentar  ·  Sumber: minio/mc

Perilaku yang diharapkan

mc harus berperilaku secara konsisten untuk pengujian sehingga outputnya dapat diuraikan dan log informatif tidak boleh di stdout tetapi stderr

Perilaku sebenarnya

Saat pertama kali dijalankan di tty, mc membuang versi ini ke stdout sebelum output yang tepat dari perintahnya, bahkan dengan --json dan --quiet . Ini mempersulit pengujian skrip yang dapat direproduksi yang mengharapkan keluaran terstruktur.

mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.

Langkah-langkah untuk mereproduksi perilaku

Contoh komposisi buruh pelabuhan

version: "2"

services:
  minio:
    image: minio/minio
    environment:
      MINIO_ACCESS_KEY: docker
      MINIO_SECRET_KEY: inconsistent
    command: server /data
  mc:
    image: minio/mc
    environment:
      MC_HOST_app: http://docker:inconsistent<strong i="15">@minio</strong>:9000
    depends_on:
      - minio
    command: admin --json user list app

docker-compose up : mc keluar secara normal seperti yang diharapkan, tanpa keluaran apa pun
docker-compose run --rm -T mc : mc keluar secara normal seperti yang diharapkan, tanpa keluaran apa pun karena tidak ada TTY
docker-compose run --rm mc : mc membuang pesan di atas ke stdout

mc --versi

Saya menemukan ini terjadi di

mc version RELEASE.2020-11-17T00-39-14Z

dan

mc version RELEASE.2020-10-03T02-54-56Z

Sistem Informasi

Saya telah mengkonfirmasi ini terjadi di lingkungan Docker di WSL2, macOS, dan Linux.

community triage

Semua 13 komentar

~ tree /tmp/garbage1/
/tmp/garbage1/ [error opening dir]

0 directories, 0 files

~ mc --config-dir /tmp/garbage1 --json ls /tmp/2 
{
 "status": "success",
 "type": "folder",
 "lastModified": "2020-11-17T23:26:17.202902722-08:00",
 "size": 4096,
 "key": ".minio.sys/",
 "etag": "",
 "url": "/tmp/2/",
 "versionOrdinal": 1
}
{
 "status": "success",
 "type": "folder",
 "lastModified": "2020-11-17T14:52:11.063079105-08:00",
 "size": 4096,
 "key": "testbucket/",
 "etag": "",
 "url": "/tmp/2/",
 "versionOrdinal": 1
}
~ tree /tmp/garbage1/
/tmp/garbage1/
├── certs
│   └── CAs
├── config.json
├── session
└── share
    ├── downloads.json
    └── uploads.json

Sepertinya bukan @kevinlul ?

Apakah ini lingkungan yang segar? Jika file sudah ada di ~/.mc maka saya tidak mengharapkan pesan itu muncul.

Apakah ini lingkungan yang segar? Jika file sudah ada di ~/.mc maka saya tidak mengharapkan pesan itu muncul.

Iya @kevinlul

~ mv ~/.mc ~/.mc.old
~ mc --config-dir /tmp/garbage1 --json ls /tmp/2 
{
 "status": "success",
 "type": "folder",
 "lastModified": "2020-11-17T23:26:17.202902722-08:00",
 "size": 4096,
 "key": ".minio.sys/",
 "etag": "",
 "url": "/tmp/2/",
 "versionOrdinal": 1
}
{
 "status": "success",
 "type": "folder",
 "lastModified": "2020-11-17T14:52:11.063079105-08:00",
 "size": 4096,
 "key": "testbucket/",
 "etag": "",
 "url": "/tmp/2/",
 "versionOrdinal": 1
}
~ tree ~/.mc
/home/harsha/.mc [error opening dir]

0 directories, 0 files

Sesuai kode itu tidak boleh dicetak

                 if !globalQuiet && !globalJSON {
                        console.Infoln("Configuration written to `" + mustGetMcConfigPath() + "`. Please update your access credentials.")
                }

Apakah Anda yakin wadah Anda telah menarik mc ?

Saya harus mengklarifikasi bahwa saya menjalankan ini terhadap MinIO secara khusus dan bukan sistem file lokal. Ketika saya menjalankan perintah Anda, yang berhubungan dengan sistem file lokal, hasilnya baik-baik saja. Namun, jika saya mencobanya terhadap sebuah cluster maka saya mendapatkan output pesan. Sepertinya posisi flag --json juga penting. Contoh yang dijalankan pertama di bawah ini:

/ # mc admin --json user list app
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
/ # mc ls --json app
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
/ # mc ls --json /tmp
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
/ # mc --json ls /tmp
/ # mc --json ls app
/ # mc ls --json app
/ # mc admin --json user list app

@kevinlul ya posisi penting dan kami tidak bisa berbuat banyak - ini adalah Batasan penguraian bendera Go.

Saya harus mengklarifikasi bahwa saya menjalankan ini terhadap MinIO secara khusus dan bukan sistem file lokal. Ketika saya menjalankan perintah Anda, yang berhubungan dengan sistem file lokal, hasilnya baik-baik saja. Namun, jika saya mencobanya terhadap sebuah cluster maka saya mendapatkan output pesan. Sepertinya posisi flag --json juga penting. Contoh yang dijalankan pertama di bawah ini:

Tidak masalah mc pembuatan konfigurasi tidak ada hubungannya dengan tempat Anda berbicara.

Jadi berikan bendera di awal dan kami tidak akan menampilkan pesan itu saja @kevinlul

Jika ini adalah perilaku yang dimaksudkan maka mungkin ini adalah topik yang lebih baik untuk dokumentasi? Saya mengetahui tanda tersebut dari klien admin docs , bagian 6, dan saya benar-benar tidak mengharapkan ini sama sekali. Dalam dua cara itu digunakan di bagian dokumen itu, --json muncul setelah subperintah mc admin di dua tempat berbeda, yang menunjukkan kepada pembaca bahwa itu tidak masalah.

Jika ini adalah perilaku yang dimaksudkan maka mungkin ini adalah topik yang lebih baik untuk dokumentasi? Saya mengetahui tanda tersebut dari klien admin docs , bagian 6, dan saya benar-benar tidak mengharapkan ini sama sekali. Dalam dua cara itu digunakan di bagian dokumen itu, --json muncul setelah subperintah mc admin di dua tempat berbeda, yang menunjukkan kepada pembaca bahwa itu tidak masalah.

Bukan niat saya TBH, ini adalah masalah mendasar dari posisi parser Go yang penting untuk perilaku. Jadi gunakan cara yang baru saja saya tunjukkan, dokumentasi dapat mengikuti nanti.

Baik. Jika masalah posisi parser Go tidak dapat diatasi, saya sarankan mengirim pesan diagnostik ke stderr jika memungkinkan untuk menghindari output reguler yang mengganggu. Saya akan ingat untuk menempatkan flag --json terlebih dahulu.

Masalah ini secara otomatis ditandai sebagai basi karena tidak ada aktivitas terbaru. Ini akan ditutup setelah 21 hari jika tidak ada aktivitas lebih lanjut. Terima kasih atas kontribusi Anda.

Apakah rencana masih memperbarui dokumen untuk masalah ini?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat