github.com/jingruilea/kubeedge@v1.2.0-beta.0.0.20200410162146-4bb8902b3879/edge/test/integration/utils/test_setup.go (about)

     1  package utils
     2  
     3  import (
     4  	"fmt"
     5  	"io/ioutil"
     6  	"os"
     7  	"os/exec"
     8  	"strings"
     9  	"time"
    10  
    11  	"sigs.k8s.io/yaml"
    12  
    13  	edgecore "github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha1"
    14  )
    15  
    16  const (
    17  	EdgeCoreConfigFile    = "/tmp/edgecore.yaml"
    18  	CatEdgeCoreConfigFile = "cat /tmp/edgecore.yaml"
    19  	RunEdgecore           = "sudo pkill -9 edgecore; cd ${GOPATH}/src/github.com/kubeedge/kubeedge/_output/local/bin/; sudo nohup ./edgecore --config=" + EdgeCoreConfigFile + " > edgecore.log 2>&1 &"
    20  	CheckEdgecore         = "sudo pgrep edgecore"
    21  	CatEdgecoreLog        = "cd ${GOPATH}/src/github.com/kubeedge/kubeedge/_output/local/bin/; cat edgecore.log"
    22  	DBFile                = "/tmp/edgecore/edgecore.db"
    23  )
    24  
    25  func CreateEdgeCoreConfigFile(nodeName string) error {
    26  	c := edgecore.NewDefaultEdgeCoreConfig()
    27  	c.Modules.Edged.HostnameOverride = nodeName
    28  	c.Modules.EdgeHub.TLSCAFile = "/tmp/edgecore/rootCA.crt"
    29  	c.Modules.EdgeHub.TLSCertFile = "/tmp/edgecore/kubeedge.crt"
    30  	c.Modules.EdgeHub.TLSPrivateKeyFile = "/tmp/edgecore/kubeedge.key"
    31  	c.Modules.EventBus.Enable = true
    32  	c.Modules.EventBus.MqttMode = edgecore.MqttModeInternal
    33  	c.Modules.DBTest.Enable = true
    34  	c.DataBase.DataSource = DBFile
    35  
    36  	data, err := yaml.Marshal(c)
    37  	if err != nil {
    38  		fmt.Printf("Marshal edgecore config to yaml error %v\n", err)
    39  		os.Exit(1)
    40  	}
    41  	if err := ioutil.WriteFile(EdgeCoreConfigFile, data, os.ModePerm); err != nil {
    42  		fmt.Printf("Create edgecore config file %v error %v\n", EdgeCoreConfigFile, err)
    43  		os.Exit(1)
    44  	}
    45  	return nil
    46  }
    47  
    48  func StartEdgeCore() error {
    49  	//Run ./edgecore after node registration
    50  	cmd := exec.Command("sh", "-c", RunEdgecore)
    51  	if err := PrintCombinedOutput(cmd); err != nil {
    52  		return err
    53  	}
    54  	//Expect(err).Should(BeNil())
    55  	time.Sleep(5 * time.Second)
    56  
    57  	catConfigcmd := exec.Command("sh", "-c", CatEdgeCoreConfigFile)
    58  	fmt.Printf("===========> Executing: %s\n", strings.Join(catConfigcmd.Args, " "))
    59  	cbytes, _ := catConfigcmd.CombinedOutput()
    60  	fmt.Printf("config content:\n %v", string(cbytes))
    61  
    62  	checkcmd := exec.Command("sh", "-c", CheckEdgecore)
    63  	if err := PrintCombinedOutput(checkcmd); err != nil {
    64  		catcmd := exec.Command("sh", "-c", CatEdgecoreLog)
    65  		fmt.Printf("===========> Executing: %s\n", strings.Join(catcmd.Args, " "))
    66  		bytes, _ := catcmd.CombinedOutput()
    67  		fmt.Printf("edgecore log:\n %v", string(bytes))
    68  		fmt.Printf("edgecore started error %v\n", err)
    69  		os.Exit(1)
    70  	}
    71  	return nil
    72  }
    73  
    74  // PrintCombinedOutput to show the os command injuction in combined format
    75  func PrintCombinedOutput(cmd *exec.Cmd) error {
    76  	fmt.Printf("===========> Executing: %s\n", strings.Join(cmd.Args, " "))
    77  	output, err := cmd.CombinedOutput()
    78  	if err != nil {
    79  		fmt.Printf("CombinedOutput failed %v\n", err)
    80  		return err
    81  	}
    82  	if len(output) > 0 {
    83  		fmt.Printf("=====> Output: %s\n", string(output))
    84  	}
    85  	return nil
    86  }