2 ==================================================================================
3 Copyright (c) 2019 AT&T Intellectual Property.
4 Copyright (c) 2019 Nokia
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
17 ==================================================================================
23 "github.com/gorilla/mux"
24 cmap "github.com/orcaman/concurrent-map"
28 type CmdOptions struct {
34 type Resource struct {
37 HandlerFunc http.HandlerFunc
41 Name string `json:"name"`
42 Status string `json:"status"`
43 Version string `json:"version"`
44 Instances []XappInstance `json:"instances"`
47 type XappInstance struct {
48 Name string `json:"name"`
49 Status string `json:"status"`
51 Port int `json:"port"`
52 TxMessages []string `json:"txMessages"`
53 RxMessages []string `json:"rxMessages"`
56 type XappDeploy struct {
57 Name string `json:"name"`
58 ConfigName string `json:"configName, omitempty"`
59 Namespace string `json:"namespace, omitempty"`
60 ServiceName string `json:"serviceName, omitempty"`
61 ImageRepo string `json:"imageRepo, omitempty"`
62 Hostname string `json:"hostname, omitempty"`
65 type XappManager struct {
69 sd SubscriptionDispatcher
74 type ConfigMapper interface {
75 UploadConfig() (cfg []XAppConfig)
76 GetConfigMap(m XappDeploy, c *interface{}) (err error)
77 CreateConfigMap(r XAppConfig) (errList []CMError, err error)
78 UpdateConfigMap(r XAppConfig) (errList []CMError, err error)
79 DeleteConfigMap(r XAppConfig) (cm interface{}, err error)
80 ReadSchema(name string, c *XAppConfig) (err error)
81 PurgeConfigMap(m XappDeploy) (cm interface{}, err error)
82 RestoreConfigMap(m XappDeploy, cm interface{}) (err error)
83 ReadConfigMap(name string, ns string, c *interface{}) (err error)
84 ApplyConfigMap(r XAppConfig, action string) (err error)
85 GetMessages(name string) (msgs MessageTypes)
86 GetNamespace(ns string) string
89 type Helmer interface {
92 Install(m XappDeploy) (xapp Xapp, err error)
93 Status(name string) (xapp Xapp, err error)
94 StatusAll() (xapps []Xapp, err error)
95 List() (xapps []string, err error)
96 Delete(name string) (xapp Xapp, err error)
106 type SubscriptionReq struct {
107 Id string `json:"id"`
108 TargetUrl string `json:"targetUrl"`
109 EventType string `json:"eventType"`
110 MaxRetries int `json:"maxRetries"`
111 RetryTimer int `json:"retryTimer"`
114 type SubscriptionResp struct {
115 Id string `json:"id"`
116 Version int `json:"version"`
117 EventType string `json:"eventType"`
120 type SubscriptionNotif struct {
121 Id string `json:"id"`
122 Version int `json:"version"`
123 EventType string `json:"eventType"`
124 XappData []Xapp `json:"xapp"`
127 type Subscription struct {
129 resp SubscriptionResp
132 type SubscriptionDispatcher struct {
134 subscriptions cmap.ConcurrentMap
139 type MessageTypes struct {
140 TxMessages []string `json:"txMessages"`
141 RxMessages []string `json:"rxMessages"`
144 type EventType string
147 Created EventType = "created"
148 Updated EventType = "updated"
149 Deleted EventType = "deleted"
153 MdclogErr = 1 //! Error level log entry
154 MdclogWarn = 2 //! Warning level log entry
155 MdclogInfo = 3 //! Info level log entry
156 MdclogDebug = 4 //! Debug level log entry