top of page

Creating Dell EMC PowerEdge Adapter Instances Programmatically in Aria Operations

  • Writer: Brock Peterson
    Brock Peterson
  • May 1
  • 2 min read

I published a blog recently focused on creating HPE ProLiant Adapter Instances in Aria Operations. I wanted another one for Dell EMC PowerEdge Adapter Instances, but it wasn't quite as easy as just adjusting a few lines of code. Here's what I did.


I created one manually to explore the JSON return on a GET /api/adapters, it looked like this.

The JSON Response Body looks like this.

{
  "adapterInstancesInfoDto": [
    {
      "resourceKey": {
        "name": "Dell EMC PowerEdge Adapter Instance 10.167.210.1",
        "adapterKindKey": "DELL_EMC_COMPUTE_ADAPTER",
        "resourceKindKey": "dell_emc_compute_adapter_instance",
        "resourceIdentifiers": [
          {
            "identifierType": {
              "name": "alert_cancel_hours",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "24"
          },
          {
            "identifierType": {
              "name": "collection_timeout",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "300"
          },
          {
            "identifierType": {
              "name": "discovery_timeout",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "120"
          },
          {
            "identifierType": {
              "name": "include_snmp_alerts",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "false"
          },
          {
            "identifierType": {
              "name": "management_ip",
              "dataType": "STRING",
              "isPartOfUniqueness": true
            },
            "value": "10.167.210.1"
          },
          {
            "identifierType": {
              "name": "max_threads",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "30"
          },
          {
            "identifierType": {
              "name": "retries",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "2"
          },
          {
            "identifierType": {
              "name": "snmp_port",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "161"
          },
          {
            "identifierType": {
              "name": "socket_timeout_interval",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "1"
          },
          {
            "identifierType": {
              "name": "support_autodiscovery",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "true"
          },
          {
            "identifierType": {
              "name": "timeout_interval",
              "dataType": "STRING",
              "isPartOfUniqueness": false
            },
            "value": "30"
          }
        ]
      },
      "description": "Dell EMC PowerEdge Adapter Instance 10.167.210.1",
      "collectorId": 1,
      "collectorGroupId": "557ce695-caeb-4633-b791-33cead580a7a",
      "credentialInstanceId": "b5798a73-82ec-43ea-b273-64039cc0dc1d",
      "monitoringInterval": 5,
      "numberOfMetricsCollected": 0,
      "numberOfResourcesCollected": 1,
      "lastHeartbeat": 1746084193112,
      "lastCollected": 1746083735734,
      "messageFromAdapterInstance": "Unable to successfully collect. Could not find a valid model in the specified IP range or credentials are incorrect.",
      "id": "011f676c-2766-4489-b58b-16f0ebf42372"
    }
  ]
}

I tried using this to create another adapter instance with POST /api/adapters, but continued getting errors indicating the management_ip was missing, even though it was clearly there. I ultimately opened an internal Jira Case, thinking this was a bug, but it wasn't. Broadcom engineer Robert Mesropyan pointed out that I didn't need the identifierType formatting, thanks Robert! Ultimately I changed my request parameter to this.

{
  "name" : "TESTING",
  "description" : "TESTING",
  "adapterKindKey" : "DELL_EMC_COMPUTE_ADAPTER",
  "resourceIdentifiers" : [ {
    "name" : "management_ip",
    "value" : "10.2.3.4"
  } ,
 {
    "name" : "snmp_port",
    "value" : "161"
  } ,
 {
    "name" : "retries",
    "value" : "2"
  } ,
 {
    "name" : "timeout_interval",
    "value" : "30"
  } ,
 {
    "name" : "socket_timeout_interval",
    "value" : "1"
  } ,
 {
    "name" : "discovery_timeout",
    "value" : "120"
  } ,
 {
    "name" : "collection_timeout",
    "value" : "300"
  } ,
 {
    "name" : "max_threads",
    "value" : "30"
  } ,
 {
    "name" : "include_snmp_alerts",
    "value" : "false"
  } ,
 {
    "name" : "alert_cancel_hours",
    "value" : "24"
  } ,
 {
    "name" : "support_autodiscovery",
    "value" : "true"
  }
],
"credential": {
    "id": "b5798a73-82ec-43ea-b273-64039cc0dc1d"
  }
}

Couple things to note here:

  • All of the identifiers are required, it won't assume defaults.

  • The credential id is just an existing credential, you can get this via GET /api/credentials. I'm using the same credential in my script for all adapter instances.


I riffed on my previous BASH script a bit to create Dell EMC PowerEdge Adapter Instances with this new cURL command, here it is in action.

If you'd like to have it, you can download it here, enjoy!

    bottom of page