SmartOS/live 7a117a9tools/ucodecheck ucodecheck.c

OS-8698 smartos-live ucodecheck needs to address AMD fallback ucode

Reviewed by: Carlos Neira <carlos.neira at edgecast.io>
Reviewed by: Travis Paul <tpaul at edgecast.io>
Approved by: Travis Paul <tpaul at edgecast.io>
DeltaFile
+25-1tools/ucodecheck/ucodecheck.c
+25-11 files

SmartOS/live 833f6bdtools/ucodecheck ucodecheck.c

nicer output for pre-fallback illumos
DeltaFile
+2-1tools/ucodecheck/ucodecheck.c
+2-11 files

SmartOS/live 6d5e795tools/ucodecheck ucodecheck.c

oops, wrong place
DeltaFile
+5-5tools/ucodecheck/ucodecheck.c
+5-51 files

SmartOS/live 129466dtools/ucodecheck ucodecheck.c

Overlook missing AMD fallback
DeltaFile
+8-0tools/ucodecheck/ucodecheck.c
+8-01 files

SmartOS/live a858539tools/ucodecheck ucodecheck.c

OS-8698 smartos-live ucodecheck needs to address AMD fallback ucode
DeltaFile
+16-1tools/ucodecheck/ucodecheck.c
+16-11 files

SmartOS/live 057a582src piadm.sh

OS-8697 piadm's fatal() helper should echo all args (#1160)

Reviewed by: Carlos Neira <carlos.neira at edgecast.io>
Reviewed by: Dan McDonald <danmcd at edgecast.io>
Approved by: Dan McDonald <danmcd at edgecast.io>
DeltaFile
+2-1src/piadm.sh
+2-11 files

SmartOS/live f22d49esrc piadm.sh

Update copyright
DeltaFile
+1-0src/piadm.sh
+1-01 files

SmartOS/live df2d7e7src piadm.sh

OS-8697 piadm's fatal() helper should echo all args
DeltaFile
+1-1src/piadm.sh
+1-11 files

SmartOS/live 6731c94src piadm.sh

OS-8697 piadm's fatal() helper should echo all args
DeltaFile
+1-3src/piadm.sh
+1-31 files

SmartOS/live 44e65b8src/vm/sbin vmadmd.js

Fix resource leaks and add handshake timeout in console proxy

Critical fixes for console connection handler:

1. Replace deprecated net.Stream() with new net.Socket()
2. Add cleanup() function with idempotent guard to prevent double-cleanup
3. Add 5-second timeout for zone console handshake
4. Ensure socket.destroy() called on all error paths:
   - Client close
   - Console socket error
   - Client error
   - Handshake timeout
   - Handshake failure
5. Rename 'console' variable to 'consoleSocket' to avoid shadowing global
6. Truncate handshake error messages to prevent log spam

These fixes prevent file descriptor leaks and hanging connections that
could exhaust system resources under error conditions.


    [3 lines not shown]
DeltaFile
+51-14src/vm/sbin/vmadmd.js
+51-141 files

SmartOS/live abfe095src/vm/sbin vmadmd.js

Add zoneadmd console handshake for non-KVM brands

The zoneadmd console_sock requires a protocol handshake before data flows.
Send 'IDENT C 0\n' and wait for 'OK' response before proxying data.

This matches the zlogin -C handshake protocol.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+28-3src/vm/sbin/vmadmd.js
+28-31 files

SmartOS/live 44a60a8src/vm/sbin vmadmd.js

Use zoneadmd console socket instead of /dev/zcons device

The correct console socket for zlogin -C is managed by zoneadmd at
/var/run/zones/<zonename>.console_sock, not the /dev/zcons device.

All brands now use unix sockets:
- KVM: /zones/<uuid>/root/tmp/vm.console (serial console)
- Others: /var/run/zones/<zonename>.console_sock (zoneadmd console)

This allows simple net.Stream() connection for all brands.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+15-59src/vm/sbin/vmadmd.js
+15-591 files

SmartOS/live dda998bsrc/vm/sbin vmadmd.js

