1
1
package analyzer
2
2
3
3
import (
4
+ "fmt"
4
5
"os"
5
6
"path/filepath"
6
7
"strings"
@@ -36,7 +37,7 @@ func TestNetworkAddressValue(t *testing.T) {
36
37
}
37
38
38
39
func TestScanningSvc (t * testing.T ) {
39
- resourceInfo , err := loadResourceAsInfo ([]string {"k8s_guestbook" , "frontend-service.yaml" })
40
+ resourceInfo , err := loadResourceAsInfo ([]string {"k8s_guestbook" , "frontend-service.yaml" }, 0 )
40
41
require .Nil (t , err )
41
42
res , err := k8sServiceFromInfo (resourceInfo )
42
43
require .Nil (t , err )
@@ -47,7 +48,7 @@ func TestScanningSvc(t *testing.T) {
47
48
}
48
49
49
50
func TestScanningDeploymentWithArgs (t * testing.T ) {
50
- resourceInfo , err := loadResourceAsInfo ([]string {"sockshop" , "manifests" , "01-carts-dep.yaml" })
51
+ resourceInfo , err := loadResourceAsInfo ([]string {"sockshop" , "manifests" , "01-carts-dep.yaml" }, 0 )
51
52
require .Nil (t , err )
52
53
res , err := k8sWorkloadObjectFromInfo (resourceInfo )
53
54
require .Nil (t , err )
@@ -59,7 +60,7 @@ func TestScanningDeploymentWithArgs(t *testing.T) {
59
60
}
60
61
61
62
func TestScanningDeploymentWithEnvs (t * testing.T ) {
62
- resourceInfo , err := loadResourceAsInfo ([]string {"k8s_guestbook" , "frontend-deployment.yaml" })
63
+ resourceInfo , err := loadResourceAsInfo ([]string {"k8s_guestbook" , "frontend-deployment.yaml" }, 0 )
63
64
require .Nil (t , err )
64
65
res , err := k8sWorkloadObjectFromInfo (resourceInfo )
65
66
require .Nil (t , err )
@@ -69,7 +70,7 @@ func TestScanningDeploymentWithEnvs(t *testing.T) {
69
70
}
70
71
71
72
func TestScanningDeploymentWithConfigMapRef (t * testing.T ) {
72
- resourceInfo , err := loadResourceAsInfo ([]string {"acs-security-demos" , "frontend" , "webapp" , "deployment.yaml" })
73
+ resourceInfo , err := loadResourceAsInfo ([]string {"acs-security-demos" , "frontend" , "webapp" , "deployment.yaml" }, 0 )
73
74
require .Nil (t , err )
74
75
res , err := k8sWorkloadObjectFromInfo (resourceInfo )
75
76
require .Nil (t , err )
@@ -80,7 +81,7 @@ func TestScanningDeploymentWithConfigMapRef(t *testing.T) {
80
81
}
81
82
82
83
func TestScanningReplicaSet (t * testing.T ) {
83
- resourceInfo , err := loadResourceAsInfo ([]string {"k8s_guestbook" , "redis-leader-deployment.yaml" })
84
+ resourceInfo , err := loadResourceAsInfo ([]string {"k8s_guestbook" , "redis-leader-deployment.yaml" }, 0 )
84
85
require .Nil (t , err )
85
86
res , err := k8sWorkloadObjectFromInfo (resourceInfo )
86
87
require .Nil (t , err )
@@ -90,7 +91,7 @@ func TestScanningReplicaSet(t *testing.T) {
90
91
}
91
92
92
93
func TestScanningConfigMap (t * testing.T ) {
93
- resourceInfo , err := loadResourceAsInfo ([]string {"qotd" , "qotd_usecase.yaml" })
94
+ resourceInfo , err := loadResourceAsInfo ([]string {"qotd" , "qotd_usecase.yaml" }, 0 )
94
95
require .Nil (t , err )
95
96
res , err := k8sConfigmapFromInfo (resourceInfo )
96
97
require .Nil (t , err )
@@ -99,7 +100,7 @@ func TestScanningConfigMap(t *testing.T) {
99
100
}
100
101
101
102
func TestScanningIngress (t * testing.T ) {
102
- resourceInfo , err := loadResourceAsInfo ([]string {"bookinfo" , "bookinfo-ingress.yaml" })
103
+ resourceInfo , err := loadResourceAsInfo ([]string {"bookinfo" , "bookinfo-ingress.yaml" }, 0 )
103
104
require .Nil (t , err )
104
105
toExpose := servicesToExpose {}
105
106
err = k8sIngressFromInfo (resourceInfo , toExpose )
@@ -108,15 +109,26 @@ func TestScanningIngress(t *testing.T) {
108
109
}
109
110
110
111
func TestScanningRoute (t * testing.T ) {
111
- resourceInfo , err := loadResourceAsInfo ([]string {"acs-security-demos" , "frontend" , "webapp" , "route.yaml" })
112
+ resourceInfo , err := loadResourceAsInfo ([]string {"acs-security-demos" , "frontend" , "webapp" , "route.yaml" }, 0 )
112
113
require .Nil (t , err )
113
114
toExpose := servicesToExpose {}
114
115
err = ocRouteFromInfo (resourceInfo , toExpose )
115
116
require .Nil (t , err )
116
117
require .Len (t , toExpose , 1 )
117
118
}
118
119
119
- func loadResourceAsInfo (resourceDirs []string ) (* resource.Info , error ) {
120
+ func TestScanningCronJob (t * testing.T ) {
121
+ resourceInfo , err := loadResourceAsInfo ([]string {"openshift" , "openshift-operator-lifecycle-manager-resources.yaml" }, 7 )
122
+ require .Nil (t , err )
123
+ res , err := k8sWorkloadObjectFromInfo (resourceInfo )
124
+ require .Nil (t , err )
125
+ require .Equal (t , "collect-profiles" , res .Resource .Name )
126
+ require .Equal (t , cronJob , res .Resource .Kind )
127
+ require .Len (t , res .Resource .NetworkAddrs , 1 )
128
+ require .Len (t , res .Resource .Labels , 0 )
129
+ }
130
+
131
+ func loadResourceAsInfo (resourceDirs []string , infoIndex int ) (* resource.Info , error ) {
120
132
currentDir , _ := os .Getwd ()
121
133
resourceRelPath := filepath .Join (resourceDirs ... )
122
134
resourcePath := filepath .Join (currentDir , ".." , ".." , "tests" , resourceRelPath )
@@ -126,5 +138,9 @@ func loadResourceAsInfo(resourceDirs []string) (*resource.Info, error) {
126
138
return nil , errs [0 ]
127
139
}
128
140
129
- return infos [0 ], nil
141
+ if len (infos ) <= infoIndex {
142
+ return nil , fmt .Errorf ("Info number %d was required, but only %d Infos were read" , infoIndex , len (infos ))
143
+ }
144
+
145
+ return infos [infoIndex ], nil
130
146
}
0 commit comments