Make host connections close last
This commit is contained in:
		| @@ -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"` | ||||
|   | ||||
		Reference in New Issue
	
	Block a user