Skip to content

Commit

Permalink
Merge pull request #676 from DeveloperJim/master
Browse files Browse the repository at this point in the history
Mesos IP问题修复
  • Loading branch information
DeveloperJim authored Dec 1, 2020
2 parents 30bfe37 + e95ebb5 commit 6dab325
Show file tree
Hide file tree
Showing 34 changed files with 147 additions and 8,642 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
*exvim*
build/
*vendor*
*go.sum
79 changes: 2 additions & 77 deletions bcs-common/common/util/check.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,11 @@ package util
import (
"encoding/json"
"fmt"

"github.com/Tencent/bk-bcs/bcs-common/common/types"
)

// CheckKind check object if expected
func CheckKind(kind types.BcsDataType, by []byte) error {
var meta *types.TypeMeta

Expand All @@ -32,81 +34,4 @@ func CheckKind(kind types.BcsDataType, by []byte) error {
}

return nil
/*switch kind {
case types.BcsDataType_APP:
var obj types.ReplicaController
err = json.Unmarshal(by, &obj)
if err != nil {
break
}
if obj.Kind != types.BcsDataType_APP {
err = fmt.Errorf("Kind %s is invalid", obj.Kind)
}
case types.BcsDataType_PROCESS:
var obj types.ReplicaController
err = json.Unmarshal(by, &obj)
if err != nil {
break
}
if obj.Kind != types.BcsDataType_PROCESS {
err = fmt.Errorf("Kind %s is invalid", obj.Kind)
}
case types.BcsDataType_DEPLOYMENT:
var obj types.BcsDeployment
err = json.Unmarshal(by, &obj)
if err != nil {
break
}
if obj.Kind != types.BcsDataType_DEPLOYMENT {
err = fmt.Errorf("Kind %s is invalid", obj.Kind)
}
case types.BcsDataType_SERVICE:
var obj types.BcsService
err = json.Unmarshal(by, &obj)
if err != nil {
break
}
if obj.Kind != types.BcsDataType_SERVICE {
err = fmt.Errorf("Kind %s is invalid", obj.Kind)
}
case types.BcsDataType_CONFIGMAP:
var obj types.BcsConfigMap
err = json.Unmarshal(by, &obj)
if err != nil {
break
}
if obj.Kind != types.BcsDataType_CONFIGMAP {
err = fmt.Errorf("Kind %s is invalid", obj.Kind)
}
case types.BcsDataType_SECRET:
var obj types.BcsSecret
err = json.Unmarshal(by, &obj)
if err != nil {
break
}
if obj.Kind != types.BcsDataType_SECRET {
err = fmt.Errorf("Kind %s is invalid", obj.Kind)
}
default:
return fmt.Errorf("Kind %s is invalid", kind)
}*/

//return err
}
5 changes: 2 additions & 3 deletions bcs-common/common/util/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,10 @@ package util

import (
goflag "flag"
"github.com/Tencent/bk-bcs/bcs-common/common/version"
"os"
"strings"

//"github.com/golang/glog"
"os"
"github.com/Tencent/bk-bcs/bcs-common/common/version"

"github.com/spf13/pflag"
)
Expand Down
67 changes: 45 additions & 22 deletions bcs-common/common/util/net.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,42 +16,65 @@ package util
import "net"

var (
_, classA, _ = net.ParseCIDR("10.0.0.0/8")
_, classA1, _ = net.ParseCIDR("9.0.0.0/8")
_, classAa, _ = net.ParseCIDR("100.64.0.0/10")
_, classB, _ = net.ParseCIDR("172.16.0.0/12")
_, classC, _ = net.ParseCIDR("192.168.0.0/16")
_, classA, _ = net.ParseCIDR("10.0.0.0/8")
_, classB, _ = net.ParseCIDR("172.16.0.0/12")
_, classC, _ = net.ParseCIDR("192.168.0.0/16")
)

//GetIPAddress get local usable inner ip address
func GetIPAddress() (addrList []string) {
// check eth1 and eth0 first, if no IP address from eth1 and eth0,
// try to filter all network interface with private address
func GetIPAddress() string {
//try eth1 first
eth1Addr := getInterfaceIPv4Addr("eth1")
if len(eth1Addr) != 0 {
return eth1Addr
}
//try eth0
eth0Addr := getInterfaceIPv4Addr("eth0")
if len(eth0Addr) != 0 {
return eth0Addr
}
//try all private network address
addrs, err := net.InterfaceAddrs()
if err != nil {
return addrList
return ""
}
for _, addr := range addrs {
if ip, ok := addr.(*net.IPNet); ok && !ip.IP.IsLoopback() && ip.IP.To4() != nil {
if classA.Contains(ip.IP) {
addrList = append(addrList, ip.IP.String())
continue
}
if classA1.Contains(ip.IP) {
addrList = append(addrList, ip.IP.String())
continue
}
if classAa.Contains(ip.IP) {
addrList = append(addrList, ip.IP.String())
continue
return ip.IP.String()
}
if classB.Contains(ip.IP) {
addrList = append(addrList, ip.IP.String())
continue
return ip.IP.String()
}
if classC.Contains(ip.IP) {
addrList = append(addrList, ip.IP.String())
continue
return ip.IP.String()
}
}
}
return addrList
return ""
}

//getInterfaceIPv4Addr get specified network interface IPv4 address
// if interface has multiple available IP addresses and already UP
// just return the first one
func getInterfaceIPv4Addr(name string) string {
itf, err := net.InterfaceByName(name)
if err != nil {
return ""
}
if (itf.Flags & net.FlagUp) == 0 {
return ""
}
addrs, err := itf.Addrs()
if err != nil {
return ""
}
for _, addr := range addrs {
if ip, ok := addr.(*net.IPNet); ok && !ip.IP.IsLoopback() && ip.IP.To4() != nil {
return ip.IP.String()
}
}
return ""
}
Loading

0 comments on commit 6dab325

Please sign in to comment.