2f119478af
Funciones bash para instalar, conectar, desconectar, estado, IP, ciudades, países y protocolo. Funciones Go para gestionar contenedor NordVPN (run/start/stop) y parsear estado. Incluye tipo NordVPNStatus y tests para el parser. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
30 lines
750 B
Go
30 lines
750 B
Go
package infra
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// NordVPNContainerStop detiene y elimina el container gateway NordVPN.
|
|
// Tambien detiene containers que usen su red si se proporcionan.
|
|
func NordVPNContainerStop(gateway string, clientNames ...string) error {
|
|
if gateway == "" {
|
|
gateway = "nordvpn"
|
|
}
|
|
|
|
// Primero parar los clientes que usan la red del gateway
|
|
for _, name := range clientNames {
|
|
_ = DockerStopContainer(name, 5)
|
|
_ = DockerRemoveContainer(name, true)
|
|
}
|
|
|
|
// Parar y eliminar el gateway
|
|
if err := DockerStopContainer(gateway, 10); err != nil {
|
|
return fmt.Errorf("nordvpn container stop: %w", err)
|
|
}
|
|
if err := DockerRemoveContainer(gateway, true); err != nil {
|
|
return fmt.Errorf("nordvpn container remove: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|