parent
1a2ee1028c
commit
e5cadf1f25
|
|
@ -24,6 +24,8 @@ import (
|
||||||
"k8s.io/client-go/transport/spdy"
|
"k8s.io/client-go/transport/spdy"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const defaultTimeout = 30 * time.Second
|
||||||
|
|
||||||
// PortForwarder tracks a port forward stream.
|
// PortForwarder tracks a port forward stream.
|
||||||
type PortForwarder struct {
|
type PortForwarder struct {
|
||||||
Factory
|
Factory
|
||||||
|
|
@ -94,7 +96,10 @@ func (p *PortForwarder) Container() string {
|
||||||
func (p *PortForwarder) Stop() {
|
func (p *PortForwarder) Stop() {
|
||||||
log.Debug().Msgf("<<< Stopping PortForward %s", p.ID())
|
log.Debug().Msgf("<<< Stopping PortForward %s", p.ID())
|
||||||
p.active = false
|
p.active = false
|
||||||
close(p.stopChan)
|
if p.stopChan != nil {
|
||||||
|
close(p.stopChan)
|
||||||
|
p.stopChan = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FQN returns the portforward unique id.
|
// FQN returns the portforward unique id.
|
||||||
|
|
@ -169,7 +174,7 @@ func (p *PortForwarder) forwardPorts(method string, url *url.URL, addr, portMap
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
dialer := spdy.NewDialer(upgrader, &http.Client{Transport: transport}, method, url)
|
dialer := spdy.NewDialer(upgrader, &http.Client{Transport: transport, Timeout: defaultTimeout}, method, url)
|
||||||
|
|
||||||
return portforward.NewOnAddresses(dialer, []string{addr}, []string{portMap}, p.stopChan, p.readyChan, p.Out, p.ErrOut)
|
return portforward.NewOnAddresses(dialer, []string{addr}, []string{portMap}, p.stopChan, p.readyChan, p.Out, p.ErrOut)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -99,11 +99,9 @@ func runForward(v ResourceViewer, pf watch.Forwarder, f *portforward.PortForward
|
||||||
pf.SetActive(true)
|
pf.SetActive(true)
|
||||||
if err := f.ForwardPorts(); err != nil {
|
if err := f.ForwardPorts(); err != nil {
|
||||||
v.App().Flash().Err(err)
|
v.App().Flash().Err(err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
v.App().QueueUpdateDraw(func() {
|
v.App().QueueUpdateDraw(func() {
|
||||||
v.App().factory.DeleteForwarder(pf.FQN())
|
v.App().factory.DeleteForwarder(pf.ID())
|
||||||
pf.SetActive(false)
|
pf.SetActive(false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue