diff options
author | Jan Malkiewicz <jan.malkiewicz@nokia.com> | 2020-11-05 15:25:12 +0100 |
---|---|---|
committer | Jan Malkiewicz <jan.malkiewicz@nokia.com> | 2020-11-10 13:08:23 +0100 |
commit | 1815faa0ee14d5c27105a39f641a5b46939e72f8 (patch) | |
tree | a717a1b6a08a67d1a9341339bfd7c63170f5cf6c /certServiceK8sExternalProvider/src/cmpv2controller/cmpv2_issuer_status_updater.go | |
parent | 8ad5e5e43ba2044e7deb1b92d131ceb086c89574 (diff) |
[OOM-K8S-CERT-EXTERNAL-PROVIDER] Refactoring & code improvements
Issue-ID: OOM-2559
Signed-off-by: Jan Malkiewicz <jan.malkiewicz@nokia.com>
Change-Id: I52c38aacf064682f0018ac37b1400893bd9e53fc
Diffstat (limited to 'certServiceK8sExternalProvider/src/cmpv2controller/cmpv2_issuer_status_updater.go')
-rw-r--r-- | certServiceK8sExternalProvider/src/cmpv2controller/cmpv2_issuer_status_updater.go | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/certServiceK8sExternalProvider/src/cmpv2controller/cmpv2_issuer_status_updater.go b/certServiceK8sExternalProvider/src/cmpv2controller/cmpv2_issuer_status_updater.go deleted file mode 100644 index 400d1f00..00000000 --- a/certServiceK8sExternalProvider/src/cmpv2controller/cmpv2_issuer_status_updater.go +++ /dev/null @@ -1,116 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * oom-certservice-k8s-external-provider - * ================================================================================ - * Copyright (c) 2019 Smallstep Labs, Inc. - * Modifications copyright (C) 2020 Nokia. All rights reserved. - * ================================================================================ - * This source code was copied from the following git repository: - * https://github.com/smallstep/step-issuer - * The source code was modified for usage in the ONAP project. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package cmpv2controller - -import ( - "context" - "fmt" - - core "k8s.io/api/core/v1" - meta "k8s.io/apimachinery/pkg/apis/meta/v1" - - "onap.org/oom-certservice/k8s-external-provider/src/cmpv2api" - "onap.org/oom-certservice/k8s-external-provider/src/leveledlogger" -) - -type CMPv2IssuerStatusUpdater struct { - *CMPv2IssuerController - issuer *cmpv2api.CMPv2Issuer - logger leveledlogger.Logger -} - -func newStatusUpdater(controller *CMPv2IssuerController, issuer *cmpv2api.CMPv2Issuer, log leveledlogger.Logger) *CMPv2IssuerStatusUpdater { - return &CMPv2IssuerStatusUpdater{ - CMPv2IssuerController: controller, - issuer: issuer, - logger: log, - } -} - -func (updater *CMPv2IssuerStatusUpdater) Update(ctx context.Context, status cmpv2api.ConditionStatus, reason, message string, args ...interface{}) error { - completeMessage := fmt.Sprintf(message, args...) - updater.setCondition(status, reason, completeMessage) - - // Fire an Event to additionally inform users of the change - eventType := core.EventTypeNormal - if status == cmpv2api.ConditionFalse { - eventType = core.EventTypeWarning - } - updater.Recorder.Event(updater.issuer, eventType, reason, completeMessage) - - return updater.Client.Update(ctx, updater.issuer) -} - -func (updater *CMPv2IssuerStatusUpdater) UpdateNoError(ctx context.Context, status cmpv2api.ConditionStatus, reason, message string, args ...interface{}) { - if err := updater.Update(ctx, status, reason, message, args...); err != nil { - updater.logger.Error(err, "failed to update", "status", status, "reason", reason) - } -} - -// setCondition will set a 'condition' on the given cmpv2api.CMPv2Issuer resource. -// -// - If no condition of the same type already exists, the condition will be -// inserted with the LastTransitionTime set to the current time. -// - If a condition of the same type and state already exists, the condition -// will be updated but the LastTransitionTime will not be modified. -// - If a condition of the same type and different state already exists, the -// condition will be updated and the LastTransitionTime set to the current -// time. -func (updater *CMPv2IssuerStatusUpdater) setCondition(status cmpv2api.ConditionStatus, reason, message string) { - now := meta.NewTime(updater.Clock.Now()) - issuerCondition := cmpv2api.CMPv2IssuerCondition{ - Type: cmpv2api.ConditionReady, - Status: status, - Reason: reason, - Message: message, - LastTransitionTime: &now, - } - - // Search through existing conditions - for i, condition := range updater.issuer.Status.Conditions { - // Skip unrelated conditions - if condition.Type != cmpv2api.ConditionReady { - continue - } - - // If this update doesn't contain a state transition, we don't update - // the conditions LastTransitionTime to Now() - if condition.Status == status { - issuerCondition.LastTransitionTime = condition.LastTransitionTime - } else { - updater.logger.Info("found status change for CMPv2Issuer condition; setting lastTransitionTime", "condition", condition.Type, "old_status", condition.Status, "new_status", status, "time", now.Time) - } - - // Overwrite the existing condition - updater.issuer.Status.Conditions[i] = issuerCondition - return - } - - // If we've not found an existing condition of this type, we simply insert - // the new condition into the slice. - updater.issuer.Status.Conditions = append(updater.issuer.Status.Conditions, issuerCondition) - updater.logger.Info("setting lastTransitionTime for CMPv2Issuer condition", "condition", cmpv2api.ConditionReady, "time", now.Time) -} |