Commit 8c563a42 authored by Yann Garcia's avatar Yann Garcia
Browse files

Implement MEC-DEC GR 067 Round1 (NEM interface)

parent db1e0166
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@ image:
  pullPolicy: Always
  env:
    MEEP_SVC_PATH: /platform-ctrl/v1
    MEEP_NW_SIMULATOR_TYPE: internal
    MEEP_NEM_URL: ""
    MEEP_NEM_TIMEOUT_MS: "3000"
  envSecret:

service:
+3 −0
Original line number Diff line number Diff line
@@ -34,6 +34,9 @@ image:
    MEEP_OAUTH_GITHUB_ENABLED: ""
    MEEP_OAUTH_GITHUB_AUTH_URL: ""
    MEEP_OAUTH_GITHUB_POLL_URL: ""
    MEEP_NW_SIMULATOR_TYPE: internal
    MEEP_NEM_URL: ""
    MEEP_NEM_TIMEOUT_MS: "3000"
  envSecret:
    MEEP_SESSION_KEY:
      name: meep-session
+2 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ require (
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-metrics v0.0.0
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-model v0.0.0
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-mq v0.0.0
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-nw-simu-catalog v0.0.0
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis v0.0.0
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-sandbox-store v0.0.0
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-swagger-api-mgr v0.0.0
@@ -33,6 +34,7 @@ replace (
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-metrics => ../../go-packages/meep-metrics
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-model => ../../go-packages/meep-model
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-mq => ../../go-packages/meep-mq
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-nw-simu-catalog => ../../go-packages/meep-nw-simu-catalog
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis => ../../go-packages/meep-redis
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-sandbox-store => ../../go-packages/meep-sandbox-store
	github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-swagger-api-mgr => ../../go-packages/meep-swagger-api-mgr
+24 −1
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import (
	log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger"
	mod "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-model"
	mq "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-mq"
	nwcat "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-nw-simu-catalog"
	redis "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis"
	ss "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-sandbox-store"
	sam "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-swagger-api-mgr"
@@ -53,6 +54,7 @@ type PlatformCtrl struct {
	mqGlobal         *mq.MsgQueue
	apiMgr           *sam.SwaggerApiMgr
	garbageCollector *gc.GarbageCollector
	nwCatalog        *nwcat.Client
}

const scenarioDBName = "scenarios"
@@ -83,6 +85,12 @@ func Init() (err error) {
	// Create new Platform Controller
	pfmCtrl = new(PlatformCtrl)

	nwCfg := nwcat.FromEnv()
	pfmCtrl.nwCatalog = nwcat.New(nwCfg, nil)
	log.Info("MEEP_NW_SIMULATOR_TYPE: ", nwCfg.Type)
	log.Info("MEEP_NEM_URL: ", nwCfg.NemURL)
	log.Info("MEEP_NEM_TIMEOUT_MS: ", nwCfg.TimeoutMs)

	// Retrieve Garbage collection configuration from environment variables
	gcEnabledStr := strings.TrimSpace(os.Getenv("MEEP_GC_ENABLED"))
	gcEnabled, err := strconv.ParseBool(gcEnabledStr)
@@ -408,7 +416,17 @@ func pcGetScenario(w http.ResponseWriter, r *http.Request) {
func pcGetScenarioList(w http.ResponseWriter, r *http.Request) {
	log.Debug("pcGetScenarioList")

	// Retrieve scenario list from DB
	var nemList []nwcat.NemScenario
	if pfmCtrl.nwCatalog != nil && pfmCtrl.nwCatalog.Cfg().UsesNem() {
		var nemErr error
		nemList, nemErr = pfmCtrl.nwCatalog.ListNemScenarios(r.Context())
		if nemErr != nil {
			log.Error("NEM scenario catalog: ", nemErr.Error())
			http.Error(w, nemErr.Error(), http.StatusBadGateway)
			return
		}
	}

	_, scenarioList, err := pfmCtrl.scenarioStore.GetDocList()
	if err != nil {
		log.Error(err.Error())
@@ -416,6 +434,11 @@ func pcGetScenarioList(w http.ResponseWriter, r *http.Request) {
		return
	}

	if pfmCtrl.nwCatalog != nil && pfmCtrl.nwCatalog.Cfg().UsesNem() {
		scenarioList = nwcat.MergeNemWithCompanions(nemList, scenarioList)
		log.Info("NEM scenario list size: ", len(scenarioList))
	}

	sl, err := mod.JSONMarshallScenarioList(scenarioList)
	if err != nil {
		log.Error(err.Error())
+11 −5
Original line number Diff line number Diff line
@@ -94,9 +94,11 @@ type SandboxName struct {

var sandboxApiConnectors *SandboxApiConnectors

/**************************************************************************************************************************
/*
*************************************************************************************************************************
// FIXME All the function below shall be done by AuthSvc login procedure. Currently, it is bypassed for the purpose of this PoC
**************************************************************************************************************************/
*************************************************************************************************************************
*/
var postgisUser = "postgres"
var postgisPwd = "pwd"

@@ -756,7 +758,11 @@ func sandboxNetworkScenariosGET(w http.ResponseWriter, r *http.Request) {
	scenarioList, resp, err := sandboxApiConnectors.pfmCtrlClient.ScenarioConfigurationApi.GetScenarioList(context.TODO())
	if err != nil {
		log.Error(err.Error())
		w.WriteHeader(http.StatusBadRequest)
		status := http.StatusBadRequest
		if resp != nil && resp.StatusCode >= 400 {
			status = resp.StatusCode
		}
		w.WriteHeader(status)
		return
	}
	log.Info("sandboxNetworkScenariosGET: resp: ", resp)
Loading