updated join logic

if join fails, don't try to leave as authentication will fail --- just
    wipe
This commit is contained in:
Matthew R. Kasun 2022-06-20 10:37:31 -04:00
parent 2720c64ac7
commit 4bc04d5922
6 changed files with 10 additions and 21 deletions

View file

@ -36,7 +36,7 @@ func GetCommands(cliFlags []cli.Flag) []*cli.Command {
if err != nil { if err != nil {
return err return err
} }
err = command.Leave(&cfg, c.String("force") == "yes") err = command.Leave(&cfg)
return err return err
}, },
}, },

View file

@ -180,12 +180,6 @@ func GetFlags(hostname string) []cli.Flag {
Value: "yes", Value: "yes",
Usage: "Checks for IP changes if 'yes'. Ignores if 'no'. Yes by default.", Usage: "Checks for IP changes if 'yes'. Ignores if 'no'. Yes by default.",
}, },
&cli.StringFlag{
Name: "force",
EnvVars: []string{"NETCLIENT_FORCE"},
Value: "no",
Usage: "Allows to run the command with force, if otherwise prevented.",
},
&cli.BoolFlag{ &cli.BoolFlag{
Name: "verbosity-level-1", Name: "verbosity-level-1",
Aliases: []string{"v"}, Aliases: []string{"v"},

View file

@ -20,13 +20,10 @@ func Join(cfg *config.ClientConfig, privateKey string) error {
err = functions.JoinNetwork(cfg, privateKey) err = functions.JoinNetwork(cfg, privateKey)
if err != nil { if err != nil {
if !strings.Contains(err.Error(), "ALREADY_INSTALLED") { if !strings.Contains(err.Error(), "ALREADY_INSTALLED") {
logger.Log(1, "error installing: ", err.Error()) logger.Log(0, "error installing: ", err.Error())
err = functions.LeaveNetwork(cfg.Network, true) err = functions.WipeLocal(cfg.Network)
if err != nil { if err != nil {
err = functions.WipeLocal(cfg.Network) logger.Log(1, "error removing artifacts: ", err.Error())
if err != nil {
logger.Log(1, "error removing artifacts: ", err.Error())
}
} }
if cfg.Daemon != "off" { if cfg.Daemon != "off" {
if ncutils.IsLinux() { if ncutils.IsLinux() {
@ -39,8 +36,6 @@ func Join(cfg *config.ClientConfig, privateKey string) error {
daemon.RemoveFreebsdDaemon() daemon.RemoveFreebsdDaemon()
} }
} }
} else {
logger.Log(0, "success")
} }
if err != nil && strings.Contains(err.Error(), "ALREADY_INSTALLED") { if err != nil && strings.Contains(err.Error(), "ALREADY_INSTALLED") {
logger.Log(0, err.Error()) logger.Log(0, err.Error())
@ -54,8 +49,8 @@ func Join(cfg *config.ClientConfig, privateKey string) error {
} }
// Leave - runs the leave command from cli // Leave - runs the leave command from cli
func Leave(cfg *config.ClientConfig, force bool) error { func Leave(cfg *config.ClientConfig) error {
err := functions.LeaveNetwork(cfg.Network, force) err := functions.LeaveNetwork(cfg.Network)
if err != nil { if err != nil {
logger.Log(1, "error attempting to leave network "+cfg.Network) logger.Log(1, "error attempting to leave network "+cfg.Network)
} else { } else {

View file

@ -127,7 +127,7 @@ func Uninstall() error {
logger.Log(1, "continuing uninstall without leaving networks") logger.Log(1, "continuing uninstall without leaving networks")
} else { } else {
for _, network := range networks { for _, network := range networks {
err = LeaveNetwork(network, true) err = LeaveNetwork(network)
if err != nil { if err != nil {
logger.Log(1, "Encounter issue leaving network ", network, ": ", err.Error()) logger.Log(1, "Encounter issue leaving network ", network, ": ", err.Error())
} }
@ -151,7 +151,7 @@ func Uninstall() error {
} }
// LeaveNetwork - client exits a network // LeaveNetwork - client exits a network
func LeaveNetwork(network string, force bool) error { func LeaveNetwork(network string) error {
cfg, err := config.ReadConfig(network) cfg, err := config.ReadConfig(network)
if err != nil { if err != nil {
return err return err

View file

@ -65,7 +65,7 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
case models.NODE_DELETE: case models.NODE_DELETE:
logger.Log(0, "received delete request for %s", nodeCfg.Node.Name) logger.Log(0, "received delete request for %s", nodeCfg.Node.Name)
unsubscribeNode(client, &nodeCfg) unsubscribeNode(client, &nodeCfg)
if err = LeaveNetwork(nodeCfg.Node.Network, true); err != nil { if err = LeaveNetwork(nodeCfg.Node.Network); err != nil {
if !strings.Contains("rpc error", err.Error()) { if !strings.Contains("rpc error", err.Error()) {
logger.Log(0, "failed to leave, please check that local files for network", nodeCfg.Node.Network, "were removed") logger.Log(0, "failed to leave, please check that local files for network", nodeCfg.Node.Network, "were removed")
return return

View file

@ -147,7 +147,7 @@ func leave(network string) {
ShowView(Networks) ShowView(Networks)
}, func() { }, func() {
LoadingNotify() LoadingNotify()
err := functions.LeaveNetwork(network, true) err := functions.LeaveNetwork(network)
if err != nil { if err != nil {
ErrorNotify("Failed to leave " + network + " : " + err.Error()) ErrorNotify("Failed to leave " + network + " : " + err.Error())
} else { } else {