[
https://issues.jboss.org/browse/AS7-3692?page=com.atlassian.jira.plugin.s...
]
Richard Achmatowicz edited comment on AS7-3692 at 2/28/12 6:12 PM:
-------------------------------------------------------------------
I have implemented a first version of this, in which the stack add operation now takes two
optional parameters:
{noformat}
/subsystem=jgroups/stack=myStack:add(transport=<DMR representation of transport>,
protocols=<DMR representation of LIST of protocols>)
{noformat}
So, for example:
{noformat}
/subsystem=jgroups/stack=myStack:add(transport={"type" => "UDP",
"socket-binding" => "some-binding"}, protocols=[{"type"
=> "MPING", "socket-binding" => "some-binding"},
{"type" => "FRAG", "socket-binding" =>
"some-binding"}])
{noformat}
The full resource description is here:
{noformat}
[standalone@localhost:9999 /]
/subsystem=jgroups/stack=udp:read-operation-description(name=add)
{
"outcome" => "success",
"result" => {
"operation-name" => "add",
"description" => "Add a protocol stack to the jgroups
subsystem.",
"request-properties" => {
"transport" => {
"type" => OBJECT,
"description" => "The configuration of a transport for a
protocol stack.",
"expressions-allowed" => false,
"required" => false,
"nillable" => true,
"allowed" => [
"type",
"shared",
"socket-binding",
"diagnostics-socket-binding",
"default-executor",
"oob-executor",
"timer-executor",
"thread-factory",
"site",
"rack",
"machine",
"properties"
],
"value-type" => {
"type" => {
"type" => STRING,
"description" => "The implementation class for a
protocol, which determines protocol functionality.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"shared" => {
"type" => BOOLEAN,
"description" => "If true, the underlying
transport is shared by all channels using this stack.",
"expressions-allowed" => false,
"nillable" => true,
"default" => true
},
"socket-binding" => {
"type" => STRING,
"description" => "The socket binding
specification for this protocol layer, used to specify IP interfaces and ports for
communication.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"diagnostics-socket-binding" => {
"type" => STRING,
"description" => "The diagnostics socket binding
specification for this protocol layer, used to specify IP interfaces and ports for
communication.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"default-executor" => {
"type" => STRING,
"description" => "The thread pool executor to
handle incoming messages.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"oob-executor" => {
"type" => STRING,
"description" => "The thread pool executor to
handle incoming out-of-band messages.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"timer-executor" => {
"type" => STRING,
"description" => "The thread pool executor to
handle protocol-related timing tasks.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"thread-factory" => {
"type" => STRING,
"description" => "The thread factory to use for
handling asynchronous transport-specific tasks.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"site" => {
"type" => STRING,
"description" => "The site (i.e. data centre)
identifier for this node. Used by Infinispan topology-aware consistent hash.",
"expressions-allowed" => true,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"rack" => {
"type" => STRING,
"description" => "The rack (i.e. server rack)
identifier for this node. Used by Infinispan topology-aware consistent hash.",
"expressions-allowed" => true,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"machine" => {
"type" => STRING,
"description" => "The machine (i.e. host)
identifier for this node. Used by Infinispan topology-aware consistent hash.",
"expressions-allowed" => true,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"properties" => {
"type" => LIST,
"description" => "A list of properties for a
protocol layer. Used to customize protocol behaviour.",
"expressions-allowed" => false,
"nillable" => true,
"value-type" => {"property" => {
"type" => PROPERTY,
"description" => "A protocol property with
name and value.",
"expressions-allowed" => false,
"nillable" => true
}}
}
}
},
"protocols" => {
"type" => LIST,
"description" => "The list of configured protocols for a
protocol stack.",
"expressions-allowed" => false,
"required" => false,
"nillable" => true,
"value-type" => {"protocol" => {
"type" => OBJECT,
"description" => "The configuration of a protocol
within a protocol stack.",
"expressions-allowed" => false,
"nillable" => true,
"allowed" => [
"type",
"socket-binding",
"properties"
],
"value-type" => {
"type" => {
"type" => STRING,
"description" => "The implementation class
for a protocol, which determines protocol functionality.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"socket-binding" => {
"type" => STRING,
"description" => "The socket binding
specification for this protocol layer, used to specify IP interfaces and ports for
communication.",
"expressions-allowed" => false,
"nillable" => true,
"min-length" => 1L,
"max-length" => 2147483647L
},
"properties" => {
"type" => LIST,
"description" => "A list of properties for a
protocol layer. Used to customize protocol behaviour.",
"expressions-allowed" => false,
"nillable" => true,
"value-type" => {"property" => {
"type" => PROPERTY,
"description" => "A protocol property
with name and value.",
"expressions-allowed" => false,
"nillable" => true
}}
}
}
}}
}
},
"read-only" => false
}
}
{noformat}
This version simply checks for the optional parameters, and as required executes the
existing handlers for adding a transport and adding a protocol.
was (Author: rachmato):
I have implemented a first version of this, in which the stack add operation now takes
two optional parameters:
{noformat}
/subsystem=jgroups/stack=myStack:add(transport=<DMR representation of transport>,
protocols=<DMR representation of LIST of protocols>)
{noformat}
So, for example:
{noformat}
/subsystem=jgroups/stack=myStack:add(transport={"type" => "UDP",
"socket-binding" => "some-binding"}, protocols=[{"type"
=> "MPING", "socket-binding" => "some-binding"},
{"type" => "FRAG", "socket-binding" =>
"some-binding"}])
{noformat}
The full resource description is attached, as it is quite large.
This version simply checks for the optional parameters, and as required executes the
existing handlers for adding a transport and adding a protocol.
Management: jgroups add stack operation does not work
-----------------------------------------------------
Key: AS7-3692
URL:
https://issues.jboss.org/browse/AS7-3692
Project: Application Server 7
Issue Type: Feature Request
Components: Clustering, Domain Management
Affects Versions: 7.1.0.Final
Reporter: Dominik Pospisil
Assignee: Richard Achmatowicz
Labels: eap6_prd_req
Fix For: 7.1.1.Final
Management: jgroups add stack operation does not work. Add stack operation fails with:
JBAS014746: type may not be null
however, add operation does not accept such parameter.
Steps to reproduce:
1) start domain
2) connect CLI
3) [standalone@localhost:9999 /] /subsystem=jgroups/stack=test:add()
{
"outcome" => "failed",
"failure-description" => "JBAS014746: type may not be null",
"rolled-back" => true,
"response-headers" => {"process-state" =>
"reload-required"}
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira