mao-service-discovery 1.6.0-commit-2023-07-24-04-37-15.0 → 1.6.0-commit-2023-07-24-06-22-14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/MaoServerDiscovery +0 -0
  2. package/package.json +1 -1
  3. package/.github/dependabot.yml +0 -11
  4. package/.github/workflows/codeql-analysis.yml +0 -75
  5. package/.github/workflows/docker-image.yml +0 -24
  6. package/.github/workflows/docker-publish.yml +0 -94
  7. package/.github/workflows/go.yml +0 -29
  8. package/.github/workflows/go_static.yml +0 -29
  9. package/.github/workflows/npm-publish-release.yml +0 -36
  10. package/.github/workflows/npm-publish.yml +0 -32
  11. package/Dockerfile +0 -19
  12. package/LICENSE +0 -201
  13. package/MODULES.md +0 -39
  14. package/README.md +0 -54
  15. package/bak/index.html +0 -42
  16. package/bak/receiveProcessIcmpLoopV4V6.bak +0 -73
  17. package/bak/test/test-icmp-ka-module.go +0 -297
  18. package/bak/test/test-tech.go +0 -110
  19. package/bak/using_etcd/main.go +0 -165
  20. package/cmd/api/aux-data-module.go +0 -14
  21. package/cmd/api/config-module.go +0 -11
  22. package/cmd/api/email-module.go +0 -14
  23. package/cmd/api/gateway-module.go +0 -23
  24. package/cmd/api/grpc-ka-module.go +0 -29
  25. package/cmd/api/icmp-ka-module.go +0 -26
  26. package/cmd/api/restful-server-module.go +0 -13
  27. package/cmd/api/topo-module.go +0 -31
  28. package/cmd/api/wechat-module.go +0 -18
  29. package/cmd/general_client.go +0 -366
  30. package/cmd/lib/AuxDataProcessor/aux-data-processor-module.go +0 -64
  31. package/cmd/lib/AuxDataProcessor/env-temp-processor.go +0 -63
  32. package/cmd/lib/AuxDataProcessor/env-temp-processor_test.go +0 -30
  33. package/cmd/lib/Config/config-yaml-module.go +0 -303
  34. package/cmd/lib/Config/config-yaml-module_test.go +0 -308
  35. package/cmd/lib/Email/login-auth.go +0 -35
  36. package/cmd/lib/Email/login-auth_test.go +0 -13
  37. package/cmd/lib/Email/smtp-email-module.go +0 -229
  38. package/cmd/lib/Email/smtp-email-module_test.go +0 -12
  39. package/cmd/lib/GrpcKa/grpc-detect-module.go +0 -269
  40. package/cmd/lib/GrpcKa/grpc-detect-module_test.go +0 -26
  41. package/cmd/lib/IcmpKa/icmp-detect-module.go +0 -545
  42. package/cmd/lib/IcmpKa/icmp-detect-module_test.go +0 -23
  43. package/cmd/lib/InfluxDB/influxdb-util.go +0 -72
  44. package/cmd/lib/MaoCommon/gps.go +0 -15
  45. package/cmd/lib/MaoCommon/service-registry-util.go +0 -59
  46. package/cmd/lib/MaoCommon/service-registry.go +0 -14
  47. package/cmd/lib/MaoCommon/service-registry_test.go +0 -30
  48. package/cmd/lib/MaoEnhancedGolang/smtp.go +0 -438
  49. package/cmd/lib/Restful/restful-server-impl.go +0 -87
  50. package/cmd/lib/Soap/soap-tplink-util.go +0 -186
  51. package/cmd/lib/Soap/soap-tplink-util_test.go +0 -45
  52. package/cmd/lib/Soap/tplink-gateway-module.go +0 -200
  53. package/cmd/server.go +0 -327
  54. package/go.mod +0 -38
  55. package/go.sum +0 -222
  56. package/grpc.maojianwei.com/server/discovery/api/generate_api_from_protobuf.sh +0 -1
  57. package/grpc.maojianwei.com/server/discovery/api/mao-server-discovery.pb.go +0 -403
  58. package/grpc.maojianwei.com/server/discovery/api/mao-server-discovery.proto +0 -35
  59. package/grpc.maojianwei.com/server/discovery/api/mao-server-discovery_grpc.pb.go +0 -207
  60. package/incubator/OnosTopoShow/onos-topo-module.go +0 -347
  61. package/incubator/Wechat/wechat-message-module.go +0 -267
  62. package/incubator/Wechat/wechat-message-module_test.go +0 -108
  63. package/main.go +0 -383
  64. package/notebook/notebook.txt +0 -8
  65. package/resource/index-email.html +0 -67
  66. package/resource/index-icmp.html +0 -41
  67. package/resource/index-onos.html +0 -38
  68. package/resource/index-server.html +0 -57
  69. package/resource/index-wechat.html +0 -64
  70. package/resource/jquery-3.6.0.min.js +0 -2
  71. package/screenshot/2-cli-output.png +0 -0
  72. package/screenshot/2-cli-parameters.png +0 -0
  73. package/screenshot/2-json-format.png +0 -0
  74. package/screenshot/2-readable-format.png +0 -0
  75. package/screenshot/client-server-mode-1.png +0 -0
  76. package/screenshot/client-server-mode-2.png +0 -0
  77. package/screenshot/client-server-mode-production.png +0 -0
  78. package/screenshot/show_using_etcd.png +0 -0
  79. package/statically_linked_compilation.sh +0 -2
  80. package/util/mao_log.go +0 -42
  81. package/util/mao_log_test.go +0 -73
  82. package/util/mao_util.go +0 -53
