curl --request GET \
--url https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"site_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack_position_strategy": "derived_from_name",
"racks": [
{
"rack_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack_name": "<string>",
"location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"location_name": "<string>",
"row": 2,
"position": 2,
"devices": [
{
"device_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"device_name": "<string>",
"device_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"column": "enrolment",
"status": "not_started",
"available_actions": [
{
"action": "trigger_next",
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflow_name": "enrolment"
}
],
"action_suppression_reasons": [
"concurrent_workflow_running"
],
"context": {
"operational_status": "unknown",
"device_class": "gpu_compute",
"resource_class": "<string>",
"latest_in_sequence_workflow": "enrolment",
"latest_in_sequence_started_at": "2023-11-07T05:31:56Z",
"latest_in_sequence_finished_at": "2023-11-07T05:31:56Z",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job_device_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"temporal_link": "<string>",
"failure_code": "UNMAPPED_APPLICATION_ERROR",
"failure_message": "<string>",
"phase": "<string>",
"responsible_team": "fleet_manager",
"in_triage": true,
"entered_triage_at": "2023-11-07T05:31:56Z",
"triage_ticket_url": "<string>"
},
"single_node_gate": {
"verdict": "pass",
"passed_requirements": 123,
"total_requirements": 123,
"requirements": [
{
"requirement_name": "<string>",
"label": "<string>",
"description": "<string>",
"verdict": "pass",
"policy_digest": "<string>",
"evaluated_at": "2023-11-07T05:31:56Z",
"selected_evidence": {
"test_execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"evaluated_at": "2023-11-07T05:31:56Z"
},
"multi_node_gate": {
"verdict": "pass",
"passed_requirements": 123,
"total_requirements": 123,
"requirements": [
{
"requirement_name": "<string>",
"label": "<string>",
"description": "<string>",
"verdict": "pass",
"policy_digest": "<string>",
"evaluated_at": "2023-11-07T05:31:56Z",
"selected_evidence": {
"test_execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"evaluated_at": "2023-11-07T05:31:56Z"
},
"multi_node_targets": [
{
"gate": "multi_node_collective_rack_acceptance",
"unit": "nvlink-domain",
"label": "<string>",
"target_id": "<string>"
}
]
}
],
"multi_node_gate": {
"verdict": "pass",
"passed_requirements": 123,
"total_requirements": 123,
"requirements": [
{
"requirement_name": "<string>",
"label": "<string>",
"description": "<string>",
"verdict": "pass",
"policy_digest": "<string>",
"evaluated_at": "2023-11-07T05:31:56Z",
"selected_evidence": {
"test_execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"evaluated_at": "2023-11-07T05:31:56Z",
"gate": "multi_node_collective_rack_acceptance",
"target_unit": "nvlink-domain",
"target_label": "<string>",
"resource_class": "<string>",
"device_class": "gpu_compute",
"device_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}Get operational racks (standup pipeline)
Operational Racks — standup pipeline view.
See docs/specs/0005-des-468-operational-racks-page.md.
curl --request GET \
--url https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/sites/{site_id}/operations/racks/standup/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"site_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack_position_strategy": "derived_from_name",
"racks": [
{
"rack_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack_name": "<string>",
"location_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"location_name": "<string>",
"row": 2,
"position": 2,
"devices": [
{
"device_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"device_name": "<string>",
"device_type_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"column": "enrolment",
"status": "not_started",
"available_actions": [
{
"action": "trigger_next",
"workflow_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"workflow_name": "enrolment"
}
],
"action_suppression_reasons": [
"concurrent_workflow_running"
],
"context": {
"operational_status": "unknown",
"device_class": "gpu_compute",
"resource_class": "<string>",
"latest_in_sequence_workflow": "enrolment",
"latest_in_sequence_started_at": "2023-11-07T05:31:56Z",
"latest_in_sequence_finished_at": "2023-11-07T05:31:56Z",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"job_device_status_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"temporal_link": "<string>",
"failure_code": "UNMAPPED_APPLICATION_ERROR",
"failure_message": "<string>",
"phase": "<string>",
"responsible_team": "fleet_manager",
"in_triage": true,
"entered_triage_at": "2023-11-07T05:31:56Z",
"triage_ticket_url": "<string>"
},
"single_node_gate": {
"verdict": "pass",
"passed_requirements": 123,
"total_requirements": 123,
"requirements": [
{
"requirement_name": "<string>",
"label": "<string>",
"description": "<string>",
"verdict": "pass",
"policy_digest": "<string>",
"evaluated_at": "2023-11-07T05:31:56Z",
"selected_evidence": {
"test_execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"evaluated_at": "2023-11-07T05:31:56Z"
},
"multi_node_gate": {
"verdict": "pass",
"passed_requirements": 123,
"total_requirements": 123,
"requirements": [
{
"requirement_name": "<string>",
"label": "<string>",
"description": "<string>",
"verdict": "pass",
"policy_digest": "<string>",
"evaluated_at": "2023-11-07T05:31:56Z",
"selected_evidence": {
"test_execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"evaluated_at": "2023-11-07T05:31:56Z"
},
"multi_node_targets": [
{
"gate": "multi_node_collective_rack_acceptance",
"unit": "nvlink-domain",
"label": "<string>",
"target_id": "<string>"
}
]
}
],
"multi_node_gate": {
"verdict": "pass",
"passed_requirements": 123,
"total_requirements": 123,
"requirements": [
{
"requirement_name": "<string>",
"label": "<string>",
"description": "<string>",
"verdict": "pass",
"policy_digest": "<string>",
"evaluated_at": "2023-11-07T05:31:56Z",
"selected_evidence": {
"test_execution_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
],
"evaluated_at": "2023-11-07T05:31:56Z",
"gate": "multi_node_collective_rack_acceptance",
"target_unit": "nvlink-domain",
"target_label": "<string>",
"resource_class": "<string>",
"device_class": "gpu_compute",
"device_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Site identifier.
Query Parameters
Optional. Restrict the matrix to devices of these classes; repeat the param to include more than one (e.g. gpu_compute + cpu_baremetal). Racks left with no matching device are omitted.
cpu_baremetal, cpu_hypervisor, gpu_compute Response
Top-level response shape returned by the standup-racks endpoint.
How every position and row in this response was determined, reported once. Both values today are inferred from operator naming rather than read from authoritative placement data, so treat either as a best-effort ordering hint. derived_from_name reads a named row — the rack's name for the slot, its location's for the row. derived_from_scalable_unit serves a site whose racks are grouped into SU-<n> units instead of named rows, where the unit number is the row and the varying part of the rack name is the slot. The convention is a property of the site, so a caller rendering more than one site must not assume they share one.
derived_from_name- DERIVED_FROM_NAMEderived_from_scalable_unit- DERIVED_FROM_SCALABLE_UNIT
derived_from_name, derived_from_scalable_unit Show child attributes
Show child attributes