Skip to content

Commit

Permalink
Helper methods
Browse files Browse the repository at this point in the history
  • Loading branch information
jedrz committed Sep 13, 2021
1 parent 4c12133 commit eda28a6
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 6 deletions.
@@ -1,10 +1,11 @@
package pl.touk.nussknacker.engine.management.periodic.service

import com.typesafe.config.Config
import com.typesafe.sslconfig.util.EnrichedConfig
import pl.touk.nussknacker.engine.api.deployment.DeploymentData
import com.typesafe.config.{Config, ConfigFactory}
import pl.touk.nussknacker.engine.canonicalgraph.CanonicalProcess
import pl.touk.nussknacker.engine.management.periodic.model.PeriodicProcessDeployment
import pl.touk.nussknacker.engine.management.periodic.service.ProcessConfigEnricher.{DeployData, EnrichedProcessConfig, InitialScheduleData}
import pl.touk.nussknacker.engine.marshall.ProcessMarshaller
import pl.touk.nussknacker.engine.modelconfig.InputConfigDuringExecution
import sttp.client.{NothingT, SttpBackend}

import scala.concurrent.{ExecutionContext, Future}
Expand All @@ -22,12 +23,31 @@ trait ProcessConfigEnricher {

object ProcessConfigEnricher {

case class InitialScheduleData(processJson: String, modelConfigJson: String)
trait ProcessConfigEnricherInputData {
def processJson: String
def modelConfigJson: String

case class DeployData(processJson: String, modelConfigJson: String, deployment: PeriodicProcessDeployment)
def canonicalProcess: CanonicalProcess = {
ProcessMarshaller.fromJson(processJson).valueOr(err => throw new IllegalArgumentException(err.msg))
}

def modelConfig: Config = {
ConfigFactory.parseString(modelConfigJson)
}
}

case class InitialScheduleData(processJson: String, modelConfigJson: String) extends ProcessConfigEnricherInputData

case class DeployData(processJson: String, modelConfigJson: String, deployment: PeriodicProcessDeployment) extends ProcessConfigEnricherInputData

case class EnrichedProcessConfig(configJson: String)

object EnrichedProcessConfig {
def apply(config: Config): EnrichedProcessConfig = {
EnrichedProcessConfig(InputConfigDuringExecution.serialize(config))
}
}

def identity: ProcessConfigEnricher = new ProcessConfigEnricher {
override def onInitialSchedule(initialScheduleData: InitialScheduleData): Future[EnrichedProcessConfig] = Future.successful(EnrichedProcessConfig(initialScheduleData.modelConfigJson))

Expand Down
@@ -1,11 +1,16 @@
package pl.touk.nussknacker.engine.modelconfig

import com.typesafe.config.{Config, ConfigRenderOptions}
import pl.touk.nussknacker.engine.modelconfig.InputConfigDuringExecution.serialize

//intermediate representation of Config, suitable for compact serialization (see ModelConfigLoader). This config should *not* be
//used directly, only after resolving (mainly via ModelData.processConfig)
case class InputConfigDuringExecution(config: Config) {

lazy val serialized: String = config.root().render(ConfigRenderOptions.concise())
lazy val serialized: String = serialize(config)

}

object InputConfigDuringExecution {
def serialize(config: Config): String = config.root().render(ConfigRenderOptions.concise())
}

0 comments on commit eda28a6

Please sign in to comment.