Loading go-apps/meep-app-enablement/server/service-mgmt/model_one_of_transport_info_endpoint.go +5 −5 Original line number Diff line number Diff line Loading @@ -24,12 +24,12 @@ package server type OneOfTransportInfoEndpoint struct { Addresses []EndPointInfoAddress `json:"addresses"` Addresses []EndPointInfoAddress `json:"addresses,omitempty"` Host string `json:"host"` Port int32 `json:"port"` Host string `json:"host,omitempty"` Port int32 `json:"port,omitempty"` Alternative *interface{} `json:"alternative"` Alternative *interface{} `json:"alternative,omitempty"` Uris []string `json:"uris"` Uris []string `json:"uris,omitempty"` } go-apps/meep-app-enablement/server/service-mgmt/service-mgmt.go +6 −2 Original line number Diff line number Diff line Loading @@ -347,8 +347,12 @@ func populateServiceInfoList(key string, jsonInfo string, sInfoList interface{}) if match { if data.filterParameters.serCategoryId != "" { if sInfo.SerCategory != nil { //comparing with either the category name or id, spec is not clear match = (data.filterParameters.serCategoryId == sInfo.SerCategory.Name) || (data.filterParameters.serCategoryId == sInfo.SerCategory.Id) } else { match = false } } } Loading go-apps/meep-loc-serv/go.mod +6 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ module github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-loc-serv go 1.12 require ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-app-info-client v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-key-mgr v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-model v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-gis-cache v0.0.0 Loading @@ -13,12 +14,14 @@ require ( 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-redis v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-service-mgmt-client v0.0.0 github.com/gorilla/handlers v1.4.0 github.com/gorilla/mux v1.8.0 github.com/prometheus/client_golang v1.9.0 ) replace ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-app-info-client => ../../go-packages/meep-app-info-client github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-key-mgr => ../../go-packages/meep-data-key-mgr github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-model => ../../go-packages/meep-data-model github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-gis-cache => ../../go-packages/meep-gis-cache Loading @@ -29,4 +32,5 @@ replace ( 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-redis => ../../go-packages/meep-redis github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-service-mgmt-client => ../../go-packages/meep-service-mgmt-client ) go-apps/meep-loc-serv/go.sum +1 −0 Original line number Diff line number Diff line Loading @@ -334,6 +334,7 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrS golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= Loading go-apps/meep-loc-serv/server/loc-serv.go +124 −1 Original line number Diff line number Diff line Loading @@ -31,12 +31,14 @@ import ( "time" sbi "github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-loc-serv/sbi" appInfoClient "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-app-info-client" dkm "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-key-mgr" gisClient "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-gis-engine-client" httpLog "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-http-logger" log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger" met "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-metrics" redis "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis" srvMgmtClient "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-service-mgmt-client" "github.com/gorilla/mux" ) Loading Loading @@ -149,6 +151,20 @@ var mutex sync.Mutex var gisAppClient *gisClient.APIClient var gisAppClientUrl string = "http://meep-gis-engine" //MEC011 section begin const serviceAppName = "Location" const serviceAppVersion = "2.1.1" var serviceAppInstanceId string var appEnablementClientUrl string = "http://meep-app-enablement" var appEnablementSupport bool = true var appEnablementSrvMgmtClient *srvMgmtClient.APIClient var retryAppEnablementTicker *time.Ticker //MEC011 section end /* func notImplemented(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") Loading Loading @@ -230,6 +246,29 @@ func Init() (err error) { } log.Info("SBI Initialized") //register using MEC011 if appEnablementSupport { //delay startup on purpose to give time for appEnablement pod to come up (if all coming up at the same time) time.Sleep(2 * time.Second) retryAppEnablementTicker = time.NewTicker(time.Second) go func() { for range retryAppEnablementTicker.C { if serviceAppInstanceId == "" { serviceAppInstanceId = getAppInstanceId(serviceAppName, serviceAppVersion) } if serviceAppInstanceId != "" { err := appEnablementRegistration(serviceAppInstanceId, serviceAppName, serviceAppVersion) if err != nil { log.Error("Failed to register to appEnablement DB, keep trying. Error: ", err) } else { retryAppEnablementTicker.Stop() } } } }() } return nil } Loading @@ -246,12 +285,96 @@ func Run() (err error) { return sbi.Run() } // Stop - Stop RNIS // Stop - Stop Location func Stop() (err error) { periodicTicker.Stop() return sbi.Stop() } func getAppInstanceId(appName string, appVersion string) string { //var client *appInfoClient.APIClient appInfoClientCfg := appInfoClient.NewConfiguration() appInfoClientCfg.BasePath = appEnablementClientUrl + "/app_info/v1" client := appInfoClient.NewAPIClient(appInfoClientCfg) if client == nil { log.Error("Failed to create App Info REST API client: ", appInfoClientCfg.BasePath) return "" } var appInfo appInfoClient.ApplicationInfo appInfo.AppName = appName appInfo.Version = appVersion state := appInfoClient.INACTIVE_ApplicationState appInfo.State = &state appInfoResponse, _, err := client.AppsApi.ApplicationsPOST(context.TODO(), appInfo) if err != nil { log.Error("Failed to communicate with app enablement service: ", err) return "" } return appInfoResponse.AppInstanceId } func appEnablementRegistration(appInstanceId string, appName string, appVersion string) error { appEnablementSrvMgmtClientCfg := srvMgmtClient.NewConfiguration() appEnablementSrvMgmtClientCfg.BasePath = appEnablementClientUrl + "/mec_service_mgmt/v1" appEnablementSrvMgmtClient = srvMgmtClient.NewAPIClient(appEnablementSrvMgmtClientCfg) if appEnablementSrvMgmtClient == nil { log.Error("Failed to create App Enablement Srv Mgmt REST API client: ", appEnablementSrvMgmtClientCfg.BasePath) err := errors.New("Failed to create App Enablement Srv Mgmt REST API client") return err } var srvInfo srvMgmtClient.ServiceInfoPost //serName srvInfo.SerName = appName //version srvInfo.Version = appVersion //state state := srvMgmtClient.ACTIVE_ServiceState srvInfo.State = &state //serializer serializer := srvMgmtClient.JSON_SerializerType srvInfo.Serializer = &serializer //transportInfo var transportInfo srvMgmtClient.TransportInfo transportInfo.Id = "transport" transportInfo.Name = "REST" transportType := srvMgmtClient.REST_HTTP_TransportType transportInfo.Type_ = &transportType transportInfo.Protocol = "HTTP" transportInfo.Version = "2.0" var endpoint srvMgmtClient.OneOfTransportInfoEndpoint endpointPath := hostUrl.String() + basePath endpoint.Uris = append(endpoint.Uris, endpointPath) transportInfo.Endpoint = &endpoint srvInfo.TransportInfo = &transportInfo //serCategory var category srvMgmtClient.CategoryRef category.Href = "catalogueHref" category.Id = "locationId" category.Name = "Location" category.Version = "v2" srvInfo.SerCategory = &category //scopeOfLocality scopeOfLocality := srvMgmtClient.MEC_SYSTEM_LocalityType srvInfo.ScopeOfLocality = &scopeOfLocality //consumedLocalOnly srvInfo.ConsumedLocalOnly = false appServicesPostResponse, _, err := appEnablementSrvMgmtClient.AppServicesApi.AppServicesPOST(context.TODO(), srvInfo, appInstanceId) if err != nil { log.Error("Failed to register the service to app enablement registry: ", err) return err } log.Info("Application Enablement Service instance Id: ", appServicesPostResponse.SerInstanceId) return nil } func deregisterZoneStatus(subsIdStr string) { subsId, err := strconv.Atoi(subsIdStr) if err != nil { Loading Loading
go-apps/meep-app-enablement/server/service-mgmt/model_one_of_transport_info_endpoint.go +5 −5 Original line number Diff line number Diff line Loading @@ -24,12 +24,12 @@ package server type OneOfTransportInfoEndpoint struct { Addresses []EndPointInfoAddress `json:"addresses"` Addresses []EndPointInfoAddress `json:"addresses,omitempty"` Host string `json:"host"` Port int32 `json:"port"` Host string `json:"host,omitempty"` Port int32 `json:"port,omitempty"` Alternative *interface{} `json:"alternative"` Alternative *interface{} `json:"alternative,omitempty"` Uris []string `json:"uris"` Uris []string `json:"uris,omitempty"` }
go-apps/meep-app-enablement/server/service-mgmt/service-mgmt.go +6 −2 Original line number Diff line number Diff line Loading @@ -347,8 +347,12 @@ func populateServiceInfoList(key string, jsonInfo string, sInfoList interface{}) if match { if data.filterParameters.serCategoryId != "" { if sInfo.SerCategory != nil { //comparing with either the category name or id, spec is not clear match = (data.filterParameters.serCategoryId == sInfo.SerCategory.Name) || (data.filterParameters.serCategoryId == sInfo.SerCategory.Id) } else { match = false } } } Loading
go-apps/meep-loc-serv/go.mod +6 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ module github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-loc-serv go 1.12 require ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-app-info-client v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-key-mgr v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-model v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-gis-cache v0.0.0 Loading @@ -13,12 +14,14 @@ require ( 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-redis v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-service-mgmt-client v0.0.0 github.com/gorilla/handlers v1.4.0 github.com/gorilla/mux v1.8.0 github.com/prometheus/client_golang v1.9.0 ) replace ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-app-info-client => ../../go-packages/meep-app-info-client github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-key-mgr => ../../go-packages/meep-data-key-mgr github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-model => ../../go-packages/meep-data-model github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-gis-cache => ../../go-packages/meep-gis-cache Loading @@ -29,4 +32,5 @@ replace ( 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-redis => ../../go-packages/meep-redis github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-service-mgmt-client => ../../go-packages/meep-service-mgmt-client )
go-apps/meep-loc-serv/go.sum +1 −0 Original line number Diff line number Diff line Loading @@ -334,6 +334,7 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrS golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= Loading
go-apps/meep-loc-serv/server/loc-serv.go +124 −1 Original line number Diff line number Diff line Loading @@ -31,12 +31,14 @@ import ( "time" sbi "github.com/InterDigitalInc/AdvantEDGE/go-apps/meep-loc-serv/sbi" appInfoClient "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-app-info-client" dkm "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-data-key-mgr" gisClient "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-gis-engine-client" httpLog "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-http-logger" log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger" met "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-metrics" redis "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis" srvMgmtClient "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-service-mgmt-client" "github.com/gorilla/mux" ) Loading Loading @@ -149,6 +151,20 @@ var mutex sync.Mutex var gisAppClient *gisClient.APIClient var gisAppClientUrl string = "http://meep-gis-engine" //MEC011 section begin const serviceAppName = "Location" const serviceAppVersion = "2.1.1" var serviceAppInstanceId string var appEnablementClientUrl string = "http://meep-app-enablement" var appEnablementSupport bool = true var appEnablementSrvMgmtClient *srvMgmtClient.APIClient var retryAppEnablementTicker *time.Ticker //MEC011 section end /* func notImplemented(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") Loading Loading @@ -230,6 +246,29 @@ func Init() (err error) { } log.Info("SBI Initialized") //register using MEC011 if appEnablementSupport { //delay startup on purpose to give time for appEnablement pod to come up (if all coming up at the same time) time.Sleep(2 * time.Second) retryAppEnablementTicker = time.NewTicker(time.Second) go func() { for range retryAppEnablementTicker.C { if serviceAppInstanceId == "" { serviceAppInstanceId = getAppInstanceId(serviceAppName, serviceAppVersion) } if serviceAppInstanceId != "" { err := appEnablementRegistration(serviceAppInstanceId, serviceAppName, serviceAppVersion) if err != nil { log.Error("Failed to register to appEnablement DB, keep trying. Error: ", err) } else { retryAppEnablementTicker.Stop() } } } }() } return nil } Loading @@ -246,12 +285,96 @@ func Run() (err error) { return sbi.Run() } // Stop - Stop RNIS // Stop - Stop Location func Stop() (err error) { periodicTicker.Stop() return sbi.Stop() } func getAppInstanceId(appName string, appVersion string) string { //var client *appInfoClient.APIClient appInfoClientCfg := appInfoClient.NewConfiguration() appInfoClientCfg.BasePath = appEnablementClientUrl + "/app_info/v1" client := appInfoClient.NewAPIClient(appInfoClientCfg) if client == nil { log.Error("Failed to create App Info REST API client: ", appInfoClientCfg.BasePath) return "" } var appInfo appInfoClient.ApplicationInfo appInfo.AppName = appName appInfo.Version = appVersion state := appInfoClient.INACTIVE_ApplicationState appInfo.State = &state appInfoResponse, _, err := client.AppsApi.ApplicationsPOST(context.TODO(), appInfo) if err != nil { log.Error("Failed to communicate with app enablement service: ", err) return "" } return appInfoResponse.AppInstanceId } func appEnablementRegistration(appInstanceId string, appName string, appVersion string) error { appEnablementSrvMgmtClientCfg := srvMgmtClient.NewConfiguration() appEnablementSrvMgmtClientCfg.BasePath = appEnablementClientUrl + "/mec_service_mgmt/v1" appEnablementSrvMgmtClient = srvMgmtClient.NewAPIClient(appEnablementSrvMgmtClientCfg) if appEnablementSrvMgmtClient == nil { log.Error("Failed to create App Enablement Srv Mgmt REST API client: ", appEnablementSrvMgmtClientCfg.BasePath) err := errors.New("Failed to create App Enablement Srv Mgmt REST API client") return err } var srvInfo srvMgmtClient.ServiceInfoPost //serName srvInfo.SerName = appName //version srvInfo.Version = appVersion //state state := srvMgmtClient.ACTIVE_ServiceState srvInfo.State = &state //serializer serializer := srvMgmtClient.JSON_SerializerType srvInfo.Serializer = &serializer //transportInfo var transportInfo srvMgmtClient.TransportInfo transportInfo.Id = "transport" transportInfo.Name = "REST" transportType := srvMgmtClient.REST_HTTP_TransportType transportInfo.Type_ = &transportType transportInfo.Protocol = "HTTP" transportInfo.Version = "2.0" var endpoint srvMgmtClient.OneOfTransportInfoEndpoint endpointPath := hostUrl.String() + basePath endpoint.Uris = append(endpoint.Uris, endpointPath) transportInfo.Endpoint = &endpoint srvInfo.TransportInfo = &transportInfo //serCategory var category srvMgmtClient.CategoryRef category.Href = "catalogueHref" category.Id = "locationId" category.Name = "Location" category.Version = "v2" srvInfo.SerCategory = &category //scopeOfLocality scopeOfLocality := srvMgmtClient.MEC_SYSTEM_LocalityType srvInfo.ScopeOfLocality = &scopeOfLocality //consumedLocalOnly srvInfo.ConsumedLocalOnly = false appServicesPostResponse, _, err := appEnablementSrvMgmtClient.AppServicesApi.AppServicesPOST(context.TODO(), srvInfo, appInstanceId) if err != nil { log.Error("Failed to register the service to app enablement registry: ", err) return err } log.Info("Application Enablement Service instance Id: ", appServicesPostResponse.SerInstanceId) return nil } func deregisterZoneStatus(subsIdStr string) { subsId, err := strconv.Atoi(subsIdStr) if err != nil { Loading