mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-06 21:24:16 +08:00
reorder register/join
This commit is contained in:
parent
0bebda718e
commit
f5aa1d1e62
7 changed files with 16 additions and 20 deletions
|
@ -1,2 +1 @@
|
||||||
10.0.0.1 testnode.skynet
|
10.0.0.2 testnode.skynet myhost.skynet
|
||||||
10.0.0.2 myhost.skynet
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ func serverHandlers(r *mux.Router) {
|
||||||
// r.HandleFunc("/api/server/addnetwork/{network}", securityCheckServer(true, http.HandlerFunc(addNetwork))).Methods("POST")
|
// r.HandleFunc("/api/server/addnetwork/{network}", securityCheckServer(true, http.HandlerFunc(addNetwork))).Methods("POST")
|
||||||
r.HandleFunc("/api/server/getconfig", securityCheckServer(false, http.HandlerFunc(getConfig))).Methods("GET")
|
r.HandleFunc("/api/server/getconfig", securityCheckServer(false, http.HandlerFunc(getConfig))).Methods("GET")
|
||||||
r.HandleFunc("/api/server/removenetwork/{network}", securityCheckServer(true, http.HandlerFunc(removeNetwork))).Methods("DELETE")
|
r.HandleFunc("/api/server/removenetwork/{network}", securityCheckServer(true, http.HandlerFunc(removeNetwork))).Methods("DELETE")
|
||||||
r.HandleFunc("/api/server/register", nodeauth(http.HandlerFunc(register))).Methods("POST")
|
r.HandleFunc("/api/server/register", authorize(true, false, "node", http.HandlerFunc(register))).Methods("POST")
|
||||||
}
|
}
|
||||||
|
|
||||||
//Security check is middleware for every function and just checks to make sure that its the master calling
|
//Security check is middleware for every function and just checks to make sure that its the master calling
|
||||||
|
|
|
@ -26,7 +26,7 @@ func GetCommands(cliFlags []cli.Flag) []*cli.Command {
|
||||||
err = errors.New("no network provided")
|
err = errors.New("no network provided")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = command.Register(&cfg, pvtKey)
|
err = command.Join(&cfg, pvtKey)
|
||||||
return err
|
return err
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -53,6 +53,7 @@ func Join(cfg *config.ClientConfig, privateKey string) error {
|
||||||
functions.Pull(cfg.Network, true)
|
functions.Pull(cfg.Network, true)
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
config.Write(cfg, cfg.Network)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +119,3 @@ func Daemon() error {
|
||||||
err := functions.Daemon()
|
err := functions.Daemon()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func Register(cfg *config.ClientConfig, key string) error {
|
|
||||||
return functions.Register(cfg, key)
|
|
||||||
}
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ import (
|
||||||
// ClientConfig - struct for dealing with client configuration
|
// ClientConfig - struct for dealing with client configuration
|
||||||
type ClientConfig struct {
|
type ClientConfig struct {
|
||||||
Server ServerConfig `yaml:"server"`
|
Server ServerConfig `yaml:"server"`
|
||||||
|
Registered bool `yaml:"registered"`
|
||||||
Node models.Node `yaml:"node"`
|
Node models.Node `yaml:"node"`
|
||||||
NetworkSettings models.Network `yaml:"networksettings"`
|
NetworkSettings models.Network `yaml:"networksettings"`
|
||||||
Network string `yaml:"network"`
|
Network string `yaml:"network"`
|
||||||
|
|
|
@ -186,7 +186,12 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if cfg.Daemon != "off" {
|
if !cfg.Registered {
|
||||||
|
if err := Register(cfg, privateKey); err != nil {
|
||||||
|
logger.Log(0, "registration failed", err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if cfg.Daemon != "off" && cfg.Registered {
|
||||||
err = daemon.InstallDaemon(cfg)
|
err = daemon.InstallDaemon(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package functions
|
package functions
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"crypto/ed25519"
|
"crypto/ed25519"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
@ -47,7 +46,8 @@ func Register(cfg *config.ClientConfig, key string) error {
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return JoinNetwork(cfg, key)
|
cfg.Registered = true
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// RegisterWithServer calls the register endpoint with privatekey and commonname - api returns ca and client certificate
|
// RegisterWithServer calls the register endpoint with privatekey and commonname - api returns ca and client certificate
|
||||||
|
@ -56,20 +56,14 @@ func RegisterWithServer(private *ed25519.PrivateKey, cfg *config.ClientConfig) e
|
||||||
Key: *private,
|
Key: *private,
|
||||||
CommonName: tls.NewCName(cfg.Node.Name),
|
CommonName: tls.NewCName(cfg.Node.Name),
|
||||||
}
|
}
|
||||||
payload, err := json.Marshal(data)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
url := "https://" + cfg.Server.API + "/api/server/register"
|
url := "https://" + cfg.Server.API + "/api/server/register"
|
||||||
log.Println("register at ", url)
|
log.Println("register at ", url)
|
||||||
request, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(payload))
|
|
||||||
|
token, err := Authenticate(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
request.Header.Set("Content-Type", "application/json")
|
response, err := API(data, http.MethodPut, url, token)
|
||||||
request.Header.Set("authorization", "Bearer "+cfg.Server.AccessKey)
|
|
||||||
client := http.Client{}
|
|
||||||
response, err := client.Do(request)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue