summaryrefslogtreecommitdiff
path: root/spice.go
blob: b5334b3fbf24f648bcdc5aaf063823bc200a1497 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Copyright 2024 WIT.COM Inc Licensed GPL 3.0

package virtigoxml

import (
	"errors"
	"fmt"

	pb "go.wit.com/lib/protobuf/virtbuf"
	"libvirt.org/go/libvirtxml"
)

func SetSpicePort(d *pb.Droplet, domcfg *libvirtxml.Domain) error {
	if domcfg.Devices.Graphics == nil {
		return errors.New("no graphics")
	}
	for i, g := range domcfg.Devices.Graphics {
		if g.VNC != nil {
			// ignore vnc settings
			fmt.Printf("Ignore Graphics VNC settings: %d %+v\n", i, g)
			continue
		}
		if g.Spice != nil {
			var s *libvirtxml.DomainGraphicSpice
			s = g.Spice
			if s.AutoPort == "yes" {
				s.AutoPort = "no"
			}
			s.Port = int(d.SpicePort)
			fmt.Printf("setting spice port to %d\n", d.SpicePort)
			continue
		}
		// figure out what to do with non-spice stuff
		fmt.Printf("Unknown Graphics: %d %+v\n", i, g)
	}
	return nil
}