MCPcopy Create free account
hub / github.com/devnullvoid/pvetui / ConnectToVMEmbeddedWithClient

Method ConnectToVMEmbeddedWithClient

internal/vnc/service.go:223–255  ·  view source on GitHub ↗

ConnectToVMEmbeddedWithClient opens an embedded VNC connection to a VM using the built-in noVNC client and specific client.

(client *api.Client, vm *api.VM)

Source from the content-addressed store, hash-verified

221
222// ConnectToVMEmbeddedWithClient opens an embedded VNC connection to a VM using the built-in noVNC client and specific client.
223func (s *Service) ConnectToVMEmbeddedWithClient(client *api.Client, vm *api.VM) (string, error) {
224 s.logger.Info("Starting embedded VNC connection for VM: %s (ID: %d, Type: %s, Node: %s)", vm.Name, vm.ID, vm.Type, vm.Node)
225
226 // Create or get existing session for this VM using specific client
227 session, err := s.sessionManager.CreateVMSessionWithClient(client, vm)
228 if err != nil {
229 s.logger.Error("Failed to create VM session for %s: %v", vm.Name, err)
230
231 return "", fmt.Errorf("failed to create VM session: %w", err)
232 }
233
234 s.logger.Info("VM VNC session ready: %s (Port: %d, Session: %s)", vm.Name, session.Port, session.ID)
235
236 // Store the actual VNC URL in the server for forwarding
237 if session.Server != nil {
238 session.Server.actualVNCURL = session.URL
239 }
240
241 // Create shortened URL for easier copying
242 shortenedURL := createShortenedVNCURL(session.URL)
243
244 // Open the embedded VNC client in the default browser
245 err = openBrowser(session.URL)
246 if err != nil {
247 s.logger.Error("Failed to open embedded VNC client for VM %s: %v", vm.Name, err)
248
249 return shortenedURL, err
250 }
251
252 s.logger.Info("Successfully opened embedded VNC client for VM %s (Session: %s)", vm.Name, session.ID)
253
254 return shortenedURL, nil
255}
256
257// ConnectToNodeEmbedded opens an embedded VNC shell connection to a node using the built-in noVNC client
258// This method supports multiple concurrent sessions - each node gets its own session.

Callers 2

ConnectToVMEmbeddedMethod · 0.95
connectToVMVNCMethod · 0.80

Calls 5

createShortenedVNCURLFunction · 0.85
openBrowserFunction · 0.85
InfoMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected