Loading go-apps/meep-app-enablement/server/app-support/api_mec_app_support.go +6 −2 Original line number Diff line number Diff line Loading @@ -59,10 +59,14 @@ func TimingCurrentTimeGET(w http.ResponseWriter, r *http.Request) { timingCurrentTimeGET(w, r) } func RegisterMecAppPOST(w http.ResponseWriter, r *http.Request) { registerAppPost(w, r) func AppRegistrationPOST(w http.ResponseWriter, r *http.Request) { appRegistrationPOST(w, r) } func AppRegistrationGET(w http.ResponseWriter, r *http.Request) { appRegistrationGET(w, r) } func AppRegistrationDELETE(w http.ResponseWriter, r *http.Request) { appRegistrationDELETE(w, r) } go-apps/meep-app-enablement/server/app-support/app-support.go +41 −19 Original line number Diff line number Diff line Loading @@ -622,7 +622,7 @@ func timingCurrentTimeGET(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, string(jsonResponse)) } func registerAppPost(w http.ResponseWriter, r *http.Request) { func appRegistrationPOST(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") log.Info("applicationsRegistrationPOST") Loading Loading @@ -668,18 +668,20 @@ func registerAppPost(w http.ResponseWriter, r *http.Request) { return } var jsonResponse []byte jsonResponse, err = setApplicationInfo(appInfo) if err != nil { // Set the application info in Redis keyName := baseKey + "appInfo:" + appInfo.AppInstanceId if err := rc.JSONSetEntry(keyName, ".", convertAppInfoToJson(&appInfo)); err != nil { log.Error("Unable to store new Registration in redis") errHandlerProblemDetails(w, "Unable to store new Registration in redis", http.StatusInternalServerError) return } // Prepare & send response jsonResponse := convertAppInfoToJson(&appInfo) // On successful registration, return 201 Created with the response body w.WriteHeader(http.StatusCreated) fmt.Fprint(w, string(jsonResponse)) fmt.Fprint(w, jsonResponse) } func appRegistrationGET(w http.ResponseWriter, r *http.Request) { Loading @@ -690,7 +692,7 @@ func appRegistrationGET(w http.ResponseWriter, r *http.Request) { mutex.Lock() defer mutex.Unlock() keyName := baseKey + "Ins_Id:" + appInstanceId keyName := baseKey + "appInfo:" + appInstanceId jsonAppInfo, err := rc.JSONGetEntry(keyName, ".") if err != nil { Loading @@ -716,6 +718,36 @@ func appRegistrationGET(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, jsonResponse) } func appRegistrationDELETE(w http.ResponseWriter, r *http.Request) { log.Info("Delete appInfo by appInstanceId") w.Header().Set("Content-Type", "application/json; charset=UTF-8") vars := mux.Vars(r) appInstanceId := vars["appInstanceId"] keyName := baseKey + "appInfo:" + appInstanceId // Find appInfo entry in redis DB _, err := rc.JSONGetEntry(keyName, ".") if err != nil { err = errors.New("appInfo not found against the provided appInstanceId") log.Error(err.Error()) errHandlerProblemDetails(w, err.Error(), http.StatusNotFound) return } // Delete appInfo entry from redis DB err = rc.JSONDelEntry(keyName, ".") if err != nil { log.Error(err.Error()) errHandlerProblemDetails(w, err.Error(), http.StatusNotFound) return } // Send response on successful deletion of MTS session resource w.WriteHeader(http.StatusNoContent) } func deleteAppInstance(appId string) { log.Info("Deleting App instance: ", appId) Loading Loading @@ -809,7 +841,7 @@ func newAppInfo(app *apps.Application) (map[string]string, error) { func setAppInfo(appInfo map[string]string) error { appId, found := appInfo[fieldAppId] if !found || appId == "" { return errors.New("Missing app instance id") return errors.New("missing app instance id") } // Convert value type to interface{} before storing app info Loading Loading @@ -1119,21 +1151,11 @@ func getAppInfo(appId string) (map[string]string, error) { key := baseKeyAppEn + "app:" + appId + ":info" appInfo, err := rc.GetEntry(key) if err != nil || len(appInfo) == 0 { return nil, errors.New("App Instance not found") return nil, errors.New("app instance not found") } return appInfo, nil } func setApplicationInfo(appInfo AppInfo) ([]byte, error) { var jsonResponse []byte appInstanceId := appInfo.AppInstanceId keyName := baseKey + "appInfo:" + appInstanceId _ = rc.JSONSetEntry(keyName, ".", convertAppInfoToJson(&appInfo)) jsonResponse, err := json.Marshal(appInfo) return jsonResponse, err } func errHandlerProblemDetails(w http.ResponseWriter, error string, code int) { var pd ProblemDetails pd.Detail = error Loading go-apps/meep-app-enablement/server/routers.go +10 −3 Original line number Diff line number Diff line Loading @@ -189,10 +189,10 @@ var routes = Routes{ }, Route{ "RegisterMecAppPOST", strings.ToUpper("Post"), "AppRegistrationPOST", strings.ToUpper("POST"), "/mec_app_support/v2/registrations", appSupport.RegisterMecAppPOST, appSupport.AppRegistrationPOST, }, Route{ Loading @@ -202,6 +202,13 @@ var routes = Routes{ appSupport.AppRegistrationGET, }, Route{ "AppRegistrationDELETE", strings.ToUpper("DELETE"), "/mec_app_support/v2/registrations/{appInstanceId}", appSupport.AppRegistrationDELETE, }, Route{ "Index", "GET", Loading go-packages/meep-app-support-client/api_mec_app_support.go +107 −0 Original line number Diff line number Diff line Loading @@ -535,6 +535,113 @@ func (a *MecAppSupportApiService) ApplicationsRegistrationGET(ctx context.Contex return localVarReturnValue, localVarHttpResponse, nil } /* MecAppSupportApiService The DELETE method is used to cancel the existing MEC application instance registration. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param appInstanceId Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. */ func (a *MecAppSupportApiService) ApplicationsRegistrationDELETE(ctx context.Context, appInstanceId string) (*http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/registrations/{appInstanceId}" localVarPath = strings.Replace(localVarPath, "{"+"appInstanceId"+"}", fmt.Sprintf("%v", appInstanceId), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHttpContentTypes := []string{} // set Content-Type header localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) if localVarHttpContentType != "" { localVarHeaderParams["Content-Type"] = localVarHttpContentType } // to determine the Accept header localVarHttpHeaderAccepts := []string{"application/problem+json"} // set Accept header localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return nil, err } localVarHttpResponse, err := a.client.callAPI(r) if err != nil || localVarHttpResponse == nil { return localVarHttpResponse, err } localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) localVarHttpResponse.Body.Close() if err != nil { return localVarHttpResponse, err } if localVarHttpResponse.StatusCode >= 300 { newErr := GenericSwaggerError{ body: localVarBody, error: localVarHttpResponse.Status, } if localVarHttpResponse.StatusCode == 400 { var v ProblemDetails err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarHttpResponse, newErr } newErr.model = v return localVarHttpResponse, newErr } if localVarHttpResponse.StatusCode == 401 { var v ProblemDetails err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarHttpResponse, newErr } newErr.model = v return localVarHttpResponse, newErr } if localVarHttpResponse.StatusCode == 403 { var v ProblemDetails err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarHttpResponse, newErr } newErr.model = v return localVarHttpResponse, newErr } if localVarHttpResponse.StatusCode == 404 { var v ProblemDetails err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarHttpResponse, newErr } newErr.model = v return localVarHttpResponse, newErr } return localVarHttpResponse, newErr } return localVarHttpResponse, nil } /* MecAppSupportApiService This method deletes a mecAppSuptApiSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure. Loading Loading
go-apps/meep-app-enablement/server/app-support/api_mec_app_support.go +6 −2 Original line number Diff line number Diff line Loading @@ -59,10 +59,14 @@ func TimingCurrentTimeGET(w http.ResponseWriter, r *http.Request) { timingCurrentTimeGET(w, r) } func RegisterMecAppPOST(w http.ResponseWriter, r *http.Request) { registerAppPost(w, r) func AppRegistrationPOST(w http.ResponseWriter, r *http.Request) { appRegistrationPOST(w, r) } func AppRegistrationGET(w http.ResponseWriter, r *http.Request) { appRegistrationGET(w, r) } func AppRegistrationDELETE(w http.ResponseWriter, r *http.Request) { appRegistrationDELETE(w, r) }
go-apps/meep-app-enablement/server/app-support/app-support.go +41 −19 Original line number Diff line number Diff line Loading @@ -622,7 +622,7 @@ func timingCurrentTimeGET(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, string(jsonResponse)) } func registerAppPost(w http.ResponseWriter, r *http.Request) { func appRegistrationPOST(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") log.Info("applicationsRegistrationPOST") Loading Loading @@ -668,18 +668,20 @@ func registerAppPost(w http.ResponseWriter, r *http.Request) { return } var jsonResponse []byte jsonResponse, err = setApplicationInfo(appInfo) if err != nil { // Set the application info in Redis keyName := baseKey + "appInfo:" + appInfo.AppInstanceId if err := rc.JSONSetEntry(keyName, ".", convertAppInfoToJson(&appInfo)); err != nil { log.Error("Unable to store new Registration in redis") errHandlerProblemDetails(w, "Unable to store new Registration in redis", http.StatusInternalServerError) return } // Prepare & send response jsonResponse := convertAppInfoToJson(&appInfo) // On successful registration, return 201 Created with the response body w.WriteHeader(http.StatusCreated) fmt.Fprint(w, string(jsonResponse)) fmt.Fprint(w, jsonResponse) } func appRegistrationGET(w http.ResponseWriter, r *http.Request) { Loading @@ -690,7 +692,7 @@ func appRegistrationGET(w http.ResponseWriter, r *http.Request) { mutex.Lock() defer mutex.Unlock() keyName := baseKey + "Ins_Id:" + appInstanceId keyName := baseKey + "appInfo:" + appInstanceId jsonAppInfo, err := rc.JSONGetEntry(keyName, ".") if err != nil { Loading @@ -716,6 +718,36 @@ func appRegistrationGET(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, jsonResponse) } func appRegistrationDELETE(w http.ResponseWriter, r *http.Request) { log.Info("Delete appInfo by appInstanceId") w.Header().Set("Content-Type", "application/json; charset=UTF-8") vars := mux.Vars(r) appInstanceId := vars["appInstanceId"] keyName := baseKey + "appInfo:" + appInstanceId // Find appInfo entry in redis DB _, err := rc.JSONGetEntry(keyName, ".") if err != nil { err = errors.New("appInfo not found against the provided appInstanceId") log.Error(err.Error()) errHandlerProblemDetails(w, err.Error(), http.StatusNotFound) return } // Delete appInfo entry from redis DB err = rc.JSONDelEntry(keyName, ".") if err != nil { log.Error(err.Error()) errHandlerProblemDetails(w, err.Error(), http.StatusNotFound) return } // Send response on successful deletion of MTS session resource w.WriteHeader(http.StatusNoContent) } func deleteAppInstance(appId string) { log.Info("Deleting App instance: ", appId) Loading Loading @@ -809,7 +841,7 @@ func newAppInfo(app *apps.Application) (map[string]string, error) { func setAppInfo(appInfo map[string]string) error { appId, found := appInfo[fieldAppId] if !found || appId == "" { return errors.New("Missing app instance id") return errors.New("missing app instance id") } // Convert value type to interface{} before storing app info Loading Loading @@ -1119,21 +1151,11 @@ func getAppInfo(appId string) (map[string]string, error) { key := baseKeyAppEn + "app:" + appId + ":info" appInfo, err := rc.GetEntry(key) if err != nil || len(appInfo) == 0 { return nil, errors.New("App Instance not found") return nil, errors.New("app instance not found") } return appInfo, nil } func setApplicationInfo(appInfo AppInfo) ([]byte, error) { var jsonResponse []byte appInstanceId := appInfo.AppInstanceId keyName := baseKey + "appInfo:" + appInstanceId _ = rc.JSONSetEntry(keyName, ".", convertAppInfoToJson(&appInfo)) jsonResponse, err := json.Marshal(appInfo) return jsonResponse, err } func errHandlerProblemDetails(w http.ResponseWriter, error string, code int) { var pd ProblemDetails pd.Detail = error Loading
go-apps/meep-app-enablement/server/routers.go +10 −3 Original line number Diff line number Diff line Loading @@ -189,10 +189,10 @@ var routes = Routes{ }, Route{ "RegisterMecAppPOST", strings.ToUpper("Post"), "AppRegistrationPOST", strings.ToUpper("POST"), "/mec_app_support/v2/registrations", appSupport.RegisterMecAppPOST, appSupport.AppRegistrationPOST, }, Route{ Loading @@ -202,6 +202,13 @@ var routes = Routes{ appSupport.AppRegistrationGET, }, Route{ "AppRegistrationDELETE", strings.ToUpper("DELETE"), "/mec_app_support/v2/registrations/{appInstanceId}", appSupport.AppRegistrationDELETE, }, Route{ "Index", "GET", Loading
go-packages/meep-app-support-client/api_mec_app_support.go +107 −0 Original line number Diff line number Diff line Loading @@ -535,6 +535,113 @@ func (a *MecAppSupportApiService) ApplicationsRegistrationGET(ctx context.Contex return localVarReturnValue, localVarHttpResponse, nil } /* MecAppSupportApiService The DELETE method is used to cancel the existing MEC application instance registration. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - @param appInstanceId Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. */ func (a *MecAppSupportApiService) ApplicationsRegistrationDELETE(ctx context.Context, appInstanceId string) (*http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Delete") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/registrations/{appInstanceId}" localVarPath = strings.Replace(localVarPath, "{"+"appInstanceId"+"}", fmt.Sprintf("%v", appInstanceId), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHttpContentTypes := []string{} // set Content-Type header localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) if localVarHttpContentType != "" { localVarHeaderParams["Content-Type"] = localVarHttpContentType } // to determine the Accept header localVarHttpHeaderAccepts := []string{"application/problem+json"} // set Accept header localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return nil, err } localVarHttpResponse, err := a.client.callAPI(r) if err != nil || localVarHttpResponse == nil { return localVarHttpResponse, err } localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) localVarHttpResponse.Body.Close() if err != nil { return localVarHttpResponse, err } if localVarHttpResponse.StatusCode >= 300 { newErr := GenericSwaggerError{ body: localVarBody, error: localVarHttpResponse.Status, } if localVarHttpResponse.StatusCode == 400 { var v ProblemDetails err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarHttpResponse, newErr } newErr.model = v return localVarHttpResponse, newErr } if localVarHttpResponse.StatusCode == 401 { var v ProblemDetails err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarHttpResponse, newErr } newErr.model = v return localVarHttpResponse, newErr } if localVarHttpResponse.StatusCode == 403 { var v ProblemDetails err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarHttpResponse, newErr } newErr.model = v return localVarHttpResponse, newErr } if localVarHttpResponse.StatusCode == 404 { var v ProblemDetails err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarHttpResponse, newErr } newErr.model = v return localVarHttpResponse, newErr } return localVarHttpResponse, newErr } return localVarHttpResponse, nil } /* MecAppSupportApiService This method deletes a mecAppSuptApiSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure. Loading