diff options
author | Eric Multanen <eric.w.multanen@intel.com> | 2020-03-19 16:07:43 -0700 |
---|---|---|
committer | Ritu Sood <Ritu.Sood@intel.com> | 2020-04-10 20:36:32 +0000 |
commit | 335c7cca38eb804c2977e4dd9af9efa0ea7ef82b (patch) | |
tree | 1e1adfa51e7dfaa9d8b57c7d5890537674e4f341 /src/ncm/api/api.go | |
parent | 107142787e331ca565c166c72ae5605621d2d2ee (diff) |
APIs for network, workload and interface intents
Includes network controller intent and underlying
network workload intent and workload interface
intent APIs.
Issue-ID: MULTICLOUD-1029
Signed-off-by: Eric Multanen <eric.w.multanen@intel.com>
Change-Id: I9bb34e42785b16f39af81335b1f94dd5bb15d931
Diffstat (limited to 'src/ncm/api/api.go')
-rw-r--r-- | src/ncm/api/api.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/ncm/api/api.go b/src/ncm/api/api.go index 3ff8671a..fcef7b43 100644 --- a/src/ncm/api/api.go +++ b/src/ncm/api/api.go @@ -51,6 +51,27 @@ func setClient(client, testClient interface{}) interface{} { return c } } + case *moduleLib.NetControlIntentClient: + if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*moduleLib.NetControlIntentManager)(nil)).Elem()) { + c, ok := testClient.(moduleLib.NetControlIntentManager) + if ok { + return c + } + } + case *moduleLib.WorkloadIntentClient: + if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*moduleLib.WorkloadIntentManager)(nil)).Elem()) { + c, ok := testClient.(moduleLib.WorkloadIntentManager) + if ok { + return c + } + } + case *moduleLib.WorkloadIfIntentClient: + if testClient != nil && reflect.TypeOf(testClient).Implements(reflect.TypeOf((*moduleLib.WorkloadIfIntentManager)(nil)).Elem()) { + c, ok := testClient.(moduleLib.WorkloadIfIntentManager) + if ok { + return c + } + } default: fmt.Printf("unknown type %T\n", cl) } @@ -104,5 +125,32 @@ func NewRouter(testClient interface{}) *mux.Router { router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/provider-networks/{name}", providernetHandler.getProviderNetHandler).Methods("GET") router.HandleFunc("/cluster-providers/{provider-name}/clusters/{cluster-name}/provider-networks/{name}", providernetHandler.deleteProviderNetHandler).Methods("DELETE") + netcontrolintentHandler := netcontrolintentHandler{ + client: setClient(moduleClient.NetControlIntent, testClient).(moduleLib.NetControlIntentManager), + } + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent", netcontrolintentHandler.createHandler).Methods("POST") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent", netcontrolintentHandler.getHandler).Methods("GET") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{name}", netcontrolintentHandler.putHandler).Methods("PUT") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{name}", netcontrolintentHandler.getHandler).Methods("GET") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{name}", netcontrolintentHandler.deleteHandler).Methods("DELETE") + + workloadintentHandler := workloadintentHandler{ + client: setClient(moduleClient.WorkloadIntent, testClient).(moduleLib.WorkloadIntentManager), + } + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents", workloadintentHandler.createHandler).Methods("POST") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents", workloadintentHandler.getHandler).Methods("GET") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/{name}", workloadintentHandler.putHandler).Methods("PUT") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/{name}", workloadintentHandler.getHandler).Methods("GET") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/{name}", workloadintentHandler.deleteHandler).Methods("DELETE") + + workloadifintentHandler := workloadifintentHandler{ + client: setClient(moduleClient.WorkloadIfIntent, testClient).(moduleLib.WorkloadIfIntentManager), + } + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/{workload-intent}/interfaces", workloadifintentHandler.createHandler).Methods("POST") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/{workload-intent}/interfaces", workloadifintentHandler.getHandler).Methods("GET") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/{workload-intent}/interfaces/{name}", workloadifintentHandler.putHandler).Methods("PUT") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/{workload-intent}/interfaces/{name}", workloadifintentHandler.getHandler).Methods("GET") + router.HandleFunc("/projects/{project}/composite-apps/{composite-app-name}/{version}/network-controller-intent/{net-control-intent}/workload-intents/{workload-intent}/interfaces/{name}", workloadifintentHandler.deleteHandler).Methods("DELETE") + return router } |