diff options
author | Rajamohan Raj <rajamohan.raj@intel.com> | 2020-02-24 21:59:44 +0000 |
---|---|---|
committer | Rajamohan Raj <rajamohan.raj@intel.com> | 2020-03-03 23:08:13 +0000 |
commit | 37aed9b7a0db62b9931d89c614ff6291cc4608cc (patch) | |
tree | 51021b0776978d77c4a1cad455be582a4dafa894 /src/orchestrator/api/api.go | |
parent | 7b566f2875230e15f79a6549b17240e767cc98f1 (diff) |
Implemented AppIntents and GenPlaceIntents
Implemented the routes for creating,
getting, and deleting generic placement intents
and App intents.
Issue-ID: MULTICLOUD-875
Signed-off-by: Rajamohan Raj <rajamohan.raj@intel.com>
Change-Id: Iecb11c442958a43a517772e066de45213e3d7030
Diffstat (limited to 'src/orchestrator/api/api.go')
-rw-r--r-- | src/orchestrator/api/api.go | 66 |
1 files changed, 50 insertions, 16 deletions
diff --git a/src/orchestrator/api/api.go b/src/orchestrator/api/api.go index 5e05b31b..f4381e6c 100644 --- a/src/orchestrator/api/api.go +++ b/src/orchestrator/api/api.go @@ -1,33 +1,43 @@ /* -Copyright 2020 Intel Corporation. -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - + * Copyright 2020 Intel Corporation, Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package api import ( - moduleLib "github.com/onap/multicloud-k8s/src/orchestrator/pkg/module" - "github.com/gorilla/mux" + moduleLib "github.com/onap/multicloud-k8s/src/orchestrator/pkg/module" ) var moduleClient *moduleLib.Client // NewRouter creates a router that registers the various urls that are supported -func NewRouter(projectClient moduleLib.ProjectManager, compositeAppClient moduleLib.CompositeAppManager, ControllerClient moduleLib.ControllerManager, clusterClient moduleLib.ClusterManager) *mux.Router { +func NewRouter(projectClient moduleLib.ProjectManager, + compositeAppClient moduleLib.CompositeAppManager, + ControllerClient moduleLib.ControllerManager, + clusterClient moduleLib.ClusterManager, + genericPlacementIntentClient moduleLib.GenericPlacementIntentManager, + appIntentClient moduleLib.AppIntentManager) *mux.Router { router := mux.NewRouter().PathPrefix("/v2").Subrouter() + moduleClient = moduleLib.NewClient() + + //setting routes for project if projectClient == nil { projectClient = moduleClient.Project + } projHandler := projectHandler{ client: projectClient, @@ -48,13 +58,13 @@ func NewRouter(projectClient moduleLib.ProjectManager, compositeAppClient module router.HandleFunc("/projects/{project-name}", projHandler.getHandler).Methods("GET") router.HandleFunc("/projects/{project-name}", projHandler.deleteHandler).Methods("DELETE") + //setting routes for compositeApp if compositeAppClient == nil { compositeAppClient = moduleClient.CompositeApp } compAppHandler := compositeAppHandler{ client: compositeAppClient, } - router.HandleFunc("/projects/{project-name}/composite-apps", compAppHandler.createHandler).Methods("POST") router.HandleFunc("/projects/{project-name}/composite-apps/{composite-app-name}/{version}", compAppHandler.getHandler).Methods("GET") router.HandleFunc("/projects/{project-name}/composite-apps/{composite-app-name}/{version}", compAppHandler.deleteHandler).Methods("DELETE") @@ -79,6 +89,30 @@ func NewRouter(projectClient moduleLib.ProjectManager, compositeAppClient module router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs", clusterHandler.getClusterKvPairsHandler).Methods("GET") router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/{kvpair}", clusterHandler.getClusterKvPairsHandler).Methods("GET") router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/{kvpair}", clusterHandler.deleteClusterKvPairsHandler).Methods("DELETE") + //setting routes for genericPlacementIntent + if genericPlacementIntentClient == nil { + genericPlacementIntentClient = moduleClient.GenericPlacementIntent + } + + genericPlacementIntentHandler := genericPlacementIntentHandler{ + client: genericPlacementIntentClient, + } + router.HandleFunc("/projects/{project-name}/composite-apps/{composite-app-name}/{composite-app-version}/generic-placement-intents", genericPlacementIntentHandler.createGenericPlacementIntentHandler).Methods("POST") + router.HandleFunc("/projects/{project-name}/composite-apps/{composite-app-name}/{composite-app-version}/generic-placement-intents/{intent-name}", genericPlacementIntentHandler.getGenericPlacementHandler).Methods("GET") + router.HandleFunc("/projects/{project-name}/composite-apps/{composite-app-name}/{composite-app-version}/generic-placement-intents/{intent-name}", genericPlacementIntentHandler.deleteGenericPlacementHandler).Methods("DELETE") + + //setting routes for AppIntent + if appIntentClient == nil { + appIntentClient = moduleClient.AppIntent + } + + appIntentHandler := appIntentHandler{ + client: appIntentClient, + } + + router.HandleFunc("/projects/{project-name}/composite-apps/{composite-app-name}/{composite-app-version}/generic-placement-intents/{intent-name}/app-intents", appIntentHandler.createAppIntentHandler).Methods("POST") + router.HandleFunc("/projects/{project-name}/composite-apps/{composite-app-name}/{composite-app-version}/generic-placement-intents/{intent-name}/app-intents/{app-intent-name}", appIntentHandler.getAppIntentHandler).Methods("GET") + router.HandleFunc("/projects/{project-name}/composite-apps/{composite-app-name}/{composite-app-version}/generic-placement-intents/{intent-name}/app-intents/{app-intent-name}", appIntentHandler.deleteAppIntentHandler).Methods("DELETE") return router } |