[wildfly-dev] HTTP API support for plain JBoss-CLI commands

Ladislav Thon lthon at redhat.com
Fri May 29 09:10:48 EDT 2015


> What I want is: An interoperable way to talk with JBoss. application/dmr
> is a binary/proprietary format.

It's also fairly small, self-contained and easy to reimplement, as proven by

https://github.com/hal/dmr.js
https://github.com/hal/dmr.dart
https://github.com/hal/dmr.scala

I'm not aware of a Ruby implementation, but it shouldn't be _that_ hard
to build.

Then, parsing the CLI strings into a ModelNode structure should be
fairly simple too... for those CLI commands that translate directly to
management operations.

The "local" CLI commands (e.g. "batch", "patch" or "if") require
client-side processing, and that is a whole new can of worms.

LT

> 
> On Fri, May 29, 2015 at 8:17 AM Heiko Braun <hbraun at redhat.com
> <mailto:hbraun at redhat.com>> wrote:
> 
>     What the constraints when developing a puppet module? Is plain java
>     supported? 
> 
> 
> 
> 
>     Am 29.05.2015 um 01:39 schrieb Jairo Junior <junior.jairo1 at gmail.com
>     <mailto:junior.jairo1 at gmail.com>>:
> 
>>     Heiko,
>>
>>     Thank you, but how do I build a ModelNode from a CLI command?
>>
>>     Before using JSON I was investigating how Administration Console
>>     perform operations and I realized (using firebug) that it uses
>>     application/dmr, but I presumed it uses ModelNode to build
>>     commands, not plain CLI syntax.
>>
>>     On Thu, May 28, 2015 at 5:58 AM Heiko Braun <hbraun at redhat.com
>>     <mailto:hbraun at redhat.com>> wrote:
>>
>>         The DMR library can be found here:
>>
>>         https://github.com/jbossas/jboss-dmr
>>
>>
>>>         On 28 May 2015, at 10:56, Heiko Braun <hbraun at redhat.com
>>>         <mailto:hbraun at redhat.com>> wrote:
>>>
>>>
>>>         You can already use DMR over HTTP. It requires a different
>>>         content-type ('application/dmr-encoded') and uses a base64
>>>         encoded representation of the payload
>>>         ('ModelNode.toBase64String()').
>>>
>>>         You can describe an operation through the DMR API and then
>>>         simply do HTTP POST to ‘/management’ endpoint. make sure to
>>>         use 'application/dmr-encoded’ for both 'Content-Type' and
>>>         ‘Accept’ headers.
>>>
>>>         The response can be parse using 'ModelNode.fromBase64()'.
>>>
>>>         Hope this helps,
>>>         Heiko
>>>
>>>
>>>
>>>>         On 27 May 2015, at 19:54, Jairo Junior
>>>>         <junior.jairo1 at gmail.com <mailto:junior.jairo1 at gmail.com>>
>>>>         wrote:
>>>>
>>>>         I've been working on a Puppet Module for Wildfly [1] that
>>>>         uses his HTTP Management API to perform operations (manage
>>>>         resources/deploys and execute commands), but my command
>>>>         execution code is a little bit limited cause I have to
>>>>         transform from CLI syntax to JSON. e.g.:
>>>>
>>>>         :shutdown(restart=true)
>>>>
>>>>         becomes
>>>>
>>>>         {"operation" : "shutdown", "restart" : "true" }
>>>>
>>>>         Is there any specific reason to not support plain CLI
>>>>         commands through HTTP API? I looked at the code and it
>>>>         didn't see hard to implement this...
>>>>
>>>>         [1] https://github.com/biemond/biemond-wildfly
>>>>
>>>>         _______________________________________________
>>>>         wildfly-dev mailing list
>>>>         wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
>>>>         https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>>
>>
> 
> 
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
> 



More information about the wildfly-dev mailing list