Make host connections close last

master
Andrew 1 year ago
parent 2ca5f193e4
commit f7676e73ba

@ -328,7 +328,9 @@ func (config *BackyConfigFile) ExecuteCmds(opts *BackyConfigOpts) {
func (c *BackyConfigFile) closeHostConnections() {
for _, host := range c.Hosts {
if host.isProxyHost {
continue
}
if host.SshClient != nil {
if _, err := host.SshClient.NewSession(); err == nil {
c.Logger.Info().Msgf("Closing host connection %s", host.HostName)
@ -336,6 +338,9 @@ func (c *BackyConfigFile) closeHostConnections() {
}
}
for _, proxyHost := range host.ProxyHost {
if proxyHost.isProxyHost {
continue
}
if proxyHost.SshClient != nil {
if _, err := host.SshClient.NewSession(); err == nil {
c.Logger.Info().Msgf("Closing connection to proxy host %s", host.HostName)
@ -344,4 +349,12 @@ func (c *BackyConfigFile) closeHostConnections() {
}
}
}
for _, host := range c.Hosts {
if host.SshClient != nil {
if _, err := host.SshClient.NewSession(); err == nil {
c.Logger.Info().Msgf("Closing proxy host connection %s", host.HostName)
host.SshClient.Close()
}
}
}
}

@ -392,6 +392,7 @@ func (remoteConfig *Host) GetProxyJumpConfig(hosts map[string]*Host) error {
remoteConfig.GetHostName()
remoteConfig.CombineHostNameWithPort()
remoteConfig.GetSshUserFromConfig()
remoteConfig.isProxyHost = true
if remoteConfig.HostName == "" {
return errors.Errorf("No hostname found or specified for host %s", remoteConfig.Host)
}

@ -50,6 +50,7 @@ type (
PrivateKeyPassword string `yaml:"privatekeypassword,omitempty"`
useDefaultConfig bool
User string `yaml:"user,omitempty"`
isProxyHost bool
// ProxyHost holds the configuration for a ProxyJump host
ProxyHost []*Host
// CertPath string `yaml:"cert_path,omitempty"`

Loading…
Cancel
Save