hostman: work with ovn-controller already in container

This commit is contained in:
Yousong Zhou
2020-02-28 11:43:12 +08:00
parent 681fee1317
commit 3861bb6bc1
+22 -1
View File
@@ -16,6 +16,7 @@ package hostinfo
import (
"fmt"
"os"
"yunion.io/x/pkg/errors"
@@ -49,7 +50,9 @@ func (oh *OvnHelper) Init() (err error) {
}
}()
oh.mustPrepOvsdbConfig()
oh.mustPrepService()
if _, ok := ovnContainerImageTag(); !ok {
oh.mustPrepService()
}
return nil
}
@@ -113,6 +116,9 @@ func (oh *OvnHelper) mustPrepService() {
}
func MustGetOvnVersion() string {
if tag, _ := ovnContainerImageTag(); tag != "" {
return tag
}
output, err := procutils.NewRemoteCommandAsFarAsPossible("ovn-controller", "--version").Output()
if err != nil {
return ""
@@ -121,6 +127,9 @@ func MustGetOvnVersion() string {
}
func HasOvnSupport() bool {
if OvnControllerInsideContainer() {
return true
}
ver := MustGetOvnVersion()
if ver != "" {
return true
@@ -128,6 +137,18 @@ func HasOvnSupport() bool {
return false
}
func OvnControllerInsideContainer() bool {
tag, _ := ovnContainerImageTag()
if tag != "" {
return true
}
return false
}
func ovnContainerImageTag() (string, bool) {
return os.LookupEnv("OVN_CONTAINER_IMAGE_TAG")
}
func ovnExtractVersion(in string) string {
r := make([]rune, 0, 8)
var (