Use socat to proxy zone console devices

fs.createReadStream doesn't work properly with character devices like
/dev/zcons/*/zoneconsole. Use socat instead to handle the device I/O
properly.

For non-KVM brands, spawn socat process per connection to proxy between
TCP socket and zone console device with proper raw/echo settings.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+22-10src/vm/sbin/vmadmd.js
+22-101 files

SmartOS/live c09edc8src/vm/sbin vmadmd.js

Fix console proxy to use fs streams for device files

Zone console devices (/dev/zcons/*/zoneconsole) are character devices,
not unix sockets. net.connect() fails with ENOTSOCK when trying to
connect to them.

Fix by using different connection methods based on brand:
- KVM: net.Stream().connect() for unix socket
- Others: fs.createReadStream/WriteStream for device file

This allows proper bidirectional data flow for zone console devices.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+43-11src/vm/sbin/vmadmd.js
+43-111 files

SmartOS/live f6b4547src/vm/sbin vmadmd.js

Spawn console proxy for all running VMs at startup

Fix issue where non-KVM/Bhyve VMs (Joyent, LX) were not getting console
proxies spawned at vmadmd startup. Previously only KVM/Bhyve called loadVM()
which spawned the console proxy.

Now all running VMs get console proxies regardless of brand.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+4-0src/vm/sbin/vmadmd.js
+4-01 files

SmartOS/live b4a61ebsrc/vm/node_modules proptable.js

Add console to runtime_info for all VM brands

Add 'console' to runtime_info feature list for all brands to enable
vmadm info queries for console connection details.

Changes:
- KVM: Add 'console' to existing runtime_info array
- Bhyve: Add 'console' to runtime_info array
- Joyent: Add runtime_info: ['console'] (new)
- Joyent-minimal: Add runtime_info: ['console'] (new)
- LX: Add runtime_info: ['console'] (new)

This allows vm.info(['console']) to work for all brands, which is
required by CNAPI console endpoint and vmadmd console proxy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+6-3src/vm/node_modules/proptable.js
+6-31 files

SmartOS/live fd44461src/vm/sbin vmadmd.js

Add console proxy support to vmadmd

Implement TCP proxy for console access across all VM brands:
- KVM: Proxy to unix socket at /tmp/vm.console (serial console)
- Bhyve/Joyent/LX: Proxy to zone console device at /dev/zcons/<zonename>/zoneconsole

Changes:
- Add CONSOLE object to track console proxy state
- Add spawnConsoleProxy() to create TCP listeners for console access
- Add clearConsoleProxy() and reloadConsoleProxy() for lifecycle management
- Add infoConsole() to return console connection details via vm.info()
- Add console proxy spawning alongside VNC/SPICE in VM lifecycle
- Add vm.info() support for joyent, joyent-minimal, and lx brands (console only)

Console proxies are automatically created when VMs start and cleaned up when VMs stop.
Connection details (host, port, type) are available via vm.info(['console']).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+154-0src/vm/sbin/vmadmd.js
+154-01 files

SmartOS/live 87ef0b6src/img/lib/sources docker.js, src/vm/node_modules VM.js

Merge branch 'master' into de-joyent
DeltaFile
+657-17src/vm/node_modules/VM.js
+0-399tools/pwgen-2.06/sha1.c
+0-251tools/pwgen-2.06/debian/changelog
+0-238tools/pwgen-2.06/install-sh
+174-50src/img/lib/sources/docker.js
+0-215tools/pwgen-2.06/pwgen.c
+831-1,17043 files not shown
+1,205-2,42549 files

SmartOS/live fa5aa94src Makefile manifest, src/etc/dhcp eventhook

OS-8690: smartos-ui does not adapt to changed admin interface IP address

Reviewed by: Carlos Neira <carlos.neira at edgecast.io>
Reviewed by: Dan McDonald <danmcd at edgecast.io>
Reviewed by: Toomas Soome <tsoome at edgecast.io>
Approved by: Dan McDonald <danmcd at edgecast.io>
DeltaFile
+39-0src/etc/dhcp/eventhook
+2-1src/Makefile
+2-0src/manifest
+43-13 files

