You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
provisionNet rolls its netns back through a shared toggleNet; createVM reaps
stray qemu/qemu-nbd helpers by cmdline before relaunch; the NBD busy check
reads /proc cmdlines through a testable seam; VNC passwords reject whitespace;
clone inherits the source's network mode unless --net is set; OpenStore takes
the caller's context. cocoon is pinned to its merged head (ReflinkCopy takes a
context, Network.Delete takes one id, the image JSON namespace comes from
core.ImageJSONNamespace).
restoreCmd.Flags().String("tag", "", "snapshot tag to restore (default: newest)")
91
91
restoreCmd.Flags().Bool("force", false, "stop the VM, restore, then relaunch if it was running")
92
-
restoreCmd.Flags().String("vnc-password", "", "VNC password for the relaunch of a running VM whose display is password-gated (≤8 chars)")
92
+
restoreCmd.Flags().String("vnc-password", "", "VNC password for the relaunch of a running VM whose display is password-gated (≤8 bytes)")
93
93
94
94
cloneCmd:=&cobra.Command{
95
95
Use: "clone SRC",
96
-
Short: "Clone a stopped VM: fresh CoW overlay on the shared base + a unique Apple identity + its own TAP",
96
+
Short: "Clone a stopped VM: fresh CoW overlay on the shared base + a unique Apple identity + its own network endpoint (--net inherited from the source)",
// prepareOpenCore points r.OpenCore at the shared base, or with randomSMBIOS at a per-VM overlay whose config.plist is patched with a unique identity.
returnfmt.Errorf("teardown network for %s: %w", r.VMID, err)
113
119
}
114
120
returnnil
115
121
}
116
122
117
-
// quiesceNet downs a stopped VM's owned NICs so a dead VMM's carrier-less TAP can't storm host softirqs via the tc mirred redirect; unquiesceNet reverses it on start.
118
-
funcquiesceNet(cmd*cobra.Command, r*record) {
123
+
// toggleNet downs a stopped VM's owned NICs so a dead VMM's carrier-less TAP can't storm host softirqs via the tc mirred redirect, and brings them back up on start.
logger.Warnf(ctx, "%s network for %s: %v", verb, r.VMID, err)
142
138
}
143
-
setTapLink(ctx, r, true)
139
+
setTapLink(ctx, r, up)
144
140
}
145
141
146
142
// setTapLink flips a host-netns TAP's admin state: cocoon's bridge backend no-ops Quiesce, so the toggle lives here; a CNI TAP is inside a netns and is the provider's job.
0 commit comments