From 1f1a524f4829de394d55b4a541a17aa8feb7c54b Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Wed, 10 Apr 2019 15:34:48 +0200 Subject: [PATCH] kube-aggregator: update existing openapi spec info if pre-existing --- .../pkg/controllers/openapi/aggregator/aggregator.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/staging/src/k8s.io/kube-aggregator/pkg/controllers/openapi/aggregator/aggregator.go b/staging/src/k8s.io/kube-aggregator/pkg/controllers/openapi/aggregator/aggregator.go index c360e4b0f57..7fb0dcb97b9 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/controllers/openapi/aggregator/aggregator.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/controllers/openapi/aggregator/aggregator.go @@ -202,15 +202,16 @@ func (s *specAggregator) tryUpdatingServiceSpecs(specInfo *openAPISpecInfo) erro if specInfo == nil { return fmt.Errorf("invalid input: specInfo must be non-nil") } - orgSpecInfo, exists := s.openAPISpecs[specInfo.apiService.Name] + origSpecInfo, existedBefore := s.openAPISpecs[specInfo.apiService.Name] + s.openAPISpecs[specInfo.apiService.Name] = specInfo + // Skip aggregation if OpenAPI spec didn't change - if exists && orgSpecInfo != nil && orgSpecInfo.etag == specInfo.etag { + if existedBefore && origSpecInfo != nil && origSpecInfo.etag == specInfo.etag { return nil } - s.openAPISpecs[specInfo.apiService.Name] = specInfo if err := s.updateOpenAPISpec(); err != nil { - if exists { - s.openAPISpecs[specInfo.apiService.Name] = orgSpecInfo + if existedBefore { + s.openAPISpecs[specInfo.apiService.Name] = origSpecInfo } else { delete(s.openAPISpecs, specInfo.apiService.Name) }