Skip to content
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
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ plugins {
}

group = "org.cloud_assess"
version = "2.0.0"
version = "2.0.1"

java {
sourceCompatibility = JavaVersion.VERSION_17
Expand All @@ -30,7 +30,7 @@ repositories {
}

dependencies {
val lcaacVersion = "1.8.0"
val lcaacVersion = "2.0.0"
implementation("ch.kleis.lcaac:core:$lcaacVersion")
implementation("ch.kleis.lcaac:grammar:$lcaacVersion")

Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
app:
image: "ghcr.io/kleis-technology/cloud-assess/cloud-assess-app:v2.0.0"
image: "ghcr.io/kleis-technology/cloud-assess/cloud-assess-app:v2.0.1"
container_name: cloud-assess-app
ports:
- "8080:8080"
Expand Down
2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
description = "Cloud Assess flake";
inputs.lcaac-flake = {
url = "github:kleis-technology/homebrew-lcaac/v1.8.0";
url = "github:kleis-technology/homebrew-lcaac/v2.0.0";
};
outputs = inputs@{ nixpkgs, lcaac-flake, ...}:
{
Expand Down
4 changes: 1 addition & 3 deletions src/main/kotlin/org/cloud_assess/config/LcaConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,7 @@ class LcaConfig {
@Bean
fun lcaacConfig(
@Value("\${lca.config}") modelDirectory: Path,
@Value("\${lca.manifest}") manifest: String,
@Value("\${resilio-db.url}") rdbUrl: String,
@Value("\${resilio-db.access-token}") rdbAccessToken: String,
@Value("\${lca.manifest}") manifest: String
): LcaacConfig {
val configFile = Files.walk(modelDirectory, 1)
.filter {
Expand Down
20 changes: 10 additions & 10 deletions src/main/kotlin/org/cloud_assess/service/ComputeResourceService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ import ch.kleis.lcaac.core.assessment.ContributionAnalysisProgram
import ch.kleis.lcaac.core.datasource.DefaultDataSourceOperations
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnector
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnectorKeys
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnectorKeys.IN_MEMORY_CONNECTOR_NAME
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryDatasource
import ch.kleis.lcaac.core.lang.SymbolTable
import ch.kleis.lcaac.core.lang.evaluator.Evaluator
import ch.kleis.lcaac.core.lang.expression.EProcessTemplateApplication
import ch.kleis.lcaac.core.lang.register.DataKey
import ch.kleis.lcaac.core.lang.register.DataSourceKey
import ch.kleis.lcaac.core.lang.value.RecordValue
import ch.kleis.lcaac.core.math.basic.BasicNumber
import ch.kleis.lcaac.core.math.basic.BasicOperations
Expand Down Expand Up @@ -37,18 +39,16 @@ class ComputeResourceService(
computeResources.period.toDataExpression()
}
val cases = cases(computeResources)

val computeResourcesConnector = inMemoryConnector(computeResources)
val sourceOps = defaultDataSourceOperations.overrideWith(computeResourcesConnector)
val evaluator = Evaluator(
symbolTable.copy(
data = symbolTable.data.override(
DataKey(overrideTimeWindowParam),
period,
)
),
BasicOperations,
sourceOps,
)

val newSymbolTable = symbolTable
.overrideDatasourceConnector(DataSourceKey(overriddenDataSourceName), IN_MEMORY_CONNECTOR_NAME)
.copy(data = symbolTable.data.override(DataKey(overrideTimeWindowParam), period))

val evaluator = Evaluator(newSymbolTable, BasicOperations, sourceOps)

val productMatcher: (String) -> ProductMatcher = { id ->
ProductMatcher(
name = "compute",
Expand Down
20 changes: 10 additions & 10 deletions src/main/kotlin/org/cloud_assess/service/StorageResourceService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ import ch.kleis.lcaac.core.assessment.ContributionAnalysisProgram
import ch.kleis.lcaac.core.datasource.DefaultDataSourceOperations
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnector
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnectorKeys
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnectorKeys.IN_MEMORY_CONNECTOR_NAME
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryDatasource
import ch.kleis.lcaac.core.lang.SymbolTable
import ch.kleis.lcaac.core.lang.evaluator.Evaluator
import ch.kleis.lcaac.core.lang.expression.EProcessTemplateApplication
import ch.kleis.lcaac.core.lang.register.DataKey
import ch.kleis.lcaac.core.lang.register.DataSourceKey
import ch.kleis.lcaac.core.lang.value.RecordValue
import ch.kleis.lcaac.core.math.basic.BasicNumber
import ch.kleis.lcaac.core.math.basic.BasicOperations
Expand Down Expand Up @@ -36,18 +38,16 @@ class StorageResourceService(
storageResources.period.toDataExpression()
}
val cases = cases(storageResources)

val storageResourcesConnector = inMemoryConnector(storageResources)
val sourceOps = defaultDataSourceOperations.overrideWith(storageResourcesConnector)
val evaluator = Evaluator(
symbolTable.copy(
data = symbolTable.data.override(
DataKey(overrideTimeWindowParam),
period,
)
),
BasicOperations,
sourceOps,
)

val newSymbolTable = symbolTable
.overrideDatasourceConnector(DataSourceKey(overriddenDataSourceName), IN_MEMORY_CONNECTOR_NAME)
.copy(data = symbolTable.data.override(DataKey(overrideTimeWindowParam), period))

val evaluator = Evaluator(newSymbolTable, BasicOperations, sourceOps)

val productMatcher: (String) -> ProductMatcher = { id ->
ProductMatcher(
name = "storage",
Expand Down
20 changes: 10 additions & 10 deletions src/main/kotlin/org/cloud_assess/service/VirtualMachineService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ import ch.kleis.lcaac.core.assessment.ContributionAnalysisProgram
import ch.kleis.lcaac.core.datasource.DefaultDataSourceOperations
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnector
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnectorKeys
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnectorKeys.IN_MEMORY_CONNECTOR_NAME
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryDatasource
import ch.kleis.lcaac.core.lang.SymbolTable
import ch.kleis.lcaac.core.lang.evaluator.Evaluator
import ch.kleis.lcaac.core.lang.expression.EProcessTemplateApplication
import ch.kleis.lcaac.core.lang.register.DataKey
import ch.kleis.lcaac.core.lang.register.DataSourceKey
import ch.kleis.lcaac.core.lang.value.RecordValue
import ch.kleis.lcaac.core.math.basic.BasicNumber
import ch.kleis.lcaac.core.math.basic.BasicOperations
Expand Down Expand Up @@ -36,18 +38,16 @@ class VirtualMachineService(
vms.period.toDataExpression()
}
val cases = cases(vms)

val vmsConnector = inMemoryConnector(vms)
val sourceOps = defaultDataSourceOperations.overrideWith(vmsConnector)
val evaluator = Evaluator(
symbolTable.copy(
data = symbolTable.data.override(
DataKey(overrideTimeWindowParam),
period,
)
),
BasicOperations,
sourceOps,
)

val newSymbolTable = symbolTable
.overrideDatasourceConnector(DataSourceKey(overriddenDataSourceName), IN_MEMORY_CONNECTOR_NAME)
.copy(data = symbolTable.data.override(DataKey(overrideTimeWindowParam), period))

val evaluator = Evaluator(newSymbolTable, BasicOperations, sourceOps)

val productMatcher: (String) -> ProductMatcher = { id ->
ProductMatcher(
name = "vm",
Expand Down
21 changes: 14 additions & 7 deletions src/main/kotlin/org/cloud_assess/service/debug/TraceService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import ch.kleis.lcaac.core.assessment.ContributionAnalysisProgram
import ch.kleis.lcaac.core.datasource.DefaultDataSourceOperations
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnector
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnectorKeys
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryConnectorKeys.IN_MEMORY_CONNECTOR_NAME
import ch.kleis.lcaac.core.datasource.in_memory.InMemoryDatasource
import ch.kleis.lcaac.core.lang.SymbolTable
import ch.kleis.lcaac.core.lang.evaluator.Evaluator
Expand All @@ -12,6 +13,7 @@ import ch.kleis.lcaac.core.lang.evaluator.reducer.DataExpressionReducer
import ch.kleis.lcaac.core.lang.expression.*
import ch.kleis.lcaac.core.lang.register.DataKey
import ch.kleis.lcaac.core.lang.register.DataRegister
import ch.kleis.lcaac.core.lang.register.DataSourceKey
import ch.kleis.lcaac.core.lang.register.DataSourceRegister
import ch.kleis.lcaac.core.lang.value.DataValue
import ch.kleis.lcaac.core.lang.value.RecordValue
Expand Down Expand Up @@ -67,18 +69,23 @@ class TraceService(
}

fun analyze(request: TraceRequestDto): ResourceTrace {
val processApplication = prepare(request)
val symbolTablesWithGlobals = symbolTable.copy(
data = globals(symbolTable.data, request),
)
val content = overriddenDatasources(request)

val inMemoryConnector = InMemoryConnector(
config = InMemoryConnectorKeys.defaultConfig(cacheEnabled = true, cacheSize = 1024),
content = content,
)
val sourceOps = defaultDataSourceOperations
.overrideWith(inMemoryConnector)
val evaluator = Evaluator(symbolTablesWithGlobals, BasicOperations, sourceOps)
val sourceOps = defaultDataSourceOperations.overrideWith(inMemoryConnector)

val symbolTableWithGlobalData = symbolTable.copy(data = globals(symbolTable.data, request))
val newSymbolTable = request.datasources
?.fold(symbolTableWithGlobalData)
{acc, next -> symbolTable.overrideDatasourceConnector(DataSourceKey(next.name), IN_MEMORY_CONNECTOR_NAME)}
?: symbolTableWithGlobalData

val evaluator = Evaluator(newSymbolTable, BasicOperations, sourceOps)

val processApplication = prepare(request)
val trace = evaluator
.with(processApplication.template)
.trace(processApplication.template, processApplication.arguments)
Expand Down
3 changes: 0 additions & 3 deletions src/main/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,3 @@ lca:
cors:
enabled: false
allowed-origin:
resilio-db:
url: https://db.resilio.tech
access-token: dummy-token
Original file line number Diff line number Diff line change
Expand Up @@ -716,8 +716,10 @@ class TraceServiceTest {
}

@Test
fun analyze_singleRequest_withOnlineDataSources_isNotEmpty() {
fun analyze_singleRequest_withInMemoryDataSources_isNotEmpty() {
// given


val symbolTable = prepare(
"""
datasource inventory {
Expand All @@ -743,7 +745,7 @@ class TraceServiceTest {
val sourceOps = DefaultDataSourceOperations(
ops = BasicOperations,
config = LcaacConfig(),
connectors = emptyMap(),
connectors = mapOf(),
)
val service = TraceService(
parsingService,
Expand Down
3 changes: 0 additions & 3 deletions src/test/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,3 @@ cors:
allowed-origin:
compute:
job-size: 100
resilio-db:
url: https://db.resilio.tech
accessToken: my-access-token
Loading