Bug 832398 (PM-187, PRODMGT-187)

Summary: RFE: Enable DynaGroups to be created based on the contents of another group.
Product: [JBoss] JBoss Operations Network Reporter: Shaun Appleton <sappleto>
Component: Resource GroupingAssignee: Jay Shaughnessy <jshaughn>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: low Docs Contact:
Priority: urgent    
Version: JON 3.1.0CC: fbrychta, hrupp, loleary, plarsen
Target Milestone: ER01   
Target Release: JON 3.2.0   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 865826 (view as bug list) Environment:
Last Closed: 2014-01-02 20:35:27 UTC Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 865826    
Bug Blocks:    

Description Shaun Appleton 2012-06-15 10:20:47 UTC
Description:

Enhance DynaGroup so they can be created based on the contents of another group.

Description of business problem this is aiming to solve:

The customer has multiple different requests from internal customers e.g. one customer wants an email when jvm goes down, other customer wants an email when pool of their ds is filled up, next customer wants a notification when memory exceeds and so on.

This would help, for example, when you bring on line 200 new jboss nodes. You do not want to be adding all new nodes to a compatible group.

Generally this will make it easier to manage the large number of nodes that this customer has. This will also assist in responding to internal customer requirements without putting extra burden on the operation guys maintain new cli scripts.

Another one idea would be to have a extra feature in an event definition where you can have a expression that says the event should be applied to a particular group or parent group or (set of groups) - that maybe this is a new RFE.

Comment 2 John Sanda 2012-07-03 16:53:30 UTC
I think that there are two major areas that are impacted. The first being the expression evaluation code that generates and executes the JPQL query. Some investigation is needed to determine what effort is involved to support the additional group filtering. Performance will need to be taken into consideration as well.

The second area is the UI.We need to think about how we want the user to select groups. This would likely involve some changes in group definition view. Then we need to think about what changes might be needed in the expression builder.

I think a day or two of analysis would help better determine the amount of effort involved here.

Comment 3 Larry O'Leary 2012-07-03 17:53:10 UTC
To provide a better explanation of what this feature is/could be:

Think of it as a sub-group of one or more groups*. Normally, a dynamic group is created based on the contents of inventory visible to the user who creates it. This feature should allow the dynamic group to be created based on the contents of another group instead of the entire system inventory. Essentially, the dynamic group inherits its dependent group's contents and the dynamic group's expression is then applied to that contents. So, let's say I have the following resource hierarchy in my RHQ system inventory:
.
|-- Platform A
|   |-- JBoss AS 1
|   |   `-- <child resources>
|   |-- JBoss AS 2
|   |   `-- <child resources>
|   |-- Network Card lo
|   |-- Network Card wlan0
|   `-- Network Card eth0
|-- Platform B
|   |-- JBoss AS 3
|   |   `-- <child resources>
|   |-- JBoss AS 4
|   |   `-- <child resources>
|   |-- Network Card lo
|   `-- Network Card eth0
`-- Platform C
    |-- JBoss AS 5
    |   `-- <child resources>
    |-- JBoss AS 6
    |   `-- <child resources>
    |-- Network Card lo
    `-- Network Card eth0



Now I create a recursive compatible group that contains Platform B and Platform C called Main Group:
.
`-- Main Group
    |-- Platform B
    |   |-- JBoss AS 3
    |   |   `-- <child resources>
    |   |-- JBoss AS 4
    |   |   `-- <child resources>
    |   |-- Network Card lo
    |   `-- Network Card eth0
    `-- Platform C
        |-- JBoss AS 5
        |   `-- <child resources>
        |-- JBoss AS 6
        |   `-- <child resources>
        |-- Network Card lo
        `-- Network Card eth0



But now I want a dynamic group named DynaGroup EAP of EAP servers (non-recursive) from Main Group:
.
`-- DynaGroup EAP
    |-- JBoss AS 3
    |-- JBoss AS 4
    |-- JBoss AS 5
    |-- JBoss AS 6



Now, if later someone added Platform A to Main Group, when DynaGroup EAP was recalculated it would look like:
.
`-- DynaGroup EAP
    |-- JBoss AS 1
    |-- JBoss AS 2
    |-- JBoss AS 3
    |-- JBoss AS 4
    |-- JBoss AS 5
    `-- JBoss AS 6


Now a a new dynagroup could be created based on DynaGroup EAP that perhaps used an expression that would provide a group of the JVM resources for each member of DynaGroup EAP. Again, the advantage being that the dynagroup expression is evaluated based on the contents of DynaGroup EAP and not that of system inventory or the direct content of Main Group.









* Due to Bug 667896 multiple groups may not be possible

Comment 13 Shaun Appleton 2013-03-11 10:26:57 UTC
Any news on this?
Did it make it into the JON 3.2 plan?

Comment 14 Larry O'Leary 2013-03-12 15:46:08 UTC
Shaun, it is in a NEW status with a target of JON 3.2.0.

Comment 15 Jay Shaughnessy 2013-03-21 20:17:25 UTC
master commit 438c80560c8faeff638f2640cd8278aa4c214aaf
Author: Jay Shaughnessy <jshaughn>
Date:   Thu Mar 21 16:12:26 2013 -0400

    Introduce 'memberof = GroupName' expression into the group definition
    language.  memberof will restrict the dynagroup members to be a subset
    of the specified resource group. Specifying multiple memberof
    conditions will restrict the dynagroup members to be a subset of the
    union of members of the specified groups.

Comment 20 Larry O'Leary 2013-09-06 14:32:01 UTC
As this is MODIFIED or ON_QA, setting milestone to ER1.

Comment 21 Mike Foley 2013-09-13 15:13:33 UTC
QE is test complete 
https://engineering.redhat.com/trac/jon/ticket/586

Comment 23 Larry O'Leary 2014-02-24 14:50:26 UTC
*** Bug 1031784 has been marked as a duplicate of this bug. ***