Fix issue with concurrent CR creation
[demo.git] / vnfs / DAaaS / microservices / collectd-operator / pkg / controller / utils / collectdutils.go
index 9560483..6a85103 100644 (file)
@@ -72,14 +72,28 @@ func GetWatchLabels() (string, error) {
        return labelSelector, nil
 }
 
-// FindResourceMapForCR returns the configMap, collectd Daemonset and list of Collectd Plugins
-func FindResourceMapForCR(rc client.Client, reqLogger logr.Logger, ns string) (*ResourceMap, error) {
+// GetCollectdPluginList returns the list of CollectdPlugin instances in the namespace ns
+func GetCollectdPluginList(rc client.Client, ns string) (*onapv1alpha1.CollectdPluginList, error) {
+       // Get all collectd plugins in the current namespace to rebuild conf.
+       collectdPlugins := &onapv1alpha1.CollectdPluginList{}
+       cpOpts := &client.ListOptions{}
+       cpOpts.InNamespace(ns)
+       err := rc.List(context.TODO(), cpOpts, collectdPlugins)
+       if err != nil {
+               return nil, err
+       }
+       return collectdPlugins, nil
+}
+
+// GetConfigMap returns the GetConfigMap in the namespace ns
+func GetConfigMap(rc client.Client, reqLogger logr.Logger, ns string) (*corev1.ConfigMap, error) {
        lock.Lock()
        defer lock.Unlock()
+
+       reqLogger.Info("Get ConfigMap for collectd.conf")
+       // Get all collectd plugins in the current namespace to rebuild conf.
        cmList := &corev1.ConfigMapList{}
        opts := &client.ListOptions{}
-       rmap := &ResourceMap{}
-
        // Select ConfigMaps with label
        labelSelector, err := GetWatchLabels()
        if err != nil {
@@ -90,41 +104,15 @@ func FindResourceMapForCR(rc client.Client, reqLogger logr.Logger, ns string) (*
 
        err = rc.List(context.TODO(), opts, cmList)
        if err != nil {
-               return rmap, err
+               return nil, err
        }
 
        if cmList.Items == nil || len(cmList.Items) == 0 {
-               return rmap, errors.NewNotFound(corev1.Resource("configmap"), "ConfigMap")
-       }
-
-       // Select DaemonSets with label
-       dsList := &appsv1.DaemonSetList{}
-       err = rc.List(context.TODO(), opts, dsList)
-       if err != nil {
-               return rmap, err
+               return nil, errors.NewNotFound(corev1.Resource("configmap"), "ConfigMap")
        }
 
-       if dsList.Items == nil || len(dsList.Items) == 0 {
-               return rmap, errors.NewNotFound(corev1.Resource("daemonset"), "DaemonSet")
-       }
-
-       rmap.ConfigMap = &cmList.Items[0]
-       rmap.DaemonSet = &dsList.Items[0]
-
-       return rmap, err
-}
-
-// GetCollectdPluginList returns the list of CollectdPlugin instances in the namespace ns
-func GetCollectdPluginList(rc client.Client, ns string) (*onapv1alpha1.CollectdPluginList, error) {
-       // Get all collectd plugins in the current namespace to rebuild conf.
-       collectdPlugins := &onapv1alpha1.CollectdPluginList{}
-       cpOpts := &client.ListOptions{}
-       cpOpts.InNamespace(ns)
-       err := rc.List(context.TODO(), cpOpts, collectdPlugins)
-       if err != nil {
-               return nil, err
-       }
-       return collectdPlugins, nil
+       cm := &cmList.Items[0]
+       return cm, nil
 }
 
 // GetCollectdGlobal returns the CollectdGlobal instance in the namespace ns