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
87 GetNamesFromHelmRepo() (names []string)
90 type Helmer interface {
93 Install(m XappDeploy) (xapp Xapp, err error)
94 Status(name string) (xapp Xapp, err error)
95 StatusAll() (xapps []Xapp, err error)
96 SearchAll() (xapps []string)
97 List() (xapps []string, err error)
98 Delete(name string) (xapp Xapp, err error)
108 type SubscriptionReq struct {
109 Id string `json:"id"`
110 TargetUrl string `json:"targetUrl"`
111 EventType string `json:"eventType"`
112 MaxRetries int `json:"maxRetries"`
113 RetryTimer int `json:"retryTimer"`
116 type SubscriptionResp struct {
117 Id string `json:"id"`
118 Version int `json:"version"`
119 EventType string `json:"eventType"`
122 type SubscriptionNotif struct {
123 Id string `json:"id"`
124 Version int `json:"version"`
125 EventType string `json:"eventType"`
126 XApps string `json:"xApps"`
129 type Subscription struct {
131 resp SubscriptionResp
134 type SubscriptionDispatcher struct {
136 subscriptions cmap.ConcurrentMap
141 type MessageTypes struct {
142 TxMessages []string `json:"txMessages"`
143 RxMessages []string `json:"rxMessages"`
146 type EventType string
149 Created EventType = "created"
150 Updated EventType = "updated"
151 Deleted EventType = "deleted"
155 MdclogErr = 1 //! Error level log entry
156 MdclogWarn = 2 //! Warning level log entry
157 MdclogInfo = 3 //! Info level log entry
158 MdclogDebug = 4 //! Debug level log entry