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 PurgeConfigMap(m XappDeploy) (cm interface{}, err error)
81 RestoreConfigMap(m XappDeploy, cm interface{}) (err error)
82 ReadConfigMap(name string, ns string, c *interface{}) (err error)
83 ApplyConfigMap(r XAppConfig, action string) (err error)
84 GetMessages(name string) (msgs MessageTypes)
87 type Helmer interface {
90 Install(m XappDeploy) (xapp Xapp, err error)
91 Status(name string) (xapp Xapp, err error)
92 StatusAll() (xapps []Xapp, err error)
93 List() (xapps []string, err error)
94 Delete(name string) (xapp Xapp, err error)
104 type SubscriptionReq struct {
105 Id string `json:"id"`
106 TargetUrl string `json:"targetUrl"`
107 EventType string `json:"eventType"`
108 MaxRetries int `json:"maxRetries"`
109 RetryTimer int `json:"retryTimer"`
112 type SubscriptionResp struct {
113 Id string `json:"id"`
114 Version int `json:"version"`
115 EventType string `json:"eventType"`
118 type SubscriptionNotif struct {
119 Id string `json:"id"`
120 Version int `json:"version"`
121 EventType string `json:"eventType"`
122 XappData []Xapp `json:"xapp"`
125 type Subscription struct {
127 resp SubscriptionResp
130 type SubscriptionDispatcher struct {
132 subscriptions cmap.ConcurrentMap
137 type MessageTypes struct {
138 TxMessages []string `json:"txMessages"`
139 RxMessages []string `json:"rxMessages"`
142 type EventType string
145 Created EventType = "created"
146 Updated EventType = "updated"
147 Deleted EventType = "deleted"
151 MdclogErr = 1 //! Error level log entry
152 MdclogWarn = 2 //! Warning level log entry
153 MdclogInfo = 3 //! Info level log entry
154 MdclogDebug = 4 //! Debug level log entry