Encapsulate vnc

This commit is contained in:
flx5 2021-10-01 12:45:31 +02:00
parent d9f981e4f3
commit d334a085ed
3 changed files with 10 additions and 8 deletions

View File

@ -7,6 +7,7 @@ import (
"github.com/hashicorp/packer-plugin-sdk/packer"
config2 "github.com/xenserver/packer-builder-xenserver/builder/xenserver/common/config"
"github.com/xenserver/packer-builder-xenserver/builder/xenserver/common/proxy"
"github.com/xenserver/packer-builder-xenserver/builder/xenserver/common/vnc"
"github.com/xenserver/packer-builder-xenserver/builder/xenserver/common/xen"
"net"
"strconv"
@ -28,14 +29,14 @@ func (self *StepGetVNCPort) Run(ctx context.Context, state multistep.StateBag) m
ui.Say("Step: forward the instances VNC")
location, err := GetVNCConsoleLocation(state)
location, err := vnc.GetVNCConsoleLocation(state)
if err != nil {
state.Put("error", err)
ui.Error(err.Error())
return multistep.ActionHalt
}
target, err := GetTcpAddressFromURL(location)
target, err := vnc.GetTcpAddressFromURL(location)
if err != nil {
state.Put("error", err)
ui.Error(err.Error())
@ -59,7 +60,7 @@ func (self *StepGetVNCPort) Run(ctx context.Context, state multistep.StateBag) m
}
self.forwarding = xenProxy.CreateWrapperForwarding(host, port, func(rawConn net.Conn) (net.Conn, error) {
return initializeVNCConnection(location, string(xenClient.GetSessionRef()), rawConn)
return vnc.InitializeVNCConnection(location, string(xenClient.GetSessionRef()), rawConn)
})
err = self.forwarding.Start()

View File

@ -12,6 +12,7 @@ import (
"github.com/hashicorp/packer-plugin-sdk/packer"
"github.com/hashicorp/packer-plugin-sdk/template/interpolate"
config2 "github.com/xenserver/packer-builder-xenserver/builder/xenserver/common/config"
"github.com/xenserver/packer-builder-xenserver/builder/xenserver/common/vnc"
"log"
)
@ -46,7 +47,7 @@ func (self *StepTypeBootCommand) Run(ctx context.Context, state multistep.StateB
httpIP = state.Get("http_ip").(string)
}
location, err := GetVNCConsoleLocation(state)
location, err := vnc.GetVNCConsoleLocation(state)
if err != nil {
state.Put("error", err)
ui.Error(err.Error())
@ -55,7 +56,7 @@ func (self *StepTypeBootCommand) Run(ctx context.Context, state multistep.StateB
ui.Say(fmt.Sprintf("Connecting to the VM console VNC over xapi via %s", location))
vncClient, err := CreateVNCClient(state, location)
vncClient, err := vnc.CreateVNCClient(state, location)
if err != nil {
ui.Error(err.Error())

View File

@ -1,4 +1,4 @@
package common
package vnc
import (
"crypto/tls"
@ -64,7 +64,7 @@ func CreateVNCConnection(state multistep.StateBag, location string) (net.Conn, e
return nil, err
}
tlsConn, err := initializeVNCConnection(location, string(xenClient.GetSessionRef()), rawConn)
tlsConn, err := InitializeVNCConnection(location, string(xenClient.GetSessionRef()), rawConn)
if err != nil {
rawConn.Close()
return nil, err
@ -92,7 +92,7 @@ func CreateVNCClient(state multistep.StateBag, location string) (*vnc.ClientConn
return client, nil
}
func initializeVNCConnection(location string, xenSessionRef string, rawConn net.Conn) (*tls.Conn, error) {
func InitializeVNCConnection(location string, xenSessionRef string, rawConn net.Conn) (*tls.Conn, error) {
tlsConfig := &tls.Config{
InsecureSkipVerify: true,
}