mirror of
https://github.com/wahyd4/cert-manager.git
synced 2026-08-27 22:16:49 +10:00
Adds Denied to certificaterequests reporter
Signed-off-by: joshvanl <vleeuwenjoshua@gmail.com>
This commit is contained in:
@@ -270,6 +270,7 @@ func CertificateRequestReadyReason(cr *cmapi.CertificateRequest) string {
|
||||
cmapi.CertificateRequestReasonFailed,
|
||||
cmapi.CertificateRequestReasonIssued,
|
||||
cmapi.CertificateRequestReasonPending,
|
||||
cmapi.CertificateRequestReasonDenied,
|
||||
} {
|
||||
for _, con := range cr.Status.Conditions {
|
||||
if con.Type == cmapi.CertificateRequestConditionReady &&
|
||||
|
||||
@@ -59,6 +59,20 @@ func (r *Reporter) Failed(cr *cmapi.CertificateRequest, err error, reason, messa
|
||||
|
||||
}
|
||||
|
||||
func (r *Reporter) Denied(cr *cmapi.CertificateRequest) {
|
||||
// Set the FailureTime to c.clock.Now(), only if it has not been already set.
|
||||
if cr.Status.FailureTime == nil {
|
||||
nowTime := metav1.NewTime(r.clock.Now())
|
||||
cr.Status.FailureTime = &nowTime
|
||||
}
|
||||
|
||||
message := "The CertificateRequest was denied by an approval controller"
|
||||
|
||||
r.recorder.Event(cr, corev1.EventTypeWarning, cmapi.CertificateRequestReasonDenied, message)
|
||||
apiutil.SetCertificateRequestCondition(cr, cmapi.CertificateRequestConditionReady,
|
||||
cmmeta.ConditionFalse, cmapi.CertificateRequestReasonDenied, message)
|
||||
}
|
||||
|
||||
func (r *Reporter) InvalidRequest(cr *cmapi.CertificateRequest, reason, message string) {
|
||||
apiutil.SetCertificateRequestCondition(cr, cmapi.CertificateRequestConditionInvalidRequest,
|
||||
cmmeta.ConditionTrue, reason, message)
|
||||
|
||||
@@ -100,6 +100,14 @@ func TestReporter(t *testing.T) {
|
||||
LastTransitionTime: &nowMetaTime,
|
||||
}
|
||||
|
||||
deniedReadyCondition := cmapi.CertificateRequestCondition{
|
||||
Type: cmapi.CertificateRequestConditionReady,
|
||||
Reason: "RequestDenied",
|
||||
Message: "The CertificateRequest was denied by an approval controller",
|
||||
Status: "False",
|
||||
LastTransitionTime: &nowMetaTime,
|
||||
}
|
||||
|
||||
tests := map[string]reporterT{
|
||||
"a failed report should update the conditions and set FailureTime as it is nil": {
|
||||
certificateRequest: gen.CertificateRequestFrom(baseCR),
|
||||
@@ -204,6 +212,20 @@ func TestReporter(t *testing.T) {
|
||||
|
||||
call: "ready",
|
||||
},
|
||||
|
||||
"a denied report should update the conditions and send an event, but not update failure time if existing": {
|
||||
certificateRequest: gen.CertificateRequestFrom(baseCR,
|
||||
gen.SetCertificateRequestStatusCondition(deniedReadyCondition),
|
||||
gen.SetCertificateRequestFailureTime(oldMetaTime),
|
||||
),
|
||||
expectedEvents: []string{
|
||||
"Warning RequestDenied The CertificateRequest was denied by an approval controller",
|
||||
},
|
||||
expectedConditions: []cmapi.CertificateRequestCondition{deniedReadyCondition},
|
||||
expectedFailureTime: &oldMetaTime,
|
||||
|
||||
call: "denied",
|
||||
},
|
||||
}
|
||||
|
||||
for name, test := range tests {
|
||||
@@ -228,6 +250,8 @@ func (tt *reporterT) runTest(t *testing.T) {
|
||||
case "pending":
|
||||
reporter.Pending(tt.certificateRequest, tt.err,
|
||||
tt.reason, tt.message)
|
||||
case "denied":
|
||||
reporter.Denied(tt.certificateRequest)
|
||||
default:
|
||||
reporter.Ready(tt.certificateRequest)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user