diff --git a/bin/binWriter b/bin/binWriter
new file mode 100644
index 0000000..4c0e7be
Binary files /dev/null and b/bin/binWriter differ
diff --git a/build/nginx/omc.conf b/build/nginx/omc.conf
new file mode 100644
index 0000000..18a692d
--- /dev/null
+++ b/build/nginx/omc.conf
@@ -0,0 +1,47 @@
+server {
+ listen 443 ssl;
+ listen [::]:443 ssl;
+ server_name 0.0.0.0;
+ root /usr/local/omc/htdocs/front/;
+ index index.html index.htm;
+ server_name localhost;
+ # SSL
+ #ssl_certificate /usr/local/omc/etc/certs/ca_cert.pem;
+ #ssl_certificate_key /usr/local/omc/etc/certs/private_key.pem;
+ ssl_certificate /usr/local/omc/etc/certs/tsa-omc.pem;
+ ssl_certificate_key /usr/local/omc/etc/certs/tsa-omc_pri.pem;
+
+# location /api/rest/securityManagement {
+# proxy_pass http://127.0.0.1:5050;
+# }
+# location /api/rest/resourceManagement {
+# proxy_pass http://127.0.0.1:5050;
+# }
+# location /api/rest/performanceManagement {
+# proxy_pass http://127.0.0.1:5050;
+# }
+# location /api/rest/faultManagement {
+# proxy_pass http://127.0.0.1:5050;
+# }
+# location /api/rest/aaaa/ {
+# proxy_pass http://127.0.0.1:4040;
+# }
+ location /api/rest/ {
+ proxy_pass http://127.0.0.1:3030;
+ }
+ location / {
+ try_files $uri $uri/ =404;
+ }
+}
+
+server {
+ listen 8888 default_server;
+ listen [::]:8888 default_server;
+ root /usr/local/omc/htdocs/front/;
+ index index.html index.htm;
+ server_name localhost;
+ location / {
+ try_files $uri $uri/ =404;
+ }
+}
+
diff --git a/build/omc/.ssh/id_rsa b/build/omc/.ssh/id_rsa
new file mode 100644
index 0000000..b9e6a0e
--- /dev/null
+++ b/build/omc/.ssh/id_rsa
@@ -0,0 +1,38 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+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
+-----END OPENSSH PRIVATE KEY-----
diff --git a/build/omc/.ssh/id_rsa.pub b/build/omc/.ssh/id_rsa.pub
new file mode 100644
index 0000000..93e845f
--- /dev/null
+++ b/build/omc/.ssh/id_rsa.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCjzE0MHy0P2sQmG1OKvArwLEzR77BwxPp+4N9NKBz8lEyNch4zoHvoLDaUJKPBMwTrScZnxhvRJNde6hz5Z0QVxZolVKV95fMfgb9YICzDfPF3Bphae5q/PBYUJNfrC9SAjQeHV4CCO6xk6LV8O/Nfw8uaXwtuN3yfpUWd5mRWKMc3GHV4vxerfKoIQZN6etLhIEYibAhCJ21P0uoWzZl7ceLmkG+6qrRSbyC0bCnrN3+wjN4bwtflrEFJk3XQGuRbVsYLzux+mMm9p22+CLPRl/FUPF3x4/wKCsqr7JDSxx80HSPhk4g/1nCTpDR9hAfF6A9ww2va/k8jMeYPBO8Owe7erLEZzvg5WQAR3Wj05eJpJD99BeC91S5KW6AFQDfDHxWWprSibd/Jj9dtct2pK2ZxW0ph9OJ49ftRhzT1iVi4UnJwnG5/qLfwl6Tnx+qnQ1If/9lY/99erCTATzFTMSImKrRz7CnuPlcw8WkzCYpWKKe0kJLkL2cRD5Qi4yk= simon@simonzhangsz
diff --git a/build/omc/.ssh/private_key.pem b/build/omc/.ssh/private_key.pem
new file mode 100644
index 0000000..b9e6a0e
--- /dev/null
+++ b/build/omc/.ssh/private_key.pem
@@ -0,0 +1,38 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+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
+-----END OPENSSH PRIVATE KEY-----
diff --git a/build/omc/etc/certs/ca_cert.pem b/build/omc/etc/certs/ca_cert.pem
new file mode 100644
index 0000000..828a843
--- /dev/null
+++ b/build/omc/etc/certs/ca_cert.pem
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC4jCCAcqgAwIBAgICB+cwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UEAxMHUm9v
+dCBDQTAeFw0yMzA4MTIxODA5MzZaFw0zMzA4MTIxODA5MzZaMBIxEDAOBgNVBAMT
+B1Jvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUTcFiT1GT
+Zq9ROKTuWm6IfFthO6ysthEKevwkgJGDRCwF+K6rx3j7izTDfLkXum5OPbcd/yiE
+B40Yrq9X2ckX260xG9PjDmGUaq8q5sza85Gg2hrW6wiLF9y8yYK3/v7716d0y6st
+jt71pH554R98m0zHkbkmrFEagWR5cEoVM6MPZp2wdDnOFBBRiB1BrbHMpAFiKJ6s
+oqm1yhUwCeeR/Hs09JF8KfOFhV4qAEVvE1cviHucCEvLBaG6xBzbKvYV2iOPu6u2
+o818wphqmSZYoj3/O4/EyVgvj1VdSqmkTSudiiIhLAa8/2JKrW1v7wFQjRkwNwdf
+h6UR5liIUwk7AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBRtEF/Jyw6Zz3v0K5uA6aMOr9LXRTANBgkqhkiG9w0BAQsF
+AAOCAQEAErmFo6JjEoFZv8R2gwNUq7ln+YEh2hX4myLlNDfTpYeGnn2Ge70Kmb0o
+dkSyanDd9tGImcbEOttWAYve3vetvN3g+GONbf5pV7ClIbVV5MsjN/aGwj/TQWhu
+ttmfu9IV2b5HyFEM61eoHVrNoWiNpbNHTu5D/XF8sg5JkseTnJF06foykzAx28i6
+JcttunYn5SoWTIS9Ydu07X7uBcTeFBcKfH0xg4QlsNppiM5lIxBbp0WjQ8jyWw+b
+Lyef4N6hmiaOf6P6qwaVZkEBhK6MVf1zadURuUSWAkhwGFjA7IbjbJ7OfYLXkYp3
+mIrXQzjxz6AfyOcY/FsgcaDLf5xbYw==
+-----END CERTIFICATE-----
diff --git a/build/omc/etc/certs/private_key.pem b/build/omc/etc/certs/private_key.pem
new file mode 100644
index 0000000..334940a
--- /dev/null
+++ b/build/omc/etc/certs/private_key.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAlE3BYk9Rk2avUTik7lpuiHxbYTusrLYRCnr8JICRg0QsBfiu
+q8d4+4s0w3y5F7puTj23Hf8ohAeNGK6vV9nJF9utMRvT4w5hlGqvKubM2vORoNoa
+1usIixfcvMmCt/7++9endMurLY7e9aR+eeEffJtMx5G5JqxRGoFkeXBKFTOjD2ad
+sHQ5zhQQUYgdQa2xzKQBYiierKKptcoVMAnnkfx7NPSRfCnzhYVeKgBFbxNXL4h7
+nAhLywWhusQc2yr2Fdojj7urtqPNfMKYapkmWKI9/zuPxMlYL49VXUqppE0rnYoi
+ISwGvP9iSq1tb+8BUI0ZMDcHX4elEeZYiFMJOwIDAQABAoIBAFVJVhIsXVRwdBg4
+hBkS5ogVRBPp1obIeYpWadSwH36m4M5aUlE1eKzoRGK7wlIUA8V5FmroxysOkKUG
+KI5UD6Jp0fLw9uyX46QPqkb4zgyIkFI5u7+nEJW1Flt3Y3Ze7dJ1FbdEPWAIzs3j
+WFzNC2eEhCYs9pZ3+HhOuzJfUitYU6ts83tazSms+7E027e/v2ubtYOzluEoj4YK
+MM+ocqJOlXUOhyTATDaLs4fM567bwwFeriODQqmMIhXLf3HiBPfPYhoAlwPUV51L
+bAjIPwG2/jy0yXPenYOUqSMP1i+XkyTL4eVqOLLQUI+BsEaToS8M7Lf4KRQE0vQm
+uAkEA9ECgYEAxCsKXtkYXrma8UziSJgQBj88TfACyuYZBPkpBFJhffPVOreYzqmn
+gsE38oHlLhCrezsxvScivS/Cwt7kgBTE9r6xmH8y2f0P3PNmtazQCqovG1gsNZ1t
+9PZQmxbVUfx/7KRJ1Q5zX3x5C0P2c6XYv/1h/SQQ8PYXDhRxWZFVSikCgYEAwYlt
+AoP8j6yHDMk10vJd0fKT1lztcHcQLvH3HQn2kHci2GCxySvcac49hpXTDeNdUzcQ
+I9UWo1MggNojME3WHUTiZD5DYUzuNUBTkc0kMHWy79/YNAzvF9312MSyJ0NlytBQ
+ISh0z0sPSxDjW+XCi/8LGu1rrremBqvh0rNIrMMCgYEAt+C8VNHcZRZHpX3y8icP
+hjuKFGgwxe3Pb/j5uKJb3ktMCUEFjFo8uXTSM5AMuhRIGTgQVIS1rG5zemSh/Wj6
+g2uWXyKEEQ+D6hGBqjP1wrlpdJE+x3btFdw5DFbn2HT9mF0bFAn6nXu4npWzEw5X
+UQd67WT8OFIEpF8HLPTs5JkCgYBQlL6dmITU8Vm9mh1d+mnT23NwgnqeJATJ9xcT
+sS1HE0Of4grEHw4Dw8pcOg+JLcyStE91C+kEEb1ryOdz2kS3JRI5+K6nWZeo9mKV
+R1u1DZx2QbZMXcJDJriRC7y9mlNMsZVbaPPRx4fTknGHts9c6NEf4hC+y1pGVtSM
+nPc6bwKBgQCrtb6srow9o0acH7mMmieDuqvT8DQ6rHWoizgneZTuvIo6SPO6nRnR
+jfgfQkqr9IiLh9awSblQEN9fnddog7a1yS4cUZueiP5dmtFvp4B9Scnt+BoHpOLk
+rrU2i7grAye4Cd003+pqhSERGCKSzb3fTSYiMypKsxeH2bs8nrRu2A==
+-----END RSA PRIVATE KEY-----
diff --git a/build/omc/etc/certs/public_key.pem b/build/omc/etc/certs/public_key.pem
new file mode 100644
index 0000000..a85d9e4
--- /dev/null
+++ b/build/omc/etc/certs/public_key.pem
@@ -0,0 +1,8 @@
+-----BEGIN RSA PUBLIC KEY-----
+MIIBCgKCAQEAlE3BYk9Rk2avUTik7lpuiHxbYTusrLYRCnr8JICRg0QsBfiuq8d4
++4s0w3y5F7puTj23Hf8ohAeNGK6vV9nJF9utMRvT4w5hlGqvKubM2vORoNoa1usI
+ixfcvMmCt/7++9endMurLY7e9aR+eeEffJtMx5G5JqxRGoFkeXBKFTOjD2adsHQ5
+zhQQUYgdQa2xzKQBYiierKKptcoVMAnnkfx7NPSRfCnzhYVeKgBFbxNXL4h7nAhL
+ywWhusQc2yr2Fdojj7urtqPNfMKYapkmWKI9/zuPxMlYL49VXUqppE0rnYoiISwG
+vP9iSq1tb+8BUI0ZMDcHX4elEeZYiFMJOwIDAQAB
+-----END RSA PUBLIC KEY-----
diff --git a/build/omc/etc/cm/cm-amf.yaml b/build/omc/etc/cm/cm-amf.yaml
new file mode 100644
index 0000000..319a85f
--- /dev/null
+++ b/build/omc/etc/cm/cm-amf.yaml
@@ -0,0 +1,49 @@
+ManagedElement:
+ Id: ""
+ UserLabel: ""
+ VendorName: ""
+ ManagedBy: ""
+ ManagementIpAddress: ""
+ SwVersion: ""
+ PatchInfo: ""
+ AdministrativeState: ""
+ OperationalState: ""
+
+AmfFunction:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ Fqdn: ""
+ SbiServiceList: ""
+ AmfGuamiList: ""
+ SnssaiList: ""
+ MaxUser: ""
+ RelativeCapacity: ""
+ MaxGnbNum: ""
+
+EpRpDynN8Amf:
+ Id: ""
+ UserLabel: ""
+ LocIpAddrList: ""
+ FarIpSubnetworkList: ""
+
+EpRpDynN11Amf:
+ Id: ""
+ UserLabel: ""
+ LocIpAddrList: ""
+ FarIpSubnetworkList: ""
+
+EpRpDynN12Amf:
+ Id: ""
+ UserLabel: ""
+ LocIpAddrList: ""
+ FarIpSubnetworkList: ""
+
+IPResource:
+ Id: ""
+ UserLabel: ""
+ InterfaceType: ""
+ LocIpV4AddrList: ""
+ LocIpV6AddrList: ""
diff --git a/build/omc/etc/cm/cm-smf.yaml b/build/omc/etc/cm/cm-smf.yaml
new file mode 100644
index 0000000..a1ad373
--- /dev/null
+++ b/build/omc/etc/cm/cm-smf.yaml
@@ -0,0 +1,48 @@
+ManagedElement:
+ Id: ""
+ UserLabel: ""
+ VendorName: ""
+ ManagedBy: ""
+ ManagementIpAddress: ""
+ SwVersion: ""
+ PatchInfo: ""
+ AdministrativeState: ""
+ OperationalState: ""
+
+SmfFunction:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ Fqdn: ""
+ SbiServiceList: ""
+ MaxPduSessions: ""
+ MaxQfi: ""
+ UpfList: ""
+
+AddrPool:
+ Id: ""
+ UserLabel: ""
+ AddrType: "Static"
+ IpVersion: ""
+ AddrSegList: ""
+
+EpRpDynN7Smf:
+ Id: ""
+ UserLabel: ""
+ LocIpAddrList: ""
+ FarIpSubnetworkList: ""
+
+EpRpDynN10Smf:
+ Id: ""
+ UserLabel: ""
+ LocIpAddrList: ""
+ FarIpSubnetworkList: ""
+
+IPResource:
+ Id: ""
+ UserLabel: ""
+ InterfaceType: ""
+ LocIpV4AddrList: ""
+ LocIpV6AddrList: ""
\ No newline at end of file
diff --git a/build/omc/etc/cm/cm-udm.yaml b/build/omc/etc/cm/cm-udm.yaml
new file mode 100644
index 0000000..5e823ae
--- /dev/null
+++ b/build/omc/etc/cm/cm-udm.yaml
@@ -0,0 +1,39 @@
+ManagedElement:
+ Id: ""
+ UserLabel: ""
+ VendorName: ""
+ ManagedBy: ""
+ ManagementIpAddress: ""
+ SwVersion: ""
+ PatchInfo: ""
+ AdministrativeState: ""
+ OperationalState: ""
+
+UdmFunction:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ Fqdn: ""
+ SbiServiceList: ""
+
+UdrFunction:
+ Id: ""
+ UserLabel: ""
+ AddrType: "Static"
+ IpVersion: ""
+ AddrSegList: ""
+
+AusfFunction:
+ Id: ""
+ UserLabel: ""
+ LocIpAddrList: ""
+ FarIpSubnetworkList: ""
+
+IPResource:
+ Id: ""
+ UserLabel: ""
+ InterfaceType: ""
+ LocIpV4AddrList: ""
+ LocIpV6AddrList: ""
\ No newline at end of file
diff --git a/build/omc/etc/cm/cm-upf.yaml b/build/omc/etc/cm/cm-upf.yaml
new file mode 100644
index 0000000..d291c68
--- /dev/null
+++ b/build/omc/etc/cm/cm-upf.yaml
@@ -0,0 +1,141 @@
+ManagedElement:
+ Id: ""
+ UserLabel: ""
+ VendorName: ""
+ ManagedBy: ""
+ ManagementIpAddress: ""
+ SwVersion: ""
+ PatchInfo: ""
+ AdministrativeState: ""
+ OperationalState: ""
+
+InventoryUnitRack:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ Fqdn: ""
+ SbiServiceList: ""
+ MaxPduSessions: ""
+ MaxQfi: ""
+ UpfList: ""
+
+InventoryUnitShelf:
+ Id: ""
+ UserLabel: ""
+ VendorUnitFamilyType: ""
+ VendorUnitTypeNumber: ""
+ VendorName: ""
+ SerialNumber: ""
+ VersionNumber: ""
+ DateOfManufacture: ""
+ DateOfLastService: ""
+ ManufacturerData: ""
+ RackPosition: ""
+
+InventoryUnitPack:
+ Id: ""
+ UserLabel: ""
+ VendorUnitFamilyType: ""
+ VendorUnitTypeNumber: ""
+ VendorName: ""
+ SerialNumber: ""
+ VersionNumber: ""
+ DateOfManufacture: ""
+ DateOfLastService: ""
+ ManufacturerData: ""
+ PortsInformation: ""
+ PackPosition: ""
+ SlotsOccupied: ""
+
+InventoryUnitHost:
+ Id: ""
+ UserLabel: ""
+ VendorUnitFamilyType: ""
+ VendorUnitTypeNumber: ""
+ VendorName: ""
+ SerialNumber: ""
+ VersionNumber: ""
+ DateOfManufacture: ""
+ DateOfLastService: ""
+ ManufacturerData: ""
+ HostPosition: ""
+ NumberOfCpu: ""
+ MemSize: ""
+ HardDiskSize: ""
+
+InventoryUnitAccessory:
+ Id: ""
+ UserLabel: ""
+ VendorUnitFamilyType: ""
+ VendorUnitTypeNumber: ""
+ VendorName: ""
+ SerialNumber: ""
+ VersionNumber: ""
+ DateOfManufacture: ""
+ DateOfLastService: ""
+ ManufacturerData: ""
+ AccessoryPosition: ""
+ AccessoryType: ""
+ AddtionalInformation: ""
+
+UpfFunction:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ MaxQosFlows: ""
+ MaxThroughput: ""
+
+EpRpDynN9Upf:
+ Id: ""
+ UserLabel: ""
+ LocIpAddrList: ""
+ FarIpSubnetworkList: ""
+
+EpRpDynN3Upf:
+ Id: ""
+ UserLabel: ""
+ LocIpAddrList: ""
+ FarIpSubnetworkList: ""
+
+AmfFunction:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ Fqdn: ""
+
+SmfFunction:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ Fqdn: ""
+
+UdrFunction:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ Fqdn: ""
+
+AusfFunction:
+ Id: ""
+ UserLabel: ""
+ AdministrativeState: ""
+ OperationalState: ""
+ VnfInstanceId: ""
+ Fqdn: ""
+
+IPResource:
+ Id: ""
+ UserLabel: ""
+ InterfaceType: ""
+ LocIpV4AddrList: ""
+ LocIpV6AddrList: ""
diff --git a/build/omc/etc/default/4a_agent.yaml b/build/omc/etc/default/4a_agent.yaml
new file mode 100644
index 0000000..98de00d
--- /dev/null
+++ b/build/omc/etc/default/4a_agent.yaml
@@ -0,0 +1,14 @@
+http:
+ ipv4: 0.0.0.0
+ ipv6: ::0
+ port: 4040
+db:
+ dbuser: "root"
+ dbpwd: "1000omc@kp!"
+ dbip: "127.0.0.1"
+ dbport: "33066"
+ dbname: "omc_db"
+logger:
+ file: /usr/local/omc/log/4a/4a_agent.log
+ level: debug
+ duration: 90
diff --git a/build/omc/etc/default/crontask.yaml b/build/omc/etc/default/crontask.yaml
new file mode 100644
index 0000000..f98d5f8
--- /dev/null
+++ b/build/omc/etc/default/crontask.yaml
@@ -0,0 +1,44 @@
+# file: log file name
+# level: /trace/debug/info/warn/error/fatal, default: debug
+# duration: saved days, default is 30 days
+logger:
+ file: /usr/local/omc/log/crontask.log
+ level: trace
+ duration: 24
+ count: 90
+
+omc:
+ name: RJ_OMC_S001
+ hosturi: http://127.0.0.1:3030
+ hostno: S001
+ province: BJ
+ netabbr: HX
+ vendor: RJ
+
+tasks:
+ file: /usr/local/omc/etc/tasks.yaml
+
+database:
+ type: mysql
+ user: root
+ password: 1000omc@kp!
+ host: 127.0.0.1
+ port: 33066
+ name: omc_db
+ backup: /usr/local/omc/database
+
+# northbound interface, cm/pm
+# duration(day): saved days
+# zipPeriods(day): periods of zip pm data file
+northbound:
+ cm:
+ cfgfiledir: /usr/local/omc/etc/cm
+ xmlfiledir: /opt/omc/ftp/cm
+ version: V1.0.1
+ duration: 30
+ pm:
+ cfgfiledir: /usr/local/omc/etc/pm
+ xmlfiledir: /opt/omc/ftp/pm
+ version: V1.0.1
+ duration: 30
+ zipPeriods: 1
diff --git a/build/omc/etc/default/nbi_agent.json b/build/omc/etc/default/nbi_agent.json
new file mode 100644
index 0000000..363de01
--- /dev/null
+++ b/build/omc/etc/default/nbi_agent.json
@@ -0,0 +1,91 @@
+{
+
+ "omc_name":"APP-BJ-OMC-002-B-01",
+ "oss_info":
+ {
+ "login_url": "https://172.29.247.106:8080/api/rest/securityManagement/v1/oauth/token",
+ "handshake_url": "https://172.29.247.106:8080/api/rest/securityManagement/v1/oauth/handshake",
+ "kpi_report_url": [
+ "https://172.29.247.106:8080/api/rest/performanceManagement/v1/kpiReport1"
+ ],
+
+ "grant_type":"password",
+ "user_name":"test",
+ "user_key":"test",
+ "max_data_len":3200,
+ "time_out":10
+ },
+
+ "ca":{
+ "root_cert":"/usr/local/omc/etc/certs/ca_cert.pem",
+ "cert":"/usr/local/omc/etc/certs/public_key.pem",
+ "private_key":"/usr/local/omc/etc/certs/private_key.pem",
+ "check":true
+ },
+ "syslog":{
+ "facility": 16,
+ "severity": 6,
+ "vendor": "RJ",
+ "ne_name": "AGENT_001",
+ "rm_uid": "1100RJHX1AGENT001",
+ "ne_type": "omc",
+ "log_file": [
+ {
+ "table_name": "nbi_operation_log",
+ "log_path": "/opt/omc/ftp/log/nbi/nbi_operation.log",
+ "period": 1
+ },
+ {
+ "table_name": "nbi_secure_log",
+ "log_path": "/opt/omc/ftp/log/nbi/nbi_secure.log",
+ "period": 1
+ }
+ ]
+ },
+ "mysql":"root:1000omc@kp!@tcp(172.25.97.150:33066)/omc_db?charset=utf8mb4&parseTime=True&loc=Local",
+ "log_dir":"/usr/local/omc/log/nbi",
+ "log_file":"nbi_agent.log",
+ "mock_report_api":true,
+ "web_addr":"0.0.0.0:5050",
+ "cm":{
+ "udm":[
+ "ManagedElement",
+ "UdmFunction",
+ "UdrFunction",
+ "AusfFunction",
+ "IPResource"
+ ],
+ "upf":[
+ "ManagedElement",
+ "InventoryUnitRack",
+ "InventoryUnitShelf",
+ "InventoryUnitPack",
+ "InventoryUnitHost",
+ "InventoryUnitAccessory",
+ "UpfFunction",
+ "EpRpDynN9Upf",
+ "EpRpDynN3Upf",
+ "AmfFunction",
+ "SmfFunction",
+ "UdrFunction",
+ "AusfFunction",
+ "IPResource"
+ ],
+ "smf":[
+ "ManagedElement",
+ "SmfFunction",
+ "AddrPool",
+ "EpRpDynN7Smf",
+ "EpRpDynN10Smf",
+ "IPResource"
+ ],
+ "amf":[
+ "ManagedElement",
+ "AmfFunction",
+ "EpRpDynN8Amf",
+ "EpRpDynN11Amf",
+ "EpRpDynN12Amf",
+ "IPResource"
+ ]
+ }
+}
diff --git a/build/omc/etc/default/nbi_alarm.json b/build/omc/etc/default/nbi_alarm.json
new file mode 100644
index 0000000..fbac0b9
--- /dev/null
+++ b/build/omc/etc/default/nbi_alarm.json
@@ -0,0 +1,40 @@
+{
+ "channel": [
+ {
+ "tcp_port": 31232,
+ "bind_flag": "SMF#1101RJHX1SMF01",
+ "province": "BJ",
+ "device_code": "0001"
+ },
+ {
+ "tcp_port": 31233,
+ "bind_flag": "UDM#1101RJHX1UDM01",
+ "province": "BJ",
+ "device_code": "0002"
+ },
+ {
+ "tcp_port": 31234,
+ "bind_flag": "AUSF#1101RJHX1AUF01",
+ "province": "BJ",
+ "device_code": "0003"
+ },
+ {
+ "tcp_port": 31235,
+ "bind_flag": "AMF#1101RJHX1AMF01",
+ "province": "BJ",
+ "device_code": "0004"
+ },
+ {
+ "tcp_port": 31236,
+ "bind_flag": "UPF#1101RJHX1UPF01",
+ "province": "BJ",
+ "device_code": "0005"
+ }
+ ],
+ "mysql": "root:1000omc@kp!@tcp(127.0.0.1:33066)/omc_db?charset=utf8mb4&parseTime=True&loc=Local",
+ "ftp_root": "/opt/omc/ftp/",
+ "mame":"nbi alarm agent",
+ "heartbeat_max": 180,
+ "log_dir": "/usr/local/omc/log/nbi",
+ "log_file":"nbi_alarm.log"
+}
diff --git a/build/omc/etc/default/restconf.yaml b/build/omc/etc/default/restconf.yaml
new file mode 100644
index 0000000..a758e11
--- /dev/null
+++ b/build/omc/etc/default/restconf.yaml
@@ -0,0 +1,111 @@
+# 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: /usr/local/omc/log/restagent.log
+ level: debug
+ duration: 24
+ count: 90
+
+# 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: 3030
+ - ipv4:
+ ipv6: ::0
+ port: 6060
+
+database:
+ type: mysql
+ user: root
+ password: 1000omc@kp!
+ host: 127.0.0.1
+ port: 33066
+ name: omc_db
+ backup: /usr/loal/omc/database
+
+mml:
+ port: 4100
+ sleep: 200
+ user: admin
+ password: admin
+
+ne:
+ user: root
+ etcdir: /usr/local/etc
+ bindir: /usr/local/bin
+ omcdir: /usr/local/omc
+ licensedir: /usr/local/etc/{neType}/license
+
+# chk2ne: true/false, if put OmcNeConfig parameters to NE
+omc:
+ uriPrefix: /api/rest/oam
+ neType: OMC
+ neId: 001
+ rmUID: 1100RJHX1OMC001
+ neName: OMC
+ province: BJ
+ vendor: RJ
+ dn: 4600
+ chk2ne: false
+ sn: 13750650
+ checksign: false
+ backup: /usr/local/omc/backup
+ upload: /usr/local/omc/upload
+ frontUpload: /usr/local/omc/htdocs/front/upload
+ software: /usr/local/omc/software
+ license: /usr/local/omc/license
+ gtpUri: gtp:192.168.2.119:2152
+ checkContentType: false
+ testMode: true
+ rbacMode: true
+
+# Alarm module setting
+# Forward interface:
+# email/sms
+alarm:
+ forwardAlarm: true
+ email:
+ smtp: smtp@ruijie.com.cn
+ port: 25
+ user: smtpuser
+ password: smtpuser@omc
+ sms:
+ apiURL: http://smsc.ruijie.com.cn/
+ accessKeyID: xxxx
+ accessKeySecret: xxxx
+ signName: Ruijie 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
+
+# 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: /usr/local/omc/etc/testconfig.yaml
\ No newline at end of file
diff --git a/build/omc/etc/default/sshsvc.yaml b/build/omc/etc/default/sshsvc.yaml
new file mode 100644
index 0000000..0b3e6f9
--- /dev/null
+++ b/build/omc/etc/default/sshsvc.yaml
@@ -0,0 +1,50 @@
+# 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: /usr/local/omc/log/sshsvc.log
+ level: debug
+ duration: 24
+ count: 30
+
+# file: MML log file name
+# duration: rotation time with xx hours, example: 1/12/24 hours
+# count: rotation count of log, default is 30 rotation
+# level: cmd/ret log cmd/log cmd & result
+logmml:
+ file: /usr/local/omc/mmllog/omcmml.log
+ duration: 24
+ count: 30
+ level: cmd
+
+# ssh service listen ipv4/v6 and port, support multiple routines
+# ip: 0.0.0.0 or ::0, support IPv4/v6
+# session: single/multiple session for one user
+sshd:
+ listenAddr: 0.0.0.0
+ listenPort: 2222
+ privateKey: /usr/local/omc/.ssh/id_rsa
+ maxConnNum: 20
+ timeout: 1800
+ session: multiple
+
+database:
+ type: mysql
+ user: root
+ password: 1000omc@kp!
+ host: 127.0.0.1
+ port: 33066
+ name: omc_db
+
+omc:
+ httpUri: http://127.0.0.1:3030
+ userCrypt: bcrypt
+
+ne:
+ port: 4100
+ sleep: 200
+ user: admin
+ password: admin
+
+
diff --git a/build/omc/etc/default/tasks-1s.yaml b/build/omc/etc/default/tasks-1s.yaml
new file mode 100644
index 0000000..f39e93e
--- /dev/null
+++ b/build/omc/etc/default/tasks-1s.yaml
@@ -0,0 +1,129 @@
+# example:
+# tasks:
+# - name: test # task comment
+# uri: # restful uri
+# params: # params of url
+# interval: 30 # do sometion in the interval
+# unit: Seconds #Seconds/Minutes/Hours/Days/Weeks, Monday/Tuesday/.../Sunday,
+# at: 00:10:00 # do at time such as xx:xx:xx
+# do: HelloWorldTask # (Do what: callback function)
+#
+# Attention: must restart crontask after modified this file
+#
+tasks:
+ - name: test # task comment
+ status: Active #active/inactive
+ uri: # restful uri
+ params: # params of http url
+ body: # body of http request
+ interval: 60 # do sometion in the interval
+ unit: Seconds #Seconds/Minutes/Hours/Days/Weeks, Monday/Tuesday/.../Sunday,
+ at: 00:10:00 # do at time such as xx:xx:xx when unit such as Day/Days/Mondays...
+ do: TaskHelloWorld # (Do what: callback function)
+ - name: clear expired history alarm
+ uri: /api/rest/databaseManagement/v1/omc_db/alarm
+ params: WHERE=now()+>+ADDDATE(event_time,+interval+(SELECT+`value`+FROM+config+WHERE+config_tag='historyDuration')+day)+and+alarm_status='0'
+ interval: 1
+ unit: Days
+ at: 00:10:00
+ do: TaskDeleteExpiredRecord
+ - name: clear deleted custom pm kpi
+ uri: /api/rest/databaseManagement/v1/omc_db/pm_custom_title
+ params: WHERE=now()+>+ADDDATE(update_time,+interval+(SELECT+`value`+FROM+config+WHERE+config_tag='keepPMCKpi')+day)+and+status='Deleted'
+ interval: 1
+ unit: Days
+ at: 00:15:00
+ do: TaskDeleteExpiredRecord
+ - name: update expired user session
+ uri: /api/rest/databaseManagement/v1/omc_db/session
+ params: WHERE=NOW()+>+ADDDATE(shake_time,+interval+expires+second)+and+status='online'
+ body: '{"session":{"status":"offline"}}'
+ interval: 30
+ unit: Seconds
+ at:
+ do: TaskUpdateTable
+ - name: clear expired log
+ uri:
+ params:
+ interval: 1
+ unit: Days
+ at: 00:50:00
+ do: TaskDeleteExpiredRecord
+ - name: Backup measure data
+ uri: /api/rest/databaseManagement/v1/omc_db/measure_data
+ params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','date','task_id','ne_name','rm_uid','ne_type','granul_option','kpi_code','kpi_id','kpi_ext','start_time','end_time','value','timestamp'+union+select+id,date,task_id,ne_name,rm_uid,ne_type,granul_option,kpi_code,kpi_id,kpi_ext,start_time,end_time,value,timestamp+from+measure_data)+b
+ interval: 1
+ unit: Days
+ at: 00:20:00
+ do: TaskDBBackupCSVGetBySQL
+ - name: handshake to NF
+ status: Active
+ uri: /api/rest/systemManagement/v1/elementType/%s/objectType/systemState
+ params:
+ interval: 1
+ unit: Seconds
+ at:
+ do: TaskHandShakeToNF
+ - name: Export CM from NF
+ uri: /api/rest/systemManagement/v1/elementType/%s/objectType/cm
+ params: ne_id=%s
+ interval: 1
+ unit: Days
+ at: 00:15
+ do: TaskExportCmFromNF
+ - name: Generate NRM xml file
+ uri:
+ params:
+ interval: 1
+ unit: Day
+ at: 00:00,06:00,12:00,18:00
+ do: GenCmXmlFile
+ - name: Task of Generate measure threshold alarm
+ status: Active
+ uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
+ params: RJHXEMSPM10200
+ interval: 10
+ unit: Seconds
+ at:
+ do: TaskGenMeasureThresholdAlarm
+ - name: Task of Generate license alarm
+ uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
+ params: RJHXEMSCM10100
+ interval: 1
+ unit: Days
+ at: 00:30
+ do: TaskGenLicenseAlarm
+ - name: Task of Generate NE system state alarm
+ status: Active
+ uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
+ params: RJHXEMSSM10000
+ interval: 1
+ unit: Seconds
+ at:
+ do: TaskGenNeStateAlarm
+ - name: Task of Generate Measure Report Timeout
+ status: Active
+ uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
+ params: RJHXEMSPM10201
+ interval: 10
+ unit: Seconds
+ at:
+ do: TaskGenMeasureReportTimeoutAlarm
+# - name: Import CM to NF
+# uri: /api/rest/systemManagement/v1/elementType/udm/objectType/cm
+# params: ne_id=SZ_01
+# interval: 15
+# unit: Seconds
+# at:
+# do: TaskImportCmToNF
+crontab:
+# - name: 每隔1分钟执行
+# tab: 0 */1 * * * ? // crontab: rule like linux crontab
+# do: CronHelloWorldTask // function name to call
+# params:
+ - name: Generate PM xml file
+ status: Active
+ tab: 5,20,35,50 * * * *
+ do: GenPmXmlFile
+ uri: this is uri
+ params: Generating PM xml file
diff --git a/build/omc/etc/default/tasks.yaml b/build/omc/etc/default/tasks.yaml
new file mode 100644
index 0000000..f0e6561
--- /dev/null
+++ b/build/omc/etc/default/tasks.yaml
@@ -0,0 +1,171 @@
+# example:
+# tasks:
+# - name: test # task comment
+# uri: # restful uri
+# params: # params of url
+# interval: 30 # do sometion in the interval
+# unit: Seconds #Seconds/Minutes/Hours/Days/Weeks, Monday/Tuesday/.../Sunday,
+# at: 00:10:00 # do at time such as xx:xx:xx
+# do: HelloWorldTask # (Do what: callback function)
+#
+# Attention: must restart crontask after modified this file
+#
+tasks:
+ - name: test # task comment
+ status: Active #active/inactive
+ uri: # restful uri
+ params: # params of http url
+ body: # body of http request
+ interval: 60 # do sometion in the interval
+ unit: Seconds #Seconds/Minutes/Hours/Days/Weeks, Monday/Tuesday/.../Sunday,
+ at: 00:10:00 # do at time such as xx:xx:xx when unit such as Day/Days/Mondays...
+ do: TaskHelloWorld # (Do what: callback function)
+ - name: clear expired history alarm
+ uri: /api/rest/databaseManagement/v1/omc_db/alarm
+ params: WHERE=now()+>+ADDDATE(event_time,+interval+(SELECT+`value`+FROM+config+WHERE+config_tag='historyDuration')+day)+and+alarm_status='0'
+ interval: 1
+ unit: Days
+ at: 00:10:00
+ do: TaskDeleteExpiredRecord
+ - name: clear deleted custom pm kpi
+ uri: /api/rest/databaseManagement/v1/omc_db/pm_custom_title
+ params: WHERE=now()+>+ADDDATE(update_time,+interval+(SELECT+`value`+FROM+config+WHERE+config_tag='keepPMCKpi')+day)+and+status='Deleted'
+ interval: 1
+ unit: Days
+ at: 00:15:00
+ do: TaskDeleteExpiredRecord
+ - name: update expired user session
+ uri: /api/rest/databaseManagement/v1/omc_db/session
+ params: WHERE=NOW()+>+ADDDATE(shake_time,+interval+expires+second)+and+status='online'
+ body: '{"session":{"status":"offline"}}'
+ interval: 30
+ unit: Seconds
+ at:
+ do: TaskUpdateTable
+ - name: clear expired log
+ uri:
+ params:
+ interval: 1
+ unit: Days
+ at: 00:50:00
+ do: TaskDeleteExpiredRecord
+ - name: Backup measure data
+ uri: /api/rest/databaseManagement/v1/omc_db/measure_data
+ params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','date','task_id','ne_name','rm_uid','ne_type','granul_option','kpi_code','kpi_id','kpi_ext','start_time','end_time','value','timestamp'+union+select+id,date,task_id,ne_name,rm_uid,ne_type,granul_option,kpi_code,kpi_id,kpi_ext,start_time,end_time,value,timestamp+from+measure_data)+b
+ interval: 1
+ unit: Days
+ at: 00:20:00
+ do: TaskDBBackupCSVGetBySQL
+ - name: Backup operation log
+ uri: /api/rest/databaseManagement/v1/omc_db/operation_log
+ params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'op_id','account_name','op_ip','subsys_tag','op_type','op_content','op_result','begin_time','end_time','vnf_flag','log_time'+union+select+op_id,account_name,op_ip,subsys_tag,op_type,op_content,op_result,begin_time,end_time,vnf_flag,log_time+from+operation_log)+b
+ interval: 1
+ unit: Days
+ at: 00:26:00
+ do: TaskDBBackupCSVGetBySQL
+ - name: Backup security log
+ uri: /api/rest/databaseManagement/v1/omc_db/security_log
+ params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','account_name','account_type','op_ip','op_type','op_content','op_result','op_time'+union+select+id,account_name,account_type,op_ip,op_type,op_content,op_result,op_time+from+security_log)+b
+ interval: 1
+ unit: Days
+ at: 00:28:00
+ do: TaskDBBackupCSVGetBySQL
+ - name: Backup alarm log
+ uri: /api/rest/databaseManagement/v1/omc_db/alarm_log
+ params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','ne_type','ne_id','alarm_seq','alarm_id','alarm_code','alarm_status','event_time','log_time'+union+select+id,ne_type,ne_id,alarm_seq,alarm_id,alarm_code,alarm_status,event_time,log_time+from+alarm_log)+b
+ interval: 1
+ unit: Days
+ at: 00:30:00
+ do: TaskDBBackupCSVGetBySQL
+ - name: handshake to NF
+ status: Active
+ uri: /api/rest/systemManagement/v1/elementType/%s/objectType/systemState
+ params:
+ interval: 10
+ unit: Seconds
+ at:
+ do: TaskHandShakeToNF
+ - name: Export CM from NF
+ uri: /api/rest/systemManagement/v1/elementType/%s/objectType/cm
+ params: ne_id=%s
+ interval: 1
+ unit: Days
+ at: 00:15
+ do: TaskExportCmFromNF
+ - name: Generate NRM xml file
+ uri:
+ params:
+ interval: 1
+ unit: Day
+ at: 00:00,06:00,12:00,18:00
+ do: GenCmXmlFile
+ - name: Task of Generate measure threshold alarm
+ status: Active
+ uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
+ params: RJHXEMSPM10200
+ interval: 10
+ unit: Seconds
+ at:
+ do: TaskGenMeasureThresholdAlarm
+ - name: Task of Generate license alarm
+ status: Inactive
+ uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
+ params: RJHXEMSCM10100
+ interval: 1
+ unit: Days
+ at: 00:30
+ do: TaskGenLicenseAlarm
+ - name: Task of Generate NE system state alarm
+ status: Active
+ uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
+ params: RJHXEMSSM10000
+ interval: 5
+ unit: Seconds
+ at:
+ do: TaskGenNeStateAlarm
+ - name: Task of Generate Measure Report Timeout
+ status: Active
+ uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
+ params: RJHXEMSPM10201
+ interval: 10
+ unit: Seconds
+ at:
+ do: TaskGenMeasureReportTimeoutAlarm
+ - name: Monitor proces list and write system log
+ uri: /api/rest/databaseManagement/v1/omc_db/system_log
+ params:
+ body:
+ interval: 10
+ unit: Seconds
+ at:
+ do: TaskWriteSystemLog
+ - name: Copy log to /opt/omc/ftp/log
+ uri:
+ params: cp -rf /usr/local/omc/database/*.csv /opt/omc/ftp/log
+ interval: 10
+ unit: Minutes
+ at:
+ do: TaskRunShellCommand
+# - name: Import CM to NF
+# uri: /api/rest/systemManagement/v1/elementType/udm/objectType/cm
+# params: ne_id=SZ_01
+# interval: 15
+# unit: Seconds
+# at:
+# do: TaskImportCmToNF
+crontab:
+# - name: 每隔1分钟执行
+# tab: 0 */1 * * * ? // crontab: rule like linux crontab
+# do: CronHelloWorldTask // function name to call
+# params:
+ - name: Generate PM xml file
+ status: Active
+ tab: 5,20,35,50 * * * *
+ do: GenPmXmlFile
+ uri: this is uri
+ params: Generating PM xml file
+# - name: Import CM to NF
+# tab: 0 * * * * *
+# do: TaskImportCmToNF
+# uri: /api/rest/systemManagement/v1/elementType/udm/objectType/cm
+# params: ne_id=SZ_01
\ No newline at end of file
diff --git a/build/omc/etc/default/testconfig.yaml b/build/omc/etc/default/testconfig.yaml
new file mode 100644
index 0000000..1d0b592
--- /dev/null
+++ b/build/omc/etc/default/testconfig.yaml
@@ -0,0 +1,19 @@
+UDM:
+ capUsed: 16
+ featureEnabled: [N8,N10,N13,N12]
+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: []
+
diff --git a/build/omc/etc/schema/cm-schema.xsd b/build/omc/etc/schema/cm-schema.xsd
new file mode 100644
index 0000000..5e7e46c
--- /dev/null
+++ b/build/omc/etc/schema/cm-schema.xsd
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/omc/etc/schema/pm-schema.xsd b/build/omc/etc/schema/pm-schema.xsd
new file mode 100644
index 0000000..bb01840
--- /dev/null
+++ b/build/omc/etc/schema/pm-schema.xsd
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/systemd/4a_agent.service b/build/systemd/4a_agent.service
new file mode 100644
index 0000000..6adecef
--- /dev/null
+++ b/build/systemd/4a_agent.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=4A agent daemon
+After=network-online.target
+
+[Service]
+Type=simple
+LimitNOFILE=65535
+
+Restart=always
+ExecStart=/usr/local/omc/run/4a_agent -c /usr/local/omc/etc/4a_agent.yaml
+RestartSec=2
+RestartPreventExitStatus=1
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/build/systemd/crontask.service b/build/systemd/crontask.service
new file mode 100644
index 0000000..941d2bf
--- /dev/null
+++ b/build/systemd/crontask.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Cron task daemon
+After=network-online.target
+
+[Service]
+Type=simple
+LimitNOFILE=65535
+
+Restart=always
+ExecStart=/usr/local/omc/bin/crontask -c /usr/local/omc/etc/crontask.yaml
+RestartSec=2
+RestartPreventExitStatus=1
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/build/systemd/nbi_agent.service b/build/systemd/nbi_agent.service
new file mode 100644
index 0000000..2a74b46
--- /dev/null
+++ b/build/systemd/nbi_agent.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=NBI agent daemon
+After=network-online.target
+
+[Service]
+Type=simple
+LimitNOFILE=65535
+
+Restart=always
+ExecStart=/usr/local/omc/run/nbi_agent -c /usr/local/omc/etc/nbi_agent.json
+RestartSec=2
+RestartPreventExitStatus=1
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/build/systemd/nbi_alarm.service b/build/systemd/nbi_alarm.service
new file mode 100644
index 0000000..fb76494
--- /dev/null
+++ b/build/systemd/nbi_alarm.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=NBI alarm agent daemon
+After=network-online.target
+
+[Service]
+Type=simple
+LimitNOFILE=65535
+
+Restart=always
+ExecStart=/usr/local/omc/run/nbi_alarm -c /usr/local/omc/etc/nbi_alarm.json
+RestartSec=2
+RestartPreventExitStatus=1
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/build/systemd/restagent.service b/build/systemd/restagent.service
new file mode 100644
index 0000000..c44fe65
--- /dev/null
+++ b/build/systemd/restagent.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=REST agent daemon
+After=network-online.target
+
+[Service]
+Type=simple
+LimitNOFILE=65535
+
+Restart=always
+ExecStart=/usr/local/omc/bin/restagent -c /usr/local/omc/etc/restconf.yaml
+RestartSec=2
+RestartPreventExitStatus=1
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/build/systemd/sshsvc.service b/build/systemd/sshsvc.service
new file mode 100644
index 0000000..662941e
--- /dev/null
+++ b/build/systemd/sshsvc.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=SSH MML service daemon
+After=network-online.target
+
+[Service]
+Type=simple
+LimitNOFILE=65535
+
+Restart=always
+ExecStart=/usr/local/omc/run/sshsvc -c /usr/local/omc/etc/sshsvc.yaml
+RestartSec=2
+RestartPreventExitStatus=1
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/debbuild/DEBIAN/control b/debbuild/DEBIAN/control
new file mode 100644
index 0000000..27a5f6e
--- /dev/null
+++ b/debbuild/DEBIAN/control
@@ -0,0 +1,7 @@
+Package: OMC
+Version: 1
+Section: AGrandTech
+Prioritt: optional
+Architecture: amd64
+Maintainer: Simon Zhangsz
+Description: OMC
diff --git a/debbuild/DEBIAN/postinst b/debbuild/DEBIAN/postinst
new file mode 100644
index 0000000..0dce485
--- /dev/null
+++ b/debbuild/DEBIAN/postinst
@@ -0,0 +1,17 @@
+# !/bin/sh
+echo ""
+echo "* To start/stop/restart rest agent service run:"
+echo " sudo systemctl start/stop/restart restagent.service"
+echo " sudo systemctl start/stop/restart crontask.service"
+echo ""
+
+systemctl enable restagent.service
+systemctl enable crontask.service
+systemctl daemon-reload
+if ! id -u omc >/dev/null 2>&1 ; then
+ useradd -d /opt/omc -m -s /bin/bash -p1000ftp@kp omc;
+ mkdir -p /opt/omc/ftp
+else
+ echo "user omc exist";
+fi
+
diff --git a/debbuild/DEBIAN/postrm b/debbuild/DEBIAN/postrm
new file mode 100644
index 0000000..f9480e8
--- /dev/null
+++ b/debbuild/DEBIAN/postrm
@@ -0,0 +1,9 @@
+# !/bin/bash
+systemctl stop nginx.service
+systemctl stop restagent.service
+systemctl stop crontask.service
+#rm -rf /usr/local/omc
+rm -rf /etc/nginx/conf.d/omc.conf
+systemctl disable restagent.service
+systemctl disable crontask.service
+systemctl daemon-reload
\ No newline at end of file
diff --git a/debbuild/usr/local/omc/etc/omc/default/restconf.yaml b/debbuild/usr/local/omc/etc/omc/default/restconf.yaml
new file mode 100644
index 0000000..cbfe1b1
--- /dev/null
+++ b/debbuild/usr/local/omc/etc/omc/default/restconf.yaml
@@ -0,0 +1,16 @@
+
+logger:
+ file: /usr/local/omc/log/restagent.log
+ level: debug
+
+rest:
+ addr: 0.0.0.0
+ port: 3030
+
+database:
+ type: mysql
+ user: root
+ password: 1000omc@kp!
+ host: 127.0.0.1
+ port: 33066
+ name: omc_db
diff --git a/rpmbuild/SPECS/omc.spec b/rpmbuild/SPECS/omc.spec
new file mode 100644
index 0000000..68079b5
--- /dev/null
+++ b/rpmbuild/SPECS/omc.spec
@@ -0,0 +1,122 @@
+%define __check_files %{nil}
+%define __spec_build_pre %{nil}
+%define __arch_install_post %{nil}
+
+Name: OMC
+Summary: Ruijie 5GC OMC
+Version: 5GC16.1.1
+Release: 20230531
+Vendor: RuijIe Network
+URL: https://www.ruijie.com.cn/
+License: commercial
+Group: Applications/Communications
+#BuildRoot: $PWD/rpmoutput
+%description
+Ruijie's 5GC OMC
+
+%prep
+mkdir -p ${RPM_BUILD_ROOT}
+cd ${RPM_BUILD_ROOT}
+mkdir -p usr/local/omc/
+mkdir -p etc/nginx/conf.d
+mkdir -p lib/systemd/system/
+
+cd ${RPM_BUILD_DIR}
+cp -rf omc/.ssh ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/mmllog ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/mmlhome ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/bin ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/run ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/etc ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/htdocs ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/log ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/backup ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/upload ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/software ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/license ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -rf omc/database ${RPM_BUILD_ROOT}/usr/local/omc/
+cp -f nginx/omc.conf ${RPM_BUILD_ROOT}/etc/nginx/conf.d/
+cp -f systemd/restagent.service ${RPM_BUILD_ROOT}/lib/systemd/system/restagent.service
+cp -f systemd/crontask.service ${RPM_BUILD_ROOT}/lib/systemd/system/crontask.service
+cp -f systemd/sshsvc.service ${RPM_BUILD_ROOT}/lib/systemd/system/sshsvc.service
+cp -f systemd/nbi_alarm.service ${RPM_BUILD_ROOT}/lib/systemd/system/nbi_alarm.service
+cp -f systemd/nbi_agent.service ${RPM_BUILD_ROOT}/lib/systemd/system/nbi_agent.service
+cp -f systemd/4a_agent.service ${RPM_BUILD_ROOT}/lib/systemd/system/4a_agent.service
+
+%build
+#cd %{buildroot}/..
+#make
+
+# 安装完成后执行
+%post
+if ! id -u omc >/dev/null 2>&1 ; then useradd -d /opt/omc -m -s /bin/bash -p1000ftp@kp omc; else echo "user omc exist"; fi
+mkdir -p /opt/omc/ftp
+mkdir -p /opt/omc/ftp/log
+chmod +rx /usr/local/omc
+chmod +rx /usr/local/omc/*
+chmod +x /usr/local/omc/run/*
+chmod -R 755 /usr/local/omc/htdocs/front
+systemctl daemon-reload
+systemctl enable restagent.service
+systemctl enable crontask.service
+systemctl enable sshsvc.service
+systemctl enable nbi_alarm.service
+systemctl enable nbi_agent.service
+systemctl enable 4a_agent.service
+systemctl enable nginx.service
+systemctl restart nginx.service
+
+# 卸载时执行
+%postun
+if [ "$1" = "0" ] ; then
+systemctl stop nginx.service
+systemctl stop restagent.service
+systemctl stop crontask.service
+systemctl stop sshsvc.service
+systemctl stop nbi_alarm.service
+systemctl stop nbi_agent.service
+systemctl stop 4a_agent.service
+#rm -rf /usr/local/omc
+rm -rf /etc/nginx/conf.d/omc.conf
+systemctl disable restagent.service
+systemctl disable crontask.service
+systemctl disable sshsvc.service
+systemctl disable nbi_alarm.service
+systemctl disable nbi_agent.service
+systemctl disable 4a_agent.service
+systemctl daemon-reload
+else
+systemctl daemon-reload
+systemctl restart nginx.service
+systemctl restart restagent.service
+systemctl restart crontask.service
+systemctl restart sshsvc.service
+systemctl restart nbi_alarm.service
+systemctl restart nbi_agent.service
+systemctl restart 4a_agent.service
+fi
+
+# 规定那些文件必须放入安装程序中,如果没有就报错
+%files
+%defattr(-,root,root)
+/usr/local/omc/.ssh
+/usr/local/omc/mmllog
+/usr/local/omc/mmlhome
+/usr/local/omc/bin
+/usr/local/omc/run
+/usr/local/omc/etc
+/usr/local/omc/htdocs
+/usr/local/omc/log
+/usr/local/omc/backup
+/usr/local/omc/upload
+/usr/local/omc/software
+/usr/local/omc/license
+/usr/local/omc/database
+/etc/nginx/conf.d/omc.conf
+/lib/systemd/system/restagent.service
+/lib/systemd/system/crontask.service
+/lib/systemd/system/sshsvc.service
+/lib/systemd/system/nbi_alarm.service
+/lib/systemd/system/nbi_agent.service
+/lib/systemd/system/4a_agent.service
+