pcp-tgu: эндпоинт /test/tgu/platforms/load-manual принимает JSON
Тестовый эндпоинт загрузки платформ принимает root-array НСИ в теле запроса (@RequestBody List<NsiPlatformDto>) вместо пути к файлу; маршрут load-from-file переименован в load-manual.
This commit is contained in:
+6
-10
@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping
|
|||||||
import org.springframework.web.bind.annotation.RequestParam
|
import org.springframework.web.bind.annotation.RequestParam
|
||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
import space.nstart.pcp_tgu_service.domain.PlanDecision
|
import space.nstart.pcp_tgu_service.domain.PlanDecision
|
||||||
|
import space.nstart.pcp_tgu_service.dto.NsiPlatformDto
|
||||||
import space.nstart.pcp_tgu_service.dto.PlanDecisionMessage
|
import space.nstart.pcp_tgu_service.dto.PlanDecisionMessage
|
||||||
import space.nstart.pcp_tgu_service.dto.PlanExecutionFeedbackMessage
|
import space.nstart.pcp_tgu_service.dto.PlanExecutionFeedbackMessage
|
||||||
import space.nstart.pcp_tgu_service.dto.PlanResponse
|
import space.nstart.pcp_tgu_service.dto.PlanResponse
|
||||||
@@ -20,8 +21,6 @@ import space.nstart.pcp_tgu_service.service.PlanQueryService
|
|||||||
import space.nstart.pcp_tgu_service.service.PlatformService
|
import space.nstart.pcp_tgu_service.service.PlatformService
|
||||||
import space.nstart.pcp_tgu_service.service.TestPlanDecisionService
|
import space.nstart.pcp_tgu_service.service.TestPlanDecisionService
|
||||||
import space.nstart.pcp_tgu_service.service.VisibilityRefreshJobService
|
import space.nstart.pcp_tgu_service.service.VisibilityRefreshJobService
|
||||||
import java.nio.file.Files
|
|
||||||
import java.nio.file.Path
|
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
@@ -77,14 +76,12 @@ class TestTguController(
|
|||||||
): PlanExecutionFeedbackMessage =
|
): PlanExecutionFeedbackMessage =
|
||||||
testPlanDecisionService.generateLayinConfirmed(planId, reason)
|
testPlanDecisionService.generateLayinConfirmed(planId, reason)
|
||||||
|
|
||||||
/** Загружает cache аппаратов из файла с root-array payload НСИ вместо запроса в НСИ. */
|
/** Загружает cache аппаратов из переданного в теле root-array payload НСИ вместо запроса в НСИ. */
|
||||||
@PostMapping("/platforms/load-from-file")
|
@PostMapping("/platforms/load-manual")
|
||||||
fun loadPlatformsFromFile(@RequestParam("path") filePath: String): TestPlatformsLoadResponse {
|
fun loadPlatformsFromPayload(@RequestBody platforms: List<NsiPlatformDto>): TestPlatformsLoadResponse {
|
||||||
val path = Path.of(filePath).toAbsolutePath().normalize()
|
val loaded = platformService.loadPlatformsFromNsiPayload(platforms)
|
||||||
val platforms = platformService.loadPlatformsFromNsiPayload(Files.readString(path))
|
|
||||||
return TestPlatformsLoadResponse(
|
return TestPlatformsLoadResponse(
|
||||||
filePath = path.toString(),
|
loadedCount = loaded.size,
|
||||||
loadedCount = platforms.size,
|
|
||||||
allowedCount = platformService.loadAllowedPlatforms().size
|
allowedCount = platformService.loadAllowedPlatforms().size
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -109,7 +106,6 @@ class TestTguController(
|
|||||||
}
|
}
|
||||||
|
|
||||||
data class TestPlatformsLoadResponse(
|
data class TestPlatformsLoadResponse(
|
||||||
val filePath: String,
|
|
||||||
val loadedCount: Int,
|
val loadedCount: Int,
|
||||||
val allowedCount: Int
|
val allowedCount: Int
|
||||||
)
|
)
|
||||||
|
|||||||
+4
-1
@@ -46,8 +46,11 @@ class PlatformService(
|
|||||||
|
|
||||||
/** Replaces the in-memory platform cache from a raw NSI response payload for test-only manual runs. */
|
/** Replaces the in-memory platform cache from a raw NSI response payload for test-only manual runs. */
|
||||||
fun loadPlatformsFromNsiPayload(payloadJson: String): List<PlatformCatalogItem> =
|
fun loadPlatformsFromNsiPayload(payloadJson: String): List<PlatformCatalogItem> =
|
||||||
|
loadPlatformsFromNsiPayload(objectMapper.readValue(payloadJson, Array<NsiPlatformDto>::class.java).toList())
|
||||||
|
|
||||||
|
/** Replaces the in-memory platform cache from an already-parsed NSI payload for test-only manual runs. */
|
||||||
|
fun loadPlatformsFromNsiPayload(platforms: List<NsiPlatformDto>): List<PlatformCatalogItem> =
|
||||||
synchronized(cacheLock) {
|
synchronized(cacheLock) {
|
||||||
val platforms = objectMapper.readValue(payloadJson, Array<NsiPlatformDto>::class.java).toList()
|
|
||||||
cachePlatforms(platforms, Instant.now(clock))
|
cachePlatforms(platforms, Instant.now(clock))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user