Package com.eqixiac.equinix.design.plan


package com.eqixiac.equinix.design.plan
The deployment-plan lifecycle: plan as data, drift detection, idempotent and resumable reconcile, and safe rollback.
  • Plan as data. A DeploymentPlan is immutable and round-trips through JSON (PlanJson). Every planned resource carries a logical key derived from the design; PlanSteps orders them by dependency. The plan id is a hash of its desired state; the document records the DesignSpec fingerprint it came from.
  • Marking. Resources are found again by name within the plan's project, and connections by the additionalInfo marker the API persists (PlanMarker).
  • Drift. LiveStateReader reads live state (read-only); DriftDetector classifies each planned resource as MISSING, PRESENT_MATCHING or PRESENT_DIFFERENT (with the fields) and lists marked live resources that are not in the plan.
  • Reconcile. PlanExecutor creates only what is missing, in dependency order, saving a Checkpoint to a CheckpointStore after every step; a re-run of a completed plan is a no-op. Updates are opt-in and limited to patchable fields.
  • Failure and rollback. One FailurePolicy for every step; PlanRollback waits for asynchronous connection deletes before deleting a Cloud Router and reports orphans with their uuids.

Fabric Interconnects (Fabric One) and native multicloud links are plan elements the SDK never creates: they appear as NOT_EXECUTABLE steps with the reason.

  • Class
    Description
    The progress of one plan's execution: every step known to exist, by logical key.
    Where reconcile keeps its Checkpoints.
    A step recorded in a Checkpoint: the resource exists (or its create was accepted) under this uuid.
    Compares a plan with a LiveState snapshot.
    How a planned resource compares with what is live.
    How a plan is executed or reconciled.
    What execution does when a create step fails: a Cloud Router, connection or routing-protocol create that is rejected, a pre-flight dry-run that is rejected (HTTP 4xx validation), or a resource that lands in a terminal failure state or does not reach PROVISIONED within the timeout.
    One field that differs between the plan and the live resource.
    A CheckpointStore that keeps one JSON file per deployment in a directory (<deployment>.checkpoint.json, the name reduced to file-safe characters).
    A CheckpointStore held in memory: survives an aborted run, not a crashed JVM.
    A connection as read from Fabric: the fields drift detection compares.
    A Cloud Router as read from Fabric: the fields drift detection compares.
    A routing protocol as read from Fabric.
    A snapshot of the live Fabric resources relevant to one plan, as LiveStateReader read them (or as a test builds them).
    Reads the live Fabric resources relevant to a plan.
    A resource a rollback could not remove.
    A plan compared with live state: one ResourceDrift per planned element, the live resources that carry the plan's marker but are not in it, and notes on anything that could not be read.
    Executes and reconciles deployment plans.
    Reads and writes a DeploymentPlan as JSON and computes its content identity.
    How resources created from a plan are marked so drift detection and reconcile can find them again.
    Tears down resources a run created, in an order that cannot strand a billable Cloud Router.
    One element of a plan in its uniform, dependency-ordered form: what PlanSteps.of(DeploymentPlan) derives from a DeploymentPlan for execution, reconcile, drift detection and checkpoints.
    Derives the dependency-ordered PlanSteps of a plan: Cloud Routers, then provider connections (a redundancy group's PRIMARY before its SECONDARY), then backbone links, then routing protocols (DIRECT before BGP on the same connection, as Fabric requires), then the elements the SDK does not create (Interconnects and native multicloud links).
    A resource a rollback deleted and confirmed gone (DEPROVISIONED or HTTP 404).
    The drift verdict for one planned resource.
    The kinds of element a deployment plan holds, in the order they are created.
    What a rollback removed and what it had to leave behind.
    What execution or reconcile did with one plan step.
    The result of one plan step in an execution or reconcile run.
    A live resource that carries the plan's marker (its deployment name in additionalInfo, or the plan's name prefix) but matches no planned resource: left over from an earlier version of the plan, or created by hand.