Skip to content

Commit b2d6c4e

Browse files
Merge pull request #375 from crawford/logging
*: improve logging messages
2 parents 748b9d7 + 04258fb commit b2d6c4e

File tree

288 files changed

+17972
-50491
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

288 files changed

+17972
-50491
lines changed

cmd/openshift-install/main.go

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"fmt"
55
"os"
66

7-
log "github.com/sirupsen/logrus"
7+
"github.com/sirupsen/logrus"
88
"gopkg.in/alecthomas/kingpin.v2"
99

1010
"github.com/openshift/installer/pkg/asset"
@@ -23,19 +23,24 @@ var (
2323
destroyCommand = kingpin.Command("destroy-cluster", "Destroy an OpenShift cluster")
2424

2525
dirFlag = kingpin.Flag("dir", "assets directory").Default(".").String()
26-
logLevel = kingpin.Flag("log-level", "log level (e.g. \"debug\")").Default("warn").Enum("debug", "info", "warn", "error", "fatal", "panic")
26+
logLevel = kingpin.Flag("log-level", "log level (e.g. \"debug\")").Default("info").Enum("debug", "info", "warn", "error")
2727

2828
version = "was not built correctly" // set in hack/build.sh
2929
)
3030

3131
func main() {
3232
command := kingpin.Parse()
33-
l, err := log.ParseLevel(*logLevel)
34-
if err != nil {
33+
34+
logrus.SetFormatter(&logrus.TextFormatter{
35+
DisableTimestamp: true,
36+
DisableLevelTruncation: true,
37+
})
38+
if level, err := logrus.ParseLevel(*logLevel); err == nil {
39+
logrus.SetLevel(level)
40+
} else {
3541
// By definition we should never enter this condition since kingpin should be guarding against incorrect values.
36-
log.Fatalf("invalid log-level: %v", err)
42+
logrus.Panicf("Invalid log-level: %v", err)
3743
}
38-
log.SetLevel(l)
3944

4045
if command == versionCommand.FullCommand() {
4146
fmt.Printf("%s %s\n", os.Args[0], version)
@@ -77,26 +82,20 @@ func main() {
7782
for _, asset := range targetAssets {
7883
st, err := assetStore.Fetch(asset)
7984
if err != nil {
80-
log.Fatalf("failed to generate asset: %v", err)
81-
os.Exit(1)
85+
logrus.Fatalf("Failed to generate asset: %v", err)
8286
}
8387

8488
if err := st.PersistToFile(*dirFlag); err != nil {
85-
log.Fatalf("failed to write target to disk: %v", err)
86-
os.Exit(1)
89+
logrus.Fatalf("Failed to write asset (%s) to disk: %v", asset.Name(), err)
8790
}
8891
}
8992
case destroyCommand.FullCommand():
90-
destroyer, err := destroy.New(l, *dirFlag)
93+
destroyer, err := destroy.New(logrus.StandardLogger(), *dirFlag)
9194
if err != nil {
92-
log.Fatalf("failed to create destroyer: %v", err)
93-
os.Exit(1)
95+
logrus.Fatalf("Failed while preparing to destroy cluster: %v", err)
9496
}
9597
if err := destroyer.Run(); err != nil {
96-
log.Fatalf("destroy failed: %v", err)
97-
os.Exit(1)
98+
logrus.Fatalf("Failed to destroy cluster: %v", err)
9899
}
99-
100100
}
101-
102101
}

glide.lock

Lines changed: 15 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

glide.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import:
55
- package: github.com/ghodss/yaml
66
version: 73d445a93680fa1a78ae23a5839bad48f32ba1ee
77
- package: github.com/sirupsen/logrus
8-
version: 081307d9bc1364753142d5962fc1d795c742baaf
8+
version: 1.1.0
99
- package: gopkg.in/yaml.v2
1010
version: 53feefa2559fb8dfa8d81baad31be332c97d6c77
1111
- package: gopkg.in/alecthomas/kingpin.v2

pkg/asset/cluster/cluster.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"os"
88
"path/filepath"
99

10-
log "github.com/sirupsen/logrus"
10+
"github.com/sirupsen/logrus"
1111

1212
"github.com/openshift/installer/data"
1313
"github.com/openshift/installer/pkg/asset"
@@ -73,6 +73,8 @@ func (c *Cluster) Generate(parents map[asset.Asset]*asset.State) (*asset.State,
7373
return nil, err
7474
}
7575

76+
logrus.Infof("Using Terraform to create cluster...")
77+
7678
// This runs the terraform in a temp directory, the tfstate file will be returned
7779
// to the asset store to persist it on the disk.
7880
if err := terraform.Init(tmpDir); err != nil {
@@ -81,22 +83,24 @@ func (c *Cluster) Generate(parents map[asset.Asset]*asset.State) (*asset.State,
8183

8284
stateFile, err := terraform.Apply(tmpDir)
8385
if err != nil {
84-
// we should try to fetch the terraform state file.
85-
log.Errorf("terraform failed: %v", err)
86+
err = fmt.Errorf("terraform failed: %v", err)
8687
}
8788

88-
data, err := ioutil.ReadFile(stateFile)
89-
if err != nil {
90-
return nil, fmt.Errorf("failed to read tfstate file %q: %v", stateFile, err)
89+
data, err2 := ioutil.ReadFile(stateFile)
90+
if err2 != nil {
91+
if err == nil {
92+
err = err2
93+
} else {
94+
logrus.Errorf("Failed to read tfstate (%q): %v", stateFile, err2)
95+
}
9196
}
9297

93-
// TODO(yifan): Use the kubeconfig to verify the cluster is up.
9498
return &asset.State{
9599
Contents: []asset.Content{
96100
{
97101
Name: stateFileName,
98102
Data: data,
99103
},
100104
},
101-
}, nil
105+
}, err
102106
}

pkg/asset/store.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func (s *StoreImpl) Fetch(asset Asset) (*State, error) {
2525
}
2626

2727
func (s *StoreImpl) fetch(asset Asset, indent string) (*State, error) {
28-
logrus.Infof("%sFetching %s...", indent, asset.Name())
28+
logrus.Debugf("%sFetching %s...", indent, asset.Name())
2929
state, ok := s.assets[asset]
3030
if ok {
3131
logrus.Debugf("%sFound %s...", indent, asset.Name())

pkg/destroy/aws.go

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,18 @@
11
package destroy
22

33
import (
4-
"os"
5-
64
atd "github.com/openshift/hive/contrib/pkg/awstagdeprovision"
75
"github.com/openshift/installer/pkg/types"
8-
log "github.com/sirupsen/logrus"
6+
"github.com/sirupsen/logrus"
97
)
108

119
// NewAWS returns an AWS destroyer from ClusterMetadata.
12-
func NewAWS(level log.Level, metadata *types.ClusterMetadata) (Destroyer, error) {
10+
func NewAWS(logger logrus.FieldLogger, metadata *types.ClusterMetadata) (Destroyer, error) {
1311
return &atd.ClusterUninstaller{
1412
Filters: metadata.ClusterPlatformMetadata.AWS.Identifier,
1513
Region: metadata.ClusterPlatformMetadata.AWS.Region,
1614
ClusterName: metadata.ClusterName,
17-
Logger: log.NewEntry(&log.Logger{
18-
Out: os.Stdout,
19-
Formatter: &log.TextFormatter{
20-
FullTimestamp: true,
21-
},
22-
Hooks: make(log.LevelHooks),
23-
Level: level,
24-
}),
15+
Logger: logger,
2516
}, nil
2617
}
2718

pkg/destroy/destroyer.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"io/ioutil"
77
"path/filepath"
88

9-
log "github.com/sirupsen/logrus"
9+
"github.com/sirupsen/logrus"
1010

1111
"github.com/openshift/installer/pkg/asset/metadata"
1212
"github.com/openshift/installer/pkg/types"
@@ -19,13 +19,13 @@ type Destroyer interface {
1919
}
2020

2121
// NewFunc is an interface for creating platform-specific destroyers.
22-
type NewFunc func(level log.Level, metadata *types.ClusterMetadata) (Destroyer, error)
22+
type NewFunc func(logger logrus.FieldLogger, metadata *types.ClusterMetadata) (Destroyer, error)
2323

2424
// Registry maps ClusterMetadata.Platform() to per-platform Destroyer creators.
2525
var Registry = make(map[string]NewFunc)
2626

2727
// New returns a Destroyer based on `metadata.json` in `rootDir`.
28-
func New(level log.Level, rootDir string) (Destroyer, error) {
28+
func New(logger logrus.FieldLogger, rootDir string) (Destroyer, error) {
2929
path := filepath.Join(rootDir, metadata.MetadataFilename)
3030
raw, err := ioutil.ReadFile(filepath.Join(rootDir, metadata.MetadataFilename))
3131
if err != nil {
@@ -46,5 +46,5 @@ func New(level log.Level, rootDir string) (Destroyer, error) {
4646
if !ok {
4747
return nil, fmt.Errorf("no destroyers registered for %q", platform)
4848
}
49-
return creator(level, cmetadata)
49+
return creator(logger, cmetadata)
5050
}

pkg/destroy/libvirt/libvirt_prefix_deprovision.go

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
libvirt "github.com/libvirt/libvirt-go"
1111
"github.com/openshift/installer/pkg/destroy"
1212
"github.com/openshift/installer/pkg/types"
13-
log "github.com/sirupsen/logrus"
13+
"github.com/sirupsen/logrus"
1414
"k8s.io/apimachinery/pkg/util/wait"
1515
)
1616

@@ -44,13 +44,13 @@ var AlwaysTrueFilter = func() filterFunc {
4444
// deleteFunc type is the interface a function needs to implement to be called as a goroutine.
4545
// The (bool, error) return type mimics wait.ExponentialBackoff where the bool indicates successful
4646
// completion, and the error is for unrecoverable errors.
47-
type deleteFunc func(conn *libvirt.Connect, filter filterFunc, logger log.FieldLogger) (bool, error)
47+
type deleteFunc func(conn *libvirt.Connect, filter filterFunc, logger logrus.FieldLogger) (bool, error)
4848

4949
// ClusterUninstaller holds the various options for the cluster we want to delete.
5050
type ClusterUninstaller struct {
5151
LibvirtURI string
5252
Filter filterFunc
53-
Logger log.FieldLogger
53+
Logger logrus.FieldLogger
5454
}
5555

5656
// Run is the entrypoint to start the uninstall process
@@ -80,7 +80,7 @@ func (o *ClusterUninstaller) Run() error {
8080
return nil
8181
}
8282

83-
func deleteRunner(deleteFuncName string, dFunction deleteFunc, conn *libvirt.Connect, filter filterFunc, logger log.FieldLogger, channel chan string) {
83+
func deleteRunner(deleteFuncName string, dFunction deleteFunc, conn *libvirt.Connect, filter filterFunc, logger logrus.FieldLogger, channel chan string) {
8484
backoffSettings := wait.Backoff{
8585
Duration: time.Second * 10,
8686
Factor: 1.3,
@@ -108,7 +108,7 @@ func populateDeleteFuncs(funcs map[string]deleteFunc) {
108108
funcs["deleteNetwork"] = deleteNetwork
109109
}
110110

111-
func deleteDomains(conn *libvirt.Connect, filter filterFunc, logger log.FieldLogger) (bool, error) {
111+
func deleteDomains(conn *libvirt.Connect, filter filterFunc, logger logrus.FieldLogger) (bool, error) {
112112
logger.Debug("Deleting libvirt domains")
113113
defer logger.Debugf("Exiting deleting libvirt domains")
114114

@@ -143,7 +143,7 @@ func deleteDomains(conn *libvirt.Connect, filter filterFunc, logger log.FieldLog
143143
return true, nil
144144
}
145145

146-
func deleteVolumes(conn *libvirt.Connect, filter filterFunc, logger log.FieldLogger) (bool, error) {
146+
func deleteVolumes(conn *libvirt.Connect, filter filterFunc, logger logrus.FieldLogger) (bool, error) {
147147
logger.Debug("Deleting libvirt volumes")
148148
defer logger.Debugf("Exiting deleting libvirt volumes")
149149

@@ -209,7 +209,7 @@ func deleteVolumes(conn *libvirt.Connect, filter filterFunc, logger log.FieldLog
209209
return true, nil
210210
}
211211

212-
func deleteNetwork(conn *libvirt.Connect, filter filterFunc, logger log.FieldLogger) (bool, error) {
212+
func deleteNetwork(conn *libvirt.Connect, filter filterFunc, logger logrus.FieldLogger) (bool, error) {
213213
logger.Debug("Deleting libvirt network")
214214
defer logger.Debugf("Exiting deleting libvirt network")
215215

@@ -245,17 +245,10 @@ func deleteNetwork(conn *libvirt.Connect, filter filterFunc, logger log.FieldLog
245245
}
246246

247247
// New returns libvirt Uninstaller from ClusterMetadata.
248-
func New(level log.Level, metadata *types.ClusterMetadata) (destroy.Destroyer, error) {
248+
func New(logger logrus.FieldLogger, metadata *types.ClusterMetadata) (destroy.Destroyer, error) {
249249
return &ClusterUninstaller{
250250
LibvirtURI: metadata.ClusterPlatformMetadata.Libvirt.URI,
251251
Filter: AlwaysTrueFilter(), //TODO: change to ClusterNamePrefixFilter when all resources are prefixed.
252-
Logger: log.NewEntry(&log.Logger{
253-
Out: os.Stdout,
254-
Formatter: &log.TextFormatter{
255-
FullTimestamp: true,
256-
},
257-
Hooks: make(log.LevelHooks),
258-
Level: level,
259-
}),
252+
Logger: logger,
260253
}, nil
261254
}

0 commit comments

Comments
 (0)