[RIC-571] Increment release-tag to 5.4.2
[ric-plt/e2mgr.git] / tools / KubernetesSimulator / go / routers.go
1 //
2 // Copyright 2019 AT&T Intellectual Property
3 // Copyright 2019 Nokia
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //      http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16
17 //  This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 //  platform project (RICP).
19
20
21 package kubernetes
22
23 import (
24         //"fmt"
25         "net/http"
26         "strings"
27
28         "github.com/gorilla/mux"
29 )
30
31 type Route struct {
32         Name        string
33         Method      string
34         Pattern     string
35         HandlerFunc http.HandlerFunc
36 }
37
38 type Routes []Route
39
40 func NewRouter() *mux.Router {
41         router := mux.NewRouter().StrictSlash(true)
42         for _, route := range routes {
43                 var handler http.Handler
44                 handler = route.HandlerFunc
45                 handler = Logger(handler, route.Name)
46
47                 router.
48                         Methods(route.Method).
49                         Path(route.Pattern).
50                         Name(route.Name).
51                         Handler(handler)
52         }
53
54         return router
55 }
56
57 var routes = Routes{
58         Route{
59                 "DeletePod",
60                 strings.ToUpper("Delete"),
61                 "/api/v1/namespaces/{namespace}/pods/{pod}",
62                 DeletePod,
63         },
64 }