Use the hashicorp/go-getter to download files
* removed packer.Cache and references since packer.Cache is never used except in the download step. The download step now uses the new func packer.CachePath(targetPath) for this, the behavior is the same.
* removed download code from packer that was reimplemented into the go-getter library: progress bar, http download restart, checksuming from file, skip already downloaded files, symlinking, make a download cancellable by context.
* on windows if packer is running without symlinking rights and we are getting a local file, the file will be copied instead to avoid errors.
* added unit tests for step_download that are now CI tested on windows, mac & linux.
* files are now downloaded under cache dir `sha1(filename + "?checksum=" + checksum) + file_extension`
* since the output dir is based on the source url and the checksum, when the checksum fails, the file is auto deleted.
* a download file is protected and locked by a file lock,
* updated docs
* updated go modules and vendors
2019-03-13 07:11:58 -04:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* Copyright 2017 gRPC authors.
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
// Package grpclog defines logging for grpc.
|
|
|
|
//
|
2019-05-30 17:25:43 -04:00
|
|
|
// All logs in transport and grpclb packages only go to verbose level 2.
|
Use the hashicorp/go-getter to download files
* removed packer.Cache and references since packer.Cache is never used except in the download step. The download step now uses the new func packer.CachePath(targetPath) for this, the behavior is the same.
* removed download code from packer that was reimplemented into the go-getter library: progress bar, http download restart, checksuming from file, skip already downloaded files, symlinking, make a download cancellable by context.
* on windows if packer is running without symlinking rights and we are getting a local file, the file will be copied instead to avoid errors.
* added unit tests for step_download that are now CI tested on windows, mac & linux.
* files are now downloaded under cache dir `sha1(filename + "?checksum=" + checksum) + file_extension`
* since the output dir is based on the source url and the checksum, when the checksum fails, the file is auto deleted.
* a download file is protected and locked by a file lock,
* updated docs
* updated go modules and vendors
2019-03-13 07:11:58 -04:00
|
|
|
// All logs in other packages in grpc are logged in spite of the verbosity level.
|
|
|
|
//
|
|
|
|
// In the default logger,
|
|
|
|
// severity level can be set by environment variable GRPC_GO_LOG_SEVERITY_LEVEL,
|
|
|
|
// verbosity level can be set by GRPC_GO_LOG_VERBOSITY_LEVEL.
|
|
|
|
package grpclog // import "google.golang.org/grpc/grpclog"
|
|
|
|
|
|
|
|
import "os"
|
|
|
|
|
|
|
|
var logger = newLoggerV2()
|
|
|
|
|
|
|
|
// V reports whether verbosity level l is at least the requested verbose level.
|
|
|
|
func V(l int) bool {
|
|
|
|
return logger.V(l)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Info logs to the INFO log.
|
|
|
|
func Info(args ...interface{}) {
|
|
|
|
logger.Info(args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf.
|
|
|
|
func Infof(format string, args ...interface{}) {
|
|
|
|
logger.Infof(format, args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println.
|
|
|
|
func Infoln(args ...interface{}) {
|
|
|
|
logger.Infoln(args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Warning logs to the WARNING log.
|
|
|
|
func Warning(args ...interface{}) {
|
|
|
|
logger.Warning(args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf.
|
|
|
|
func Warningf(format string, args ...interface{}) {
|
|
|
|
logger.Warningf(format, args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println.
|
|
|
|
func Warningln(args ...interface{}) {
|
|
|
|
logger.Warningln(args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Error logs to the ERROR log.
|
|
|
|
func Error(args ...interface{}) {
|
|
|
|
logger.Error(args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf.
|
|
|
|
func Errorf(format string, args ...interface{}) {
|
|
|
|
logger.Errorf(format, args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println.
|
|
|
|
func Errorln(args ...interface{}) {
|
|
|
|
logger.Errorln(args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print.
|
|
|
|
// It calls os.Exit() with exit code 1.
|
|
|
|
func Fatal(args ...interface{}) {
|
|
|
|
logger.Fatal(args...)
|
|
|
|
// Make sure fatal logs will exit.
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf.
|
|
|
|
// It calles os.Exit() with exit code 1.
|
|
|
|
func Fatalf(format string, args ...interface{}) {
|
|
|
|
logger.Fatalf(format, args...)
|
|
|
|
// Make sure fatal logs will exit.
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println.
|
|
|
|
// It calle os.Exit()) with exit code 1.
|
|
|
|
func Fatalln(args ...interface{}) {
|
|
|
|
logger.Fatalln(args...)
|
|
|
|
// Make sure fatal logs will exit.
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Print prints to the logger. Arguments are handled in the manner of fmt.Print.
|
|
|
|
//
|
|
|
|
// Deprecated: use Info.
|
|
|
|
func Print(args ...interface{}) {
|
|
|
|
logger.Info(args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Printf prints to the logger. Arguments are handled in the manner of fmt.Printf.
|
|
|
|
//
|
|
|
|
// Deprecated: use Infof.
|
|
|
|
func Printf(format string, args ...interface{}) {
|
|
|
|
logger.Infof(format, args...)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Println prints to the logger. Arguments are handled in the manner of fmt.Println.
|
|
|
|
//
|
|
|
|
// Deprecated: use Infoln.
|
|
|
|
func Println(args ...interface{}) {
|
|
|
|
logger.Infoln(args...)
|
|
|
|
}
|