Commit 9b54bb70 authored by Yann Garcia's avatar Yann Garcia
Browse files

Enhance 4g-5g-macro-v2x-fed network scenario; Bugs fixed in meep-federation

parent 91d0969c
Loading
Loading
Loading
Loading
+0 −4
Changes for examples/demo9/golang/go.mod: 0 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -17,11 +17,7 @@ require (
	github.com/magiconair/properties v1.8.0 // indirect
	github.com/mitchellh/mapstructure v1.1.2 // indirect
	github.com/pelletier/go-toml v1.2.0 // indirect
	github.com/spf13/afero v1.1.2 // indirect
	github.com/spf13/cast v1.3.0 // indirect
	github.com/spf13/jwalterweatherman v1.0.0 // indirect
	github.com/spf13/pflag v1.0.3 // indirect
	golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a // indirect
	golang.org/x/text v0.3.0 // indirect
	gopkg.in/yaml.v2 v2.2.2 // indirect
)
+1549 −0

File changed.

Preview size limit exceeded, changes collapsed.

+2 −2
Changes for examples/demo9/golang/main.go: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -1359,8 +1359,8 @@ func process_choice(choice []string) string {
		fmt.Println("message: " + message)

		// Activate the scenario
		scenarioId = 1 // 4g-5g-mv-v2x-fed
		//scenarioId = 2 // 4g-5g-mv-v2x-fed-iot
		//scenarioId = 1 // 4g-5g-mv-v2x-fed
		scenarioId = 2 // 4g-5g-mv-v2x-fed-iot
		scenarioId, err = verify_idx_len(scenarioId, len(scenarios))
		if err != nil {
			return fmt.Sprintf("Invalid index: %s", err.Error())
+16 −2
Changes for go-apps/meep-federation/sbi/federation-sbi.go: 16 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import (
	"context"
	"encoding/json"
	"errors"
	"strings"
	"sync"

	fm "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-federation-mgr"
@@ -322,7 +323,7 @@ func RegisterSystemInfo(requestData SystemInfo) (responseData SystemInfo, err er
		log.Error(err)
		return responseData, err
	}
	err = sbi.federationMgr.PublishMessageOnMessageBroker("", requestData.SystemId) // Remove emtry from brocker
	err = sbi.federationMgr.PublishMessageOnMessageBroker(s, requestData.SystemId) // Remove emtry from brocker
	if err != nil {
		log.Error("Failed to publish message broker server: ", err)
		return responseData, err
@@ -413,7 +414,20 @@ func GetMecServices(host string) (svcs []smc.ServiceInfo, err error) {
	}
	log.Info("GetMecServices: svcs: ", svcs)

	return svcs, nil
	// Extract the services from the specified host
	var l []smc.ServiceInfo = []smc.ServiceInfo{}
	for _, v := range svcs {
		//log.Debug("GetMecServices: processing: ", v)
		if v.Links != nil && v.Links.Self != nil {
			//log.Debug("GetMecServices: processing: v._links=", *v.Links.Self)
			if strings.Contains(v.Links.Self.Href, host) {
				l = append(l, v)
			}
		}
	} // End of 'for' statement
	//log.Debug("GetMecServices: processing: l=", l)

	return l, nil
}

func convertSystemInfotoJson(systemInfo *SystemInfo) string {
+30 −8
Changes for go-apps/meep-federation/server/federation.go: 30 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -174,18 +174,33 @@ func registerService(appInstanceId string) error {
	return nil
}

func getMecServices() ([]smc.ServiceInfo, error) {
func getMecServices(host string) ([]smc.ServiceInfo, error) {
	log.Info(">>> getMecServices: ", host)

	if svcMgmtClient == nil {
		err := errors.New("App Enablement Service Management REST API client not set")
		log.Error(err.Error())
		return nil, err
	}
	appServicesResponse, _, err := svcMgmtClient.MecServiceMgmtApi.ServicesGET(context.TODO(), nil)
	svcs, _, err := svcMgmtClient.MecServiceMgmtApi.ServicesGET(context.TODO(), nil)
	if err != nil {
		log.Error("Failed to retrieve mec services on platform ", err)
		return nil, err
	}
	return appServicesResponse, nil
	// Extract the services from the specified host
	var l []smc.ServiceInfo = []smc.ServiceInfo{}
	for _, v := range svcs {
		//log.Debug("GetMecServices: processing: ", v)
		if v.Links != nil && v.Links.Self != nil {
			//log.Debug("GetMecServices: processing: v._links=", *v.Links.Self)
			if strings.Contains(v.Links.Self.Href, host) {
				l = append(l, v)
			}
		}
	} // End of 'for' statement
	//log.Debug("GetMecServices: processing: l=", l)

	return l, nil
}

func sendReadyConfirmation(appInstanceId string) error {
@@ -833,11 +848,11 @@ func systeminfoGET(w http.ResponseWriter, r *http.Request) {
	systemId := q["systemId"]
	systemName := q["systemName"]
	systemProvider := q["systemProvider"]
	noFilter := len(systemId) != 0 && len(systemName) != 0 && len(systemProvider) != 0
	filter := len(systemId) != 0 || len(systemName) != 0 || len(systemProvider) != 0
	log.Debug("systeminfoGET: systemId: ", systemId)
	log.Debug("systeminfoGET: systemName: ", systemName)
	log.Debug("systeminfoGET: systemProvider: ", systemProvider)
	log.Debug("systeminfoGET: noFilter: ", noFilter)
	log.Debug("systeminfoGET: filter: ", filter)

	log.Debug("systeminfoGET: systemInfopMap: ", systemInfopMap)
	if len(systemInfopMap) == 0 {
@@ -848,7 +863,7 @@ func systeminfoGET(w http.ResponseWriter, r *http.Request) {
		l := []sbi.SystemInfo{}
		for _, val := range systemInfopMap {
			log.Debug("systeminfoGET: processing ", val)
			if noFilter {
			if !filter {
				l = append(l, val)
			} else {
				if len(systemId) != 0 {
@@ -956,6 +971,10 @@ func systeminfoPOST(w http.ResponseWriter, r *http.Request) {
	systemInfopMap[responseData.SystemId] = responseData
	log.Debug("systeminfoPOST: new systemInfopMap: ", systemInfopMap)

	// Populate localSystemInfo
	localSystemInfo = responseData
	log.Debug("systeminfoPOST: new localSystemInfo: ", localSystemInfo)

	// Prepare & send response
	var l = SystemInfo{
		SystemId:       responseData.SystemId,
@@ -1210,7 +1229,7 @@ func serviceGET(w http.ResponseWriter, r *http.Request) {
		return
	} else if localSystemInfo.SystemId == systemIdParamStr { // Local request
		log.Debug("servicesGET: Local request: ", systemIdParamStr)
		services, err = getMecServices()
		services, err = getMecServices(localSystemInfo.Host)
		if err != nil {
			errHandlerProblemDetails(w, err.Error(), http.StatusInternalServerError)
			return
@@ -1304,6 +1323,9 @@ func servicesGET(w http.ResponseWriter, r *http.Request) {
	systemIdParamStr := vars["systemId"]
	log.Debug("servicesGET: systemIdParamStr: ", systemIdParamStr)

	log.Debug("servicesGET: systemInfopMap: ", systemInfopMap)
	log.Debug("servicesGET: localSystemInfo: ", localSystemInfo)

	val, ok := systemInfopMap[systemIdParamStr]
	var services []smc.ServiceInfo
	var err error
@@ -1314,7 +1336,7 @@ func servicesGET(w http.ResponseWriter, r *http.Request) {
		return
	} else if localSystemInfo.SystemId == systemIdParamStr { // Local request
		log.Debug("servicesGET: Local request: ", systemIdParamStr)
		services, err = getMecServices()
		services, err = getMecServices(localSystemInfo.Host)
		if err != nil {
			errHandlerProblemDetails(w, err.Error(), http.StatusInternalServerError)
			return
Loading