Jelajahi Sumber

更新获取IP的方式

lijian 6 tahun lalu
induk
melakukan
d1a828f7ec

+ 1 - 1
pkg/generator/key_gen.go

@@ -65,7 +65,7 @@ func NewKeyGenerator(key string) (*KeyGenerator, error) {
 	}, nil
 }
 
-func (g *KeyGenerator) GenRandomKey(id uint) (string, error) {
+func (g *KeyGenerator) GenRandomKey(id int64) (string, error) {
 	buf := make([]byte, maxEncodeLen-binary.Size(id)-aes.BlockSize)
 	if _, err := io.ReadFull(rand.Reader, buf); err != nil {
 		return "", nil

+ 1 - 1
pkg/generator/key_gen_test.go

@@ -9,7 +9,7 @@ func TestKeyGen(t *testing.T) {
 	if err == nil {
 		t.Error("should return error when key length is invalid")
 	}
-	testid := int64(10000)
+	testid := int64(1)
 	generator, err = NewKeyGenerator("ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP")
 	if err != nil {
 		t.Fatal(err)

+ 5 - 14
pkg/server/netif.go

@@ -44,33 +44,24 @@ func isInternalIP(ip string) bool {
 
 //read server IP
 func readNetInterfaces() {
-	interfaces, err := net.Interfaces()
+	addrs, err := net.InterfaceAddrs()
 	if err != nil {
+
 		return
 	}
 
-	for _, inter := range interfaces {
-		addr, err := inter.Addrs()
-		if err != nil {
-			continue
-		}
-
-		if !strings.Contains(inter.Name, "eth") {
-			continue
-		}
+	for _, inter := range addrs {
 
-		if len(addr) == 0 {
+		if len(inter.String()) == 0 {
 			continue
 		}
-
-		ip := strings.Split(addr[0].String(), "/")[0]
+		ip := strings.Split(inter.String(), "/")[0]
 		if isInternalIP(ip) {
 			InternalIP = ip
 		} else {
 			ExternalIP = ip
 		}
 	}
-
 	return
 }
 

+ 3 - 3
run.sh

@@ -4,15 +4,15 @@ sudo killall -9 httpaccess registry apiprovider devicemanager controller mqttacc
 
 # start services
 #$GOPATH/bin/httpaccess -etcd http://localhost:2379 -httphost internal:443 -loglevel debug -usehttps -keyfile $GOPATH/src/github.com/PandoCloud/pando-cloud/pkg/server/testdata/key.pem -cafile $GOPATH/src/github.com/PandoCloud/pando-cloud/pkg/server/testdata/cert.pem &
-$GOPATH/bin/httpaccess -etcd http://192.168.175.60:2379 -httphost localhost:8088 -loglevel debug &
+$GOPATH/bin/httpaccess -etcd http://192.168.175.60:2379 -httphost internal:8088 -loglevel debug &
 $GOPATH/bin/registry -etcd http://192.168.175.60:2379 -rpchost localhost:20034 -aeskey ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP -dbhost 192.168.175.60 -dbname SparrowCloud -dbport 3306 -dbuser SparrowCloud -dbpass 123456 -loglevel debug &
 $GOPATH/bin/apiprovider -etcd http://192.168.175.60:2379 -loglevel debug  -httphost localhost:8888 &
 $GOPATH/bin/devicemanager -etcd http://192.168.175.60:2379 -loglevel debug  -rpchost localhost:20033 &
 $GOPATH/bin/controller -etcd http://192.168.175.60:2379 -loglevel debug  -rpchost localhost:20032 &
 #$GOPATH/bin/mqttaccess -etcd http://localhost:2379 -loglevel debug  -rpchost localhost:20030 -tcphost internal:1883 -usetls -keyfile $GOPATH/src/github.com/PandoCloud/pando-cloud/pkg/server/testdata/key.pem -cafile $GOPATH/src/github.com/PandoCloud/pando-cloud/pkg/server/testdata/cert.pem &
-$GOPATH/bin/mqttaccess -etcd http://192.168.175.60:2379 -loglevel debug  -rpchost localhost:20030 -tcphost 0.0.0.0:1883  &
+$GOPATH/bin/mqttaccess -etcd http://192.168.175.60:2379 -loglevel debug  -rpchost localhost:20030 -tcphost internal:1883  &
 $GOPATH/bin/knowoapi -etcd http://192.168.175.60:2379 -loglevel debug  -httphost localhost:8889 -dbhost 192.168.175.60 -dbname SparrowCloud -dbport 3306 -dbuser SparrowCloud -dbpass 123456 -aeskey ABCDEFGHIJKLMNOPABCDEFGHIJKLMNOP &
-$GOPATH/bin/fileaccess -etcd http://192.168.175.60:2379 -loglevel debug  -rpchost localhost:20035 -httphost localhost:9000
+$GOPATH/bin/fileaccess -etcd http://192.168.175.60:2379 -loglevel debug  -rpchost localhost:20035 -httphost localhost:9000 &
 exit 0
 
 

+ 1 - 1
services/devicemanager/flags.go

@@ -7,7 +7,7 @@ import (
 const (
 	flagRedisHost = "redishost"
 
-	defaultRedisHost = "localhost:6379"
+	defaultRedisHost = "192.168.175.60:6379"
 )
 
 var (

+ 1 - 1
services/knowoapi/model/alert.go

@@ -20,7 +20,7 @@ func (a *Alert) Init(db *gorm.DB) *Alert {
 
 // Create create a alert rule
 func (a *Alert) Create(alert *models.AlarmRule) error {
-	err := a.db.Create(alert).Error
+	err := a.db.Save(alert).Error
 	if err == nil {
 		cache := getCache()
 		key := fmt.Sprintf("Alert:%d", alert.ID)

+ 1 - 1
services/knowoapi/model/application.go

@@ -23,7 +23,7 @@ func (a *Application) Create(app *models.Application) error {
 	cache := getCache()
 	key := fmt.Sprintf("Application:%s", app.AppKey)
 	cache.Set(key, app)
-	return a.db.Create(app).Error
+	return a.db.Save(app).Error
 }
 
 //Delete 删除

+ 1 - 1
services/knowoapi/model/protocal.go

@@ -22,7 +22,7 @@ func (a *Protocal) Init(db *gorm.DB) *Protocal {
 func (a *Protocal) Create(ptl *models.Protocal) error {
 	cache := getCache()
 	key := fmt.Sprintf("Protocal:%d", ptl.ID)
-	err := a.db.Create(ptl).Error
+	err := a.db.Save(ptl).Error
 	if err != nil {
 		return err
 	}

+ 1 - 1
services/knowoapi/model/user.go

@@ -29,7 +29,7 @@ func (a *User) Init(_db *gorm.DB) *User {
 
 // Create create
 func (a *User) Create(user *models.User) error {
-	return a.db.Create(user).Error
+	return a.db.Save(user).Error
 }
 
 // LoginCheck 登陆检测

+ 1 - 1
services/knowoapi/model/vendor.go

@@ -19,7 +19,7 @@ func (a *Vendor) Init(db *gorm.DB) *Vendor {
 
 // Create 增加
 func (a *Vendor) Create(vendor *models.Vendor) error {
-	return a.db.Create(vendor).Error
+	return a.db.Save(vendor).Error
 }
 
 // Delete delete

+ 5 - 1
services/knowoapi/services/application.go

@@ -39,7 +39,11 @@ func (a appService) Create(app *models.Application) error {
 	if count > 1 {
 		return errors.New("一个厂商只能创建一个app")
 	}
-	app.AppKey, _ = a.keyGen.GenRandomKey(app.ID)
+	err = a.model.Application.Create(app)
+	if err != nil {
+		return err
+	}
+	app.AppKey, _ = a.keyGen.GenRandomKey(int64(app.ID))
 	return a.model.Application.Create(app)
 }
 

+ 5 - 1
services/knowoapi/services/product.go

@@ -31,7 +31,11 @@ func NewProductService(pm *model.All, gen *generator.KeyGenerator) ProductServic
 	}
 }
 func (p *productService) Create(product *models.Product) error {
-	product.ProductKey, _ = p.keyGen.GenRandomKey(product.ID)
+	err := p.model.Product.Create(product)
+	if err != nil {
+		return err
+	}
+	product.ProductKey, _ = p.keyGen.GenRandomKey(int64(product.ID))
 	return p.model.Product.Create(product)
 }
 

+ 2 - 2
services/knowoapi/services/user.go

@@ -44,7 +44,7 @@ func (a userservice) Login(user *models.LoginRequest) (bool, *models.User, error
 
 func (a userservice) Register(user *models.Reqrequest) (*models.User, error) {
 	_u := &models.User{}
-	_u.UserKey, _ = a.keyGen.GenRandomKey(_u.ID)
+	_u.UserKey, _ = a.keyGen.GenRandomKey(int64(_u.ID))
 	_u.UserPass = utils.Md5(user.PassWord + model.SignedString)
 	_u.UserName = user.UserName
 	_u.Phone = user.Phone
@@ -52,7 +52,7 @@ func (a userservice) Register(user *models.Reqrequest) (*models.User, error) {
 	vedor := &models.Vendor{
 		VendorName: user.VendorName,
 	}
-	vedor.VendorKey, _ = a.keyGen.GenRandomKey(vedor.ID)
+	vedor.VendorKey, _ = a.keyGen.GenRandomKey(int64(vedor.ID))
 	err := a.model.Vendor.Create(vedor)
 	if err != nil {
 		return nil, err

+ 2 - 1
services/registry/product.go

@@ -21,7 +21,7 @@ func (r *Registry) SaveProduct(product *models.Product, reply *models.Product) e
 			return err
 		}
 
-		key, err := r.keygen.GenRandomKey(product.ID)
+		key, err := r.keygen.GenRandomKey(int64(product.ID))
 		if err != nil {
 			return err
 		}
@@ -100,6 +100,7 @@ func (r *Registry) ValidateProduct(key string, reply *models.Product) error {
 	}
 
 	id, err := r.keygen.DecodeIdFromRandomKey(key)
+	server.Log.Debug(id)
 	if err != nil {
 		return err
 	}

+ 3 - 3
services/registry/registry.go

@@ -91,7 +91,7 @@ func (r *Registry) SaveVendor(vendor *models.Vendor, reply *models.Vendor) error
 			return err
 		}
 
-		key, err := r.keygen.GenRandomKey(vendor.ID)
+		key, err := r.keygen.GenRandomKey(int64(vendor.ID))
 		if err != nil {
 			return err
 		}
@@ -130,7 +130,7 @@ func (r *Registry) SaveApplication(app *models.Application, reply *models.Applic
 			return err
 		}
 
-		key, err := r.keygen.GenRandomKey(app.ID)
+		key, err := r.keygen.GenRandomKey(int64(app.ID))
 		if err != nil {
 			return err
 		}
@@ -287,7 +287,7 @@ func (r *Registry) RegisterDevice(args *rpcs.ArgsDeviceRegister, reply *models.D
 			return err
 		}
 		// generate a random device key with hex encoding.
-		reply.DeviceKey, err = r.keygen.GenRandomKey(reply.ID)
+		reply.DeviceKey, err = r.keygen.GenRandomKey(int64(reply.ID))
 		if err != nil {
 			return err
 		}

+ 2 - 2
services/registry/registry_test.go

@@ -212,7 +212,7 @@ func TestRegistry(t *testing.T) {
 	}
 
 	//testVendor(t, r)
-	//testProduct(t, r)
+	testProduct(t, r)
 	//testApplication(t, r)
-	testDevice(t, r)
+	//testDevice(t, r)
 }

TEMPAT SAMPAH
tests/device/device


+ 2 - 2
tests/device/main.go

@@ -6,8 +6,8 @@ import (
 )
 
 var (
-	TestUrl        = flag.String("url", "https://localhost", "login url")
-	TestProductKey = flag.String("productkey", "", "product key")
+	TestUrl        = flag.String("url", "http://192.168.175.60:8088", "login url")
+	TestProductKey = flag.String("productkey", "99b11b395c84435202692e36dada175c7af9452038a62a40b230b5e18b7d51ff", "product key")
 )
 
 func main() {