• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kubescape / k8s-interface / 6643761114

25 Oct 2023 05:07PM UTC coverage: 29.387% (+0.08%) from 29.311%
6643761114

Pull #79

github

web-flow
Merge 948cb6973 into f3bf75165
Pull Request #79: support service selector

12 of 12 new or added lines in 2 files covered. (100.0%)

1457 of 4958 relevant lines covered (29.39%)

4.76 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

5.14
/workloadinterface/workloadmock.go
1
package workloadinterface
2

3
import (
4
        "github.com/armosec/armoapi-go/apis"
5
        corev1 "k8s.io/api/core/v1"
6
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
8
)
9

10
const TypeWorkloadObjectMock ObjectType = "workloadMock"
11

12
type WorkloadMock struct {
13
        workload *Workload
14
}
15

16
func NewWorkloadMock(ww interface{}) *WorkloadMock {
1✔
17
        w := `{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{"deployment.kubernetes.io/revision":"1"},"creationTimestamp":"2021-05-03T13:10:32Z","generation":1,"labels":{"app":"demoservice-server","cyberarmor.inject":"true"},"managedFields":[{"apiVersion":"apps/v1","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:labels":{".":{},"f:app":{},"f:cyberarmor.inject":{}}},"f:spec":{"f:progressDeadlineSeconds":{},"f:replicas":{},"f:revisionHistoryLimit":{},"f:selector":{},"f:strategy":{"f:rollingUpdate":{".":{},"f:maxSurge":{},"f:maxUnavailable":{}},"f:type":{}},"f:template":{"f:metadata":{"f:labels":{".":{},"f:app":{}}},"f:spec":{"f:containers":{"k:{\"name\":\"demoservice\"}":{".":{},"f:env":{".":{},"k:{\"name\":\"ARMO_TEST_NAME\"}":{".":{},"f:name":{},"f:value":{}},"k:{\"name\":\"CAA_ENABLE_CRASH_REPORTER\"}":{".":{},"f:name":{},"f:value":{}},"k:{\"name\":\"DEMO_FOLDERS\"}":{".":{},"f:name":{},"f:value":{}},"k:{\"name\":\"SERVER_PORT\"}":{".":{},"f:name":{},"f:value":{}},"k:{\"name\":\"SLEEP_DURATION\"}":{".":{},"f:name":{},"f:value":{}}},"f:image":{},"f:imagePullPolicy":{},"f:name":{},"f:ports":{".":{},"k:{\"containerPort\":8089,\"protocol\":\"TCP\"}":{".":{},"f:containerPort":{},"f:protocol":{}}},"f:resources":{},"f:terminationMessagePath":{},"f:terminationMessagePolicy":{}}},"f:dnsPolicy":{},"f:restartPolicy":{},"f:schedulerName":{},"f:securityContext":{},"f:terminationGracePeriodSeconds":{}}}}},"manager":"OpenAPI-Generator","operation":"Update","time":"2021-05-03T13:10:32Z"},{"apiVersion":"apps/v1","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:annotations":{".":{},"f:deployment.kubernetes.io/revision":{}}},"f:status":{"f:availableReplicas":{},"f:conditions":{".":{},"k:{\"type\":\"Available\"}":{".":{},"f:lastTransitionTime":{},"f:lastUpdateTime":{},"f:message":{},"f:reason":{},"f:status":{},"f:type":{}},"k:{\"type\":\"Progressing\"}":{".":{},"f:lastTransitionTime":{},"f:lastUpdateTime":{},"f:message":{},"f:reason":{},"f:status":{},"f:type":{}}},"f:observedGeneration":{},"f:readyReplicas":{},"f:replicas":{},"f:updatedReplicas":{}}},"manager":"kube-controller-manager","operation":"Update","time":"2021-05-03T13:52:58Z"}],"name":"demoservice-server","namespace":"default","resourceVersion":"1016043","uid":"e9e8a3e9-6cb4-4301-ace1-2c0cef3bd61e"},"spec":{"progressDeadlineSeconds":600,"replicas":1,"revisionHistoryLimit":10,"selector":{"matchLabels":{"app":"demoservice-server"}},"strategy":{"rollingUpdate":{"maxSurge":"25%","maxUnavailable":"25%"},"type":"RollingUpdate"},"template":{"metadata":{"creationTimestamp":null,"labels":{"app":"demoservice-server"}},"spec":{"containers":[{"env":[{"name":"SERVER_PORT","value":"8089"},{"name":"SLEEP_DURATION","value":"1"},{"name":"DEMO_FOLDERS","value":"/app"},{"name":"ARMO_TEST_NAME","value":"auto_attach_deployment"},{"name":"CAA_ENABLE_CRASH_REPORTER","value":"1"}],"image":"quay.io/armosec/demoservice:v25","imagePullPolicy":"IfNotPresent","name":"demoservice","ports":[{"containerPort":8089,"protocol":"TCP"}],"resources":{},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File"}],"dnsPolicy":"ClusterFirst","restartPolicy":"Always","schedulerName":"default-scheduler","securityContext":{},"terminationGracePeriodSeconds":30}}},"status":{"availableReplicas":1,"conditions":[{"lastTransitionTime":"2021-05-03T13:10:32Z","lastUpdateTime":"2021-05-03T13:10:37Z","message":"ReplicaSet \"demoservice-server-7d478b6998\" has successfully progressed.","reason":"NewReplicaSetAvailable","status":"True","type":"Progressing"},{"lastTransitionTime":"2021-05-03T13:52:58Z","lastUpdateTime":"2021-05-03T13:52:58Z","message":"Deployment has minimum availability.","reason":"MinimumReplicasAvailable","status":"True","type":"Available"}],"observedGeneration":1,"readyReplicas":1,"replicas":1,"updatedReplicas":1}}`
1✔
18
        workload, _ := NewWorkload([]byte(w))
1✔
19
        return &WorkloadMock{
1✔
20
                workload: workload,
1✔
21
        }
1✔
22
}
1✔
23

