Skip to content

Commit 553d709

Browse files
authored
fix panic in Velero analyzer when there's no Velero deployment found (#1497)
* fix panic in Velero analyzer when there's no Velero deployment found * do not omit error in find files
1 parent 29435b1 commit 553d709

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

pkg/analyze/velero.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -655,17 +655,23 @@ func getVeleroVersion(excludedFiles []string, findFiles getChildCollectedFileCon
655655
veleroDeploymentGlob := filepath.Join(veleroDeploymentDir, "velero.json")
656656
veleroDeploymentJson, err := findFiles(veleroDeploymentGlob, excludedFiles)
657657
if err != nil {
658-
return "", errors.Wrapf(err, "failed to find velero deployment file under %s", veleroDeploymentDir)
658+
return "", errors.Wrapf(err, "failed to find Velero deployment")
659+
}
660+
if len(veleroDeploymentJson) == 0 {
661+
return "", errors.Errorf("could not find Velero deployment in %s", veleroDeploymentDir)
659662
}
660663
var deploymentList *appsV1.DeploymentList
661664
// should run only once
662665
for key, veleroDeploymentJsonBytes := range veleroDeploymentJson {
663666
err := json.Unmarshal(veleroDeploymentJsonBytes, &deploymentList)
664667
if err != nil {
665-
return "", errors.Wrapf(err, "failed to unmarshal velero deployment json from %s", key)
668+
return "", errors.Wrapf(err, "failed to unmarshal Velero deployment json from %s", key)
666669
}
667670
break
668671
}
672+
if deploymentList == nil {
673+
return "", errors.Errorf("could not find Velero deployment")
674+
}
669675
for _, deployment := range deploymentList.Items {
670676
for _, container := range deployment.Spec.Template.Spec.Containers {
671677
if container.Name == "velero" {
@@ -676,7 +682,7 @@ func getVeleroVersion(excludedFiles []string, findFiles getChildCollectedFileCon
676682
}
677683
}
678684

679-
return "", errors.Errorf("Unable to get velero version. Could not find velero container in deployment!")
685+
return "", errors.Errorf("could not find Velero container in deployment")
680686
}
681687

682688
func GetVeleroBackupsDirectory() string {

0 commit comments

Comments
 (0)