Skip to content

feat(datagen): add storage, network, and appliance-OS identities (PIPE-1035) - #274

Open
Dylan-M wants to merge 5 commits into
mainfrom
dylanmyers/pipe-1035-appliance-identities
Open

feat(datagen): add storage, network, and appliance-OS identities (PIPE-1035)#274
Dylan-M wants to merge 5 commits into
mainfrom
dylanmyers/pipe-1035-appliance-identities

Conversation

@Dylan-M

@Dylan-M Dylan-M commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Proposed Change

Adds appliance-class identities to datagen, so the environment can model storage
arrays and network hardware alongside general-purpose hosts.

  • ApplianceOS ({Vendor, Family, Version}) for closed embedded OSes (NimbleOS,
    TMOS, IOS-XE, PAN-OS, and the rest), kept separate from the OSType enum since
    these aren't Linux from a consumer's view.
  • StorageSystemIdentity: vendor/model/serial, storage-fabric IDs (WWN, IQN, WWPN,
    NAA in vendor-correct formats), capacity and hardware facets, and a management
    interface. First vendor pools cover HPE (Nimble, 3PAR, the Alletra family,
    StoreOnce).
  • NetworkSystemIdentity: base hardware plus composable capability facets (L2
    switching, L3 routing, firewall, load balancing, wireless), so a product composes
    facets like a BIG-IP or Catalyst. First pools cover F5, Cisco, Arista, Juniper,
    Palo Alto, and Fortinet.
  • StyleAppliance hostnames ({vendor}-{role}-{site}-{NN}), which don't collide
    with the mythology pools.
  • GenerateEnvironment composes storage and network systems alongside general
    systems, sharing the seed config, with StorageSystems / NetworkSystems seed
    overrides and management interfaces bound to subnets.

Validate() rejects malformed WWN/IQN/NAA and incoherent vendor/model combinations.
Nothing outside datagen consumes these yet.

Validation: from a scratch harness, call GenerateEnvironment with a populated
counts config and inspect AllStorageSystems() / AllNetworkSystems() for coherent
vendor/model/OS triples and non-colliding hostnames. Tests cover determinism from a
shared seed, environment composition, vendor/model coherence (a Nimble identity
can't carry tmos), and the Validate() rejections.

Checklist
  • Changes are tested
  • CI has passed

@Dylan-M
Dylan-M requested review from a team as code owners August 4, 2026 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant