diff options
author | 2020-11-05 15:25:12 +0100 | |
---|---|---|
committer | 2020-11-10 13:08:23 +0100 | |
commit | 1815faa0ee14d5c27105a39f641a5b46939e72f8 (patch) | |
tree | a717a1b6a08a67d1a9341339bfd7c63170f5cf6c /certServiceK8sExternalProvider/src/cmpv2controller/updater/certificate_request_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/updater/certificate_request_status_updater.go')
-rw-r--r-- | certServiceK8sExternalProvider/src/cmpv2controller/updater/certificate_request_status_updater.go | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/certServiceK8sExternalProvider/src/cmpv2controller/updater/certificate_request_status_updater.go b/certServiceK8sExternalProvider/src/cmpv2controller/updater/certificate_request_status_updater.go new file mode 100644 index 00000000..d4ed0237 --- /dev/null +++ b/certServiceK8sExternalProvider/src/cmpv2controller/updater/certificate_request_status_updater.go @@ -0,0 +1,74 @@ +/* + * ============LICENSE_START======================================================= + * oom-certservice-k8s-external-provider + * ================================================================================ + * 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 updater + +import ( + "context" + "fmt" + + apiutil "github.com/jetstack/cert-manager/pkg/api/util" + cmapi "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1" + cmmeta "github.com/jetstack/cert-manager/pkg/apis/meta/v1" + "k8s.io/client-go/tools/record" + "sigs.k8s.io/controller-runtime/pkg/client" + + "onap.org/oom-certservice/k8s-external-provider/src/leveledlogger" +) + +type CertificateRequestStatusUpdater struct { + client client.Client + recorder record.EventRecorder + logger leveledlogger.Logger + ctx context.Context + certificateRequest *cmapi.CertificateRequest +} + +func NewCertificateRequestUpdater(client client.Client, + recorder record.EventRecorder, certificateRequest *cmapi.CertificateRequest, ctx context.Context, log leveledlogger.Logger) *CertificateRequestStatusUpdater { + return &CertificateRequestStatusUpdater{ + client: client, + recorder: recorder, + logger: log, + ctx: ctx, + certificateRequest: certificateRequest, + } +} + +func (instance *CertificateRequestStatusUpdater) UpdateStatusWithEventTypeWarning(reason string, message string, args ...interface{}) error { + return instance.updateStatus(cmmeta.ConditionFalse, reason, message, args...) +} + +func (instance *CertificateRequestStatusUpdater) UpdateCertificateRequestWithSignedCertificates() error { + return instance.updateStatus(cmmeta.ConditionTrue, cmapi.CertificateRequestReasonIssued, "Certificate issued") +} + +func (instance *CertificateRequestStatusUpdater) updateStatus(status cmmeta.ConditionStatus, reason string, message string, args ...interface{}) error { + completeMessage := fmt.Sprintf(message, args...) + apiutil.SetCertificateRequestCondition(instance.certificateRequest, cmapi.CertificateRequestConditionReady, status, reason, completeMessage) + + FireEventCert(instance.recorder, instance.certificateRequest, status, reason, completeMessage) + + return instance.client.Status().Update(instance.ctx, instance.certificateRequest) +} |