The list of child objects in a custom group under 'Objects To Always Include/Exclude' is incomplete in vRealize Operations 6.x and later
search cancel

The list of child objects in a custom group under 'Objects To Always Include/Exclude' is incomplete in vRealize Operations 6.x and later

book

Article ID: 313598

calendar_today

Updated On:

Products

VMware Aria Suite

Issue/Introduction

Symptoms:
  • When creating a custom group in vRealize Operations Manager, and navigating to Objects To Always Include/Exclude, the list of child objects (typically VMs in specific) is incomplete.


Environment

VMware vRealize Operations Manager 6.6.x
VMware vRealize Operations Manager 7.0.x
VMware vRealize Operations Manager 7.5.x
VMware vRealize Operations Manager 6.7.x

Cause

This occurs as there is a limit of 1000 child objects in place.

Resolution

This is expected behavior in vRealize Operations Manager.

This behavior will be addressed in a future release of vRealize Operations Manager.

Workaround:
Use the REST API to edit Custom Group Membership.
Use one of the following options for cURL or Postman.

cURL

Note: This method can only be used on one resource at a time.
  1. Collect the UUIDs of the objects you wish to exclude from the group
Note: The UUIDs for the objects to be excluded can be obtained from the end of the URL once you've browsed to that object in vRealize Operations. 

Examplehttps://192.168.3.10/ui/index.action#/object/########-####-####-####-########504f/summary
  1. Run the following command to update the Custom Group membership with the UUIDs found above:
curl -k -H "Content-type: application/json"  -H "Accept: application/json" -H "X-vRealizeOps-API-use-unsupported: true" -u 'admin:password' -X POST https://ip/suite-api/internal/resources/groups/groupID/excludedResources?resourceID=${ResourceUUIDToExclude}
 
Note: Replace password and ip with the local admin user password and the IP address of the vRealize Operations Manager Primary node respectively, and replace groupID with the 32 alphanumeric unique identifier (UUID) observed in the browser's URL when navigating to the custom group in question under Environment.

Examplecurl -s -k -H "Content-type: application/json" -H "Accept: application/json" -H "X-vRealizeOps-API-use-unsupported: true" -u 'admin:<PASSWORD>' -X POST https://192.168.3.10/suite-api/internal/resources/groups/########-####-####-####-########99ee/excludedResources?resourceId=########-####-####-####-########fd9c
 

Postman

Postman can be downloaded from https://www.getpostman.com/apps.
Note: This is a link to an external, 3rd party solution.  If you find this link to not work any longer, please provide feedback at the bottom of the article to request it to be updated.
  1. Open Postman and navigate to File > Settings > General.
  2. Disable SSL certificate verification, then close the Settings window.
  1. Under the Authorization tab, set the Type dropdown menu to Basic Auth and supply the credentials for the local vRealize Operations Manager admin user.
  2. From the Headers tab, add an Accept key with application/json as the value, a Content-Type key with application/json as the value, and a X-vRealizeOps-API-use-unsupported key with true as the value.
  3. At the top, set the request type to GET and enter https://ip/suite-api/internal/resources/groups/groupID for the request URL.
Note: Replace ip with the IP address of the vRealize Operations Manager Primary node and replace groupID with the 32 alphanumeric unique identifier (UUID) observed in the browser's URL when navigating to the custom group in question under Environment

Examplehttps://192.168.3.10/ui/index.action#/object/########-####-####-####-########99ee/summary
  1. Click Send.
  2. The output will display all the specified group, and it's included/excluded resources.
Example: 
{
    "resourceKey": {
        "name": "Test Custom Group",
        "adapterKindKey": "Container",
        "resourceKindKey": "Environment",
        "resourceIdentifiers": []
    },
    "membershipDefinition": {
        "includedResources": [
            "########-####-####-####-########cdb9",
            "########-####-####-####-########f802"
        ],
        "excludedResources": [],
        "rules": []
    },
    "links": [
        {
            "href": "/suite-api/api/groups/########-####-####-####-########99ee",
            "rel": "SELF",
            "name": "linkToSelf"
        },
        {
            "href": "/suite-api/api/groups",
            "rel": "RELATED",
            "name": "allGroups",
            "description": "Link to all custom groups in the system"
        }
    ],
    "identifier": "########-####-####-####-########99ee"
}
  1. Copy the entirety of the output, including all braces/brackets into the Body tab, select raw and change the type to JSON (application/json).
  2. Add the UUIDs for the objects you wish to exclude to the excludedResources list
Note: The UUIDs for the objects to be excluded can be obtained from the end of the URL once you've browsed to that object in vRealize Operations. Be sure to match the syntax as seen beneath, with no comma after the last value.

Example:
{
    "resourceKey": {
        "name": "Test Custom Group",
        "adapterKindKey": "Container",
        "resourceKindKey": "Environment",
        "resourceIdentifiers": []
    },
    "membershipDefinition": {
        "includedResources": [
            "########-####-####-####-########cdb9",
            "########-####-####-####-########f802"
        ],
       
"excludedResources": [

           "########-####-####-####-########15d1",

           "########-####-####-####-########d368",

           "########-####-####-####-########fe4d"
        ],
        "rules": []
    },
    "links": [
        {
            "href": "/suite-api/api/groups/########-####-####-####-########99ee",
            "rel": "SELF",
            "name": "linkToSelf"
        },
        {
            "href": "/suite-api/api/groups",
            "rel": "RELATED",
            "name": "allGroups",
            "description": "Link to all custom groups in the system"
        }
    ],
    "identifier": "########-####-####-####-########99ee"
}
  1. Set the request type to POST, remove the UUID from the URL and click Send.
Example: https://192.168.3.10/suite-api/internal/resources/groups/
 

Custom Group

Note:  This method creates an custom group to include/exclude in the original custom group.
  1. Create a new custom group to include/exclude under the original custom group.  The criteria would include objects that you would want to include/exclude from the original custom group.
  2. Edit the original group. 
  3. From the include/exclude select Custom Groups from Filter Object.
  4. Expand Environment and select you new custom group, hit ADD.
  5. Preview to ensure the custom group is listed and hit OK.


Additional Information

To be notified when this article is updated, click Subscribe under the Actions box.