Skip to content

Commit 31855c4

Browse files
committed
feat: enhance asset processing by separating network asset name and IP mapping
1 parent 6a9ec81 commit 31855c4

File tree

1 file changed

+25
-8
lines changed

1 file changed

+25
-8
lines changed

backend/src/main/java/com/park/utmstack/service/network_scan/AssetSynchronizationService.java

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,14 @@ public void syncDataInputsAndAssets() {
5353

5454
Map<String, AgentDTO> agentsMap = loadAgents();
5555
Map<String, UtmDataInputStatus> statusMap = buildDataInputStatusMap();
56-
Map<String, UtmNetworkScan> assetsMap = buildNetworkAssetsMap(
56+
57+
Map<String, UtmNetworkScan> assetsNameMap = buildNetworkAssetsNameMap(
58+
new ArrayList<>(statsMap.values()
59+
.stream()
60+
.map(StatisticDocument::getDataSource)
61+
.collect(Collectors.toSet())));
62+
63+
Map<String, UtmNetworkScan> assetsNameIpMap = buildNetworkAssetsIpMap(
5764
new ArrayList<>(statsMap.values()
5865
.stream()
5966
.map(StatisticDocument::getDataSource)
@@ -68,8 +75,7 @@ public void syncDataInputsAndAssets() {
6875
UtmDataInputStatus status = processDataInputStatus(stat, statusMap);
6976
statusToSave.add(status);
7077

71-
// Update network asset
72-
UtmNetworkScan asset = processNetworkAsset(stat.getDataSource(), agentsMap, assetsMap, statusMap);
78+
UtmNetworkScan asset = processNetworkAsset(stat.getDataSource(), agentsMap, assetsNameMap, assetsNameIpMap, statusMap);
7379
assetsToSave.add(asset);
7480
}
7581

@@ -95,12 +101,18 @@ private Map<String, UtmDataInputStatus> buildDataInputStatusMap() {
95101
.collect(Collectors.toMap(UtmDataInputStatus::getId, Function.identity()));
96102
}
97103

98-
private Map<String, UtmNetworkScan> buildNetworkAssetsMap(List<String> sourcesKeys) {
104+
private Map<String, UtmNetworkScan> buildNetworkAssetsNameMap(List<String> sourcesKeys) {
99105
return networkScanRepository.findByAssetIpInOrAssetNameIn(sourcesKeys, sourcesKeys)
100106
.stream()
101107
.collect(Collectors.toMap(UtmNetworkScan::getAssetName, Function.identity(), (a1, a2) -> a1));
102108
}
103109

110+
private Map<String, UtmNetworkScan> buildNetworkAssetsIpMap(List<String> sourcesKeys) {
111+
return networkScanRepository.findByAssetIpInOrAssetNameIn(sourcesKeys, sourcesKeys)
112+
.stream()
113+
.collect(Collectors.toMap(UtmNetworkScan::getAssetIp, Function.identity(), (a1, a2) -> a1));
114+
}
115+
104116
private UtmDataInputStatus processDataInputStatus(StatisticDocument stat,
105117
Map<String, UtmDataInputStatus> statusMap) {
106118
String statusId = stat.getDataType() + "-" + stat.getDataSource();
@@ -127,10 +139,11 @@ private UtmDataInputStatus createNewDataInputStatus(String id, StatisticDocument
127139

128140
private UtmNetworkScan processNetworkAsset(String sourceName,
129141
Map<String, AgentDTO> agentsMap,
130-
Map<String, UtmNetworkScan> assetsMap,
142+
Map<String, UtmNetworkScan> assetsNameMap,
143+
Map<String, UtmNetworkScan> assetsIpMap,
131144
Map<String, UtmDataInputStatus> statusMap) {
132145
boolean isAlive = isDataSourceAlive(sourceName, statusMap);
133-
UtmNetworkScan asset = resolveAsset(sourceName, assetsMap);
146+
UtmNetworkScan asset = resolveAsset(sourceName, assetsNameMap, assetsIpMap);
134147
boolean isExisting = asset != null && asset.getId() != null;
135148

136149
if (asset == null) {
@@ -147,8 +160,12 @@ private boolean isDataSourceAlive(String sourceName, Map<String, UtmDataInputSta
147160
.anyMatch(s -> !s.isDown());
148161
}
149162

150-
private UtmNetworkScan resolveAsset(String sourceName, Map<String, UtmNetworkScan> assetsMap) {
151-
UtmNetworkScan asset = assetsMap.get(sourceName);
163+
private UtmNetworkScan resolveAsset(String sourceName, Map<String, UtmNetworkScan> assetsNameMap, Map<String, UtmNetworkScan> assetsIpMap) {
164+
UtmNetworkScan asset = assetsNameMap.get(sourceName);
165+
166+
if (asset == null) {
167+
asset = assetsIpMap.get(sourceName);
168+
}
152169

153170
if (asset == null) {
154171
asset = resolveAssetNameFromTenantConfig(sourceName);

0 commit comments

Comments
 (0)