@@ -1,108 +0,0 @@
1
- package Wechat
2
-
3
- import (
4
- "bytes"
5
- "encoding/json"
6
- "fmt"
7
- "io/ioutil"
8
- "log"
9
- "net/http"
10
- "strings"
11
- "testing"
12
- )
13
-
14
- func TestWechatMessageModule_SendWechatMessage(t *testing.T) {
15
- globalReceiversStr := ""
16
- globalReceivers := strings.Fields(globalReceiversStr)
17
- log.Println(globalReceivers)
18
- }
19
-
20
-
21
-
22
-
23
-
24
- type WechatAccessTokenResponse struct {
25
- ErrCode int `json:"errcode"`
26
- ErrMsg string `json:"errmsg"`
27
- AccessToken string `json:"access_token"`
28
- ExpiresIn int `json:"expires_in"`
29
- }
30
- func TestWechatMessageModule_SendWechatMessage2(t *testing.T) {
31
-
32
- req, err := http.NewRequest("GET", fmt.Sprintf(URL_TEMPLATE_GET_ACCESS_TOKEN,
33
- "", ""), nil)
34
- if err != nil {
35
- log.Println(err.Error())
36
- return
37
- }
38
-
39
- client := http.Client{}
40
- resp, err := client.Do(req)
41
- if err != nil {
42
- log.Println(err.Error())
43
- return
44
- }
45
- defer resp.Body.Close()
46
-
47
- body, err := ioutil.ReadAll(resp.Body)
48
- if err != nil {
49
- log.Printf(err.Error())
50
- return
51
- }
52
- log.Println(body)
53
-
54
- accessTokenResponse := WechatAccessTokenResponse{}
55
- err = json.Unmarshal(body, &accessTokenResponse)
56
- if err != nil {
57
- log.Println(err.Error())
58
- return
59
- }
60
- log.Println(body)
61
- log.Println(accessTokenResponse)
62
-
63
- if accessTokenResponse.ErrCode != 0 {
64
- log.Println(accessTokenResponse)
65
- return
66
- }
67
- // =====================================
68
-
69
- data :=
70
- "{" +
71
- "\"touser\":\"@all\"," +
72
- "\"toparty\":\"\"," +
73
- "\"totag\":\"\"," +
74
- "\"msgtype\":\"textcard\"," +
75
- "\"agentid\": 123456789," +
76
- "\"textcard\": {" +
77
- "\"title\":\"青岛雷达\"," +
78
- "\"description\":\"beijing<br>good day\"," +
79
- "\"url\":\"https://www.baidu.com/\"" +
80
- "}" +
81
- "}"
82
- postData := bytes.NewReader([]byte(data))
83
- req, err = http.NewRequest("POST", fmt.Sprintf(URL_TEMPLATE_SEND_MESSAGE, accessTokenResponse.AccessToken), postData)
84
- if err != nil {
85
- log.Println(err.Error())
86
- return
87
- }
88
-
89
- client = http.Client{}
90
- resp, err = client.Do(req)
91
- if err != nil {
92
- log.Println(err.Error())
93
- return
94
- }
95
- defer resp.Body.Close()
96
-
97
- body, err = ioutil.ReadAll(resp.Body)
98
- if err != nil {
99
- log.Println(err.Error())
100
- return
101
- }
102
-
103
- log.Println(body)
104
-
105
- }
106
-
107
-
108
-
package/main.go DELETED
@@ -1,383 +0,0 @@
1
- package main
2
-
3
- import (
4
- branch "MaoServerDiscovery/cmd"
5
- "MaoServerDiscovery/util"
6
- "errors"
7
- "github.com/spf13/cobra"
8
- "net"
9
- "os"
10
- "runtime"
11
- "strings"
12
- )
13
-
14
- const (
15
- GENERAL_CLIENT_VERSION = "1.6"
16
- SERVER_VERSION = "1.6"
17
- ROOT_VERSION_SIGNATURE = "Server: " + SERVER_VERSION + " Client: " + GENERAL_CLIENT_VERSION
18
- )
19
-
20
- var (
21
- //main_server_addr net.IP
22
- report_server_addr net.IP
23
- report_server_port uint32
24
- minLogLevel util.MaoLogLevel
25
- silent bool
26
-
27
-
28
- web_server_addr net.IP
29
- web_server_port uint32
30
-
31
- cli_dump_interval uint32
32
- refresh_interval uint32
33
-
34
-
35
- report_interval uint32
36
-
37
- nat66Gateway bool
38
- nat66Persistent bool
39
-
40
- gpsMonitor bool
41
- gpsPersistent bool
42
-
43
- influxdbUrl string
44
- influxdbOrgBucket string
45
- influxdbToken string
46
-
47
- envTempMonitor bool
48
- envTempPersistent bool
49
- )
50
-
51
- var rootCmd = &cobra.Command{
52
- Use: "MaoServerDiscovery",
53
- Short: "Mao-Service-Discovery, welcome to join our Github community. https://github.com/MaoJianwei/Mao_Service_Discovery",
54
- Long: "Mao-Service-Discovery:\nService registry & Service discovery & Service keep-alive.\nWelcome to join our Github community. https://github.com/MaoJianwei/MaoServiceDiscovery",
55
- //Example: "beijing",
56
- Version: ROOT_VERSION_SIGNATURE,
57
- Run: func(cmd *cobra.Command, args []string) {
58
- if err := cmd.Help(); err != nil {
59
- util.MaoLog(util.ERROR, "Fail to execute rootCmd.Help(): %s", err.Error())
60
- }
61
- },
62
- }
63
-
64
- var generalClientCmd = &cobra.Command{
65
- Use: "client",
66
- Short: "Mao: Run general client. For common device, server, PC, laptop, Raspberry Pi, etc.",
67
- Long: "Mao-Service-Discovery:\nRun general client. For common device, server, PC, laptop, Raspberry Pi, etc.",
68
- //Example: "a",
69
- Version: GENERAL_CLIENT_VERSION,
70
- Run: func(cmd *cobra.Command, args []string) {
71
- if err := readGeneralClientArgs(cmd); err != nil {
72
- util.MaoLog(util.ERROR, "Wrong Args for general client: %s", err.Error())
73
- return
74
- }
75
-
76
- if nat66Gateway == true {
77
- if runtime.GOOS != `linux` || os.Getgid() != 0 {
78
- util.MaoLog(util.ERROR, "nat66Gateway is usable only in linux with root privilege")
79
- return
80
- }
81
- }
82
-
83
- branch.RunGeneralClient(&report_server_addr, report_server_port, report_interval, silent,
84
- influxdbUrl, influxdbOrgBucket, influxdbToken,
85
- nat66Gateway, nat66Persistent, gpsMonitor, gpsPersistent, envTempMonitor, envTempPersistent,
86
- minLogLevel)
87
- },
88
- }
89
-
90
- var serverCmd = &cobra.Command{
91
- Use: "server",
92
- Short: "Mao: Run server.",
93
- Long: "Mao-Service-Discovery: Run server.",
94
- //Example: "a",
95
- Version: SERVER_VERSION,
96
- Run: func(cmd *cobra.Command, args []string) {
97
- if err := readServerArgs(cmd); err != nil {
98
- util.MaoLog(util.ERROR, "Wrong Args for server: %s", err.Error())
99
- return
100
- }
101
-
102
- //ss,_ := rootCmd.PersistentFlags().GetString("report_server_addr")
103
- //report_server_addr = net.ParseIP(ss)
104
- //fmt.Printf("%v\n%v\n%v\n%v\n%v\n%v\n%v\n",
105
- // report_server_addr,
106
- // report_server_port,
107
- // main_server_addr,
108
- // web_server_addr,
109
- // web_server_port,
110
- // cli_dump_interval,
111
- // report_interval)
112
- //
113
- //fmt.Printf("---\n%v, %d\n", args, len(args))
114
- //return
115
- branch.RunServer(&report_server_addr, report_server_port, &web_server_addr, web_server_port,
116
- influxdbUrl, influxdbToken, influxdbOrgBucket,
117
- cli_dump_interval, refresh_interval, minLogLevel, silent, SERVER_VERSION)
118
- },
119
- }
120
-
121
- /**
122
- Common:
123
- - report_server_addr : connect to / listen on the addr, for service discovery
124
- - report_server_port : connect to / listen on the port, for service discovery
125
- - log : min log level. If set to INFO, DEBUG log will not be outputted.
126
- - silent : if true, no log will be outputted. prior to the log parameter.
127
- Server:
128
- - web_server_addr : listen on the addr, for web control
129
- - web_server_port : listen on the port, for web control
130
-
131
- - cli_dump_interval : interval for dump all services info. (milliseconds)
132
- //- refresh_interval : interval for refresh the status of clients. (milliseconds)
133
-
134
- Client:
135
- - report_interval : interval for report status to server. (milliseconds)
136
-
137
- - influxdb_url :url to access influxdb database
138
- - influxdb_org_bucket : organization and bucket names
139
- - influxdb_token : token to access influxdb database
140
-
141
- - enable_aux_nat66_stat : enable to pull statistics of nat66 gateway
142
- - enable_aux_nat66_persistent : enable to persistent nat66 statistics to database
143
-
144
- - enable_gps_monitor : enable to read GPS data via serial port from the GPS module
145
- - enable_gps_persistent : enable to persistent GPS statistics to database
146
-
147
- - enable_aux_env_temp_monitor : enable to monitor environment temperature
148
- - enable_aux_env_temp_persistent : enable to upload environment temperature to Influxdb
149
- */
150
- func init() {
151
- rootCmd.PersistentFlags().String("report_server_addr","::","IP address for gRPC KA module. (e.g. 2001:db8::1)")
152
- rootCmd.PersistentFlags().Uint32("report_server_port",28888,"Port for gRPC KA module.")
153
- rootCmd.PersistentFlags().String("log_level", "INFO","The min level for the logs outputted. (e.g. DEBUG, INFO, WARN, ERROR, SILENT)")
154
- rootCmd.PersistentFlags().Bool("silent", false,"Don't output the server list periodically. (default: false)")
155
-
156
-
157
- //serverCmd.Flags().String("main_server_addr","::","::")
158
- serverCmd.Flags().String("web_server_addr","::","IP address for Restful server.")
159
- serverCmd.Flags().Uint32("web_server_port",29999,"Port for Restful server.")
160
-
161
- serverCmd.Flags().Uint32("cli_dump_interval", 1000, "The interval to output all services info to the CLI, in milliseconds.")
162
- //serverCmd.Flags().Uint32("refresh_interval", 1000, "The interval to refresh the status of clients, in milliseconds.")
163
-
164
- serverCmd.Flags().String("influxdb_url","","URL for connecting to Influxdb. (e.g. https://<domain-or-ip>:<port>) (Optional)")
165
- serverCmd.Flags().String("influxdb_org_bucket","","Same name for Org and Bucket. (Optional)")
166
- serverCmd.Flags().String("influxdb_token","","Token string obtained from Influxdb. (Optional)")
167
-
168
-
169
- generalClientCmd.Flags().Uint32("report_interval", 1000, "The interval to collect data and report to server, in milliseconds.")
170
-
171
- generalClientCmd.Flags().String("influxdb_url","","URL for connecting to Influxdb. (e.g. https://<domain-or-ip>:<port>) (Optional)")
172
- generalClientCmd.Flags().String("influxdb_org_bucket","","Same name for Org and Bucket. (Optional)")
173
- generalClientCmd.Flags().String("influxdb_token","","Token string obtained from Influxdb. (Optional)")
174
-
175
- generalClientCmd.Flags().Bool("enable_aux_nat66_stat", false, "Enable to pull statistics of nat66 gateway. Usable only in linux with root privilege. (default: false)")
176
- generalClientCmd.Flags().Bool("enable_aux_nat66_persistent", false, "Enable to upload nat66 stat to Influxdb. (default: false)")
177
-
178
- generalClientCmd.Flags().Bool("enable_gps_monitor", false, "Enable to read GPS data via serial port from the GPS module. (default: false)")
179
- generalClientCmd.Flags().Bool("enable_gps_persistent", false, "Enable to upload GPS data to Influxdb. (default: false)")
180
-
181
- generalClientCmd.Flags().Bool("enable_aux_env_temp_monitor", false, "Enable to monitor environment temperature. (default: false)")
182
- generalClientCmd.Flags().Bool("enable_aux_env_temp_persistent", false, "Enable to upload environment temperature to Influxdb. (default: false)")
183
- }
184
-
185
- func readRootArgs(cmd *cobra.Command) error {
186
-
187
- report_server_addr_str, err := rootCmd.PersistentFlags().GetString("report_server_addr")
188
- if err != nil {
189
- return err
190
- }
191
- report_server_addr = net.ParseIP(report_server_addr_str)
192
- if report_server_addr == nil {
193
- return errors.New("report_server_addr is invalid")
194
- }
195
-
196
- report_server_port, err = rootCmd.PersistentFlags().GetUint32("report_server_port")
197
- if err != nil {
198
- return err
199
- }
200
- if report_server_port < 1 || report_server_port > 65535 {
201
- return errors.New("report_server_port is invalid")
202
- }
203
-
204
- min_log_level, err := rootCmd.PersistentFlags().GetString("log_level")
205
- if err != nil {
206
- return err
207
- }
208
- found := false
209
- for i, s := range util.MaoLogLevelString {
210
- if strings.Contains(s, min_log_level) {
211
- minLogLevel = util.MaoLogLevel(i)
212
- found = true
213
- break
214
- }
215
- }
216
- if !found {
217
- return errors.New("log_level is invalid")
218
- }
219
-
220
- silent, err = rootCmd.PersistentFlags().GetBool("silent")
221
- if err != nil {
222
- return err
223
- }
224
-
225
- return nil
226
- }
227
-
228
- func readServerArgs(cmd *cobra.Command) error {
229
-
230
- if err := readRootArgs(cmd); err != nil {
231
- return err
232
- }
233
-
234
- //main_server_addr_str, err := cmd.Flags().GetString("main_server_addr")
235
- //if err != nil {
236
- // return err
237
- //}
238
- //main_server_addr = net.ParseIP(main_server_addr_str)
239
- //if main_server_addr == nil {
240
- // return errors.New("main_server_addr is invalid")
241
- //}
242
-
243
- web_server_addr_str, err := cmd.Flags().GetString("web_server_addr")
244
- if err != nil {
245
- return err
246
- }
247
- web_server_addr = net.ParseIP(web_server_addr_str)
248
- if web_server_addr == nil {
249
- return errors.New("web_server_addr is invalid")
250
- }
251
-
252
- web_server_port, err = cmd.Flags().GetUint32("web_server_port")
253
- if err != nil {
254
- return err
255
- }
256
- if web_server_port < 1 || web_server_port > 65535 {
257
- return errors.New("web_server_port is invalid")
258
- }
259
-
260
-
261
- cli_dump_interval, err = cmd.Flags().GetUint32("cli_dump_interval")
262
- if err != nil {
263
- return err
264
- }
265
- if cli_dump_interval < 1 {
266
- return errors.New("cli_dump_interval is invalid")
267
- }
268
-
269
- //refresh_interval, err = cmd.Flags().GetUint32("refresh_interval")
270
- //if err != nil {
271
- // return err
272
- //}
273
- //if refresh_interval < 1 {
274
- // return errors.New("refresh_interval is invalid")
275
- //}
276
- refresh_interval = 1000 // deprecated and useless, this is a padding. can be deleted.
277
-
278
- influxdbUrl, err = cmd.Flags().GetString("influxdb_url")
279
- if err != nil {
280
- return err
281
- }
282
-
283
- influxdbOrgBucket, err = cmd.Flags().GetString("influxdb_org_bucket")
284
- if err != nil {
285
- return err
286
- }
287
-
288
- influxdbToken, err = cmd.Flags().GetString("influxdb_token")
289
- if err != nil {
290
- return err
291
- }
292
-
293
- return nil
294
- }
295
-
296
- func readGeneralClientArgs(cmd *cobra.Command) error {
297
-
298
- if err := readRootArgs(cmd); err != nil {
299
- return err
300
- }
301
-
302
- var err error
303
- report_interval, err = cmd.Flags().GetUint32("report_interval")
304
- if err != nil {
305
- return err
306
- }
307
- if report_interval < 1 {
308
- return errors.New("report_interval is invalid")
309
- }
310
-
311
-
312
- influxdbUrl, err = cmd.Flags().GetString("influxdb_url")
313
- if err != nil {
314
- return err
315
- }
316
-
317
- influxdbOrgBucket, err = cmd.Flags().GetString("influxdb_org_bucket")
318
- if err != nil {
319
- return err
320
- }
321
-
322
- influxdbToken, err = cmd.Flags().GetString("influxdb_token")
323
- if err != nil {
324
- return err
325
- }
326
-
327
-
328
- nat66Gateway, err = cmd.Flags().GetBool("enable_aux_nat66_stat")
329
- if err != nil {
330
- return err
331
- }
332
-
333
- nat66Persistent, err = cmd.Flags().GetBool("enable_aux_nat66_persistent")
334
- if err != nil {
335
- return err
336
- }
337
-
338
-
339
- gpsMonitor, err = cmd.Flags().GetBool("enable_gps_monitor")
340
- if err != nil {
341
- return err
342
- }
343
-
344
- gpsPersistent, err = cmd.Flags().GetBool("enable_gps_persistent")
345
- if err != nil {
346
- return err
347
- }
348
-
349
-
350
- envTempMonitor, err = cmd.Flags().GetBool("enable_aux_env_temp_monitor")
351
- if err != nil {
352
- return err
353
- }
354
-
355
- envTempPersistent, err = cmd.Flags().GetBool("enable_aux_env_temp_persistent")
356
- if err != nil {
357
- return err
358
- }
359
-
360
-
361
- if (envTempPersistent || nat66Persistent) && influxdbUrl == "" {
362
- return errors.New("influxdb_url is invalid")
363
- }
364
- if (envTempPersistent || nat66Persistent) && influxdbOrgBucket == "" {
365
- return errors.New("influxdb_org_bucket is invalid")
366
- }
367
- if (envTempPersistent || nat66Persistent) && influxdbToken == "" {
368
- return errors.New("influxdb_token is invalid")
369
- }
370
-
371
- return nil
372
- }
373
-
374
-
375
- func main() {
376
-
377
- rootCmd.AddCommand(generalClientCmd, serverCmd)
378
-
379
- if err := rootCmd.Execute(); err != nil {
380
- //util.MaoLog(util.ERROR, fmt.Sprintf("Fail to execute rootCmd: %s", err))
381
- os.Exit(-1)
382
- }
383
- }
@@ -1,8 +0,0 @@
1
- "encoding/binary"
2
- https://studygolang.com/articles/3350
3
-
4
- "golang.org/x/net/icmp"
5
-
6
- binary.BigEndian.PutUint16(b[:2], uint16(p.ID))
7
-
8
- icmpMsgByte, err := icmpMsg.Marshal
@@ -1,67 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>Title</title>
6
- </head>
7
- <body>
8
- <!--enctype="application/json"-->
9
- <form action="/addEmailInfo" method="post">
10
- Username :<br/>
11
- <textarea rows="1" cols="50" name="username" id="username"></textarea><br/>
12
- Password :<br/>
13
- <textarea rows="1" cols="50" name="password" id="password"></textarea><br/>
14
- SMTP Server address and port (e.g. smtp.mao.com:25) :<br/>
15
- <textarea rows="1" cols="50" name="smtpServerAddrPort" id="smtpServerAddrPort"></textarea><br/>
16
- Sender Email :<br/>
17
- <textarea rows="1" cols="50" name="sender" id="sender"></textarea><br/>
18
- Receiver Emails (one line, one receiver) :<br/>
19
- <textarea rows="10" cols="50" name="receiver" id="receiver"></textarea><br/>
20
- <input type="submit" value="Add" />
21
- </form>
22
- <br/>
23
- <br/>
24
- <!--Current email info:-->
25
- <!--<div id="EmailInfoDiv"></div>-->
26
- <script src="/static/jquery-3.6.0.min.js" type="text/javascript"></script>
27
- <script>
28
- $.get("/getEmailInfo",function (response, status, xhr) {
29
-
30
- // emailInfo = "<table border=\"1\">"
31
- // emailInfo += "<tr><td>" + "Username" + "</td>"
32
- // emailInfo += "<td>" + "<input type='text' name='usernameShow' style='width:280px' readonly value='" + (response['username']!=null?response['username']:"N/A") + "'/>" + "</td></tr>"
33
- // emailInfo += "<tr><td>" + "Password" + "</td>"
34
- // emailInfo += "<td>" + "<input type='text' name='passwordShow' style='width:280px' readonly value='" + " --- --- " + "'/>" + "</td></tr>"
35
- // emailInfo += "<tr><td>" + "SMTP Server" + "</td>"
36
- // emailInfo += "<td>" + "<input type='text' name='smtpServerAddrPortShow' style='width:280px' readonly value='" + (response['smtpServerAddrPort']!=null?response['smtpServerAddrPort']:"N/A") + "'/>" + "</td></tr>"
37
- // emailInfo += "<tr><td>" + "Sender Email" + "</td>"
38
- // emailInfo += "<td>" + "<input type='text' name='senderShow' style='width:280px' readonly value='" + (response['sender']!=null?response['sender']:"N/A") + "'/>" + "</td></tr>"
39
- // emailInfo += "<tr><td>" + "Receiver Emails" + "</td>"
40
- //
41
- // receivers = ""
42
- // if (response['receiver'] != null) {
43
- // response['receiver'].forEach( r => {
44
- // receivers += r + "\r\n"
45
- // })
46
- // }
47
- // emailInfo += "<td>" + "<textarea rows='10' cols='38' name='receiverShow'>" + receivers + "</textarea>" + "</td></tr>"
48
- // emailInfo += "</table>"
49
- // $("#EmailInfoDiv").html(emailInfo)
50
-
51
-
52
- receivers = ""
53
- if (response['receiver'] != null) {
54
- response['receiver'].forEach( r => {
55
- receivers += r + "\r\n"
56
- })
57
- }
58
- $("#username").text(response['username']!=null?response['username']:"N/A")
59
- $("#password").text(" --- --- ")
60
- $("#smtpServerAddrPort").text(response['smtpServerAddrPort']!=null?response['smtpServerAddrPort']:"N/A")
61
- $("#sender").text(response['sender']!=null?response['sender']:"N/A")
62
- $("#receiver").text(receivers)
63
- })
64
- </script>
65
-
66
- </body>
67
- </html>
@@ -1,41 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>Title</title>
6
- </head>
7
- <body>
8
- <!--enctype="application/json"-->
9
- <form action="/addServiceIp" method="post">
10
- New Services<br/>
11
- <textarea rows="6" cols="50" name="ipv4v6"></textarea><br/>
12
- <input type="submit" value="Add" />
13
- </form>
14
- <br/>
15
-
16
- <div id="services"></div>
17
- <script src="/static/jquery-3.6.0.min.js" type="text/javascript"></script>
18
- <script>
19
- $.get("/showServiceIP",function (response, status, xhr) {
20
- services = "Services " + response.length + "<br/>"
21
- services += "<table border=\"1\"><tr><th>Service IP</th><th>Alive</th><th>DetectCount</th><th>ReportCount</th><th>LastSeen</th><th>RttDuration</th><th>RttOutboundTimestamp</th></tr>"
22
-
23
- $.each(response, function(index, item) {
24
- services += "<tr><td><form action=\"/delServiceIp\" method=\"post\">"
25
- services += "<input type=\"submit\" value=\"Delete\" />"
26
- services += "<input type=\"text\" name='ipv4v6' style='width:280px' readonly value='" + item["Address"] + "'/></form></td>"
27
- services += "<td>" + item["Alive"] + "</td>"
28
- services += "<td>" + item["DetectCount"] + "</td>"
29
- services += "<td>" + item["ReportCount"] + "</td>"
30
- services += "<td>" + item["LastSeen"] + "</td>"
31
- services += "<td>" + item["RttDuration"] + "</td>"
32
- services += "<td>" + item["RttOutboundTimestamp"] + "</td>"
33
- services += "</tr>"
34
- })
35
- services += "</table>"
36
- $("#services").html(services)
37
- })
38
- </script>
39
-
40
- </body>
41
- </html>
@@ -1,38 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>Title</title>
6
- </head>
7
- <body>
8
- <!--enctype="application/json"-->
9
- <form action="/addOnosInfo" method="post">
10
- ONOS Endpoint address and port (e.g. 127.0.0.1:8181) :<br/>
11
- <textarea rows="1" cols="50" name="addrPort" id="addrPort"></textarea><br/>
12
- <input type="submit" value="Add"/>
13
- </form>
14
- <br/>
15
- <br/>
16
- <!--Current email info:-->
17
- <div id="OnosInfoDiv"></div>
18
- <script src="/static/jquery-3.6.0.min.js" type="text/javascript"></script>
19
- <script>
20
- $.get("/getOnosInfo", function (response, status, xhr) {
21
- onosInfo = "<table border=\"1\">"
22
- onosInfo += "<tr><td>" + "ADD_DEVICE_API" + "</td>"
23
- onosInfo += "<td>" + "<input type='text' name='ADD_DEVICE_API_Show' style='width:600px' readonly value='" + (response['ADD_DEVICE_API'] != null ? response['ADD_DEVICE_API'] : "N/A") + "'/>" + "</td></tr>"
24
- onosInfo += "<tr><td>" + "REMOVE_DEVICE_API" + "</td>"
25
- onosInfo += "<td>" + "<input type='text' name='REMOVE_DEVICE_API_Show' style='width:600px' readonly value='" + (response['REMOVE_DEVICE_API'] != null ? response['REMOVE_DEVICE_API'] : "N/A") + "'/>" + "</td></tr>"
26
- onosInfo += "<tr><td>" + "DELETE_DEVICE_API" + "</td>"
27
- onosInfo += "<td>" + "<input type='text' name='DELETE_DEVICE_API_Show' style='width:600px' readonly value='" + (response['DELETE_DEVICE_API'] != null ? response['DELETE_DEVICE_API'] : "N/A") + "'/>" + "</td></tr>"
28
- onosInfo += "<tr><td>" + "ADD_LINK_API" + "</td>"
29
- onosInfo += "<td>" + "<input type='text' name='ADD_LINK_API_Show' style='width:600px' readonly value='" + (response['ADD_LINK_API'] != null ? response['ADD_LINK_API'] : "N/A") + "'/>" + "</td></tr>"
30
- onosInfo += "<tr><td>" + "REMOVE_LINK_API" + "</td>"
31
- onosInfo += "<td>" + "<input type='text' name='REMOVE_LINK_API_Show' style='width:600px' readonly value='" + (response['REMOVE_LINK_API'] != null ? response['REMOVE_LINK_API'] : "N/A") + "'/>" + "</td></tr>"
32
- onosInfo += "</table>"
33
- $("#OnosInfoDiv").html(onosInfo)
34
- })
35
- </script>
36
-
37
- </body>
38
- </html>