Automated Actions
Automated actions let your plugin automatically update VLAN and machine settings when it’s applied to a scenario. Instead of requiring the scenario architect to manually configure DNS forwarding, RAM, CPU cores, or network settings, your plugin can do it for them.
What Are Automated Actions?
Section titled “What Are Automated Actions?”An automated action is a rule that says: “When this plugin is applied (or a parameter changes), update this field on the VLAN or machine to this value.”
The scenario architect sees the recommended changes in a preview dialog and can accept or decline each one individually.
Configurable Fields
Section titled “Configurable Fields”VLAN Fields
Section titled “VLAN Fields”| Field | What It Sets |
|---|---|
| Nickname | VLAN display name |
| DNS Forwarding Targets | Domain-to-IP DNS forwarding rules |
| Static Host Mappings | Hostname-to-IP static DNS entries |
| Gateway | Default gateway address |
| Address | VLAN network address (CIDR) |
| Provide DHCP | Enable/disable DHCP on the VLAN |
| DHCP Range Start/End | DHCP address pool |
Machine Fields
Section titled “Machine Fields”| Field | What It Sets |
|---|---|
| Nickname | Machine display name |
| RAM (GB) | Memory allocation |
| CPU Cores | Processor allocation |
| Architect Username/Password | Default credentials |
Value Mapping
Section titled “Value Mapping”Each automated action maps a target field to either a static value or a parameter reference using ${ParamName} syntax:
- Static:
"value": "2"— always sets RAM to 2 GB - Dynamic:
"value": "${DomainNameFQDN}"— uses the parameter value the architect provided
For list fields (like DNS forwarding targets), you can specify a list operation:
- addOrUpdate — merge into the existing list, matching by a key field
- set — replace the entire list
Triggers
Section titled “Triggers”| Trigger | When It Fires |
|---|---|
| ON_APPLY | Plugin is first added to a machine |
| ON_UPGRADE | Plugin version is upgraded |
| ON_PARAM_CHANGE | A parameter value is changed |
Example: Root DC Plugin
Section titled “Example: Root DC Plugin”The Create ROOT Domain Controller plugin has 4 automated actions that fire when it’s applied:
1. Set VLAN Nickname
Section titled “1. Set VLAN Nickname”Sets the VLAN’s display name to the domain name, so the network view shows “corp.local” instead of “VLAN 1”:
| Property | Value |
|---|---|
| Target | VLAN → Nickname |
| Value | ${DomainNameFQDN} |
2. Add DNS Forwarding
Section titled “2. Add DNS Forwarding”Adds a DNS forwarding rule to the VLAN so other machines on the network can resolve domain names through this DC:
| Property | Value |
|---|---|
| Target | VLAN → DNS Forwarding Targets |
| Operation | addOrUpdate (merge by domainName) |
| domainName | ${DomainNameFQDN} |
| dnsForwardingTargetIP | ${StaticIP} |
3. Set Machine RAM
Section titled “3. Set Machine RAM”Domain controllers need more memory than default. This bumps the VM to 2 GB:
| Property | Value |
|---|---|
| Target | Machine → RAM (GB) |
| Value | 2 |
4. Set Machine CPU
Section titled “4. Set Machine CPU”Similarly, bumps CPU to 2 cores:
| Property | Value |
|---|---|
| Target | Machine → CPU Cores |
| Value | 2 |
The Preview & Accept Flow
Section titled “The Preview & Accept Flow”When a scenario architect applies a plugin with automated actions, they see a dialog showing all recommended changes:
- Each recommendation shows the target (VLAN or machine icon), the field, the current value, and the proposed new value
- The architect can accept all, accept individually, or decline all
- Accepted changes are applied atomically alongside the plugin