Package com.eqixiac.equinix.design.optimizer.wizard
package com.eqixiac.equinix.design.optimizer.wizard
The Deployment Wizard: turns a metro
OptimizationResult into an executable
DeploymentPlan — Cloud Routers,
provider connections, inter-metro backbone links, and routing protocols, with bandwidth-aware
profile selection and honestly-reconciled pricing.
The pipeline is plan → validate → execute:
- Plan —
DeploymentWizard.Builder(reached viafabric.deploymentWizard(result)) configures packages, topology, bandwidth strategy, ASN/BFD, notifications, and pricing;plan()produces an immutable plan. Nothing is provisioned by planning. - Validate —
PlanValidatorruns in three layers (structural/catalog checks, a live self-contained Cloud Router dry-run, and the connection endpoint dry-run where an endpoint already exists) and sorts every finding into three buckets that are never conflated: errors (validated now; a hard defect or genuine API rejection — invalidates the plan), deferred to provisioning (the connection endpoint dry-run that must wait for the A-side router to exist), and skipped (could not be attempted — offline gateway or a non-rejection API failure — each with a reason, never invalidating the plan).DeploymentPlan.dryRun()re-runs validation and returns a new plan with refreshed state. - Execute —
DeploymentPlan.execute(ExecutionInputs)refuses an invalid plan (IllegalStateException), fails fast on missing customer authorization keys, then provisions in dependency order: Cloud Routers (awaitingPROVISIONED), provider connections (each pre-flighted with a live dry-run against its now-real router), backbone links, then routing protocols. State waits distinguish ready / real terminal failure / timeout; a genuine dry-run or create rejection aborts the run and unwinds everything already created in LIFO order, androllback(outcome)offers the same best-effort teardown for partial deployments.
The safety model is plan-only-until-execute: plans, dry-runs, repricing, value
realization, and export are all side-effect free; only execute() creates billable
resources, and only after validation, input checks, and per-connection pre-flights.
Sub-packages: model (the plan and its parts),
enums (topology, bandwidth strategy, connection purpose).
- See Also:
-
ClassDescriptionEntry point for the Deployment Wizard.Fluent builder for configuring a deployment plan.Layered, plan-time validation for the Deployment Wizard.The classification of a single live-layer failure.Whether a live-layer failure is a genuine rejection (a plan defect) or an infeasibility (a skip).The outcome of validating a plan, in three distinct buckets — hard/rejection errors (which invalidate the plan), deferred validations (which do NOT — they run at provisioning), and skipped validations (which do NOT — they could not be attempted now, each with a reason) — plus the per-connection customer inputs a first-time customer must gather.