24
func (wm *WorkloadMock) Json() string {
×
25
        return wm.workload.Json()
×
26
}
×
27
func (wm *WorkloadMock) ToString() string {
×
28
        return wm.workload.ToString()
×
29
}
×
30

31
func (wm *WorkloadMock) DeepCopy(w map[string]interface{}) {
×
32
        wm.workload.DeepCopy(w)
×
33

×
34
}
×
35

36
func (wm *WorkloadMock) ToUnstructured() (*unstructured.Unstructured, error) {
×
37
        return wm.workload.ToUnstructured()
×
38
}
×
39

40
// ======================================= DELETE ========================================
41

42
func (wm *WorkloadMock) RemoveJobID() {
×
43
        wm.workload.RemoveJobID()
×
44
}
×
45

46
func (wm *WorkloadMock) RemoveArmoAnnotations() {
×
47
        wm.workload.RemoveJobID()
×
48
}
×
49
func (wm *WorkloadMock) RemoveSecretData() {
×
50
        wm.workload.RemoveSecretData()
×
51
}
×
52

53
func (wm *WorkloadMock) RemovePodStatus() {
×
54
        wm.workload.RemovePodStatus()
×
55
}
×
56

57
func (wm *WorkloadMock) RemoveResourceVersion() {
×
58
        wm.workload.RemoveResourceVersion()
×
59
}
×
60

61
func (wm *WorkloadMock) RemoveLabel(key string) {
×
62
        wm.workload.RemoveLabel(key)
×
63
}
×
64

65
func (wm *WorkloadMock) RemoveAnnotation(key string) {
×
66
        wm.workload.RemoveAnnotation(key)
×
67
}
×
68

69
func (wm *WorkloadMock) RemovePodAnnotation(key string) {
×
70
        wm.workload.RemovePodAnnotation(key)
×
71
}
×
72

73
func (wm *WorkloadMock) RemovePodLabel(key string) {
×
74
        wm.workload.RemovePodLabel(key)
×
75
}
×
76

77
func (wm *WorkloadMock) RemoveMetadata(scope []string, metadata, key string) {
×
78
        wm.workload.RemoveMetadata(scope, metadata, key)
×
79
}
×
80

81
// ========================================= SET =========================================
82

83
func (wm *WorkloadMock) SetWorkload(workload map[string]interface{}) {
×
84
        wm.workload.SetWorkload(workload)
×
85
}
×
86
func (wm *WorkloadMock) SetObject(workload map[string]interface{}) {
×
87
        wm.workload.SetObject(workload)
×
88
}
×
89

