Hi,
this email is triggered by
https://bugzilla.redhat.com/show_bug.cgi?id=846756
Basically in AS7 domain mode you have 2 conceptually different things:
- configuration information
- runtime information
Configuration information is present in e.g. the profiles with all their subsystems and
and sub-resources,
but also in the form of server-group-definition or by creating new managed servers.
In domain mode all configuration changes must go through the domain controller.
Runtime information is present as data on deployments, and managed servers
And then there is the constraint that configurations need to be changed on the
domain controller and not on the host controllers.
So I think that on a host controller, the profiles section should not be shown,
and probably also not the server groups. Same for deployments, as they are supposed
to be manipulated on the DC as well.
For the managed servers, that are created on the DC, but are instantiated on the
individual HCs,
we have a mixed situation:
- manipulation should happen on the DC
- metrics runtime should optimally be obtained on the HCs via an agent on the machine
So where in the tree do we show the managed servers?
Current situation is to show them as direct child of the respective HC
We could also show all managed servers on the level of the DC:
This view could be improved by having the managed server name in the form of
<product> <host>/<name> e.g.
"EAP master/server-one" or "AS7 pintAS/pint one"
Another alternative could be to move the managed servers one level down below the hosts
So that it is clear which host hosts which managed servers.
This scenario would require to make the managed servers a service or
the hosts a server too (*1)
Still the question of where do we take which metrics from stays open, as in the
above scenarios, the usability improves, as the domain management is better
centered around one place, but would require to run all requests for metrics to
go through the DC (*2).
Optimally, we would show the managed servers with their configuration parts
below the host at the DC, have each HC list the managed servers as they are
today for metric collection AND have a sibling relationship from the managed
server a the DC below the host to the "real" one on the respective HC.
As this would further require splitting and duplicating resource types in the
already overfull plugin descriptor, we would also need to allow to add a flag
in the descriptor that can for runs-inside types enable/disable a certain element
for a specific (set of) parent(s). As example:
<service bla>
<runs-inside>
<server managed-as/>
<service profile/>
<service deployment/>
</runs-inside>
<metric name="a" available="not(profile)" .../>
<operation name="b" available="not(profile)" .. />
<operation name="c" available="profile"/>
<operation name="d" available="profile,managed-as"/>
<resource-configuration available="profile"../>
Detection if a HC is a HC or a DC is simple (*3), so modifying the
discovery to not discovery profiles at HC level can be easily achieved.
Heiko
*1) Services can not have servers inside in the resource category; we may also just
loosen that requirement.
*2) Which on the other hand allows to support hosts in a domain that do not run
an RHQ agent, which may be of interest in small virtual machine installations.
*3)
Operation op = new ReadAttribute(new Address(),"process-type");
Result res = connection.execute(op);
if (res.isSuccess()) {
String type = (String) res.getResult();
return type.startsWith("Domain");
--
Reg. Adresse: Red Hat GmbH, Technopark II, Haus C,
Werner-von-Siemens-Ring 14, D-85630 Grasbrunn
Handelsregister: Amtsgericht München HRB 153243
Geschaeftsführer: Mark Hegarty, Charlie Peters, Michael Cunningham, Charles Cachera