Besom - a Pulumi SDK for Scala. Also, incidentally, a broom made of twigs tied round a stick. Brooms and besoms are used for protection, to ward off evil spirits, and cleansing of ritual spaces.
When I try to add the created earlier component via opts(dependsOn = ...) to another resource (in this example, it will be the Namespace resource) the Error shows up about the state for resource not found.
Dependencies:
//> using scala 3.3.1
//> using dep org.virtuslab::besom-core:0.3.1
//> using dep org.virtuslab::besom-kubernetes::4.11.0-core.0.3
Main class:
import besom.*
import besom.api.kubernetes as k8s
@main def main = Pulumi.run {
val test = Test("test-component")
val namespace = k8s.core.v1.Namespace(
"namespace",
k8s.core.v1.NamespaceArgs(
metadata = k8s.meta.v1.inputs.ObjectMetaArgs(
// name = test.flatMap(_.name)
name = "namespace"
)
),
opts(dependsOn = test)
)
Stack.exports(
namespaceName = namespace.metadata.name
)
}
case class Test(name: Output[Option[String]])(using ComponentBase) extends ComponentResource derives RegistersOutputs
object Test:
def apply(using Context)(name: NonEmptyString): Output[Test] =
component(name, "custom:resource:Test") {
val secret = k8s.core.v1.Secret(
name = "secret-name",
k8s.core.v1.SecretArgs(
`type` = "Opaque",
stringData = Map(
"password" -> "password"
)
)
)
Test(
name = secret.metadata.name
)
}
Stack trace:
Diagnostics:
pulumi:pulumi:Stack (test-dev):
Compiling project (Scala 3.3.1, JVM (21))
Compiled project (Scala 3.3.1, JVM (21))
Exception in thread "main" java.lang.Exception: state for resource Some(Test(urn:pulumi:dev::test::custom:resource:Test::test-component)) not found
at besom.internal.Resources.getStateFor$$anonfun$4$$anonfun$1(resources.scala:77)
at besom.internal.Result.flatMap$$anonfun$1(Result.scala:166)
at besom.internal.Result.runM$$anonfun$7(Result.scala:273)
at besom.internal.Runtime.flatMapBothM$$anonfun$1$$anonfun$1(Result.scala:118)
at besom.internal.FutureRuntime.flatMapBoth$$anonfun$1(Result.scala:404)
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:477)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
2024.05.06 13:23:18:211 main ERROR besom.internal.BesomModule.run:70
java.lang.Exception: state for resource Some(Test(urn:pulumi:dev::test::custom:resource:Test::test-component)) not found
at besom.internal.Resources.getStateFor$$anonfun$4$$anonfun$1(resources.scala:77)
at besom.internal.Result.flatMap$$anonfun$1(Result.scala:166)
at besom.internal.Result.runM$$anonfun$7(Result.scala:273)
at besom.internal.Runtime.flatMapBothM$$anonfun$1$$anonfun$1(Result.scala:118)
at besom.internal.FutureRuntime.flatMapBoth$$anonfun$1(Result.scala:404)
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:477)
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
error: an unhandled error occurred: '/opt/homebrew/bin/scala-cli /opt/homebrew/bin/scala-cli run .' exited with non-zero exit code: 1
I will also add that it will work if I comment opts(dependsOn = test) and uncomment // name = test.flatMap(_.name))
When I try to add the created earlier component via
opts(dependsOn = ...)
to another resource (in this example, it will be the Namespace resource) the Error shows up about the state for resource not found.Dependencies:
Main class:
Stack trace:
I will also add that it will work if I comment
opts(dependsOn = test)
and uncomment// name = test.flatMap(_.name))