Machine

Retrieve a Machine

Changed on

Org must have either an Infrastructure Provider entity or a Tenant entity.

If org has an Infrastructure Provider entity, then a user with PROVIDER_ADMIN role can request details for any Machine on any Site owned by the Provider.

If org has a Tenant entity, then a user with TENANT_ADMIN role can request details for any Machine associated with Tenant's active Instances.

get/v2/org/{org}/nico/machine/{machineId}

Request

  • Base URL
    https://nico-rest-api.nico.svc.cluster.local
  • URL
    https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/machine/{machineId}
  • Auth
    HTTP bearer

Query parameters

includeRelation'InfrastructureProvider' | 'Site' | 'InstanceType'

Related entity to expand

includeMetadataboolean

Include Machine metadata e.g. BMC, DPU, GPU and Interface data. Can only be requested by Provider.

Response

OK

idstring

Unique ID of Machine

infrastructureProviderIdstring uuid

ID of the Provider that owns the Machine

siteIdstring uuid

ID of the Site the Machine belongs to

instanceTypeIdstring uuid nullable

ID of the Instance Type, if assigned

instanceIdstring uuid nullable

ID of the associated Instance, or null when unassigned. The association remains during termination until Instance inventory confirms deletion. A non-null value precludes Ready status.

tenantIdstring uuid nullable

ID of the Tenant that owns the Instance if the Machine is assigned to one

controllerMachineIdstring

ID of the Machine at Site, now same as the primary ID

controllerMachineTypestring nullable

Denotes architecture (x86 vs ARM) of the Machine

hwSkuDeviceTypestring nullable

SKU derived device type of the machine, e.g. cpu, gpu, cache, storage, etc.

vendorstring nullable

Name of the vendor of the Machine

productNamestring nullable

Product name of the Machine

serialNumberstring nullable

Serial number of the Machine, only visible to Provider

associatedDpuMachineIdsstring[]

IDs of the DPU Machines attached to this host Machine

maintenanceMessagestring nullable

If the Machine is in maintenance mode, this message will typically describe the reason and how long it is expected to be in maintenance

scoutVersionstring nullable

Scout version reported by the Machine, if known

labelsLabels

Label keys must not be empty or whitespace-only. Keys and values may contain at most 255 characters and must not contain the Unicode NUL character (U+0000). Empty values are allowed.

status'Initializing' | 'Ready' | 'Reset' | 'Maintenance' | 'InUse' | 'Error' | 'Decommissioning' | 'Decommissioned' | 'Unknown'

Machine status combines the observed Core lifecycle with REST Instance assignment. A Ready Machine becomes InUse when REST assigns it, and remains InUse if Core reports Ready while the REST assignment still exists. Error, Maintenance, Initializing, and other non-Ready states retain precedence. When Instance deletion clears the assignment, InUse returns to Ready only if the retained Core snapshot reports Ready; otherwise fresh Machine inventory establishes the next status. Ready is not a reservation and does not guarantee that a subsequent Instance creation will succeed.

isUsableByTenantboolean

Indicates whether the machine is usable by or currently in use by a tenant. It does not indicate that a Machine is available for Instance creation.

createdstring date-time

Date/time when the Machine was created

updatedstring date-time

Date/time when the Machine was last updated

Example response

{
  "id": "fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g",
  "infrastructureProviderId": "e94bcfda-f6cb-42e4-80ec-516811e5abbf",
  "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1",
  "instanceTypeId": "2e016c02-2c67-48aa-b289-5d3ca6320c52",
  "instanceId": "59bdaaff-3998-4fd9-a140-8749beeb605e",
  "tenantId": "99819e6e-4017-4021-9edd-ea1bdf4dbd59",
  "controllerMachineId": "fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g",
  "controllerMachineType": "x86_64",
  "hwSkuDeviceType": "cpu",
  "vendor": "Lenovo",
  "productName": "ThinkSystem SR670 V2",
  "serialNumber": "J1060ACR.D3KS2CS001G",
  "machineCapabilities": [
    {
      "type": "CPU",
      "name": "Intel(R) Xeon(R) Gold 6354 CPU @ 3.00GHz",
      "frequency": "3.0GHz",
      "cores": 18,
      "threads": 36,
      "count": 2
    },
    {
      "type": "Memory",
      "name": "Corsair Vengeance LPX",
      "capacity": "32GB",
      "count": 4
    }
  ],
  "machineInterfaces": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "machineId": "fm100ht4v4mce2qstjnl8970nnj3ie6ecek4mtjn27pea4kre5gsa49jg0g",
      "controllerInterfaceId": "ad3dac49-741d-4c1f-815c-c020127c532f",
      "controllerSegmentId": "f2207a3c-1847-42e5-bf2c-cd015f87a2bc",
      "subnetId": "1f232bf0-7b90-456e-b9b0-38d9fea4171a",
      "hostname": "example.com",
      "isPrimary": true,
      "macAddress": "00:00:5e:00:53:af",
      "ipAddresses": [
        "192.156.7.23",
        "202.88.37.112"
      ],
      "created": "2019-08-24T14:15:22Z",
      "updated": "2019-08-24T14:15:22Z"
    }
  ],
  "maintenanceMessage": null,
  "scoutVersion": "2.6.1",
  "health": {
    "source": "aggregate-host-health",
    "observedAt": null,
    "successes": [
      {
        "id": "BgpDaemonEnabled",
        "target": null
      },
      {
        "id": "BgpStats",
        "target": null
      },
      {
        "id": "DhcpServer",
        "target": null
      },
      {
        "id": "DpuDiskUtilizationCheck",
        "target": null
      },
      {
        "id": "FanSpeed",
        "target": "System Board Fan1A"
      },
      {
        "id": "PowerSupply",
        "target": "PS1 Status"
      },
      {
        "id": "Temperature",
        "target": "CPU1 Temp"
      },
      {
        "id": "Temperature",
        "target": "System Board Exhaust Temp"
      },
      {
        "id": "Voltage",
        "target": "CPU1 1P8 PG"
      }
    ],
    "alerts": [
      {
        "id": "FailedValidationTest",
        "target": "DcgmFullShort",
        "inAlertSince": null,
        "message": "Failed validation test:\nName:DcgmFullShort\nCommand:dcgmi\nArgs:diag -r 2",
        "tenantMessage": null,
        "classifications": [
          "PreventAllocations"
        ]
      }
    ]
  },
  "labels": {
    "RackIdentifier": "GVX11F01C02",
    "ServerName": "SITE1-C03-Server-02"
  },
  "status": "Error",
  "isUsableByTenant": false,
  "statusHistory": [
    {
      "status": "Error",
      "message": "Machine has one or more health probe alerts that prevents allocation",
      "created": "2019-08-24T14:15:22Z",
      "updated": "2019-08-24T14:15:22Z"
    }
  ],
  "created": "2019-08-24T14:15:22Z",
  "updated": "2019-08-24T14:15:22Z"
}

Changes

    • breaking

      added subschema #2 to the / response property oneOf list for the response status

    • breaking

      added subschema #2 to the / response property oneOf list for the response status

    • breaking

      the / response's property type changed from object to no type for status

    • breaking

      the / response's property type changed from object to no type for status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • warning

      removed the optional property // from the response with the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      the response property / became required for the status

    • info

      removed the nico enum value from the response property for the response status

    • info

      removed the nico enum value from the response property for the response status