90
func (wm *WorkloadMock) SetApiVersion(apiVersion string) {
×
91
        wm.workload.SetApiVersion(apiVersion)
×
92
}
×
93

94
func (wm *WorkloadMock) SetKind(kind string) {
×
95
        wm.workload.SetKind(kind)
×
96
}
×
97
func (wm *WorkloadMock) SetJobID(jobTracking apis.JobTracking) {
×
98
        wm.workload.SetJobID(jobTracking)
×
99
}
×
100

101
func (wm *WorkloadMock) SetNamespace(namespace string) {
×
102
        wm.workload.SetNamespace(namespace)
×
103
}
×
104

105
func (wm *WorkloadMock) SetName(name string) {
×
106
        wm.workload.SetName(name)
×
107
}
×
108

109
func (wm *WorkloadMock) SetLabel(key, value string) {
×
110
        wm.workload.SetLabel(key, value)
×
111
}
×
112

113
func (wm *WorkloadMock) SetPodLabel(key, value string) {
×
114
        wm.workload.SetPodLabel(key, value)
×
115
}
×
116
func (wm *WorkloadMock) SetAnnotation(key, value string) {
×
117
        wm.workload.SetAnnotation(key, value)
×
118
}
×
119
func (wm *WorkloadMock) SetPodAnnotation(key, value string) {
×
120
        wm.workload.SetPodAnnotation(key, value)
×
121
}
×
122

123
// ========================================= GET =========================================
124

125
func (wm *WorkloadMock) GetObjectType() ObjectType {
×
126
        return TypeWorkloadObjectMock
×
127
}
×
128
func (wm *WorkloadMock) GetWorkload() map[string]interface{} {
×
129
        return wm.workload.GetWorkload()
×
130
}
×
131
func (wm *WorkloadMock) GetObject() map[string]interface{} {
×
132
        return wm.workload.GetObject()
×
133
}
×
134
func (wm *WorkloadMock) GetNamespace() string {
×
135
        return wm.workload.GetNamespace()
×
136

×
137
}
×
138
func (wm *WorkloadMock) GetID() string {
×
139
        return wm.workload.GetID()
×
140
}
×
141
func (wm *WorkloadMock) GetName() string {
1✔
142
        return wm.workload.GetName()
1✔
143

1✔
144
}
1✔
145

146
func (wm *WorkloadMock) GetApiVersion() string {
×
147
        return wm.workload.GetApiVersion()
×
148
}
×
149

150
func (wm *WorkloadMock) GetVersion() string {
×
151
        return wm.workload.GetVersion()
×
152
}
×
153

154
func (wm *WorkloadMock) GetGroup() string {
×
155
        return wm.workload.GetGroup()
×
156
}
×
157

158
func (wm *WorkloadMock) GetGenerateName() string {
×
159
        return wm.workload.GetGenerateName()
×
160
}
×
161

162
func (wm *WorkloadMock) GetReplicas() int {
×
163
        return wm.workload.GetReplicas()
×
164
}
×
165

166
func (wm *WorkloadMock) GetKind() string {
×
167
        return wm.workload.GetKind()
×
168
}
×
169
func (wm *WorkloadMock) GetSelector() (*metav1.LabelSelector, error) {
×
170
        return wm.workload.GetSelector()
×
171
}
×
172

173
func (wm *WorkloadMock) GetServiceSelector() map[string]string {
×
174
        return wm.workload.GetServiceSelector()
×
175
}
×
176

177
func (wm *WorkloadMock) GetAnnotation(annotation string) (string, bool) {
×
178
        return wm.workload.GetAnnotation(annotation)
×
179
}
×
180
func (wm *WorkloadMock) GetLabel(label string) (string, bool) {
×
181
        return wm.workload.GetLabel(label)
×
182
}
×
183

184
func (wm *WorkloadMock) GetPodLabel(label string) (string, bool) {
×
185
        return wm.workload.GetPodLabel(label)
×
186
}
×
187

188
func (wm *WorkloadMock) GetLabels() map[string]string {
×
189
        return wm.workload.GetLabels()
×
190
}
×
191

192
// GetInnerLabels - DEPRECATED
193
func (wm *WorkloadMock) GetInnerLabels() map[string]string {
×
194
        return wm.workload.GetInnerLabels()
×
195
}
×
196

