Skip to content

Commit d09f7e5

Browse files
committed
refactor system label info util
1 parent acf2b6f commit d09f7e5

File tree

2 files changed

+25
-24
lines changed

2 files changed

+25
-24
lines changed

labels-config-service-impl/src/main/java/org/hypertrace/label/config/service/LabelsConfigServiceImpl.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

labels-config-service-impl/src/main/java/org/hypertrace/label/config/service/SystemLabelInfoUtils.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111
import java.util.Objects;
1212
import java.util.stream.Collectors;
1313
import lombok.SneakyThrows;
14-
import org.hypertrace.config.objectstore.ContextualConfigObject;
15-
import org.hypertrace.core.grpcutils.context.RequestContext;
1614
import org.hypertrace.label.config.service.v1.Label;
1715

1816
public class SystemLabelInfoUtils {
@@ -21,14 +19,12 @@ public class SystemLabelInfoUtils {
2119
private static final String SYSTEM_LABELS = "system.labels";
2220

2321
private final Config config;
24-
private final LabelStore labelStore;
2522

26-
public SystemLabelInfoUtils(Config config, LabelStore labelStore) {
23+
public SystemLabelInfoUtils(Config config) {
2724
this.config = config;
28-
this.labelStore = labelStore;
2925
}
3026

31-
public List<Label> getSystemLabels(RequestContext requestContext) {
27+
public List<Label> getSystemLabels(List<Label> existingLabels) {
3228
List<? extends ConfigObject> systemLabelsObjectList = null;
3329
if (config.hasPath(LABELS_CONFIG_SERVICE_CONFIG)) {
3430
Config labelConfig = config.getConfig(LABELS_CONFIG_SERVICE_CONFIG);
@@ -38,27 +34,26 @@ public List<Label> getSystemLabels(RequestContext requestContext) {
3834
}
3935
return Objects.isNull(systemLabelsObjectList)
4036
? Collections.emptyList()
41-
: buildSystemLabelList(requestContext, systemLabelsObjectList);
37+
: buildSystemLabelList(systemLabelsObjectList, existingLabels);
4238
}
4339

44-
public Map<String, Label> getSystemLabelsIdLabelMap(RequestContext requestContext) {
45-
return getSystemLabels(requestContext).stream()
40+
public Map<String, Label> getSystemLabelsIdLabelMap(List<Label> existingLabels) {
41+
return getSystemLabels(existingLabels).stream()
4642
.collect(Collectors.toUnmodifiableMap(Label::getId, identity()));
4743
}
4844

49-
public Map<String, Label> getSystemLabelsKeyLabelMap(RequestContext requestContext) {
50-
return getSystemLabels(requestContext).stream()
45+
public Map<String, Label> getSystemLabelsKeyLabelMap(List<Label> existingLabels) {
46+
return getSystemLabels(existingLabels).stream()
5147
.collect(Collectors.toUnmodifiableMap(label -> label.getData().getKey(), identity()));
5248
}
5349

5450
private List<Label> buildSystemLabelList(
55-
RequestContext requestContext, List<? extends ConfigObject> configObjectList) {
51+
List<? extends ConfigObject> configObjectList, List<Label> existingLabels) {
5652
Map<String, Label> labelsIdMap =
5753
configObjectList.stream()
5854
.map(SystemLabelInfoUtils::buildLabelFromConfig)
5955
.collect(Collectors.toMap(Label::getId, identity()));
60-
labelStore.getAllObjects(requestContext).stream()
61-
.map(ContextualConfigObject::getData)
56+
existingLabels.stream()
6257
.filter(label -> labelsIdMap.containsKey(label.getId()))
6358
.forEach(label -> labelsIdMap.put(label.getId(), label));
6459
return labelsIdMap.values().stream().collect(Collectors.toUnmodifiableList());

0 commit comments

Comments
 (0)