mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 08:47:35 +08:00
fixed hanging ifconfig.me call. Added alternative servers if failure encountered. Cleaned up delete script.
This commit is contained in:
BIN
netclient/functions/.common.go.swp
Normal file
BIN
netclient/functions/.common.go.swp
Normal file
Binary file not shown.
@@ -98,18 +98,10 @@ func Install(accesskey string, password string, server string, group string, noa
|
|||||||
var wginterface string
|
var wginterface string
|
||||||
|
|
||||||
if nodecfg.Endpoint == "" {
|
if nodecfg.Endpoint == "" {
|
||||||
resp, err := http.Get("https://ifconfig.me")
|
endpoint, err = getPublicIP()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
|
||||||
if resp.StatusCode == http.StatusOK {
|
|
||||||
bodyBytes, err := ioutil.ReadAll(resp.Body)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
endpoint = string(bodyBytes)
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
endpoint = nodecfg.Endpoint
|
endpoint = nodecfg.Endpoint
|
||||||
}
|
}
|
||||||
@@ -315,6 +307,34 @@ func Install(accesskey string, password string, server string, group string, noa
|
|||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getPublicIP() (string, error) {
|
||||||
|
|
||||||
|
iplist := []string{"https://ifconfig.me", "http://api.ipify.org", "http://ipinfo.io/ip"}
|
||||||
|
endpoint := ""
|
||||||
|
var err error
|
||||||
|
for _, ipserver := range iplist {
|
||||||
|
resp, err := http.Get(ipserver)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
if resp.StatusCode == http.StatusOK {
|
||||||
|
bodyBytes, err := ioutil.ReadAll(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
endpoint = string(bodyBytes)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if err == nil && endpoint == "" {
|
||||||
|
err = errors.New("Public Address Not Found.")
|
||||||
|
}
|
||||||
|
return endpoint, err
|
||||||
|
}
|
||||||
|
|
||||||
func modConfig(node *nodepb.Node) error{
|
func modConfig(node *nodepb.Node) error{
|
||||||
modconfig := config.Config
|
modconfig := config.Config
|
||||||
modconfig.ReadConfig()
|
modconfig.ReadConfig()
|
||||||
@@ -548,23 +568,6 @@ func retrievePrivKey() (string, error) {
|
|||||||
return string(dat), err
|
return string(dat), err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func getPublicAddr() (string, error) {
|
|
||||||
resp, err := http.Get("https://ifconfig.me")
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
defer resp.Body.Close()
|
|
||||||
endpoint := ""
|
|
||||||
if resp.StatusCode == http.StatusOK {
|
|
||||||
bodyBytes, err := ioutil.ReadAll(resp.Body)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
endpoint = string(bodyBytes)
|
|
||||||
}
|
|
||||||
return endpoint, err
|
|
||||||
}
|
|
||||||
func getPrivateAddr() (string, error) {
|
func getPrivateAddr() (string, error) {
|
||||||
ifaces, err := net.Interfaces()
|
ifaces, err := net.Interfaces()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -620,7 +623,7 @@ func CheckIn() error {
|
|||||||
|
|
||||||
if !nodecfg.RoamingOff {
|
if !nodecfg.RoamingOff {
|
||||||
fmt.Println("Checking to see if addresses have changed")
|
fmt.Println("Checking to see if addresses have changed")
|
||||||
extIP, err := getPublicAddr()
|
extIP, err := getPublicIP()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error encountered checking ip addresses: %v", err)
|
fmt.Printf("Error encountered checking ip addresses: %v", err)
|
||||||
}
|
}
|
||||||
@@ -866,17 +869,17 @@ func Remove() error {
|
|||||||
conn, err := grpc.Dial(servercfg.Address, requestOpts)
|
conn, err := grpc.Dial(servercfg.Address, requestOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Unable to establish client connection to " + servercfg.Address + ": %v", err)
|
log.Printf("Unable to establish client connection to " + servercfg.Address + ": %v", err)
|
||||||
return err
|
//return err
|
||||||
}
|
}else {
|
||||||
wcclient = nodepb.NewNodeServiceClient(conn)
|
wcclient = nodepb.NewNodeServiceClient(conn)
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
fmt.Println("Authenticating with GRPC Server")
|
fmt.Println("Authenticating with GRPC Server")
|
||||||
ctx, err = SetJWT(wcclient)
|
ctx, err = SetJWT(wcclient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
//return err
|
||||||
log.Fatalf("Failed to authenticate: %v", err)
|
log.Printf("Failed to authenticate: %v", err)
|
||||||
}
|
} else {
|
||||||
fmt.Println("Authenticated")
|
fmt.Println("Authenticated")
|
||||||
|
|
||||||
var header metadata.MD
|
var header metadata.MD
|
||||||
@@ -890,23 +893,24 @@ func Remove() error {
|
|||||||
grpc.Header(&header),
|
grpc.Header(&header),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Encountered error deleting node.")
|
log.Printf("Encountered error deleting node: %v", err)
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
//return err
|
} else {
|
||||||
//log.Fatalf("Unable to process Delete request: %v", err)
|
fmt.Println("Deleted node " + node.MacAddress)
|
||||||
}
|
}
|
||||||
fmt.Println("Deleted node " + node.MacAddress)
|
}
|
||||||
|
}
|
||||||
err = WipeLocal()
|
err = WipeLocal()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
//return err
|
|
||||||
log.Printf("Unable to wipe local config: %v", err)
|
log.Printf("Unable to wipe local config: %v", err)
|
||||||
}
|
}
|
||||||
err = RemoveSystemDServices()
|
err = RemoveSystemDServices()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
log.Fatalf("Unable to remove systemd services: %v", err)
|
log.Printf("Unable to remove systemd services: %v", err)
|
||||||
}
|
}
|
||||||
|
fmt.Printf("Please investigate any stated errors to ensure proper removal.")
|
||||||
|
fmt.Printf("Failure to delete node from server via gRPC will mean node still exists and needs to be manually deleted by administrator.")
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@@ -92,6 +92,7 @@ func main() {
|
|||||||
fmt.Println("Beginning node cleanup.")
|
fmt.Println("Beginning node cleanup.")
|
||||||
err := functions.Remove()
|
err := functions.Remove()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
/*
|
||||||
fmt.Println("Error uninstalling: ", err)
|
fmt.Println("Error uninstalling: ", err)
|
||||||
fmt.Println("Wiping local.")
|
fmt.Println("Wiping local.")
|
||||||
err = functions.WipeLocal()
|
err = functions.WipeLocal()
|
||||||
@@ -102,6 +103,7 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error removing services: ", err)
|
fmt.Println("Error removing services: ", err)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
fmt.Println("Error deleting node: ", err)
|
fmt.Println("Error deleting node: ", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user