mirror of
https://github.com/minio/minio.git
synced 2025-02-03 09:55:59 -05:00
Embed file in ZIP with custom permissions (#17954)
This change enables embedding files in ZIP with custom permissions. Also uses default creds for starting MinIO based on inspect data. Signed-off-by: Shubhendu Ram Tripathi <shubhendu@minio.io>
This commit is contained in:
parent
13a2dc8485
commit
bfddbb8b40
@ -2627,12 +2627,12 @@ func fetchLoggerInfo() ([]madmin.Logger, []madmin.Audit) {
|
|||||||
return loggerInfo, auditloggerInfo
|
return loggerInfo, auditloggerInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
func embedFileInZip(zipWriter *zip.Writer, name string, data []byte) error {
|
func embedFileInZip(zipWriter *zip.Writer, name string, data []byte, fileMode os.FileMode) error {
|
||||||
// Send profiling data to zip as file
|
// Send profiling data to zip as file
|
||||||
header, zerr := zip.FileInfoHeader(dummyFileInfo{
|
header, zerr := zip.FileInfoHeader(dummyFileInfo{
|
||||||
name: name,
|
name: name,
|
||||||
size: int64(len(data)),
|
size: int64(len(data)),
|
||||||
mode: 0o600,
|
mode: fileMode,
|
||||||
modTime: UTCNow(),
|
modTime: UTCNow(),
|
||||||
isDir: false,
|
isDir: false,
|
||||||
sys: nil,
|
sys: nil,
|
||||||
@ -2863,7 +2863,7 @@ func (a adminAPIHandlers) InspectDataHandler(w http.ResponseWriter, r *http.Requ
|
|||||||
defer inspectZipW.Close()
|
defer inspectZipW.Close()
|
||||||
|
|
||||||
if b := getClusterMetaInfo(ctx); len(b) > 0 {
|
if b := getClusterMetaInfo(ctx); len(b) > 0 {
|
||||||
logger.LogIf(ctx, embedFileInZip(inspectZipW, "cluster.info", b))
|
logger.LogIf(ctx, embedFileInZip(inspectZipW, "cluster.info", b, 0o600))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2927,7 +2927,7 @@ func (a adminAPIHandlers) InspectDataHandler(w http.ResponseWriter, r *http.Requ
|
|||||||
sb.WriteString(pool.CmdLine)
|
sb.WriteString(pool.CmdLine)
|
||||||
}
|
}
|
||||||
sb.WriteString("\n")
|
sb.WriteString("\n")
|
||||||
logger.LogIf(ctx, embedFileInZip(inspectZipW, "inspect-input.txt", sb.Bytes()))
|
logger.LogIf(ctx, embedFileInZip(inspectZipW, "inspect-input.txt", sb.Bytes(), 0o600))
|
||||||
|
|
||||||
// save MinIO start script to inspect command
|
// save MinIO start script to inspect command
|
||||||
var scrb bytes.Buffer
|
var scrb bytes.Buffer
|
||||||
@ -2943,7 +2943,7 @@ function main() {
|
|||||||
MINIO_OPTS=$(grep "Server command line args" <./inspect-input.txt | sed "s/Server command line args: //g" | sed -r "s#https:\/\/#\.\/#g")
|
MINIO_OPTS=$(grep "Server command line args" <./inspect-input.txt | sed "s/Server command line args: //g" | sed -r "s#https:\/\/#\.\/#g")
|
||||||
|
|
||||||
# Start MinIO instance using the options
|
# Start MinIO instance using the options
|
||||||
START_CMD="CI=on MINIO_ROOT_USER=minio MINIO_ROOT_PASSWORD=minio123 minio server ${MINIO_OPTS} &"
|
START_CMD="CI=on _MINIO_AUTO_DISK_HEALING=off minio server ${MINIO_OPTS} &"
|
||||||
echo
|
echo
|
||||||
echo "Starting MinIO instance: ${START_CMD}"
|
echo "Starting MinIO instance: ${START_CMD}"
|
||||||
echo
|
echo
|
||||||
@ -2957,7 +2957,7 @@ function main() {
|
|||||||
|
|
||||||
main "$@"`,
|
main "$@"`,
|
||||||
)
|
)
|
||||||
logger.LogIf(ctx, embedFileInZip(inspectZipW, "start-minio.sh", scrb.Bytes()))
|
logger.LogIf(ctx, embedFileInZip(inspectZipW, "start-minio.sh", scrb.Bytes(), 0o755))
|
||||||
}
|
}
|
||||||
|
|
||||||
func getSubnetAdminPublicKey() []byte {
|
func getSubnetAdminPublicKey() []byte {
|
||||||
|
@ -297,7 +297,7 @@ func (sys *NotificationSys) DownloadProfilingData(ctx context.Context, writer io
|
|||||||
profilingDataFound = true
|
profilingDataFound = true
|
||||||
|
|
||||||
for typ, data := range data {
|
for typ, data := range data {
|
||||||
err := embedFileInZip(zipWriter, fmt.Sprintf("profile-%s-%s", client.host.String(), typ), data)
|
err := embedFileInZip(zipWriter, fmt.Sprintf("profile-%s-%s", client.host.String(), typ), data, 0o600)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
reqInfo := (&logger.ReqInfo{}).AppendTags("peerAddress", client.host.String())
|
reqInfo := (&logger.ReqInfo{}).AppendTags("peerAddress", client.host.String())
|
||||||
ctx := logger.SetReqInfo(ctx, reqInfo)
|
ctx := logger.SetReqInfo(ctx, reqInfo)
|
||||||
@ -325,11 +325,11 @@ func (sys *NotificationSys) DownloadProfilingData(ctx context.Context, writer io
|
|||||||
|
|
||||||
// Send profiling data to zip as file
|
// Send profiling data to zip as file
|
||||||
for typ, data := range data {
|
for typ, data := range data {
|
||||||
err := embedFileInZip(zipWriter, fmt.Sprintf("profile-%s-%s", thisAddr, typ), data)
|
err := embedFileInZip(zipWriter, fmt.Sprintf("profile-%s-%s", thisAddr, typ), data, 0o600)
|
||||||
logger.LogIf(ctx, err)
|
logger.LogIf(ctx, err)
|
||||||
}
|
}
|
||||||
if b := getClusterMetaInfo(ctx); len(b) > 0 {
|
if b := getClusterMetaInfo(ctx); len(b) > 0 {
|
||||||
logger.LogIf(ctx, embedFileInZip(zipWriter, "cluster.info", b))
|
logger.LogIf(ctx, embedFileInZip(zipWriter, "cluster.info", b, 0o600))
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user