Skip to main content

Local import

scout import reads files that are already on the operator's machine. It does not dial Ceph, NFS, ZFS, or Kubernetes, and it does not upload the export.

./bin/scout import \
--rvtools RVTools.xlsx \
--storage storage.json \
--dr dr.yaml \
--assumptions assumptions.json \
--out scout.json

The inventory is written mode 0600. Warnings for missing RVTools sheets go to stderr. Templates are skipped.

RVTools​

The workbook is .xlsx. Scout reads vInfo, vDisk, vSnapshot, vHost, vDatastore, vPartition, and vNetwork. A missing sheet is a warning, not a guessed value. VirtIO driver state is not in RVTools, so Windows guests are marked for GuestKit inspection instead of being scored as ready.

storage.json​

Produce this on the customer network with scripts/collect-storage.sh. Scout only reads the file.

{
"ceph": {"pools": [{"name": "rbd", "usedBytes": 100, "maxBytes": 1000}]},
"nfs": {"exports": [{"server": "nas", "path": "/export", "sizeBytes": 1000, "usedBytes": 100}]},
"zfs": {"datasets": [{"name": "tank/vm", "usedBytes": 100, "availBytes": 900}]},
"kubernetes": {
"storageClasses": ["rook-ceph-block"],
"persistentVolumes": 2,
"persistentVolumeClaims": 2,
"allocatableCPU": "16",
"allocatableMemoryBytes": 0
},
"growthBytesPerDay": 1073741824
}

Without growthBytesPerDay, capacity runway is reported as unknown. Free percent is still shown when capacity was measured.

dr.yaml​

Version 1 accepts only these flat keys. It does not parse Veeam or Rubrik files.

lastSuccessfulBackup: 2026-09-01T00:00:00Z
targetRPOMinutes: 15
lastTestRestore: 2026-06-01T00:00:00Z
offsiteCopy: true

If the last test restore is older than 90 days, the DR score drops. If the file is omitted, the score is unknown.

assumptions.json​

Customer figures are required for a complete three-year comparison. Omitted Zyvor commercial keys use these defaults: $129 per core per year, $15,000 minimum annual contract, a three-year term, and migration services for the first 100 VMs. includedDiskGiB has no default. Until it is set, the report says the migration-services cap is incomplete.

{
"cores": 64,
"vmwareAnnual": 180000,
"storageAnnual": 40000,
"supportAnnual": 20000,
"migrationCost": 50000,
"linkMbps": 1000,
"cutoverMinutes": 15,
"pricePerCoreYear": 129,
"minimumAnnual": 15000,
"termYears": 3,
"includedMigrationVMs": 100,
"includedDiskGiB": 10240
}

linkMbps is used only to estimate cutover minutes: disk bytes divided by that rate, plus cutoverMinutes. The result is labeled an estimate.

Reports​

./bin/scout report \
--file scout.json \
--out report.html \
--executive executive.html \
--pdf executive.pdf \
--workbook workbook.zip

The PDF is a short executive document. The workbook is a zip of CSV tables. Both stay on disk.