Skip to content

Commit cfdba36

Browse files
authored
Issue #9: Address unhandled errors in DataCollector.WrapUp() (#11)
1 parent b570474 commit cfdba36

File tree

1 file changed

+42
-8
lines changed

1 file changed

+42
-8
lines changed

pkg/data_collector/data_collector.go

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,21 +90,45 @@ func (c *DataCollector) WrapUp() (string, error) {
9090
tarballName := fmt.Sprintf("nic-supportpkg-%s.tar.gz", unixTimeString)
9191
tarballRootDirName := fmt.Sprintf("nic-supportpkg-%s", unixTimeString)
9292

93-
c.LogFile.Close()
93+
err := c.LogFile.Close()
94+
if err != nil {
95+
return tarballName, err
96+
}
9497

9598
file, err := os.Create(tarballName)
9699
if err != nil {
97-
return "", err
100+
return tarballName, err
98101
}
99-
defer file.Close()
102+
defer func(file *os.File) {
103+
cerr := file.Close()
104+
if cerr == nil {
105+
err = cerr
106+
} else {
107+
c.Logger.Printf("error closing file %s, %v", file.Name(), cerr)
108+
}
109+
}(file)
100110

101111
gw := gzip.NewWriter(file)
102-
defer gw.Close()
112+
defer func(gw *gzip.Writer) {
113+
cerr := gw.Close()
114+
if cerr == nil {
115+
err = cerr
116+
} else {
117+
c.Logger.Printf("error closing gzip writer, %v", cerr)
118+
}
119+
}(gw)
103120

104121
tw := tar.NewWriter(gw)
105-
defer tw.Close()
122+
defer func(tw *tar.Writer) {
123+
cerr := tw.Close()
124+
if cerr == nil {
125+
err = cerr
126+
} else {
127+
c.Logger.Printf("error closing tar writer, %v", cerr)
128+
}
129+
}(tw)
106130

107-
filepath.Walk(c.BaseDir, func(path string, info os.FileInfo, err error) error {
131+
err = filepath.Walk(c.BaseDir, func(path string, info os.FileInfo, err error) error {
108132
if err != nil {
109133
return err
110134
}
@@ -132,7 +156,14 @@ func (c *DataCollector) WrapUp() (string, error) {
132156
if err != nil {
133157
return err
134158
}
135-
defer file.Close()
159+
defer func(file *os.File) {
160+
cerr := file.Close()
161+
if cerr == nil {
162+
err = cerr
163+
} else {
164+
c.Logger.Printf("error closing file %s, %v", file.Name(), cerr)
165+
}
166+
}(file)
136167

137168
_, err = io.Copy(tw, file)
138169
if err != nil {
@@ -141,6 +172,9 @@ func (c *DataCollector) WrapUp() (string, error) {
141172

142173
return nil
143174
})
175+
if err != nil {
176+
return tarballName, err
177+
}
144178
_ = os.RemoveAll(c.BaseDir)
145179
return tarballName, nil
146180
}
@@ -178,7 +212,7 @@ func (c *DataCollector) PodExecutor(namespace string, pod string, command []stri
178212
}
179213

180214
func (c *DataCollector) AllNamespacesExist() bool {
181-
var allExist bool = true
215+
var allExist = true
182216
for _, namespace := range c.Namespaces {
183217
_, err := c.K8sCoreClientSet.CoreV1().Namespaces().Get(context.TODO(), namespace, metav1.GetOptions{})
184218
if err != nil {

0 commit comments

Comments
 (0)