Print and describe failed CSRs

This commit is contained in:
Jordan Liggitt 2020-04-16 01:05:46 -04:00
parent d33a19cee7
commit 6b61cb2907
2 changed files with 18 additions and 18 deletions

View File

@ -1781,10 +1781,7 @@ func printCertificateSigningRequest(obj *certificates.CertificateSigningRequest,
row := metav1.TableRow{
Object: runtime.RawExtension{Object: obj},
}
status, err := extractCSRStatus(obj)
if err != nil {
return nil, err
}
status := extractCSRStatus(obj)
signerName := "<none>"
if obj.Spec.SignerName != "" {
signerName = obj.Spec.SignerName
@ -1793,16 +1790,16 @@ func printCertificateSigningRequest(obj *certificates.CertificateSigningRequest,
return []metav1.TableRow{row}, nil
}
func extractCSRStatus(csr *certificates.CertificateSigningRequest) (string, error) {
var approved, denied bool
func extractCSRStatus(csr *certificates.CertificateSigningRequest) string {
var approved, denied, failed bool
for _, c := range csr.Status.Conditions {
switch c.Type {
case certificates.CertificateApproved:
approved = true
case certificates.CertificateDenied:
denied = true
default:
return "", fmt.Errorf("unknown csr condition %q", c)
case certificates.CertificateFailed:
failed = true
}
}
var status string
@ -1814,10 +1811,13 @@ func extractCSRStatus(csr *certificates.CertificateSigningRequest) (string, erro
} else {
status += "Pending"
}
if failed {
status += ",Failed"
}
if len(csr.Status.Certificate) > 0 {
status += ",Issued"
}
return status, nil
return status
}
func printCertificateSigningRequestList(list *certificates.CertificateSigningRequestList, options printers.GenerateOptions) ([]metav1.TableRow, error) {

View File

@ -3261,10 +3261,7 @@ func (p *CertificateSigningRequestDescriber) Describe(namespace, name string, de
if err != nil {
return "", fmt.Errorf("Error parsing CSR: %v", err)
}
status, err := extractCSRStatus(csr)
if err != nil {
return "", err
}
status := extractCSRStatus(csr)
var events *corev1.EventList
if describerSettings.ShowEvents {
@ -4843,16 +4840,16 @@ func formatEndpoints(endpoints *corev1.Endpoints, ports sets.String) string {
return ret
}
func extractCSRStatus(csr *certificatesv1beta1.CertificateSigningRequest) (string, error) {
var approved, denied bool
func extractCSRStatus(csr *certificatesv1beta1.CertificateSigningRequest) string {
var approved, denied, failed bool
for _, c := range csr.Status.Conditions {
switch c.Type {
case certificatesv1beta1.CertificateApproved:
approved = true
case certificatesv1beta1.CertificateDenied:
denied = true
default:
return "", fmt.Errorf("unknown csr condition %q", c)
case certificatesv1beta1.CertificateFailed:
failed = true
}
}
var status string
@ -4864,10 +4861,13 @@ func extractCSRStatus(csr *certificatesv1beta1.CertificateSigningRequest) (strin
} else {
status += "Pending"
}
if failed {
status += ",Failed"
}
if len(csr.Status.Certificate) > 0 {
status += ",Issued"
}
return status, nil
return status
}
// backendStringer behaves just like a string interface and converts the given backend to a string.