@@ -219,6 +219,25 @@ func createServiceDeviceGroup(argus *Argus, parentDeviceGroup *lmv1.RestDeviceGr
219219 return
220220}
221221
222+ func createServiceDeletedDeviceGroup (argus * Argus , parentDeviceGroup * lmv1.RestDeviceGroup ) (clusterDeviceGroup * lmv1.RestDeviceGroup , err error ) {
223+ name := "_deleted"
224+ appliesTo := "hasCategory(\" " + constants .NodeDeletedCategory + "\" ) && auto.clustername ==\" " + argus .Config .ClusterName + "\" "
225+
226+ clusterDeviceGroup , err = findDeviceGroup (argus .LMClient , parentDeviceGroup .Id , name )
227+ if err != nil {
228+ return
229+ }
230+
231+ if clusterDeviceGroup == nil {
232+ clusterDeviceGroup , err = createDeviceGroup (argus .LMClient , name , appliesTo , argus .Config .DisableAlerting , parentDeviceGroup .Id )
233+ if err != nil {
234+ return
235+ }
236+ }
237+
238+ return
239+ }
240+
222241func createNodeDeviceGroup (argus * Argus , parentDeviceGroup * lmv1.RestDeviceGroup ) (clusterDeviceGroup * lmv1.RestDeviceGroup , err error ) {
223242 name := "Nodes"
224243 appliesTo := "hasCategory(\" " + constants .NodeCategory + "\" ) && auto.clustername ==\" " + argus .Config .ClusterName + "\" "
@@ -238,6 +257,25 @@ func createNodeDeviceGroup(argus *Argus, parentDeviceGroup *lmv1.RestDeviceGroup
238257 return
239258}
240259
260+ func createNodeDeletedDeviceGroup (argus * Argus , parentDeviceGroup * lmv1.RestDeviceGroup ) (clusterDeviceGroup * lmv1.RestDeviceGroup , err error ) {
261+ name := "_deleted"
262+ appliesTo := "hasCategory(\" " + constants .NodeDeletedCategory + "\" ) && auto.clustername ==\" " + argus .Config .ClusterName + "\" "
263+
264+ clusterDeviceGroup , err = findDeviceGroup (argus .LMClient , parentDeviceGroup .Id , name )
265+ if err != nil {
266+ return
267+ }
268+
269+ if clusterDeviceGroup == nil {
270+ clusterDeviceGroup , err = createDeviceGroup (argus .LMClient , name , appliesTo , true , parentDeviceGroup .Id )
271+ if err != nil {
272+ return
273+ }
274+ }
275+
276+ return
277+ }
278+
241279func createPodDeviceGroup (argus * Argus , parentDeviceGroup * lmv1.RestDeviceGroup ) (clusterDeviceGroup * lmv1.RestDeviceGroup , err error ) {
242280 name := "Pods"
243281 appliesTo := ""
@@ -257,6 +295,25 @@ func createPodDeviceGroup(argus *Argus, parentDeviceGroup *lmv1.RestDeviceGroup)
257295 return
258296}
259297
298+ func createPodDeletedDeviceGroup (argus * Argus , parentDeviceGroup * lmv1.RestDeviceGroup ) (clusterDeviceGroup * lmv1.RestDeviceGroup , err error ) {
299+ name := "_deleted"
300+ appliesTo := "hasCategory(\" " + constants .PodDeletedCategory + "\" ) && auto.clustername ==\" " + argus .Config .ClusterName + "\" "
301+
302+ clusterDeviceGroup , err = findDeviceGroup (argus .LMClient , parentDeviceGroup .Id , name )
303+ if err != nil {
304+ return
305+ }
306+
307+ if clusterDeviceGroup == nil {
308+ clusterDeviceGroup , err = createDeviceGroup (argus .LMClient , name , appliesTo , true , parentDeviceGroup .Id )
309+ if err != nil {
310+ return
311+ }
312+ }
313+
314+ return
315+ }
316+
260317func createDeviceGroups (argus * Argus ) (deviceGroups map [string ]int32 , err error ) {
261318 deviceGroups = make (map [string ]int32 )
262319 clusterDeviceGroup , err := createClusterDeviceGroup (argus )
@@ -271,19 +328,31 @@ func createDeviceGroups(argus *Argus) (deviceGroups map[string]int32, err error)
271328 }
272329 deviceGroups ["services" ] = serviceDeviceGroup .Id
273330 log .Infof ("Using service device group with id %d" , serviceDeviceGroup .Id )
331+ _ , err = createServiceDeletedDeviceGroup (argus , serviceDeviceGroup )
332+ if err != nil {
333+ return
334+ }
274335
275336 nodeDeviceGroup , err := createNodeDeviceGroup (argus , clusterDeviceGroup )
276337 if err != nil {
277338 return
278339 }
279340 log .Infof ("Using node device group with id %d" , nodeDeviceGroup .Id )
341+ _ , err = createNodeDeletedDeviceGroup (argus , nodeDeviceGroup )
342+ if err != nil {
343+ return
344+ }
280345
281346 podDeviceGroup , err := createPodDeviceGroup (argus , clusterDeviceGroup )
282347 if err != nil {
283348 return
284349 }
285350 deviceGroups ["pods" ] = podDeviceGroup .Id
286351 log .Infof ("Using pod device group with id %d" , podDeviceGroup .Id )
352+ _ , err = createPodDeletedDeviceGroup (argus , podDeviceGroup )
353+ if err != nil {
354+ return
355+ }
287356
288357 return
289358}
0 commit comments