add: 配置文件参数
This commit is contained in:
51
.gitignore
vendored
Normal file
51
.gitignore
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# ---> VisualStudioCode
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
!.vscode/*.code-snippets
|
||||||
|
|
||||||
|
# Local History for Visual Studio Code
|
||||||
|
.history/
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# Run temp file and dir
|
||||||
|
crontask/log/
|
||||||
|
crontask/ftp/
|
||||||
|
crontask/database/
|
||||||
|
crontask/export/
|
||||||
|
crontask/temp
|
||||||
|
crontask/crontask
|
||||||
|
|
||||||
|
restagent/backup/
|
||||||
|
restagent/log/
|
||||||
|
restagent/upload/
|
||||||
|
restagent/software/
|
||||||
|
restagent/database/
|
||||||
|
restagent/license/
|
||||||
|
restagent/restagent
|
||||||
|
|
||||||
|
sshsvc/sshsvc
|
||||||
|
sshsvc/mmllog/
|
||||||
|
sshsvc/mmlhome/
|
||||||
|
sshsvc/log/
|
||||||
|
|
||||||
|
captrace/captrace
|
||||||
|
captrace/log/
|
||||||
|
|
||||||
|
tools/loadmconf/loadmconf
|
||||||
|
tools/loadpconf/loadpconf
|
||||||
|
|
||||||
|
reference
|
||||||
|
vendor
|
||||||
|
|
||||||
|
# Built Visual Studio Code Extensions
|
||||||
|
*.vsix
|
||||||
|
*.log
|
||||||
|
*.log-*
|
||||||
|
*.bak
|
||||||
|
*.bak*
|
||||||
|
*.exe
|
||||||
|
__debug_bin*.exe
|
||||||
|
|
||||||
358
restagent/config/config.go
Normal file
358
restagent/config/config.go
Normal file
@@ -0,0 +1,358 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"nms_nbi/lib/global"
|
||||||
|
"nms_nbi/lib/log"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"gopkg.in/yaml.v3"
|
||||||
|
)
|
||||||
|
|
||||||
|
type DbConfig struct {
|
||||||
|
Type string `yaml:"type"`
|
||||||
|
User string `yaml:"user"`
|
||||||
|
Password string `yaml:"password"`
|
||||||
|
Host string `yaml:"host"`
|
||||||
|
Port string `yaml:"port"`
|
||||||
|
Name string `yaml:"name"`
|
||||||
|
Backup string `yaml:"backup"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Yaml struct of config
|
||||||
|
type YamlConfig struct {
|
||||||
|
Logger struct {
|
||||||
|
File string `yaml:"file"`
|
||||||
|
Level string `yaml:"level"`
|
||||||
|
Duration int `yaml:"duration"`
|
||||||
|
Count int `yaml:"count"`
|
||||||
|
} `yaml:"logger"`
|
||||||
|
|
||||||
|
Rest []struct {
|
||||||
|
IPv4 string `yaml:"ipv4"`
|
||||||
|
IPv6 string `yaml:"ipv6"`
|
||||||
|
Port uint16 `yaml:"port"`
|
||||||
|
Scheme string `yaml:"scheme"`
|
||||||
|
ClientAuthType int `yaml:"clientAuthType"`
|
||||||
|
CaFile string `yaml:"caFile"`
|
||||||
|
CertFile string `yaml:"certFile"`
|
||||||
|
KeyFile string `yaml:"keyFile"`
|
||||||
|
} `yaml:"rest"`
|
||||||
|
|
||||||
|
WebServer struct {
|
||||||
|
Enabled bool `yaml:"enabled"`
|
||||||
|
RootDir string `yaml:"rootDir"`
|
||||||
|
Listen []struct {
|
||||||
|
Addr string `yaml:"addr"`
|
||||||
|
Scheme string `yaml:"scheme"`
|
||||||
|
ClientAuthType int `yaml:"clientAuthType"`
|
||||||
|
CaFile string `yaml:"caFile"`
|
||||||
|
CertFile string `yaml:"certFile"`
|
||||||
|
KeyFile string `yaml:"keyFile"`
|
||||||
|
} `yaml:"listen"`
|
||||||
|
} `yaml:"webServer"`
|
||||||
|
|
||||||
|
Database DbConfig `yaml:"database"`
|
||||||
|
|
||||||
|
OMC struct {
|
||||||
|
UriPrefix string `yaml:"uriPrefix"`
|
||||||
|
NeType string `yaml:"neType"`
|
||||||
|
NeId string `yaml:"neId"`
|
||||||
|
RmUID string `yaml:"rmUID"`
|
||||||
|
NeName string `yaml:"neName"`
|
||||||
|
Province string `yaml:"province"`
|
||||||
|
Vendor string `yaml:"vendor"`
|
||||||
|
Dn string `yaml:"dn"`
|
||||||
|
Chk2Ne bool `yaml:"chk2ne"`
|
||||||
|
Sn string `yaml:"sn"`
|
||||||
|
CheckSign bool `yaml:"checksign"`
|
||||||
|
RootDir string `yaml:"rootDir"`
|
||||||
|
BinDir string `yaml:"binDir"`
|
||||||
|
Backup string `yaml:"backup"`
|
||||||
|
Upload string `yaml:"upload"`
|
||||||
|
FrontUpload string `yaml:"frontUpload"`
|
||||||
|
FrontTraceDir string `yaml:"frontTraceDir"`
|
||||||
|
Software string `yaml:"software"`
|
||||||
|
License string `yaml:"license"`
|
||||||
|
GtpUri string `yaml:"gtpUri"`
|
||||||
|
CheckContentType bool `yaml:"checkContentType"`
|
||||||
|
TestMode bool `yaml:"testMode"`
|
||||||
|
RBACMode bool `yaml:"rbacMode"`
|
||||||
|
RunDir string `yaml:"runDir"`
|
||||||
|
CmdTimeout int `yaml:"cmdTimeout"`
|
||||||
|
} `yaml:"omc"`
|
||||||
|
|
||||||
|
Alarm struct {
|
||||||
|
ForwardAlarm bool `yaml:"forwardAlarm"`
|
||||||
|
Email struct {
|
||||||
|
Smtp string `yaml:"smtp"`
|
||||||
|
Port uint16 `yaml:"port"`
|
||||||
|
User string `yaml:"user"`
|
||||||
|
Password string `yaml:"password"`
|
||||||
|
TlsSkipVerify bool `yaml:"tlsSkipVerify"`
|
||||||
|
} `yaml:"email"`
|
||||||
|
SMS struct {
|
||||||
|
ApiURL string `yaml:"apiURL"`
|
||||||
|
AccessKeyID string `yaml:"AccessKeyID"`
|
||||||
|
AccessKeySecret string `yaml:"accessKeySecret"`
|
||||||
|
SignName string `yaml:"signName"`
|
||||||
|
TemplateCode string `yaml:"templateCode"`
|
||||||
|
} `yaml:"sms"`
|
||||||
|
SMSC struct {
|
||||||
|
Addr string `yaml:"addr"`
|
||||||
|
UserName string `yaml:"userName"`
|
||||||
|
Password string `yaml:"password"`
|
||||||
|
} `yaml:"smsc"`
|
||||||
|
} `yaml:"alarm"`
|
||||||
|
|
||||||
|
MML struct {
|
||||||
|
Port int `yaml:"port"`
|
||||||
|
Port2 int `yaml:"port2"`
|
||||||
|
Sleep int64 `yaml:"sleep"`
|
||||||
|
DeadLine int64 `yaml:"deadLine"`
|
||||||
|
User string `yaml:"user"`
|
||||||
|
Password string `ymal:"password"`
|
||||||
|
MmlHome string `yaml:"mmlHome"`
|
||||||
|
Upload string `yaml:"upload"`
|
||||||
|
} `yaml:"mml"`
|
||||||
|
|
||||||
|
NE struct {
|
||||||
|
Addr string `yaml:"addr"`
|
||||||
|
Port uint16 `yaml:"port"`
|
||||||
|
User string `yaml:"user"`
|
||||||
|
EtcDir string `yaml:"etcdir"`
|
||||||
|
BinDir string `yaml:"bindir"`
|
||||||
|
OmcDir string `yaml:"omcdir"`
|
||||||
|
ScpDir string `yaml:"scpdir"`
|
||||||
|
LicenseDir string `yaml:"licensedir"`
|
||||||
|
EtcListIMS string `yaml:"etcListIMS"`
|
||||||
|
EtcListDefault string `yaml:"etcListDefault"`
|
||||||
|
DpkgOverwrite bool `yaml:"dpkgOverwrite"`
|
||||||
|
DpkgTimeout int `yaml:"dpkgTimeout"`
|
||||||
|
} `yaml:"ne"`
|
||||||
|
|
||||||
|
Auth struct {
|
||||||
|
Crypt string `yaml:"crypt"`
|
||||||
|
Token bool `yaml:"token"`
|
||||||
|
Expires uint32 `yaml:"expires"`
|
||||||
|
Session string `yaml:"session"`
|
||||||
|
PublicKey string `yaml:"publicKey"`
|
||||||
|
PrivateKey string `yaml:"privateKey"`
|
||||||
|
} `yaml:"auth"`
|
||||||
|
|
||||||
|
Params struct {
|
||||||
|
RmUIDMaxNum int `yaml:"rmuidmaxnum"`
|
||||||
|
AlarmIDMaxNum int `yaml:"alarmidmaxnum"`
|
||||||
|
PmIDMaxNum int `yaml:"pmidmaxnum"`
|
||||||
|
SubIDMaxNum int `yaml:"subidmaxnum"`
|
||||||
|
UriMaxLen int `yaml:"urimaxlen"`
|
||||||
|
RmUIDRegexp string `yaml:"rmuidregexp"`
|
||||||
|
} `yaml:"params"`
|
||||||
|
|
||||||
|
TestConfig struct {
|
||||||
|
Enabled bool `yaml:"enabled"`
|
||||||
|
File string `yaml:"file"`
|
||||||
|
} `yaml:"testConfig"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TestDatas struct {
|
||||||
|
UDM struct {
|
||||||
|
CapUsed uint32 `yaml:"capUsed"`
|
||||||
|
FeatureEnabled []string `yaml:"featureEnabled"`
|
||||||
|
} `yaml:"udm"`
|
||||||
|
AUSF struct {
|
||||||
|
CapUsed uint32 `yaml:"capUsed"`
|
||||||
|
FeatureEnabled []string `yaml:"featureEnabled"`
|
||||||
|
} `yaml:"ausf"`
|
||||||
|
AMF struct {
|
||||||
|
CapUsed uint32 `yaml:"capUsed"`
|
||||||
|
FeatureEnabled []string `yaml:"featureEnabled"`
|
||||||
|
} `yaml:"amf"`
|
||||||
|
SMF struct {
|
||||||
|
CapUsed uint32 `yaml:"capUsed"`
|
||||||
|
FeatureEnabled []string `yaml:"featureEnabled"`
|
||||||
|
} `yaml:"smf"`
|
||||||
|
UPF struct {
|
||||||
|
CapUsed uint32 `yaml:"capUsed"`
|
||||||
|
FeatureEnabled []string `yaml:"featureEnabled"`
|
||||||
|
} `yaml:"upf"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type NeTestData struct {
|
||||||
|
CapUsed uint32 `yaml:"capUsed"`
|
||||||
|
FeatureEnabled []string `yaml:"featureEnabled"`
|
||||||
|
}
|
||||||
|
type TestDataMap struct {
|
||||||
|
NeTestDatas []map[string]NeTestData
|
||||||
|
}
|
||||||
|
|
||||||
|
var yamlConfig YamlConfig
|
||||||
|
|
||||||
|
func ReadConfig(configFile string) {
|
||||||
|
yamlFile, err := os.ReadFile(configFile)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Read yaml config file error:", err)
|
||||||
|
os.Exit(2)
|
||||||
|
}
|
||||||
|
// fmt.Println("yamlfile:", string(yamlFile))
|
||||||
|
|
||||||
|
err = yaml.Unmarshal(yamlFile, &yamlConfig)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Unmarshal error:", err)
|
||||||
|
os.Exit(3)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func WriteYamlConfig(newConfigData YamlConfig, configFile string) {
|
||||||
|
// 将配置转换回YAML数据
|
||||||
|
newYamlData, err := yaml.Marshal(&newConfigData)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("Failed to marshal YAML: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将新的YAML数据写入文件
|
||||||
|
err = os.WriteFile(configFile, newYamlData, 0644)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("Failed to write YAML file: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var mapYaml map[string]interface{}
|
||||||
|
|
||||||
|
func ReadParamConfig(fileName string) *map[string]interface{} {
|
||||||
|
file, err := os.ReadFile(fileName)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Read yaml file error:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
mapYaml = make(map[string]interface{})
|
||||||
|
|
||||||
|
err = yaml.Unmarshal(file, &mapYaml)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("yaml.Unmarshal: %v when to struct", err)
|
||||||
|
}
|
||||||
|
// fmt.Println("mapYaml:", mapYaml)
|
||||||
|
|
||||||
|
return &mapYaml
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetYamlConfig() *YamlConfig {
|
||||||
|
return &yamlConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetAuthFromConfig() interface{} {
|
||||||
|
return yamlConfig.Auth
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetExpiresFromConfig() uint32 {
|
||||||
|
return yamlConfig.Auth.Expires
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetRmUIDFromConfig() string {
|
||||||
|
return yamlConfig.OMC.RmUID
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetRmUIDRegexpFromConfig() string {
|
||||||
|
return yamlConfig.Params.RmUIDRegexp
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetRmUIDMaxNumFromConfig() int {
|
||||||
|
return yamlConfig.Params.RmUIDMaxNum
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetAlarmIDMaxNumFromConfig() int {
|
||||||
|
return yamlConfig.Params.AlarmIDMaxNum
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetPmIDMaxNumFromConfig() int {
|
||||||
|
return yamlConfig.Params.PmIDMaxNum
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetSubIDMaxNumFromConfig() int {
|
||||||
|
return yamlConfig.Params.SubIDMaxNum
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetUriMaxLenFromConfig() int {
|
||||||
|
return yamlConfig.Params.UriMaxLen
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetLogLevel() log.LogLevel {
|
||||||
|
var logLevel log.LogLevel
|
||||||
|
switch strings.ToLower(yamlConfig.Logger.Level) {
|
||||||
|
case "trace":
|
||||||
|
logLevel = log.LOG_TRACE
|
||||||
|
case "info":
|
||||||
|
logLevel = log.LOG_INFO
|
||||||
|
case "debug":
|
||||||
|
logLevel = log.LOG_DEBUG
|
||||||
|
case "warn":
|
||||||
|
logLevel = log.LOG_WARN
|
||||||
|
case "error":
|
||||||
|
logLevel = log.LOG_ERROR
|
||||||
|
case "fatal":
|
||||||
|
logLevel = log.LOG_FATAL
|
||||||
|
case "off":
|
||||||
|
logLevel = log.LOG_OFF
|
||||||
|
default:
|
||||||
|
logLevel = log.LOG_DEBUG
|
||||||
|
}
|
||||||
|
return logLevel
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
DefaultUriPrefix string = "/api/rest"
|
||||||
|
UriPrefix string = "/omc/rest"
|
||||||
|
//TestDataUDM []map[string]interface{}
|
||||||
|
TDatas map[string]NeTestData
|
||||||
|
)
|
||||||
|
|
||||||
|
func ReadTestConfigYaml(pfile string) (ret error) {
|
||||||
|
file, err := os.ReadFile(pfile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = yaml.Unmarshal(file, &TDatas)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Failed to Unmarshal:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDefaultUserAgent() string {
|
||||||
|
return "OMC-restagent/" + global.Version
|
||||||
|
}
|
||||||
|
|
||||||
|
// const defaultConfigFile = "./etc/restconf.yaml"
|
||||||
|
|
||||||
|
// func init() {
|
||||||
|
// cfile := flag.String("c", defaultConfigFile, "config file")
|
||||||
|
// pv := flag.Bool("version", false, "print version")
|
||||||
|
// ph := flag.Bool("help", false, "print help")
|
||||||
|
|
||||||
|
// //global.BuildTime = "Wed May 31 18:24:04 CST 2023"
|
||||||
|
// //global.GoVer = "go version go1.15.7 linux/arm64"
|
||||||
|
// flag.Parse()
|
||||||
|
// if *pv {
|
||||||
|
// fmt.Printf("OMC restagent version: %s\n%s\n%s\n\n", global.Version, global.BuildTime, global.GoVer)
|
||||||
|
// os.Exit(0)
|
||||||
|
// }
|
||||||
|
// if *ph {
|
||||||
|
// flag.Usage()
|
||||||
|
// os.Exit(0)
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 使用viper读取配置
|
||||||
|
// conf.InitConfig(*cfile)
|
||||||
|
|
||||||
|
// ReadConfig(*cfile)
|
||||||
|
// if GetYamlConfig().OMC.UriPrefix != "" {
|
||||||
|
// UriPrefix = GetYamlConfig().OMC.UriPrefix
|
||||||
|
// }
|
||||||
|
// if GetYamlConfig().TestConfig.Enabled {
|
||||||
|
// ReadTestConfigYaml(GetYamlConfig().TestConfig.File)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
111
restagent/config/map.go
Normal file
111
restagent/config/map.go
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io/ioutil"
|
||||||
|
"log"
|
||||||
|
|
||||||
|
"gopkg.in/yaml.v3"
|
||||||
|
|
||||||
|
"nms_nbi/lib/global"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Uri2Object struct {
|
||||||
|
Uri string `yaml:"uri"`
|
||||||
|
Object []Object `yaml:"object"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Object struct {
|
||||||
|
Name string `yaml:"name"`
|
||||||
|
Syntax string `yaml:"syntax"`
|
||||||
|
Oid string `yaml:"oid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
var uri2Object []Uri2Object
|
||||||
|
|
||||||
|
func ReadMap(pfile string) (ret error) {
|
||||||
|
file, err := ioutil.ReadFile(pfile)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = yaml.Unmarshal(file, &uri2Object)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
for _, v := range uri2Object {
|
||||||
|
log.Println(v)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetOid(uri string, oids *[]string) *[]string {
|
||||||
|
for _, v := range uri2Object {
|
||||||
|
if uri == v.Uri {
|
||||||
|
for _, o := range v.Object {
|
||||||
|
*oids = append(*oids, o.Oid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return oids
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetOidByFileds(uri string, fields []string, oids *[]string) *[]string {
|
||||||
|
for _, v := range uri2Object {
|
||||||
|
if uri == v.Uri {
|
||||||
|
for _, o := range v.Object {
|
||||||
|
if global.IsContain(o.Name, fields) || len(fields) == 0 {
|
||||||
|
*oids = append(*oids, o.Oid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return oids
|
||||||
|
}
|
||||||
|
|
||||||
|
type NameOid struct {
|
||||||
|
Name string
|
||||||
|
Oid string
|
||||||
|
}
|
||||||
|
|
||||||
|
type NameValue struct {
|
||||||
|
Name string
|
||||||
|
Value string
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDataOid(Uri string, nameOids *[]NameOid) *[]NameOid {
|
||||||
|
var nameOid NameOid
|
||||||
|
for _, v := range uri2Object {
|
||||||
|
if Uri == v.Uri {
|
||||||
|
for _, o := range v.Object {
|
||||||
|
nameOid.Name = o.Name
|
||||||
|
nameOid.Oid = o.Oid
|
||||||
|
*nameOids = append(*nameOids, nameOid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nameOids
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDataOidByFields(uri string, fields []string, nameOids *[]NameOid) *[]NameOid {
|
||||||
|
var nameOid NameOid
|
||||||
|
for _, v := range uri2Object {
|
||||||
|
if uri == v.Uri {
|
||||||
|
for _, o := range v.Object {
|
||||||
|
nameOid.Name = o.Name
|
||||||
|
nameOid.Oid = o.Oid
|
||||||
|
if len(fields) == 0 || global.IsContainP(nameOid.Name, &fields, len(fields)) {
|
||||||
|
*nameOids = append(*nameOids, nameOid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nameOids
|
||||||
|
}
|
||||||
29
restagent/etc/certs/ca.crt
Normal file
29
restagent/etc/certs/ca.crt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIE3TCCAsWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAQMQ4wDAYDVQQKEwVHbyBD
|
||||||
|
QTAeFw0yNDAxMDkwNzEyNTVaFw0zNDAxMDYwNzEyNTVaMBAxDjAMBgNVBAoTBUdv
|
||||||
|
IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAx/mmbhCZS4XFvbn0
|
||||||
|
btk8SuetjziP3kJ4/ijpwr8WD0JeskFf2qILNOCQMBOWqyxrd6kYCMyrrb/c5mX9
|
||||||
|
q23TgV6qghp/0xoA70SHvcqv6F4ssOJSvaN29ud3puKyWgvToNGY/z5pU0IQCUtQ
|
||||||
|
6CJWJo4gUaB/5vH1ipheU7Xsiw5bNeFaWQ/nxsTwvoZVfk7noiAMd/W8nAGJbhxC
|
||||||
|
ByJhs1AZQ9d4yEezLrpyDqOdehffrEse+8BlytqkKhHYinAE4pqgeDcln05fxWrz
|
||||||
|
zzYRw2GiHFfioo4labueTe8eoOBHYJpFmthfdsgrth9+aSA5GKHpXQ0rzaahgcGU
|
||||||
|
+S9XFjYxWkMXMiUQhCFNd+1IFi0NsLas04UwXLu1x4CL7d/BRlzR6ezwq6hnxTOc
|
||||||
|
FMXAcpnfnKzF7WOHvGa/dsr92hpX48K64cHtlCLfeRR4E/60LJ6FYjqpNKgai+s+
|
||||||
|
sbeOOyKskCQ0wHNElrebojdYlkXzam0rKbnNJNERx8/v48cwt0F5LNnN6a2CDVPN
|
||||||
|
LGMwBSNDZbiiI53Q6DE7H71XkZjkR0NRqmcIm+ElecpBLavicqfNlg8JLoorJQSW
|
||||||
|
oiSJmyxqIjnqNrfmk/l30jI2lVal4c1QSBFrFsob9rBLkXGM1EWb0PSMrwZM29et
|
||||||
|
Ch8zvN7FlOPC76cIw2QmAxWVJ+kCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgKkMA8G
|
||||||
|
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOCdRGl2aikRXamo4qJu9wQ7kqI9MA0G
|
||||||
|
CSqGSIb3DQEBCwUAA4ICAQC/osh2VHoJoyG8Z3vdLH+0XZ04I8Ih2BQBcPKPZ1v0
|
||||||
|
vdVDrQ6ldkgSKhM+/of9XtzvtphV7Yxq4LFipu9HE2xNmZjOMXZgsGgQ4qS3KkDk
|
||||||
|
u0/q7ZmE8MG7uLW76m7PGNO4Ugz3k6yVx0KVC/Fy9YdWwKkl8nL93nPqWRsN/jwE
|
||||||
|
WRyZ822Xnz19cY5vFbaO5fO1hW5+3U50Kh7BWuyd7TZ+OT8KmY834DKLDDnWdcPW
|
||||||
|
/k6Je1Y0H79E/SIjFkCxCNTDNS5SVHfTr0BCbVMXXi5dbNTjhY41TM+JwIKa1fVB
|
||||||
|
YhzWqk16riDYa+bg2xcdda8B0lQT8qRrMGFtjPsqyNhNoTFRUXx9HKX3VBIXqmlD
|
||||||
|
7v7lCWbvXkCjb2mAEG5ayy1lHKkOd6Q1E0HXZST2PHIippOFwndGz0P9tij+g1Df
|
||||||
|
cDisGxdfOZwpJTLhO5QYDom6YQgcWxfOUPK1HVnRrbniEQIykHldoIk3YL+vGwRZ
|
||||||
|
qEcJDf4F98KyxfYv9OvMGfP+imyOg4Yh4HKt4Cm+WxoKbF+qO3kPgXzGgLfthKNe
|
||||||
|
qi8fKCnbe91yuXzvKfjtfS7SYz9E0mlZkUUcpQ9r7thk4xEF5PHxHjFzZYzLX5c3
|
||||||
|
SMfjmtiTnD0wPFlaDtd/3absBC7xHCfs3v+DfyKyuYOvi2CUHiR2k8sZIDaEpwxF
|
||||||
|
Dw==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
23
restagent/etc/certs/omc-ca.crt
Normal file
23
restagent/etc/certs/omc-ca.crt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIID4TCCAcmgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAQMQ4wDAYDVQQKEwVHbyBD
|
||||||
|
QTAeFw0yNDAxMDkwNzEyNTVaFw0zNDAxMDYwNzEyNTVaMBQxEjAQBgNVBAoTCUdv
|
||||||
|
IE9NQyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPidCkI9UhWg
|
||||||
|
7EOKoS/JGH95Q3ekfU+rK0EULJbJfeszJkYZ2u2gQ5gbBcyWUQvFhOuFpgcchsGA
|
||||||
|
Vy3QfudO0Jxysf67rBFFjyB2NQXc68B3zJS5L+N9P0XEwgz9hr9rijDrNT8RvY+z
|
||||||
|
L8Blrbl4oBEssOEyFOBYkHIMlvUEIMZYaA1NPA+Wwk8x3ENS1YVGml5u7JBk2oe2
|
||||||
|
gHDktHe98hU0Nd88K3ZxGte3pwmeynMslTw9Oct6Wy2fu0zcZlnJZPmoY2LXYyhx
|
||||||
|
mj9oO3n5KgXxHlfGxPl5N2lqu/tmAr/1fAwUKVHUZzpmIbEyqMTDow8qTvjYa4o/
|
||||||
|
41Bvg1JOrDsCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB/wQFMAMB
|
||||||
|
Af8wHQYDVR0OBBYEFJ2woDwnDKwmU3bU8cA+EAG0MVMwMA0GCSqGSIb3DQEBCwUA
|
||||||
|
A4ICAQAuT4aMkcJWZeAJXGjSxSCoLclnrQw4SAVjNvIUNS83+0flHLTFzj1fAU4M
|
||||||
|
/RZjZE22mdF+wgAhMfC+zoJq7plHELSkG9HY1dmscK7MVRrVdnooYD+HXS8rjOaD
|
||||||
|
oUapFmEK5ivXF6Cx1gQoPeo/Q0FRDd9Ky5rjB0vWFxsnU/BZkfOLCC2zQoZcL+UN
|
||||||
|
rmSq+iPkUMvFDVWSR/XY+xtXaW9GboqaqtoNvR24RSquI5xe1Co7JuDuu+j83lv/
|
||||||
|
5YpOG14pNA3IF6TNFChR63l/VkaT15QDSnKxSgIQdcaPuv9yvA7OPIiaTOAqcDKi
|
||||||
|
4RSTqRezh6TnbWIFSJI03EY8gFa7PkelcWqurCXgc4vevC3bLAHuys4QIVboq0yw
|
||||||
|
CmCMVmJtgyXT15yc4x+ivwHyDT25wI2ynPnoXgKqzudFav0ZhoR7l2YmH2by7wrN
|
||||||
|
5AnNbyer72NJhKRleLyboPtqWwTLfvtOW2Aqbg+cWKwTq9NNAqJ47tZ1ZrCuWI/H
|
||||||
|
oOehNKM5QpW5k6shWuOmhYD9kROE/D1U9huzGEzijUZkT4yUF0udCNoFofz6wl4t
|
||||||
|
Czk1+Pjd3tecIj9/NitBiDzjCPJVXeAOphvCO0Z0R5fKA+Y/4kd+HmiuNiW1tnGG
|
||||||
|
D7z+beF+SsnagRquwdfZTpICfu/2+ogHwfxpsm8cHhx8DzMslA==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
18
restagent/etc/certs/omc-server.crt
Normal file
18
restagent/etc/certs/omc-server.crt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC2jCCAcKgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQKEwlHbyBP
|
||||||
|
TUMgQ0EwHhcNMjQwMTA5MDcxMjU1WhcNMzQwMTA2MDcxMjU1WjAVMRMwEQYDVQQK
|
||||||
|
EwpPTUMgU2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApSTG
|
||||||
|
HNOWScYVHHiGw9z8q2u3ZMUaOFBm6+F4p4PrpM1h3FtHmYv5IWr5kqoMgCU/FmPG
|
||||||
|
HrSqDzrm+J4QMdguq40Jd4QOadiDg5oyLIM6Su32sjtG/y5an3abtY9hNCoWDdpy
|
||||||
|
kNRb1i9NQ2uTSBHm1lTVWutZWgm7D9jES8JB2byDwAOONwGlqAw6buxUlIP2vCtn
|
||||||
|
SpMF8Mqdypnw8K17DLXpP+D8Exw4mjOmJEVOGnw/pinjDCHm9SEiFtagdXIWliwl
|
||||||
|
DgbyVeSE70JhaGV2bGlmldV2sN2qPvG/W99pCeObxNcCko9JdJqsDVQTiOTY6uaH
|
||||||
|
o/GdDnzZh4TbbDutDQIDAQABozYwNDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAww
|
||||||
|
CgYIKwYBBQUHAwEwDQYDVR0OBAYEBAECAwQwDQYJKoZIhvcNAQELBQADggEBAJY6
|
||||||
|
eI54wSn+kNteFEdoFS2jVM+GAMS0x4blX2wzNro6HqhlYC6oJ8TxRS6V22ugWLFX
|
||||||
|
M/pcqV5FA1XCSibYdwscdaoUSUYc6inlkHxrbfSryiQqXAkEv8Ote3dqtOu7Z0BY
|
||||||
|
PkykdMrCUXn5ksYgoTa7G1CdAiaKMeuTz801l1g8AIOpNV1+Xhi29TKA134VDW9S
|
||||||
|
2aDcD6jEs63rqKx/knStli0F58N0kOKjmmt45stP90o5NsshAMumzP0xhfwC94Gg
|
||||||
|
eBXg6ThM3nuOBQyzPEtUZioRKKV4XmgZF/F4ePCnS4ST9ft09kx7UcR9MVzGIHov
|
||||||
|
whwVw6o5O7h1xQr6Pjw=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
27
restagent/etc/certs/omc-server.key
Normal file
27
restagent/etc/certs/omc-server.key
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEApSTGHNOWScYVHHiGw9z8q2u3ZMUaOFBm6+F4p4PrpM1h3FtH
|
||||||
|
mYv5IWr5kqoMgCU/FmPGHrSqDzrm+J4QMdguq40Jd4QOadiDg5oyLIM6Su32sjtG
|
||||||
|
/y5an3abtY9hNCoWDdpykNRb1i9NQ2uTSBHm1lTVWutZWgm7D9jES8JB2byDwAOO
|
||||||
|
NwGlqAw6buxUlIP2vCtnSpMF8Mqdypnw8K17DLXpP+D8Exw4mjOmJEVOGnw/pinj
|
||||||
|
DCHm9SEiFtagdXIWliwlDgbyVeSE70JhaGV2bGlmldV2sN2qPvG/W99pCeObxNcC
|
||||||
|
ko9JdJqsDVQTiOTY6uaHo/GdDnzZh4TbbDutDQIDAQABAoIBAHxE49+lSJ5TNGes
|
||||||
|
Op0AmhHUiLiHqWde+VPe4xALMTNeaZmMBqEAt4PyH8PBuo5jeMm8YsWQZbf4Nv42
|
||||||
|
0zDu4I+vHcSV1tLHXo+VZNQiG6du0gjkmlRD6WW9twY00oySbu4Vx8g8RK80AQwO
|
||||||
|
01GURwRZ6gL0vtQGJoGSOIRZtXvGLltVR52OfkgNMjNepwtJvMV7PW5xYwEcnx+i
|
||||||
|
sZD/6hl49Qv5g4dCCGrnr8Garx9+cUkVP/ipkBnjyKACfzYQhoauo03Rv4iuNdy6
|
||||||
|
QD9KB95ALHq66vYXF72YW75JQhQ3C1qGcghNn68RIlufSnA7D7J9VCG5VSXfVrk2
|
||||||
|
a5Xw2HECgYEAzaXU75hl87fmf88X+8M6+OuaMnnLAwIadbcecakkO4bgzNF1SYwv
|
||||||
|
dbZ608LvdUt+BYVU43CCX3//a/MI+Ncp5sk85TLsXUxXGWonO1zXpa3+BAEXJe1n
|
||||||
|
xnWVdytWMeoyzhBZ/Vkx7/NAu5WSViXgQ3trB0Wr3OGw3Nksb4Son8cCgYEAzZQc
|
||||||
|
SlglEiU+Z+BsCV07FEkU6xgsmxQQuptPuGcm713Ik8c8a5KAyjbhpp+oBvn8v69i
|
||||||
|
hVGHcFmZYeazBL39dC4/6E/wDOVEwN2fY8oYBnrPvoz7FUTvObRjZakrgVj+XAjS
|
||||||
|
lg9RuMm1tYPFR52V5BTngJ9Rkj/AewxWnGMDtIsCgYEAng1i/5ZQXSUs+XPwCeY9
|
||||||
|
b8yb4Ulr9u7p6SkJM+/8UefS5HfjPdiJLV5HPnOm2K5ht9qGqJrzCHT2mT/b2Gx9
|
||||||
|
3ssxizI9KWOf2X+VkXFEqCh2fxtbcCHrTUNX0ZQ0Ff7adzdoAmhIEhQR31oQczd/
|
||||||
|
Cj5Tvu4ULZoj9UjQdxEtDEcCgYAYrW3T8s7IZdYe7A6r9RgRcFBlhCpel0MG03v3
|
||||||
|
W9KNq0lXi/QRya1SGNJviPzHkZyoeeourMHAV9EUsnfM2u2g06hyP55GPgNJz5DB
|
||||||
|
jtHhfT6Q1iWRwQuidqfz3SHOzhsCe0CkKMSblQMN/fphhWYn0eaURwuoraRyYOHI
|
||||||
|
tg4MzwKBgGImdyBx/l6bkWa4GywZ9iw5RDe7KYN9UclnBcHDkIELXskp8bTbwpBy
|
||||||
|
m/IyLC5eLOzdK7c2Odtd3LP/AG5fYPAzQ5S6YmSDPp1JEKODbg51wcMJpLSvG2Q/
|
||||||
|
P5paV/ZAKbxgXpilBrjSejM/QLYqD8756z5lgo5biR7bGkBA+nkj
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
18
restagent/etc/certs/omc-web.crt
Normal file
18
restagent/etc/certs/omc-web.crt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC5DCCAcygAwIBAgIBBDANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQKEwlHbyBP
|
||||||
|
TUMgQ0EwHhcNMjQwMTA5MDcxMjU2WhcNMzQwMTA2MDcxMjU2WjAWMRQwEgYDVQQD
|
||||||
|
EwtzZXJ2ZXIxLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK2S
|
||||||
|
c4sRbErMBY8q8JVzNWRDBUUIWRBI6ENWCR/SzvF1a5gkxTnTWLtn4Szkclbsbwij
|
||||||
|
YWEXcuGaodIiY7gjJ8KM+x2qaFRVOxIoyTZvshBQUS8R8YPhnmQZHvEmoVScw9R3
|
||||||
|
yKNLmIiXaTltP1tLoF+KSl6icqmY1bepDuhrZrYc4rLlU+BKvcWHf2xOozzd5KxX
|
||||||
|
ENaLWkIEWNWHOHWoScp8nfYNttEmz+kOwjikothkEfsXbFImNsdDrNk3ZYFUFnjv
|
||||||
|
S2lJPzwlc0hd+iHU5yC1YBDgAGpITSni0HqOzghNPHwwakGa96jGYw69AU1fAssI
|
||||||
|
TEELmhhwlHGm/MX+5IcCAwEAAaM/MD0wDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM
|
||||||
|
MAoGCCsGAQUFBwMBMBYGA1UdEQQPMA2CC3NlcnZlcjEuY29tMA0GCSqGSIb3DQEB
|
||||||
|
CwUAA4IBAQDqoK6iKz7Q8L+0GgqD84tXJFbJKGnJNkyJaw/jCxlL6A8QTO7IB/ym
|
||||||
|
zZL3PcdNZYlyiNbyN62WzBKjYUaZMsXxEFtutav1GQsWmtQb3SO5Nn/8t+HFUwEt
|
||||||
|
YJc09LoLlYLOII0n8mN+CaMwv1mfZjWKewdXgwXvNzMrhOWJF9r+tRaJefNDpuT/
|
||||||
|
dRj+iKFXG0aH4gCOc7Ur0HYjlQ+OFvUgWEOpk2OS1JeBNi4HjiQdAZbREg7PQI0D
|
||||||
|
sjMaHMIHC9WPZzEQ9InLmZzu0n++FKHFo8htz2bQFsNJNSB44pcKkJvpt1Xq854/
|
||||||
|
rvcwWe89C7y5JCJGlzvHpGRecEMFPsZU
|
||||||
|
-----END CERTIFICATE-----
|
||||||
27
restagent/etc/certs/omc-web.key
Normal file
27
restagent/etc/certs/omc-web.key
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpQIBAAKCAQEArZJzixFsSswFjyrwlXM1ZEMFRQhZEEjoQ1YJH9LO8XVrmCTF
|
||||||
|
OdNYu2fhLORyVuxvCKNhYRdy4Zqh0iJjuCMnwoz7HapoVFU7EijJNm+yEFBRLxHx
|
||||||
|
g+GeZBke8SahVJzD1HfIo0uYiJdpOW0/W0ugX4pKXqJyqZjVt6kO6GtmthzisuVT
|
||||||
|
4Eq9xYd/bE6jPN3krFcQ1otaQgRY1Yc4dahJynyd9g220SbP6Q7COKSi2GQR+xds
|
||||||
|
UiY2x0Os2TdlgVQWeO9LaUk/PCVzSF36IdTnILVgEOAAakhNKeLQeo7OCE08fDBq
|
||||||
|
QZr3qMZjDr0BTV8CywhMQQuaGHCUcab8xf7khwIDAQABAoIBAE+rFe+yGpOmW7Lg
|
||||||
|
Ebd3Pv17KbMK5t5rqHgnyF5cA3Ke47jcv84P7P1v69IQNU8ijMBZRXwsKCXXNQlf
|
||||||
|
kYfWUwygay6tpd93k3p9UAX1dLS6ONkzEjjnWS02vpYPliNhJR2jsWsKasPfQ4QB
|
||||||
|
WgBMkRrpPcN8KscfiJEZPud9TJKvo/ffMDNOM01d2Lyytqt4mVvbQa68EjwoBSGe
|
||||||
|
6AEsEjoiLnnxlzuXXGCEcTXOEfcUeF8Bbk74lCJDdeXgrUB/Uy28FlhELsLpg2TD
|
||||||
|
IvwgJ3vFYEZzNKAVTsr4V8no8n4GButdQlSCpofACWx6mhq03535b+mSgN4AKLzR
|
||||||
|
YkhaQcECgYEA0x00F6rCneNzQ/b1wFK24OD59Nwu0NjKWYylXR++bbDHD/raJSCY
|
||||||
|
hBGFk/QB6KPVxH9ovoSSzov3o7nYBSXlTZCCm3Y1feaykHWkhKEsHcJ1tQXPehxe
|
||||||
|
40do8KI4vbaZwFk/gB4K5PQorizKDf3LEzz4R6TEFxVkzv4y4pq4yycCgYEA0nnc
|
||||||
|
tJnU1OtJNVW12+ABeiKxFbtAMpHGtqbg+ZJ9VRLJa813WkKbAtDMFTyvQa4sdIzV
|
||||||
|
F4yeApow4LILLICIcj8XfU0noGxmHAB66PgGPfx3Rj+AUxP7e24/vgF4DydKIr2J
|
||||||
|
5jwQc5EmCFBR0aQpmJsd808PtKPXJT5mIJrod6ECgYEAvmQ39qApo/rcmQ6/0xLF
|
||||||
|
m0lKI2nvTqo0003kVHesZYBoBiFVWuZqpbCnpycIEaavwuaksC0fuObCDwYrq3jh
|
||||||
|
s3IAV/PjigfkQiPWm0Y/Yxdc0ETNOHMdoBtmqJ2kTnO/dZkHi6OMb69CgNIj5zpb
|
||||||
|
Sp5Ry0rtDWRd5c+aVIL05UECgYEAtRPQlLQQDkqKhk9CEXOL8cbs8VRS6+7MthGm
|
||||||
|
VjD4kPuDvLJdb5MEB40ZN2ApK2msp20OW59HxddgG8Axqsy+FwQ+sjdx0yvPQWIM
|
||||||
|
XGgd/rA48X/qaA81+cAlKNPctbTIrFDC1ghw4uxKezaW3bTNcJRrVQt86J1YmJsx
|
||||||
|
g/Wh8GECgYEAhYFWpiMqcwoYYY7BFrYK4QGxPZ5OESevnJOvMRra5m+qlHhS8X9f
|
||||||
|
0Ewos6yV2qFZB7lRiPMve85ysUySwKl3rTWoJuwAlZZOkXU3MCjJ+5+nvMm7jzgf
|
||||||
|
eKWNu8avLOENdRu1bIFKM8iTVs+zDpe8LpcuEs4D+Ql7Gw2+9cZmanw=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
134
restagent/etc/restconf-t.yaml
Normal file
134
restagent/etc/restconf-t.yaml
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
# file: log file name
|
||||||
|
# level: /trace/debug/info/warn/error/fatal, default: debug
|
||||||
|
# duration: rotation time with xx hours, example: 1/12/24 hours
|
||||||
|
# count: rotation count of log, default is 30 rotation
|
||||||
|
logger:
|
||||||
|
file: d:/local.git/nms_nbi/restagent/log/restagent-t.log
|
||||||
|
level: trace
|
||||||
|
duration: 24
|
||||||
|
count: 2
|
||||||
|
|
||||||
|
# rest agent listen ipv4/v6 and port, support multiple routines
|
||||||
|
# ip: 0.0.0.0 or ::0, support IPv4/v6
|
||||||
|
rest:
|
||||||
|
- ipv4: 0.0.0.0
|
||||||
|
ipv6:
|
||||||
|
port: 33030
|
||||||
|
- ipv4: 0.0.0.0
|
||||||
|
ipv6:
|
||||||
|
port: 36060
|
||||||
|
|
||||||
|
database:
|
||||||
|
type: mysql
|
||||||
|
user: root
|
||||||
|
password: 1000omc@kp!
|
||||||
|
host: 127.0.0.1
|
||||||
|
port: 33066
|
||||||
|
name: omc_db
|
||||||
|
backup: d:/local.git/nms_nbi/restagent/database
|
||||||
|
|
||||||
|
# Redis 缓存数据,数据源声明全小写
|
||||||
|
redis:
|
||||||
|
dataSource:
|
||||||
|
# OMC系统使用库
|
||||||
|
default:
|
||||||
|
port: 6379 # Redis port
|
||||||
|
host: "192.168.2.166" # Redis host
|
||||||
|
password: ""
|
||||||
|
db: 10 # Redis db_num
|
||||||
|
# UDM网元用户库
|
||||||
|
udmuser:
|
||||||
|
port: 6379 # Redis port
|
||||||
|
host: "192.168.2.166"
|
||||||
|
password: ""
|
||||||
|
db: 0 # Redis db_num
|
||||||
|
# 多个数据源时可以用这个指定默认的数据源
|
||||||
|
defaultDataSourceName: "default"
|
||||||
|
|
||||||
|
mml:
|
||||||
|
port: 4100
|
||||||
|
sleep: 200
|
||||||
|
user: admin
|
||||||
|
password: admin
|
||||||
|
mmlHome: ./mmlhome
|
||||||
|
|
||||||
|
ne:
|
||||||
|
user: root
|
||||||
|
etcdir: /usr/local/etc
|
||||||
|
bindir: /usr/local/bin
|
||||||
|
omcdir: /usr/local/omc
|
||||||
|
scpdir: /tmp
|
||||||
|
licensedir: /usr/local/etc/{neType}/license
|
||||||
|
|
||||||
|
# chk2ne: true/false, if put OmcNeConfig parameters to NE
|
||||||
|
omc:
|
||||||
|
uriPrefix: "/omc/rest"
|
||||||
|
neType: OMC
|
||||||
|
neId: 001
|
||||||
|
rmUID: 4400HX101
|
||||||
|
neName: OMC
|
||||||
|
province: GD
|
||||||
|
vendor: ""
|
||||||
|
dn: 4600
|
||||||
|
chk2ne: false
|
||||||
|
sn: 13750650
|
||||||
|
checksign: false
|
||||||
|
backup: ./backup
|
||||||
|
upload: ./upload
|
||||||
|
frontUpload: d:/local.git/fe.ems/upload
|
||||||
|
frontTraceDir: d:/local.git/fe.ems/trace
|
||||||
|
software: ./software
|
||||||
|
license: ./license
|
||||||
|
gtpUri: gtp:192.168.2.119:2152
|
||||||
|
checkContentType: false
|
||||||
|
testMode: false
|
||||||
|
rbacMode: true
|
||||||
|
runDir:
|
||||||
|
|
||||||
|
# Alarm module setting
|
||||||
|
# Forward interface:
|
||||||
|
# email/sms
|
||||||
|
alarm:
|
||||||
|
forwardAlarm: true
|
||||||
|
email:
|
||||||
|
smtp: smtp@xxx.com.cn
|
||||||
|
port: 25
|
||||||
|
user: smtpuser
|
||||||
|
password: smtpuser@omc
|
||||||
|
sms:
|
||||||
|
apiURL: http://smsc.xxx.com.cn/
|
||||||
|
accessKeyID: xxxx
|
||||||
|
accessKeySecret: xxxx
|
||||||
|
signName: xxx SMSC
|
||||||
|
templateCode: 1000
|
||||||
|
|
||||||
|
#User authorized information
|
||||||
|
# crypt: mysql/md5/bcrypt
|
||||||
|
# token: true/false to check accessToken
|
||||||
|
# expires for session, unit: second
|
||||||
|
# Support single/multiple session of user
|
||||||
|
auth:
|
||||||
|
crypt: bcrypt
|
||||||
|
token: true
|
||||||
|
expires: 1800
|
||||||
|
session: multiple
|
||||||
|
publicKey: ./etc/certs/omc_pub.key
|
||||||
|
privateKey: ./etc/certs/omc_pri.key
|
||||||
|
|
||||||
|
# Parameter for limit number
|
||||||
|
# rmuid_maxnum: the max number of rmUID, default: 50
|
||||||
|
# alarmid_maxnum: the max number of AlarmID, default: 50
|
||||||
|
# pmid_maxnum: the max number of pmID, default: 50
|
||||||
|
# subid_maxnum: the max number of subscription ID, default: 20
|
||||||
|
# uri_maxlen: the max length of uri, default: 8192
|
||||||
|
# rmuid_regexp: regexp pattern of rmUID
|
||||||
|
params:
|
||||||
|
rmuidmaxnum: 50
|
||||||
|
alarmidmaxnum: 50
|
||||||
|
pmidmaxnum: 50
|
||||||
|
subidmaxnum: 20
|
||||||
|
urimaxlen: 2100000
|
||||||
|
rmuidregexp: "[0-9]{4}[A-Z]{2}[A-Z]{2}[0-9A-Z]{1}[0-9A-Z]{3}[0-9A-Z]{1,16}"
|
||||||
|
testConfig:
|
||||||
|
enabled: true
|
||||||
|
file: ./etc/testconfig.yaml
|
||||||
202
restagent/etc/restconf.yaml
Normal file
202
restagent/etc/restconf.yaml
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
# file: log file name
|
||||||
|
# level: /trace/debug/info/warn/error/fatal, default: debug
|
||||||
|
# duration: rotation time with xx hours, example: 1/12/24 hours
|
||||||
|
# count: rotation count of log, default is 30 rotation
|
||||||
|
logger:
|
||||||
|
file: d:/local.git/be.ems/restagent/log/restagent.log
|
||||||
|
level: trace
|
||||||
|
duration: 24
|
||||||
|
count: 2
|
||||||
|
|
||||||
|
# rest agent listen ipv4/v6 and port, support multiple routines
|
||||||
|
# ip: 0.0.0.0 or ::0, support IPv4/v6
|
||||||
|
# clientAuthType: 0:NoClientCert (default), 1:RequestClientCert, 2:RequireAnyClientCert,
|
||||||
|
# 3:VerifyClientCertIfGiven, 4:RequireAndVerifyClientCerts
|
||||||
|
rest:
|
||||||
|
- ipv4: 0.0.0.0
|
||||||
|
ipv6:
|
||||||
|
port: 33040
|
||||||
|
- ipv4: 0.0.0.0
|
||||||
|
ipv6:
|
||||||
|
port: 33443
|
||||||
|
scheme: https
|
||||||
|
clientAuthType: 0
|
||||||
|
caFile: ./etc/certs/omc-ca.crt
|
||||||
|
certFile: ./etc/certs/omc-server.crt
|
||||||
|
keyFile: ./etc/certs/omc-server.key
|
||||||
|
|
||||||
|
webServer:
|
||||||
|
enabled: true
|
||||||
|
rootDir: d:/local.git/fe.ems.vue3/dist
|
||||||
|
listen:
|
||||||
|
- addr: :80
|
||||||
|
schema: http
|
||||||
|
- addr: :443
|
||||||
|
scheme: https
|
||||||
|
clientAuthType: 0
|
||||||
|
caFile: ./etc/certs/omc-ca.crt
|
||||||
|
certFile: ./etc/certs/omc-server.crt
|
||||||
|
keyFile: ./etc/certs/omc-server.key
|
||||||
|
|
||||||
|
database:
|
||||||
|
type: mysql
|
||||||
|
user: root
|
||||||
|
password: 1000omc@kp!
|
||||||
|
host: 127.0.0.1
|
||||||
|
port: 33066
|
||||||
|
name: omc_db
|
||||||
|
backup: d:/local.git/be.ems/restagent/database
|
||||||
|
|
||||||
|
# Redis 缓存数据,数据源声明全小写
|
||||||
|
redis:
|
||||||
|
dataSource:
|
||||||
|
# OMC系统使用库
|
||||||
|
default:
|
||||||
|
port: 6379 # Redis port
|
||||||
|
host: "192.168.2.219" # Redis host
|
||||||
|
password: "123456"
|
||||||
|
db: 10 # Redis db_num
|
||||||
|
# UDM网元用户库
|
||||||
|
udmuser:
|
||||||
|
port: 6379 # Redis port
|
||||||
|
host: "192.168.2.219"
|
||||||
|
password: "123456"
|
||||||
|
db: 0 # Redis db_num
|
||||||
|
# 多个数据源时可以用这个指定默认的数据源
|
||||||
|
defaultDataSourceName: "default"
|
||||||
|
|
||||||
|
# sleep: time delay for after write buffer (millisecond)
|
||||||
|
# deadLine: timeout for io read and write (second)
|
||||||
|
mml:
|
||||||
|
port: 4100
|
||||||
|
port2: 5002
|
||||||
|
sleep: 200
|
||||||
|
deadLine: 10
|
||||||
|
user: admin
|
||||||
|
password: admin
|
||||||
|
mmlHome: ./mmlhome
|
||||||
|
upload: /home/agtuser
|
||||||
|
|
||||||
|
# NE config
|
||||||
|
ne:
|
||||||
|
user: root
|
||||||
|
etcdir: /usr/local/etc
|
||||||
|
bindir: /usr/local/bin
|
||||||
|
omcdir: /usr/local/omc
|
||||||
|
scpdir: /tmp
|
||||||
|
licensedir: /usr/local/etc/{neType}/license
|
||||||
|
# backup etc list of IMS,no space
|
||||||
|
etcListIMS: "{*.yaml,mmtel,vars.cfg}"
|
||||||
|
etcListDefault: "{*.yaml,*.conf,*.cfg}"
|
||||||
|
# true/false to overwrite config file when dpkg ne software
|
||||||
|
dpkgOverwrite: false
|
||||||
|
# dpkg timeout (second)
|
||||||
|
dpkgTimeout: 180
|
||||||
|
|
||||||
|
# chk2ne: true/false, if put OmcNeConfig parameters to NE
|
||||||
|
omc:
|
||||||
|
uriPrefix: "/omc/rest"
|
||||||
|
neType: OMC
|
||||||
|
neId: 001
|
||||||
|
rmUID: 4400HX101
|
||||||
|
neName: OMC
|
||||||
|
province: GD
|
||||||
|
vendor: ""
|
||||||
|
dn: 4600
|
||||||
|
chk2ne: false
|
||||||
|
sn: "-"
|
||||||
|
checksign: false
|
||||||
|
rootDir: ./
|
||||||
|
binDir: ./bin
|
||||||
|
backup: ./backup
|
||||||
|
upload: ./upload
|
||||||
|
frontUpload: d:/local.git/fe.ems/upload
|
||||||
|
frontTraceDir: d:/local.git/fe.ems/trace
|
||||||
|
software: ./software
|
||||||
|
license: ./license
|
||||||
|
gtpUri: gtp:192.168.2.219:2152
|
||||||
|
checkContentType: false
|
||||||
|
testMode: false
|
||||||
|
rbacMode: true
|
||||||
|
runDir:
|
||||||
|
cmdTimeout: 120
|
||||||
|
|
||||||
|
# Alarm module setting
|
||||||
|
# Forward interface:
|
||||||
|
# email/sms
|
||||||
|
alarm:
|
||||||
|
forwardAlarm: true
|
||||||
|
email:
|
||||||
|
smtp: mail.agrandtech.com
|
||||||
|
port: 25
|
||||||
|
user: smtpext@agrandtech.com
|
||||||
|
password: "1000smtp@omc!"
|
||||||
|
# TLS skip verify: true/false
|
||||||
|
tlsSkipVerify: true
|
||||||
|
sms:
|
||||||
|
apiURL: http://smsc.xxx.com.cn/
|
||||||
|
accessKeyID: xxxx
|
||||||
|
accessKeySecret: xxxx
|
||||||
|
signName: xxx SMSC
|
||||||
|
templateCode: 1000
|
||||||
|
smsc:
|
||||||
|
addr: "192.168.14.211:2775"
|
||||||
|
userName: OMC
|
||||||
|
password: "123456"
|
||||||
|
|
||||||
|
#User authorized information
|
||||||
|
# crypt: mysql/md5/bcrypt
|
||||||
|
# token: true/false to check accessToken
|
||||||
|
# expires for session, unit: second
|
||||||
|
# Support single/multiple session of user
|
||||||
|
#
|
||||||
|
auth:
|
||||||
|
crypt: bcrypt
|
||||||
|
token: true
|
||||||
|
expires: 1800
|
||||||
|
session: multiple
|
||||||
|
publicKey: ./etc/certs/omc_pub.key
|
||||||
|
privateKey: ./etc/certs/omc_pri.key
|
||||||
|
|
||||||
|
# Parameter for limit number
|
||||||
|
# rmuid_maxnum: the max number of rmUID, default: 50
|
||||||
|
# alarmid_maxnum: the max number of AlarmID, default: 50
|
||||||
|
# pmid_maxnum: the max number of pmID, default: 50
|
||||||
|
# subid_maxnum: the max number of subscription ID, default: 20
|
||||||
|
# uri_maxlen: the max length of uri, default: 8192
|
||||||
|
# rmuid_regexp: regexp pattern of rmUID
|
||||||
|
params:
|
||||||
|
rmuidmaxnum: 50
|
||||||
|
alarmidmaxnum: 50
|
||||||
|
pmidmaxnum: 50
|
||||||
|
subidmaxnum: 20
|
||||||
|
urimaxlen: 2100000
|
||||||
|
rmuidregexp: "[0-9]{4}[A-Z]{2}[A-Z]{2}[0-9A-Z]{1}[0-9A-Z]{3}[0-9A-Z]{1,16}"
|
||||||
|
|
||||||
|
testConfig:
|
||||||
|
enabled: true
|
||||||
|
file: ./etc/testconfig.yaml
|
||||||
|
|
||||||
|
# NMS-中国星网研究院
|
||||||
|
cxy:
|
||||||
|
# 专业编码2位 核心网HX 无线网WX
|
||||||
|
professionCode: "HX"
|
||||||
|
# 厂商编码2位 中信科ZX
|
||||||
|
vendorCode: "AG"
|
||||||
|
# OMC编号3位
|
||||||
|
omcCode: "001"
|
||||||
|
# 设备序列号
|
||||||
|
serialNumber: "1153492"
|
||||||
|
# Kafka配置
|
||||||
|
kafka:
|
||||||
|
addrs:
|
||||||
|
- "192.168.5.59:19092"
|
||||||
|
- "192.168.5.59:29092"
|
||||||
|
- "192.168.5.59:39092"
|
||||||
|
# OSS配置
|
||||||
|
oss:
|
||||||
|
bucketname: "omc-bucket"
|
||||||
|
endpoint: "192.168.5.59:9000"
|
||||||
|
useSSL: false
|
||||||
|
accessKeyID: "aOW0r1gfw74G88Z3XZJ6"
|
||||||
|
secretAccessKey: "9tDErvtCEuVox6LoQu5BOVtycQKcQjlXOGvjl1eD"
|
||||||
19
restagent/etc/testconfig.yaml
Normal file
19
restagent/etc/testconfig.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
UDM:
|
||||||
|
capUsed: 16
|
||||||
|
featureEnabled: [N8,N10,N13]
|
||||||
|
AUSF:
|
||||||
|
capUsed: 16
|
||||||
|
featureEnabled: [N12]
|
||||||
|
AMF:
|
||||||
|
capUsed: 16
|
||||||
|
featureEnabled: [N1,N2,N8,N11,N12,N14,N15]
|
||||||
|
SMF:
|
||||||
|
capUsed: 16
|
||||||
|
featureEnabled: [N4,N7,N10,N11]
|
||||||
|
UPF:
|
||||||
|
capUsed: 16
|
||||||
|
featureEnabled: [N3,N4,N6,N9]
|
||||||
|
OMC:
|
||||||
|
capUsed: 0
|
||||||
|
featureEnabled: []
|
||||||
|
|
||||||
26
restagent/makefile
Normal file
26
restagent/makefile
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Makefile for rest agent project
|
||||||
|
|
||||||
|
PROJECT = OMC
|
||||||
|
VERSION = 2.2403.1
|
||||||
|
PLATFORM = amd64
|
||||||
|
ARMPLATFORM = aarch64
|
||||||
|
BUILDDIR = ../../build
|
||||||
|
DEBBUILDDIR = ../../debbuild
|
||||||
|
RPMBUILDDIR = $(HOME)/goprojects/rpmbuild
|
||||||
|
INSTALLDIR = /usr/local/omc
|
||||||
|
RELEASEDIR = ../../release
|
||||||
|
LIBDIR = nms_nbi/lib
|
||||||
|
BINNAME = restagent
|
||||||
|
|
||||||
|
.PHONY: build $(BINNAME)
|
||||||
|
build $(BINNAME):
|
||||||
|
go build -o $(BINNAME) -v -ldflags "-X '$(LIBDIR)/global.Version=$(VERSION)' \
|
||||||
|
-X '$(LIBDIR)/global.BuildTime=`date`' \
|
||||||
|
-X '$(LIBDIR)/global.GoVer=`go version`'"
|
||||||
|
|
||||||
|
run: $(BINNAME)
|
||||||
|
./$(BINNAME)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm ./$(BINNAME)
|
||||||
|
|
||||||
241
restagent/restagent.go
Normal file
241
restagent/restagent.go
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/tls"
|
||||||
|
"crypto/x509"
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"nms_nbi/features/dbrest"
|
||||||
|
"nms_nbi/features/event"
|
||||||
|
"nms_nbi/features/fm"
|
||||||
|
"nms_nbi/features/lm"
|
||||||
|
"nms_nbi/features/pm"
|
||||||
|
"nms_nbi/lib/dborm"
|
||||||
|
"nms_nbi/lib/global"
|
||||||
|
"nms_nbi/lib/log"
|
||||||
|
"nms_nbi/lib/routes"
|
||||||
|
"nms_nbi/restagent/config"
|
||||||
|
"nms_nbi/src"
|
||||||
|
"nms_nbi/src/framework/middleware"
|
||||||
|
libSession "nms_nbi/src/lib_features/session"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"golang.org/x/net/http2"
|
||||||
|
"golang.org/x/net/http2/h2c"
|
||||||
|
)
|
||||||
|
|
||||||
|
func HttpListen(addr string, router http.Handler) {
|
||||||
|
// 创建HTTP服务器
|
||||||
|
h2s := &http2.Server{
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
server := &http.Server{
|
||||||
|
Addr: addr,
|
||||||
|
Handler: h2c.NewHandler(router, h2s),
|
||||||
|
}
|
||||||
|
|
||||||
|
err := server.ListenAndServe()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("ListenAndServe err:", err)
|
||||||
|
os.Exit(12)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func HttpListenTLS(addr, caFile, certFile, keyFile string, clientAuthType int, router http.Handler) {
|
||||||
|
// 加载根证书
|
||||||
|
caCert, err := os.ReadFile(caFile)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
caCertPool := x509.NewCertPool()
|
||||||
|
caCertPool.AppendCertsFromPEM(caCert)
|
||||||
|
|
||||||
|
// 创建自定义的TLS配置
|
||||||
|
tlsConfig := &tls.Config{
|
||||||
|
MinVersion: tls.VersionTLS10,
|
||||||
|
MaxVersion: tls.VersionTLS13,
|
||||||
|
ClientCAs: caCertPool,
|
||||||
|
ClientAuth: tls.ClientAuthType(clientAuthType),
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建HTTP服务器
|
||||||
|
server := &http.Server{
|
||||||
|
Addr: addr,
|
||||||
|
Handler: router,
|
||||||
|
TLSConfig: tlsConfig,
|
||||||
|
}
|
||||||
|
|
||||||
|
// support http 2.0 server
|
||||||
|
http2.ConfigureServer(server, &http2.Server{})
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("ConfigureServer err:", err)
|
||||||
|
os.Exit(13)
|
||||||
|
}
|
||||||
|
err = server.ListenAndServeTLS(certFile, keyFile)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("ListenAndServeTLS err:", err)
|
||||||
|
os.Exit(14)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func HttpListenWebServerTLS(addr, caFile, certFile, keyFile string, clientAuthType int) {
|
||||||
|
// 加载根证书
|
||||||
|
caCert, err := os.ReadFile(caFile)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
caCertPool := x509.NewCertPool()
|
||||||
|
caCertPool.AppendCertsFromPEM(caCert)
|
||||||
|
|
||||||
|
// 创建自定义的TLS配置
|
||||||
|
tlsConfig := &tls.Config{
|
||||||
|
MinVersion: tls.VersionTLS10,
|
||||||
|
MaxVersion: tls.VersionTLS13,
|
||||||
|
ClientCAs: caCertPool,
|
||||||
|
ClientAuth: tls.ClientAuthType(clientAuthType),
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建HTTP服务器
|
||||||
|
server := &http.Server{
|
||||||
|
Addr: addr,
|
||||||
|
TLSConfig: tlsConfig,
|
||||||
|
}
|
||||||
|
|
||||||
|
// support http 2.0 server
|
||||||
|
http2.ConfigureServer(server, &http2.Server{})
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("ConfigureServer err:", err)
|
||||||
|
os.Exit(9)
|
||||||
|
}
|
||||||
|
err = server.ListenAndServeTLS(certFile, keyFile)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("ListenAndServeTLS err:", err)
|
||||||
|
os.Exit(10)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func HttpListenWebServer(addr string) {
|
||||||
|
// 创建HTTP服务器
|
||||||
|
server := &http.Server{
|
||||||
|
Addr: addr,
|
||||||
|
}
|
||||||
|
|
||||||
|
// support http 2.0 server
|
||||||
|
err := http2.ConfigureServer(server, &http2.Server{})
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("ConfigureServer err:", err)
|
||||||
|
os.Exit(7)
|
||||||
|
}
|
||||||
|
err = server.ListenAndServe()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("ListenAndServe err:", err)
|
||||||
|
os.Exit(8)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// src 配置中心初始加载
|
||||||
|
src.ConfigurationInit()
|
||||||
|
app := src.AppEngine()
|
||||||
|
|
||||||
|
conf := config.GetYamlConfig()
|
||||||
|
|
||||||
|
log.InitLogger(conf.Logger.File, conf.Logger.Duration, conf.Logger.Count, "omc:restagent", config.GetLogLevel())
|
||||||
|
fmt.Printf("OMC restagent version: %s\n", global.Version)
|
||||||
|
log.Infof("========================= OMC restagent startup =========================")
|
||||||
|
log.Infof("OMC restagent version: %s %s %s", global.Version, global.BuildTime, global.GoVer)
|
||||||
|
|
||||||
|
err := dborm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
|
||||||
|
conf.Database.Host, conf.Database.Port, conf.Database.Name)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("dborm.initDbClient err:", err)
|
||||||
|
os.Exit(4)
|
||||||
|
}
|
||||||
|
err = fm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
|
||||||
|
conf.Database.Host, conf.Database.Port, conf.Database.Name)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("dborm.initDbClient err:", err)
|
||||||
|
os.Exit(4)
|
||||||
|
}
|
||||||
|
err = pm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
|
||||||
|
conf.Database.Host, conf.Database.Port, conf.Database.Name)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("dborm.initDbClient err:", err)
|
||||||
|
os.Exit(4)
|
||||||
|
}
|
||||||
|
err = dbrest.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
|
||||||
|
conf.Database.Host, conf.Database.Port, conf.Database.Name)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("dbrest.initDbClient err:", err)
|
||||||
|
os.Exit(4)
|
||||||
|
}
|
||||||
|
err = lm.InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
|
||||||
|
conf.Database.Host, conf.Database.Port, conf.Database.Name)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("lm.initDbClient err:", err)
|
||||||
|
os.Exit(4)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将 mux.Router 注册到 gin.Engine
|
||||||
|
|
||||||
|
// 默认路由组
|
||||||
|
defaultUriGroup := app.Group(config.DefaultUriPrefix)
|
||||||
|
defaultUriGroup.Use(middleware.PreAuthorize(nil))
|
||||||
|
defaultUriGroup.Use(libSession.SessionHeader())
|
||||||
|
defaultUriGroup.Any("/*any", gin.WrapH(routes.NewRouter()))
|
||||||
|
// 可配置前缀路由组
|
||||||
|
uriGroup := app.Group(config.UriPrefix)
|
||||||
|
uriGroup.Use(libSession.SessionHeader())
|
||||||
|
uriGroup.Any("/*any", gin.WrapH(routes.NewRouter()))
|
||||||
|
// AMF上报的UE事件, 无前缀,暂时特殊处理
|
||||||
|
app.POST(event.UriUEEvent, event.PostUEEventFromAMF)
|
||||||
|
|
||||||
|
for _, rest := range conf.Rest {
|
||||||
|
// ipv4 goroutines
|
||||||
|
if rest.IPv4 != "" {
|
||||||
|
listen := rest.IPv4 + ":" + strconv.Itoa(int(rest.Port))
|
||||||
|
if strings.ToLower(rest.Scheme) == "https" {
|
||||||
|
go HttpListenTLS(listen, rest.CaFile, rest.CertFile, rest.KeyFile, rest.ClientAuthType, app)
|
||||||
|
} else {
|
||||||
|
go HttpListen(listen, app)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if rest.IPv4 != "0.0.0.0" {
|
||||||
|
// 默认启动localhost侦听
|
||||||
|
listenLocal := "127.0.0.1" + ":" + strconv.Itoa(int(rest.Port))
|
||||||
|
if strings.ToLower(rest.Scheme) == "https" {
|
||||||
|
go HttpListenTLS(listenLocal, rest.CaFile, rest.CertFile, rest.KeyFile, rest.ClientAuthType, app)
|
||||||
|
} else {
|
||||||
|
go HttpListen(listenLocal, app)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ipv6 goroutines
|
||||||
|
if rest.IPv6 != "" {
|
||||||
|
listenv6 := "[" + rest.IPv6 + "]" + ":" + strconv.Itoa(int(rest.Port))
|
||||||
|
if strings.ToLower(rest.Scheme) == "https" {
|
||||||
|
go HttpListenTLS(listenv6, rest.CaFile, rest.CertFile, rest.KeyFile, rest.ClientAuthType, app)
|
||||||
|
} else {
|
||||||
|
go HttpListen(listenv6, app)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if conf.WebServer.Enabled {
|
||||||
|
fs := http.FileServer(http.Dir(conf.WebServer.RootDir))
|
||||||
|
http.Handle("/", fs)
|
||||||
|
for _, listen := range conf.WebServer.Listen {
|
||||||
|
if strings.ToLower(listen.Scheme) == "https" {
|
||||||
|
go HttpListenWebServerTLS(listen.Addr, listen.CaFile, listen.CertFile, listen.KeyFile, listen.ClientAuthType)
|
||||||
|
} else {
|
||||||
|
go HttpListenWebServer(listen.Addr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
select {}
|
||||||
|
}
|
||||||
BIN
restagent/static/helpDoc/zh_doc.pdf
Normal file
BIN
restagent/static/helpDoc/zh_doc.pdf
Normal file
Binary file not shown.
BIN
restagent/static/logo/en_brand.png
Normal file
BIN
restagent/static/logo/en_brand.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
BIN
restagent/static/logo/en_icon.png
Normal file
BIN
restagent/static/logo/en_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
restagent/static/logo/zh_brand.png
Normal file
BIN
restagent/static/logo/zh_brand.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
restagent/static/logo/zh_icon.png
Normal file
BIN
restagent/static/logo/zh_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
Reference in New Issue
Block a user