Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scenario visualization loading improvements - part 2 - testing endpoints without scenario compilation #7516

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class TestingApiHttpService(
scenarioTestService = processingTypeToScenarioTestServices.forProcessingTypeUnsafe(
scenarioWithDetails.processingType
)
inputParameters = scenarioTestService.testParametersDefinition(
inputParameters = scenarioTestService.validateAndGetTestParametersDefinition(
request.scenarioGraph,
scenarioWithDetails.processVersionUnsafe,
scenarioWithDetails.isFragment
Expand All @@ -73,7 +73,6 @@ class TestingApiHttpService(
capabilities = scenarioTestService.getTestingCapabilities(
scenarioGraph,
scenarioWithDetails.processVersionUnsafe,
scenarioWithDetails.isFragment,
)
} yield capabilities
}
Expand All @@ -93,7 +92,6 @@ class TestingApiHttpService(
parametersDefinition = scenarioTestService.testUISourceParametersDefinition(
scenarioGraph,
scenarioWithDetails.processVersionUnsafe,
scenarioWithDetails.isFragment
)
} yield parametersDefinition
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ import pl.touk.nussknacker.engine.api.definition.{DualParameterEditor, Parameter
import pl.touk.nussknacker.engine.api.editor.DualEditorMode
import pl.touk.nussknacker.engine.api.graph.ScenarioGraph
import pl.touk.nussknacker.engine.api.test.ScenarioTestData
import pl.touk.nussknacker.engine.api.typed.AssignabilityDeterminer
import pl.touk.nussknacker.engine.api.typed.typing.Typed
import pl.touk.nussknacker.engine.canonicalgraph.CanonicalProcess
import pl.touk.nussknacker.engine.definition.test.{TestInfoProvider, TestingCapabilities}
import pl.touk.nussknacker.engine.testmode.TestProcess.TestResults
import pl.touk.nussknacker.restmodel.definition.UISourceParameters
import pl.touk.nussknacker.ui.api.description.NodesApiEndpoints.Dtos.TestSourceParameters
import pl.touk.nussknacker.ui.api.TestDataSettings
import pl.touk.nussknacker.ui.api.description.NodesApiEndpoints.Dtos.TestSourceParameters
import pl.touk.nussknacker.ui.definition.DefinitionsService
import pl.touk.nussknacker.ui.process.deployment.ScenarioTestExecutorService
import pl.touk.nussknacker.ui.process.marshall.CanonicalProcessConverter
import pl.touk.nussknacker.ui.processreport.{NodeCount, ProcessCounter, RawCount}
import pl.touk.nussknacker.ui.security.api.LoggedUser
import pl.touk.nussknacker.ui.uiresolving.UIProcessResolver
Expand All @@ -35,15 +35,12 @@ class ScenarioTestService(
def getTestingCapabilities(
scenarioGraph: ScenarioGraph,
processVersion: ProcessVersion,
isFragment: Boolean,
)(
implicit user: LoggedUser
): TestingCapabilities = {
val canonical = toCanonicalProcess(scenarioGraph, processVersion, isFragment)
val canonical = CanonicalProcessConverter.fromScenarioGraph(scenarioGraph, processVersion.processName)
testInfoProvider.getTestingCapabilities(processVersion, canonical)
}

def testParametersDefinition(
def validateAndGetTestParametersDefinition(
scenarioGraph: ScenarioGraph,
processVersion: ProcessVersion,
isFragment: Boolean
Expand All @@ -56,12 +53,16 @@ class ScenarioTestService(
def testUISourceParametersDefinition(
scenarioGraph: ScenarioGraph,
processVersion: ProcessVersion,
isFragment: Boolean
)(implicit user: LoggedUser): List[UISourceParameters] =
testParametersDefinition(scenarioGraph, processVersion, isFragment)
): List[UISourceParameters] = {
val canonical = CanonicalProcessConverter.fromScenarioGraph(scenarioGraph, processVersion.processName)
testInfoProvider
.getTestParameters(processVersion, canonical)
.map { case (id, params) => UISourceParameters(id, params.map(DefinitionsService.createUIParameter)) }
.map { assignUserFriendlyEditor }
.map {
assignUserFriendlyEditor
}
.toList
}

def generateData(
scenarioGraph: ScenarioGraph,
Expand Down
2 changes: 2 additions & 0 deletions docs/Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@
* Introduced some default values:
* For all - default `windowLength` is 1 hour
* For `aggregate-session` - default `endSessionCondition` is now false
* Improved scenario visualization loading time
* [#7516](https://github.com/TouK/nussknacker/pull/7516) Scenario testing endpoints no longer perform full scenario compilation and validation

## 1.18

Expand Down
Loading