dpsctl import#

dpsctl import Usage Guide#

Overview#

dpsctl import includes commands for importing entities from external sources into DPS.

Entity import uses an asynchronous workflow:

  1. Start importdpsctl import entity initiates entity generation from the specified source (BCM or Nautobot). The server runs generation in the background and returns a request ID immediately.

  2. Check statusdpsctl import entity-status polls the server with the request ID, waits for completion, and then streams the generated entities.

  3. Cancel or deletedpsctl import entity-cancel cancels a request by ID, and dpsctl import entity-delete removes a request and its stored results.

Generation runs with a server default timeout of 10 minutes (maximum 30 minutes). Request state is cleaned up 30 minutes after the request is created.

Supported Sources#

Source

--source value

Description

Base Command Manager (BCM)

bcm

Generate entities from BCM cluster inventory

Nautobot

nautobot

Generate entities from Nautobot DCIM inventory via the Topology Management gRPC service

Usage#

dpsctl import [command [command options]]

Commands#

  • entity - Start entity generation from an external source

  • entity-status - Get status and results for an entity import request

  • entity-cancel - Cancel an entity import request

  • entity-delete - Delete an entity import request and stored results

  • help, h - Shows a list of commands or help for one command

Flags#

Includes global dpsctl options.

Flag

Source

Description

--source string

both

Entity source: bcm or nautobot (required)

--username string

BCM

Authentication username (required when --source=bcm)

--password string

BCM

Authentication password (required when --source=bcm)

--tls-insecure-skip-verify

BCM

Skip TLS certificate verification

--locations string

Nautobot

Comma-separated locations (UUIDs or names) to filter by

--racks string

Nautobot

Comma-separated racks (UUIDs or names) to filter by

--device-types string

Nautobot

Comma-separated device types (UUIDs or names) to filter by

--request-string string

Nautobot

Optional free-form URL param string; defined fields (locations, racks, device-types) take precedence over overlapping keys

--help, -h

both

Show help

When --source=nautobot, BCM flags (--username, --password, --tls-insecure-skip-verify) are ignored. When --source=bcm, Nautobot filter flags are ignored.

Examples#

Generate Entities from BCM#

$ dpsctl import entity \
  --source bcm \
  --username admin \
  --password secretpassword
{
  "request_id": "abc123-def456-ghi789"
}

The command returns a request_id that you use to retrieve the generated entities.

Retrieve Entities Using Request ID#

After starting entity generation, use the request ID with import entity-status:

$ dpsctl import entity-status --request-id abc123-def456-ghi789

Refer to dpsctl import entity-status for full details.

Generate Entities with TLS Skip Verify#

$ dpsctl import entity \
  --source bcm \
  --username admin \
  --password secretpassword \
  --tls-insecure-skip-verify

Generate Entities from Nautobot with Filters#

$ dpsctl import entity \
  --source nautobot \
  --locations "dc1,dc2" \
  --racks "rack-a" \
  --device-types "server-type-1" \
  --request-string "status=active"
{
  "request_id": "abc123-def456-ghi789"
}

Nautobot connects to the Topology Management gRPC service (configured via dpsctl login/connection).

Notes#

  • The --source flag is required. Supported values are bcm and nautobot.

  • BCM: --username and --password are required. BCM credentials must have sufficient privileges to read cluster inventory.

  • Nautobot: Uses the Topology Management gRPC service. No BCM credentials are needed. Filters (--locations, --racks, --device-types, --request-string) scope the import to a subset of Nautobot DCIM inventory.

  • Entity generation runs asynchronously on the server. The command returns immediately with a request ID.

  • Use dpsctl import entity-status with the returned request ID to poll for and retrieve the generated entities.

  • Use dpsctl import entity-cancel to cancel an in-flight request, or dpsctl import entity-delete to delete stored request state and generated results.