@@ -57,7 +57,7 @@ public LabelsConfigServiceImpl(
5757 RequestContextClientCallCredsProviderFactory .getClientCallCredsProvider ()
5858 .get ()),
5959 configChangeEventGenerator );
60- systemLabelInfoUtils = new SystemLabelInfoUtils (config , labelStore );
60+ systemLabelInfoUtils = new SystemLabelInfoUtils (config );
6161 }
6262
6363 @ Override
@@ -163,7 +163,7 @@ public void getLabel(GetLabelRequest request, StreamObserver<GetLabelResponse> r
163163 () ->
164164 Optional .ofNullable (
165165 systemLabelInfoUtils
166- .getSystemLabelsIdLabelMap (requestContext )
166+ .getSystemLabelsIdLabelMap (getExistingLabels ( requestContext ) )
167167 .get (labelId ))
168168 .orElseThrow (Status .NOT_FOUND ::asRuntimeException ));
169169 responseObserver .onNext (GetLabelResponse .newBuilder ().setLabel (label ).build ());
@@ -177,15 +177,12 @@ public void getLabel(GetLabelRequest request, StreamObserver<GetLabelResponse> r
177177 public void getLabels (
178178 GetLabelsRequest request , StreamObserver <GetLabelsResponse > responseObserver ) {
179179 RequestContext requestContext = RequestContext .CURRENT .get ();
180- List <Label > tenantLabels =
181- labelStore .getAllObjects (requestContext ).stream ()
182- .map (ContextualConfigObject ::getData )
183- .collect (Collectors .toUnmodifiableList ());
180+ List <Label > tenantLabels = getExistingLabels (requestContext );
184181 Map <String , Label > tenantLabelsMap =
185182 tenantLabels .stream ()
186183 .collect (Collectors .toUnmodifiableMap (Label ::getId , Function .identity ()));
187184 List <Label > allLabels = new ArrayList <>(tenantLabels );
188- systemLabelInfoUtils .getSystemLabels (requestContext ).stream ()
185+ systemLabelInfoUtils .getSystemLabels (tenantLabels ).stream ()
189186 .filter (label -> !tenantLabelsMap .containsKey (label .getId ()))
190187 .forEach (allLabels ::add );
191188 responseObserver .onNext (GetLabelsResponse .newBuilder ().addAllLabels (allLabels ).build ());
@@ -210,7 +207,7 @@ public void updateLabel(
210207 () ->
211208 Optional .ofNullable (
212209 systemLabelInfoUtils
213- .getSystemLabelsIdLabelMap (requestContext )
210+ .getSystemLabelsIdLabelMap (getExistingLabels ( requestContext ) )
214211 .get (request .getId ()))
215212 .orElseThrow (Status .NOT_FOUND ::asRuntimeException ));
216213 Label updateLabel = oldLabel .toBuilder ().setData (updateLabelData ).build ();
@@ -228,7 +225,9 @@ public void deleteLabel(
228225 try {
229226 RequestContext requestContext = RequestContext .CURRENT .get ();
230227 String labelId = request .getId ();
231- if (systemLabelInfoUtils .getSystemLabelsIdLabelMap (requestContext ).containsKey (labelId )) {
228+ if (systemLabelInfoUtils
229+ .getSystemLabelsIdLabelMap (getExistingLabels (requestContext ))
230+ .containsKey (labelId )) {
232231 // Deleting a system label
233232 responseObserver .onError (new StatusRuntimeException (Status .INVALID_ARGUMENT ));
234233 return ;
@@ -255,10 +254,17 @@ private boolean isDuplicateKey(RequestContext requestContext, String key) {
255254
256255 private Map <String , Label > getLabelsMap (RequestContext requestContext ) {
257256 Map <String , Label > existingLabelsMap =
258- new HashMap <>(systemLabelInfoUtils .getSystemLabelsKeyLabelMap (requestContext ));
257+ new HashMap <>(
258+ systemLabelInfoUtils .getSystemLabelsKeyLabelMap (getExistingLabels (requestContext )));
259259 labelStore .getAllObjects (requestContext ).stream ()
260260 .map (ContextualConfigObject ::getData )
261261 .forEach (label -> existingLabelsMap .put (label .getData ().getKey (), label ));
262262 return Collections .unmodifiableMap (existingLabelsMap );
263263 }
264+
265+ private List <Label > getExistingLabels (RequestContext requestContext ) {
266+ return labelStore .getAllObjects (requestContext ).stream ()
267+ .map (ContextualConfigObject ::getData )
268+ .collect (Collectors .toUnmodifiableList ());
269+ }
264270}
0 commit comments