diff options
author | 2019-10-24 14:08:58 -0700 | |
---|---|---|
committer | 2019-11-13 14:12:44 +0000 | |
commit | 2026cb5283fbc44a4f68641f6e85628381ebda04 (patch) | |
tree | f66efc4b80884b6ff7a494b57c516e13e814f061 /vnfs/DAaaS/microservices/remote-config-operator/pkg/controller/utils | |
parent | 938afb8217d5414c4cd0d63650e24d0398ddcc91 (diff) |
Add/update/delete PrometheusRemoteEndpoint CR
PrometheusRemoteEndpoint CR when applied, a remote write endpoint
is added/updated/deleted in prometheus.
Issue-ID: ONAPARC-393
Signed-off-by: Srivahni <srivahni.chivukula@intel.com>
Change-Id: I8cdc0b673b35be3457a2b12c6769cd3cf62ac6c5
Diffstat (limited to 'vnfs/DAaaS/microservices/remote-config-operator/pkg/controller/utils')
-rw-r--r-- | vnfs/DAaaS/microservices/remote-config-operator/pkg/controller/utils/remoteconfigutils.go | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/vnfs/DAaaS/microservices/remote-config-operator/pkg/controller/utils/remoteconfigutils.go b/vnfs/DAaaS/microservices/remote-config-operator/pkg/controller/utils/remoteconfigutils.go new file mode 100644 index 00000000..8508a8e6 --- /dev/null +++ b/vnfs/DAaaS/microservices/remote-config-operator/pkg/controller/utils/remoteconfigutils.go @@ -0,0 +1,77 @@ +/* +Copyright 2019 Intel Corporation. +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package utils + +import ( + "context" + "fmt" + "os" + onapv1alpha1 "remote-config-operator/pkg/apis/onap/v1alpha1" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +const ( + defaultWatchLabel = "remote=m3db1" + WatchLabelsEnvVar = "WATCH_LABELS" + RemoteConfigFinalizer = "finalizer.remoteConfig.onap.org" +) + +// GetWatchLabels returns the labels the operator should be watching for changes +func GetWatchLabels() (string, error) { + labelSelector, found := os.LookupEnv(WatchLabelsEnvVar) + if !found { + return defaultWatchLabel, fmt.Errorf("%s must be set", WatchLabelsEnvVar) + } + return labelSelector, nil +} + +// GetPrometheusRemoteEndpoint returns the prometheusRemoteEndpoint instance in the namespace ns +func GetPrometheusRemoteEndpoint(rc client.Client, ns string) (*onapv1alpha1.PrometheusRemoteEndpoint, error) { + // Get the PrometheusRemoteEndpoint instance in current namespace to rebuild conf. + preList := &onapv1alpha1.PrometheusRemoteEndpointList{} + preOpts := []client.ListOption{ + client.InNamespace("edge1"), + client.MatchingLabels{"remote": "m3db1"}, + } + + err := rc.List(context.TODO(), preList, preOpts...) + if err != nil { + return nil, err + } + if preList.Items == nil || len(preList.Items) == 0 { + return nil, err + } + prometheusRemoteEndpoint := &preList.Items[0] + return prometheusRemoteEndpoint, nil +} + +// Contains checks if a string is contained in a list of strings +func Contains(list []string, s string) bool { + for _, v := range list { + if v == s { + return true + } + } + return false +} + +// Remove checks and removes a string from a list of strings +func Remove(list []string, s string) []string { + for i, v := range list { + if v == s { + list = append(list[:i], list[i+1:]...) + } + } + return list +} |