Skip to content

Commit e1cd727

Browse files
committed
B/R logs request via downloadrequest
1 parent 45298e1 commit e1cd727

File tree

2 files changed

+64
-5
lines changed

2 files changed

+64
-5
lines changed

tests/e2e/backup_restore_suite_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ var _ = Describe("AWS backup restore tests", func() {
136136
// wait for backup to not be running
137137
Eventually(IsBackupDone(dpaCR.Client, namespace, backupName), timeoutMultiplier*time.Minute*4, time.Second*10).Should(BeTrue())
138138
GinkgoWriter.Println(DescribeBackup(dpaCR.Client, backup))
139-
Expect(GetVeleroContainerFailureLogs(dpaCR.Namespace)).To(Equal([]string{}))
139+
Expect(BackupErrorLogs(dpaCR.Client,backup)).To(Equal([]string{}))
140140

141141
// check if backup succeeded
142142
succeeded, err := IsBackupCompletedSuccessfully(dpaCR.Client, backup)
@@ -169,7 +169,7 @@ var _ = Describe("AWS backup restore tests", func() {
169169
Expect(err).ToNot(HaveOccurred())
170170
Eventually(IsRestoreDone(dpaCR.Client, namespace, noDcDrestoreName), timeoutMultiplier*time.Minute*4, time.Second*10).Should(BeTrue())
171171
GinkgoWriter.Println(DescribeRestore(dpaCR.Client, restore))
172-
Expect(GetVeleroContainerFailureLogs(dpaCR.Namespace)).To(Equal([]string{}))
172+
Expect(RestoreErrorLogs(dpaCR.Client,restore)).To(Equal([]string{}))
173173

174174
// Check if restore succeeded
175175
succeeded, err = IsRestoreCompletedSuccessfully(dpaCR.Client, namespace, noDcDrestoreName)
@@ -184,7 +184,7 @@ var _ = Describe("AWS backup restore tests", func() {
184184
Expect(err).ToNot(HaveOccurred())
185185
Eventually(IsRestoreDone(dpaCR.Client, namespace, withDcRestoreName), timeoutMultiplier*time.Minute*4, time.Second*10).Should(BeTrue())
186186
GinkgoWriter.Println(DescribeRestore(dpaCR.Client, restore))
187-
Expect(GetVeleroContainerFailureLogs(dpaCR.Namespace)).To(Equal([]string{}))
187+
Expect(RestoreErrorLogs(dpaCR.Client,restore)).To(Equal([]string{}))
188188

189189
// Check if restore succeeded
190190
succeeded, err = IsRestoreCompletedSuccessfully(dpaCR.Client, namespace, withDcRestoreName)
@@ -198,7 +198,7 @@ var _ = Describe("AWS backup restore tests", func() {
198198
Expect(err).ToNot(HaveOccurred())
199199
Eventually(IsRestoreDone(dpaCR.Client, namespace, restoreName), timeoutMultiplier*time.Minute*4, time.Second*10).Should(BeTrue())
200200
GinkgoWriter.Println(DescribeRestore(dpaCR.Client, restore))
201-
Expect(GetVeleroContainerFailureLogs(dpaCR.Namespace)).To(Equal([]string{}))
201+
Expect(RestoreErrorLogs(dpaCR.Client,restore)).To(Equal([]string{}))
202202

203203
// Check if restore succeeded
204204
succeeded, err = IsRestoreCompletedSuccessfully(dpaCR.Client, namespace, restoreName)

tests/e2e/lib/velero_helpers.go

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
package lib
22

33
import (
4+
"bytes"
45
"context"
56
"fmt"
67
"os"
8+
"regexp"
9+
"strings"
10+
"time"
711

812
snapshotv1beta1api "github.com/kubernetes-csi/external-snapshotter/client/v4/apis/volumesnapshot/v1beta1"
913
snapshotv1beta1client "github.com/kubernetes-csi/external-snapshotter/client/v4/clientset/versioned"
1014
velero "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
1115
pkgbackup "github.com/vmware-tanzu/velero/pkg/backup"
1216
"github.com/vmware-tanzu/velero/pkg/cmd"
17+
"github.com/vmware-tanzu/velero/pkg/cmd/util/downloadrequest"
1318
"github.com/vmware-tanzu/velero/pkg/cmd/util/output"
1419
"github.com/vmware-tanzu/velero/pkg/features"
1520
veleroClientset "github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned"
@@ -94,6 +99,60 @@ func DescribeRestore(ocClient client.Client, restore velero.Restore) string {
9499
if err != nil {
95100
fmt.Fprintf(os.Stderr, "error getting PodVolumeRestores for restore %s: %v\n", restore.Name, err)
96101
}
97-
102+
98103
return output.DescribeRestore(context.Background(), ocClient, &restore, podvolumeRestoreList.Items, details, veleroClient, insecureSkipTLSVerify, caCertFile)
99104
}
105+
106+
func BackupLogs(ocClient client.Client, backup velero.Backup) string {
107+
insecureSkipTLSVerify := true
108+
caCertFile := ""
109+
// new io.Writer that store the logs in a string
110+
logs := &bytes.Buffer{}
111+
// new io.Writer that store the logs in a string
112+
113+
downloadrequest.Stream(context.Background(), ocClient, backup.Namespace, backup.Name, velero.DownloadTargetKindBackupLog, logs, time.Minute, insecureSkipTLSVerify, caCertFile)
114+
115+
return logs.String()
116+
}
117+
118+
func RestoreLogs(ocClient client.Client, restore velero.Restore) string {
119+
insecureSkipTLSVerify := true
120+
caCertFile := ""
121+
// new io.Writer that store the logs in a string
122+
logs := &bytes.Buffer{}
123+
// new io.Writer that store the logs in a string
124+
125+
downloadrequest.Stream(context.Background(), ocClient, restore.Namespace, restore.Name, velero.DownloadTargetKindRestoreLog, logs, time.Minute, insecureSkipTLSVerify, caCertFile)
126+
127+
return logs.String()
128+
}
129+
130+
func BackupErrorLogs(ocClient client.Client, backup velero.Backup) []string {
131+
bl := BackupLogs(ocClient, backup)
132+
errorRegex, err := regexp.Compile("error|Error")
133+
if err != nil {
134+
return []string{"could not compile regex: ", err.Error()}
135+
}
136+
logLines := []string{}
137+
for _, line := range strings.Split(bl, "\n") {
138+
if errorRegex.MatchString(line) {
139+
logLines = append(logLines, line)
140+
}
141+
}
142+
return logLines
143+
}
144+
145+
func RestoreErrorLogs(ocClient client.Client, restore velero.Restore) []string {
146+
rl := RestoreLogs(ocClient, restore)
147+
errorRegex, err := regexp.Compile("error|Error")
148+
if err != nil {
149+
return []string{"could not compile regex: ", err.Error()}
150+
}
151+
logLines := []string{}
152+
for _, line := range strings.Split(rl, "\n") {
153+
if errorRegex.MatchString(line) {
154+
logLines = append(logLines, line)
155+
}
156+
}
157+
return logLines
158+
}

0 commit comments

Comments
 (0)