SmartOS/live 64a58e2src/etc/dhcp eventhook

update comment
DeltaFile
+2-1src/etc/dhcp/eventhook
+2-11 files

SmartOS/live bec9d2fsrc/etc/dhcp eventhook

filter on the event
DeltaFile
+8-0src/etc/dhcp/eventhook
+8-01 files

SmartOS/live 11013fcsrc Makefile manifest, src/etc/dhcp eventhook

smartos-ui#19: smartos-ui does not adapt to changed admin interface IP address
DeltaFile
+30-0src/etc/dhcp/eventhook
+2-1src/Makefile
+2-0src/manifest
+34-13 files

SmartOS/live eb13dadsrc/vm/node_modules VM.js proptable.js

OS-8683 vmadm reprovision for bhyve brand

Portions generated by: Claude <noreply at anthropic.com>
Reviewed by: Dan McDonald <danmcd at edgecast.io>
Approved by: Dan McDonald <danmcd at edgecast.io>
DeltaFile
+657-17src/vm/node_modules/VM.js
+3-1src/vm/node_modules/proptable.js
+660-182 files

SmartOS/live dd45e25src/vm/node_modules VM.js

Check for holds but otherwise destroy snapshots

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+153-2src/vm/node_modules/VM.js
+153-21 files

SmartOS/live b731e87src/vm/node_modules VM.js

Add pre-emptive disk size validation for bhyve reprovision

- Add checkDiskSizes step before destroyOldDisk0 to validate that new image size does not exceed current disk0 size
- Prevents data loss by failing early with clear error message if new image would be larger than existing disk
- Remove setQuotaBhyveAfterReprovision step that attempted to fix quotas after potential failure
- Use zfs get volsize and imgadm get to compare current disk size vs new image size
- Convert sizes appropriately (bytes vs MiB) for accurate comparison

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+129-21src/vm/node_modules/VM.js
+129-211 files

SmartOS/live eec52b6src/vm/node_modules VM.js

Add pre-emptive disk size validation for bhyve reprovision

- Add checkDiskSizes step before destroyOldDisk0 to validate that new image size does not exceed current disk0 size
- Prevents data loss by failing early with clear error message if new image would be larger than existing disk
- Remove setQuotaBhyveAfterReprovision step that attempted to fix quotas after potential failure
- Use zfs get volsize and imgadm get to compare current disk size vs new image size
- Convert sizes appropriately (bytes vs MiB) for accurate comparison

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+88-14src/vm/node_modules/VM.js
+88-141 files

SmartOS/live ea1126csrc/vm/node_modules VM.js

Add pre-emptive disk size validation for bhyve reprovision

- Add checkDiskSizes step before destroyOldDisk0 to validate that new image size does not exceed current disk0 size
- Prevents data loss by failing early with clear error message if new image would be larger than existing disk
- Remove setQuotaBhyveAfterReprovision step that attempted to fix quotas after potential failure
- Use zfs get volsize and imgadm get to compare current disk size vs new image size
- Convert sizes appropriately (bytes vs MiB) for accurate comparison

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+87-14src/vm/node_modules/VM.js
+87-141 files

SmartOS/live b741843src/vm/node_modules VM.js

fix refreservation, recalculate quotas

If we went from e.g. a 10G image to a 100G image, we should fix the
quotas. Additional testing still needed.

Portions generated by: Claude <noreply at anthropic.com>
DeltaFile
+14-3src/vm/node_modules/VM.js
+14-31 files

SmartOS/live b04e0e5src/vm/node_modules proptable.js

install back to binstall
DeltaFile
+1-1src/vm/node_modules/proptable.js
+1-11 files

SmartOS/live b317330src/vm/node_modules VM.js proptable.js

binstall -> install, make sure disk0 is bootable
DeltaFile
+7-0src/vm/node_modules/VM.js
+1-1src/vm/node_modules/proptable.js
+8-12 files