val n1 = ModelNode() at root op 'read_resource
val n2 = ModelNode() at root op 'read_children_names(
'child_type -> "server-group")
val n3 = ModelNode() at
("subsystem" -> "datasources") /
("data-source" -> "ExampleDS")
op 'read_resource(
'include_runtime -> true,
'recursive_depth -> 2)
val comp = ModelNode.composite(n1, n2, n3)
val node = ModelNode(
"flag" -> true,
"child" -> ModelNode(
"inner-a" -> 123,
"inner-b" -> "test",
"deep-inside" -> ModelNode("foo" -> "bar")
)
)
node("flag")
node.get("child" / "deep-inside" / "foo")
for {
foo <- node.get("child" / "deep-insight" / "foo")
value <- foo.asString
} yield value
val node = ModelNode(
"flag" -> true,
"hello" -> "world",
"answer" -> 42)
node map { case (key, node) => (key.toUpperCase -> node) }
node.filter { case (key, _) => key contains "a" }
node.filter { case (_, node) => node == ModelNode(42) }
import org.jboss.dmr.ModelType._
for {
(_, node) <- node
ModelNode(typ) = node if typ == INT
} yield node
val node = ModelNode() at ("subsystem" -> "datasources")
op 'read_resource
val client = connect()
import org.jboss.dmr.repl.Response.{Success, Failure}
(client ! node) map {
case Response(Success, result) => ... case Response(Failure, failure) => ... }
import scala.util.{Success, Failure}
(client ? node).onComplete { case Success(response) => ... case Failure(ex) => ... }
class CrazyStuff extends Script[ModelNode] {
def code: Try[ModelNode] = {
// setup and execute operations
(client ! node) map {
case Response(Success, result) => {
// loop, filter, map result
result
}
case Response(Failure, failure) => {
throw new ScriptException(failure)
}
}
}
}
import org.jboss.dmr.repl.Client._
connect()
val script = new CrazyStuff()
val result = script.run()