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 }