Commit 34f92d89 authored by Michel Roy's avatar Michel Roy Committed by Kevin Di Lallo
Browse files

virt-engine model - runtime

parent 6b63f925
Loading
Loading
Loading
Loading
+5 −11
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ func main() {
		run = false
	}()

	go func() {
	err := server.VirtEngineInit()
	if err != nil {
		log.Error("Failed to initialize Virt. Engine")
@@ -53,11 +52,6 @@ func main() {
		return
	}

		// Start TC Engine Event Handler thread
		server.ListenEvents()
		run = false
	}()

	count := 0
	for {
		if !run {
+103 −103
Original line number Diff line number Diff line
@@ -117,12 +117,12 @@ var serviceMap map[string]string

// Deploy - Generate charts & deploy
func Deploy(model *mod.Model) error {
	//var charts []helm.Chart
	charts, err := generateCharts(model)
	if err != nil {
		log.Debug("Error creating scenario templates: ", err)
		return err
	}
	log.Debug("Created ", len(charts), " charts")

	err = deployCharts(charts)
	if err != nil {
@@ -136,8 +136,9 @@ func Deploy(model *mod.Model) error {
func generateCharts(model *mod.Model) (charts []helm.Chart, err error) {
	serviceMap = map[string]string{}

	procNames := model.GetNodeNames("PROCESS")

	procNames := model.GetNodeNames("CLOUD-APP")
	procNames = append(procNames, model.GetNodeNames("EDGE-APP")...)
	procNames = append(procNames, model.GetNodeNames("UE-APP")...)
	for _, name := range procNames {
		node := model.GetNode(name)
		if node == nil {
@@ -149,6 +150,7 @@ func generateCharts(model *mod.Model) (charts []helm.Chart, err error) {
			err = errors.New("Error casting process: " + name)
			return nil, err
		}

		ctx := model.GetNodeContext(name)
		if ctx == nil {
			err = errors.New("Error getting context for process: " + name)
@@ -212,6 +214,7 @@ func generateCharts(model *mod.Model) (charts []helm.Chart, err error) {
						log.Debug("chart added for user chart group service ", len(charts))
					}
				}
			}
		} else {
			log.Debug("Processing virt-engine chart for element[", proc.Name, "]")

@@ -326,9 +329,6 @@ func generateCharts(model *mod.Model) (charts []helm.Chart, err error) {
			charts = append(charts, newChart)
			log.Debug("chart added ", len(charts))
		}

		}

	}

	return charts, nil
+15 −11
Original line number Diff line number Diff line
@@ -61,38 +61,39 @@ func VirtEngineInit() (err error) {
		log.Error("Failed to create model: ", err.Error())
		return err
	}

	return nil
}

// ListenEvents - Listen for model updates
func ListenEvents() {
	err := activeModel.Listen(eventHandler)
	err = activeModel.Listen(eventHandler)
	if err != nil {
		log.Error("Failed to listening for model updates: ", err.Error())
	}

	return nil
}

func eventHandler(channel string, payload string) {
	// Handle Message according to Rx Channel
	switch channel {

	// MEEP Ctrl Engine active scenario update event
	case mod.ActiveScenarioEvents:
		processActiveScenarioUpdate()
		processActiveScenarioUpdate(payload)

	default:
		log.Warn("Unsupported channel event: ", channel)
	}
}

func processActiveScenarioUpdate() {
	if !activeModel.Active {
func processActiveScenarioUpdate(event string) {
	if event == "TERMINATE" {
		terminateScenario(activeScenarioName)
		activeScenarioName = ""
	} else {
	} else if event == "ACTIVATE" {
		// Cache name for later deletion
		activeScenarioName = activeModel.GetScenarioName()
		activateScenario()
	} else if event == "UPDATE" {
		log.Debug("Reveived UPDATE event - do nothing")
	} else {
		log.Warn("Reveived unknown event: " + event)
	}
}

@@ -105,6 +106,9 @@ func activateScenario() {
}

func terminateScenario(name string) {
	if name == "" {
		return
	}
	// Retrieve list of releases
	rels, _ := helm.GetReleasesName()
	var toDelete []helm.Chart