[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