[jboss-as7-dev] Recursive "add" operations
Brian Stansberry
brian.stansberry at redhat.com
Mon Oct 22 09:16:10 EDT 2012
It's a reasonable thing to look at in AS 8. There are really two
concerns I have with it:
1) It can't become another complex coding requirement that subsystem
developers have to add into what they do. It needs to be something that
the infrastructure can handle for the subsystems.
2) Boot speed. I'm concerned about a lot of logic during boot to
generate the resource metadata and then compare each "add" ops to it in
order to figure out how to split up the add op.
BTW in case it's helpful, have a look at
GenericSubsystemDescribeHandler. It's a class that takes a subsystem
model (in the Host Controller) and converts it into a series of
operations (for execution on a server during boot). It assumes a
"default" subsystem model, where the set of writable attributes exposed
by each resource in the subsystem tree matches the set of params exposed
by the resource's "add" operation. Subsystems, however, aren't required
to follow that pattern.
On 10/22/12 4:38 AM, Heiko Braun wrote:
>
> Yes, right. I meant to ask:
> Does this sound like a reasonable feature to add? The ability to
> recursively invoke add operations?
>
> I.e. operation=add, recursive=true, [...]
>
> So that the management layer takes care of breaking it up into multiple
> "add" invocations?
>
>
> On Oct 22, 2012, at 11:31 AM, Tomaž Cerar <tomaz.cerar at gmail.com
> <mailto:tomaz.cerar at gmail.com>> wrote:
>
>> Hi,
>>
>> given example below, your problem is that you are calling one add
>> operation where you should be calling many. for example provided it
>> should be something like this (not tested)
>>
>> {
>> "operation" => "add",
>> "address" => [
>> ("host" => "master"),
>> ("server-config" => "prod_copy")
>> ],
>> "auto-start" => true,
>> "cpu-affinity" => undefined,
>> "group" => "production-1",
>> "interface" => undefined,
>> "path" => undefined,
>> "priority" => undefined,
>> "socket-binding-group" => "full-sockets",
>> "socket-binding-port-offset" => 150
>> }
>>
>> {
>> "operation" => "add",
>> "address" => [
>> ("host" => "master"),
>> ("server-config" => "prod_copy")
>> ("jvm" => "default")
>> ],
>> "agent-lib" => undefined,
>> "agent-path" => undefined,
>> "debug-enabled" => false,
>> "debug-options" => undefined,
>> "env-classpath-ignored" => undefined,
>> "environment-variables" => undefined,
>> "heap-size" => "256m",
>> "java-agent" => undefined,
>> "java-home" => undefined,
>> "jvm-options" => undefined,
>> "max-heap-size" => "256m",
>> "max-permgen-size" => undefined,
>> "permgen-size" => undefined,
>> "stack-size" => undefined,
>> "type" => undefined
>> }
>>
>> {
>> "operation" => "add",
>> "address" => [
>> ("host" => "master"),
>> ("server-config" => "prod_copy")
>> ("system-property" => "test")
>> ],
>> "boot-time" => false,
>> "value" => "value"
>> }
>>
>> basicly every resource needs its own add operation
>>
>> --
>> tomaz
>>
>> On Mon, Oct 22, 2012 at 11:17 AM, Heiko Braun <hbraun at redhat.com
>> <mailto:hbraun at redhat.com>> wrote:
>>
>>
>>
>>
>> I am working on a use cases that enables people to "copy"
>> resources. I.e. creating a clone of a server configuration under a
>> new name. I've realised that recursive add operations, covering a
>> larger resource tree don't seem to work (see example below). Is
>> there any "switch" that I am not aware of, or this simply not work
>> due to the design of the operation handlers?
>>
>>
>> [INFO] {
>> [INFO] "operation" => "add",
>> [INFO] "address" => [
>> [INFO] ("host" => "master"),
>> [INFO] ("server-config" => "prod_copy")
>> [INFO] ],
>> [INFO] "auto-start" => true,
>> [INFO] "cpu-affinity" => undefined,
>> [INFO] "group" => "production-1",
>> [INFO] "interface" => undefined,
>> [INFO] "path" => undefined,
>> [INFO] "priority" => undefined,
>> [INFO] "socket-binding-group" => "full-sockets",
>> [INFO] "socket-binding-port-offset" => 150,
>> [INFO] "jvm" => {"default" => {
>> [INFO] "agent-lib" => undefined,
>> [INFO] "agent-path" => undefined,
>> [INFO] "debug-enabled" => false,
>> [INFO] "debug-options" => undefined,
>> [INFO] "env-classpath-ignored" => undefined,
>> [INFO] "environment-variables" => undefined,
>> [INFO] "heap-size" => "256m",
>> [INFO] "java-agent" => undefined,
>> [INFO] "java-home" => undefined,
>> [INFO] "jvm-options" => undefined,
>> [INFO] "max-heap-size" => "256m",
>> [INFO] "max-permgen-size" => undefined,
>> [INFO] "permgen-size" => undefined,
>> [INFO] "stack-size" => undefined,
>> [INFO] "type" => undefined
>> [INFO] }},
>> [INFO] "system-property" => {"test" => {
>> [INFO] "boot-time" => false,
>> [INFO] "value" => "value"
>> [INFO] }}
>> [INFO] }
>>
>>
>> _______________________________________________
>> jboss-as7-dev mailing list
>> jboss-as7-dev at lists.jboss.org <mailto:jboss-as7-dev at lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>
>>
>
>
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>
--
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat
More information about the jboss-as7-dev
mailing list