forked from ligato/vpp-agent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugin_impl_rest.go
65 lines (55 loc) · 2.29 KB
/
plugin_impl_rest.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright (c) 2017 Cisco and/or its affiliates.
//
// 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 restplugin
import (
"fmt"
"github.com/ligato/cn-infra/flavors/local"
"github.com/ligato/cn-infra/rpc/rest"
"github.com/ligato/vpp-agent/plugins/govppmux"
)
const (
swIndexVarName = "swindex"
)
// RESTAPIPlugin - registers VPP REST API Plugin
type RESTAPIPlugin struct {
Deps RESTAPIPluginDeps
}
// RESTAPIPluginDeps - dependencies of RESTAPIPlugin
type RESTAPIPluginDeps struct {
local.PluginInfraDeps
HTTPHandlers rest.HTTPHandlers
GoVppmux govppmux.API
}
// Init - initializes the RESTAPIPlugin
func (plugin *RESTAPIPlugin) Init() (err error) {
return nil
}
// AfterInit - used to register HTTP handlers
func (plugin *RESTAPIPlugin) AfterInit() (err error) {
plugin.Deps.Log.Debug("VPP REST API Plugin is up and running !!")
plugin.Deps.HTTPHandlers.RegisterHTTPHandler("/interfaces", plugin.interfacesGetHandler, "GET")
plugin.Deps.HTTPHandlers.RegisterHTTPHandler("/bridgedomains", plugin.bridgeDomainsGetHandler, "GET")
plugin.Deps.HTTPHandlers.RegisterHTTPHandler("/bridgedomainids", plugin.bridgeDomainIdsGetHandler, "GET")
plugin.Deps.HTTPHandlers.RegisterHTTPHandler("/fibs", plugin.fibTableEntriesGetHandler, "GET")
plugin.Deps.HTTPHandlers.RegisterHTTPHandler("/xconnectpairs", plugin.xconnectPairsGetHandler, "GET")
plugin.Deps.HTTPHandlers.RegisterHTTPHandler("/staticroutes", plugin.staticRoutesGetHandler, "GET")
plugin.Deps.HTTPHandlers.RegisterHTTPHandler(fmt.Sprintf("/interface/{%s:[0-9]+}/acl", swIndexVarName),
plugin.interfaceACLGetHandler, "GET")
plugin.Deps.HTTPHandlers.RegisterHTTPHandler("/", plugin.showCommandHandler, "POST")
return nil
}
// Close - used to clean up resources used by RESTAPIPlugin
func (plugin *RESTAPIPlugin) Close() (err error) {
return nil
}