197
func (wm *WorkloadMock) GetPodLabels() map[string]string {
×
198
        return wm.workload.GetPodLabels()
×
199
}
×
200

201
// GetInnerAnnotations - DEPRECATED
202
func (wm *WorkloadMock) GetInnerAnnotations() map[string]string {
×
203
        return wm.workload.GetInnerAnnotations()
×
204
}
×
205

206
// GetPodAnnotations
207
func (wm *WorkloadMock) GetPodAnnotations() map[string]string {
×
208
        return wm.workload.GetPodAnnotations()
×
209
}
×
210

211
// GetInnerAnnotation DEPRECATED
212
func (wm *WorkloadMock) GetInnerAnnotation(annotation string) (string, bool) {
×
213
        return wm.workload.GetInnerAnnotation(annotation)
×
214
}
×
215

216
func (wm *WorkloadMock) GetPodAnnotation(annotation string) (string, bool) {
×
217
        return wm.workload.GetPodAnnotation(annotation)
×
218
}
×
219

220
func (wm *WorkloadMock) GetAnnotations() map[string]string {
×
221
        return wm.workload.GetAnnotations()
×
222
}
×
223

224
// GetVolumes -
225
func (wm *WorkloadMock) GetVolumes() ([]corev1.Volume, error) {
×
226
        return wm.workload.GetVolumes()
×
227
}
×
228

229
func (wm *WorkloadMock) GetServiceAccountName() string {
×
230
        return wm.workload.GetServiceAccountName()
×
231
}
×
232

233
func (wm *WorkloadMock) GetPodSpec() (*corev1.PodSpec, error) {
×
234
        return wm.workload.GetPodSpec()
×
235
}
×
236

237
func (wm *WorkloadMock) GetImagePullSecret() ([]corev1.LocalObjectReference, error) {
×
238
        return wm.workload.GetImagePullSecret()
×
239
}
×
240

241
// GetContainers -
242
func (wm *WorkloadMock) GetContainers() ([]corev1.Container, error) {
×
243
        return wm.workload.GetContainers()
×
244
}
×
245

246
// GetInitContainers -
247
func (wm *WorkloadMock) GetInitContainers() ([]corev1.Container, error) {
×
248
        return wm.workload.GetInitContainers()
×
249
}
×
250

251
// GetOwnerReferences -
252
func (wm *WorkloadMock) GetOwnerReferences() ([]metav1.OwnerReference, error) {
×
253
        return wm.workload.GetOwnerReferences()
×
254
}
×
255
func (wm *WorkloadMock) GetResourceVersion() string {
×
256
        return wm.workload.GetResourceVersion()
×
257
}
×
258
func (wm *WorkloadMock) GetUID() string {
×
259
        return wm.workload.GetUID()
×
260
}
×
261
func (wm *WorkloadMock) GetWlid() string {
×
262
        return wm.workload.GetWlid()
×
263
}
×
264

265
func (wm *WorkloadMock) GenerateWlid(clusterName string) string {
×
266
        return wm.workload.GenerateWlid(clusterName)
×
267
}
×
268

269
func (wm *WorkloadMock) GetJobID() *apis.JobTracking {
×
270
        return wm.workload.GetJobID()
×
271
}
×
272

273
func (wm *WorkloadMock) GetData() map[string]interface{} {
×
274
        return wm.workload.GetData()
×
275
}
×
276

277
func (wm *WorkloadMock) GetSecretsOfContainer() (map[string][]string, error) {
×
278
        return wm.workload.GetSecretsOfContainer()
×
279
}
×
280

281
func (wm *WorkloadMock) GetConfigMapsOfContainer() (map[string][]string, error) {
×
282
        return wm.workload.GetConfigMapsOfContainer()
×
283
}
×
284

285
func (wm *WorkloadMock) GetSecrets() ([]string, error) {
×
286
        return wm.workload.GetSecrets()
×
287
}
×
288

289
func (wm *WorkloadMock) GetConfigMaps() ([]string, error) {
×
290
        return wm.workload.GetConfigMaps()
×
291
}
×
292

293
func (wm *WorkloadMock) GetPodStatus() (*corev1.PodStatus, error) {
×
294
        return wm.workload.GetPodStatus()
×
295
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc