1
0

72 Commits

Author SHA1 Message Date
simon
6b5e958113 release: 2.2508.2 2025-08-21 09:43:51 +08:00
simon
0c3a264b24 chore: nbi reference doc and tools for generate data or cdr 2025-08-20 16:06:04 +08:00
simon
c4e620d2a7 feat: etc default config file check 2025-08-11 17:39:13 +08:00
simon
d38cf41630 feat: add config file nbi_pm.yaml 2025-08-11 17:25:05 +08:00
simon
e8059871d5 chore: remove and ignore default file 2025-08-11 17:18:26 +08:00
simon
a666f177cc release: 2.2508.1 support alarm/nbi_pm/nbi_kpi redis queue and generate nbi pm whole kpi random data 2025-08-11 17:14:08 +08:00
simon
847d9ab781 chore: nbi pm xlxs generate to json schema 2025-08-11 17:00:39 +08:00
simon
16ef83f04b release 2.2507.1 2025-07-24 09:33:23 +08:00
simon
e4c0806468 fix: add project tag 2025-06-23 18:35:10 +08:00
simon
e5b8df0753 feat: nbi release 2.2506.1 2025-06-23 18:29:03 +08:00
simon
1386f2aa41 release 2.2504.1 2025-05-23 18:48:08 +08:00
simon
d0d4efed93 feat: nbi interface md 2025-05-23 18:11:05 +08:00
simon
1cda2618f3 fix: ../spec 2025-04-30 11:29:15 +08:00
simon
9046f4daa7 fix> ... 2025-04-30 11:16:48 +08:00
simon
c3eb9874a8 fix: firewall cmd 2025-04-29 20:51:46 +08:00
simon
22d3f6f9fa fix... 2025-04-29 20:43:13 +08:00
simon
efa3b6e627 fix: ... 2025-04-29 20:37:57 +08:00
simon
c565a3ee8f fix: ignore rpm buildroot 2025-04-29 20:26:30 +08:00
simon
1e1b8394a5 fix: spec for epenEuler 2025-04-29 20:25:21 +08:00
simon
91ac4aa3ff fix: openEuler majorVersion 2025-04-28 17:23:25 +08:00
simon
3451f36ece feat: build sh update 2025-04-27 20:01:59 +08:00
simon
c12c9d2f31 fix: restconf.yaml 2025-04-27 11:54:18 +08:00
zhangsz
f1685db6ed release nbi 2.2504.1 2025-04-25 15:19:20 +08:00
TsMask
17591b1705 chore: 更新版本号 2.2503.5 2025-04-12 10:11:01 +08:00
TsMask
5d9425c457 chore: 更新版本号 2.2503.4 2025-03-31 20:06:01 +08:00
TsMask
d8624c2fe9 chore: 更新版本号 2.2503.3 2025-03-21 15:36:13 +08:00
TsMask
cb8692cf44 chore: 更新版本号 2.2503.2 2025-03-14 11:04:59 +08:00
TsMask
cc45dd1be3 chore: 更新版本号 2.2503.1 2025-03-08 11:11:18 +08:00
TsMask
56d62831eb fix: badeb 中文字符串替换 2025-03-04 18:09:37 +08:00
TsMask
246fb027cd fix: badeb 中文字符串替换 2025-03-04 16:13:51 +08:00
TsMask
7818759109 chore: 更新版本号 2.2502.4 2025-02-28 19:56:37 +08:00
TsMask
48d5a0a783 feat: 添加kylin|anolis打包rpm 2025-02-24 16:36:32 +08:00
TsMask
e42d35c5e0 chore: 更新版本号 2.2502.3 2025-02-21 21:11:29 +08:00
zhangsz
667f6b1987 fix: ... 2025-02-21 19:39:40 +08:00
zhangsz
6adf76b589 fix: build arm /amd 2025-02-21 19:38:51 +08:00
zhangsz
49f0ba4a7a fix: ... 2025-02-20 21:20:04 +08:00
zhangsz
27826e4523 fix: ... 2025-02-20 21:16:25 +08:00
zhangsz
1316629dc8 fix:... 2025-02-20 21:06:47 +08:00
zhangsz
82a0d32f15 fix: git ignore 2025-02-20 20:42:35 +08:00
zhangsz
83ce21d2c3 fix: ... 2025-02-20 20:39:35 +08:00
zhangsz
1efc851b39 fix: support openEuler build 2025-02-20 19:50:18 +08:00
TsMask
d9c16a616c chore: 更新版本号 2.2502.2 2025-02-14 19:41:46 +08:00
TsMask
a2800bed0d chore: 更新版本号 2.2502.1 2025-02-08 19:47:04 +08:00
TsMask
cf97351fc9 chore: 更新版本号 2.2501.4 2025-01-24 20:42:17 +08:00
TsMask
251284aa38 chore: 更新版本号 2.2501.3 2025-01-17 18:43:50 +08:00
TsMask
1fe4eddd33 del: 移除程序打包service错误 2025-01-11 11:37:40 +08:00
TsMask
6211a88f2e del: 移除captrace/data2html/crontask程序 2025-01-11 10:17:20 +08:00
TsMask
b73cd05af8 chore: 更新版本号 2.2501.2 2025-01-10 19:41:54 +08:00
TsMask
16d20fcad4 chore: 更新版本号 2.2501.1 2025-01-03 21:51:22 +08:00
TsMask
9f1a097e2a chore: 更新版本号 2.2412.4 2024-12-28 10:56:29 +08:00
TsMask
cfa0825e22 chore: 更新版本号 2.2412.3 2024-12-20 18:55:56 +08:00
TsMask
5bc958e911 chore: 更新版本号 2.2412.2 2024-12-13 21:23:58 +08:00
TsMask
e636f76506 chore: 更新版本号 2.2412.1 2024-12-09 09:58:32 +08:00
TsMask
1ca15477ca chore: 更新版本号 2.2411.4 2024-11-30 17:14:23 +08:00
TsMask
7ce96a7178 chore: 更新版本号 2.2411.3 2024-11-23 16:38:37 +08:00
TsMask
639107ba3d chore: 更新版本号 2.2411.2 2024-11-15 18:17:41 +08:00
dd0d67c0ea update spec for ky10 arm build 2024-11-12 09:24:50 +08:00
343e32735d update spec for build 2024-11-08 19:39:40 +08:00
37477ad9f1 update spec for build 2024-11-08 19:25:56 +08:00
1fb64561c4 update spec for build 2024-11-08 19:15:39 +08:00
abb2a8a33d update spec for build 2024-11-08 19:11:31 +08:00
TsMask
1dc143c062 chore: 更新版本号 2.2411.1 2024-11-08 17:56:57 +08:00
ff7973194f update makepkg.sh 2024-11-07 16:40:44 +08:00
c9277f1123 shell to sed fe src/hooks 2024-11-07 15:16:15 +08:00
b8c1740875 update make package shell 2024-11-07 14:57:42 +08:00
121cbea72e update make package sh 2024-11-07 14:46:21 +08:00
3e08ef0cc4 update build package shell script 2024-11-07 14:37:00 +08:00
38dabd180d support customized images and locales for FE 2024-11-07 11:47:18 +08:00
cd6578f57c update npm install --force 2024-11-05 18:02:49 +08:00
TsMask
f403456185 chore: 更新版本号 2.2410.4 2024-11-02 15:35:36 +08:00
dbded5635f update git ignore list 2024-11-01 17:29:25 +08:00
44fad7ae82 Optimize the packaging process 2024-11-01 17:24:37 +08:00
41 changed files with 714 additions and 650 deletions

31
.gitignore vendored
View File

@@ -12,26 +12,21 @@
# Run temp file and dir
docs/temp/
# Built Visual Studio Code Extensions
*.vsix
*.bak
# build files
build
debbuild/etc
debbuild/usr
debbuild/lib
debbuild/22.04/etc
debbuild/22.04/usr
debbuild/22.04/lib
release
rpmbuild/RPMS
rpmbuild/SOURCES
rpmbuild/BUILD
rpmbuild/BUILDROOT
build/usr/local/omc/bin/captrace
build/usr/local/omc/bin/crontask
build/usr/local/omc/bin/data2html
build/usr/local/omc/bin/restagent
build/usr/local/omc/bin/sshsvc
debbuild/22.04/usr/local/omc/bin/captrace
debbuild/22.04/usr/local/omc/bin/crontask
debbuild/22.04/usr/local/omc/bin/data2html
debbuild/22.04/usr/local/omc/bin/restagent
debbuild/22.04/usr/local/omc/bin/sshsvc
# release package
build/usr/local/omc/htdocs
debbuild/22.04/usr/local/omc/htdocs
debbuild/usr/local/omc/htdocs
build/
debbuild/
release/

View File

@@ -56,7 +56,7 @@ fi
ProjectL=omc
ProjectU=OMC
PROJECT=${ProjectL}
VERSION=2.2410.3
VERSION=2.2508.2
RelDate=`date +%Y%m%d`
RelVer=${VERSION}-${RelDate}
Ky10Arch=ky10.aarch64
@@ -66,9 +66,10 @@ DebPkgName=${ProjectL}-r${RelVer}-ub*.deb
EmsBEDir=${GitLocalRoot}/be.ems
EmsBuildRoot=${GitLocalRoot}/build.ems
RpmArch=`arch`
RpmsDir=${EmsBuildRoot}/rpmbuild/RPMS/
RpmsDir=${EmsBuildRoot}/rpmbuild/RPMS
ReleaseDir=${EmsBuildRoot}/release
DumpToolDir=${EmsBEDir}/tools/misc
ProjectTag="nbi"
BuildDir=${EmsBuildRoot}/build
CustomizedDir=${EmsBuildRoot}/customized
@@ -79,12 +80,13 @@ BuildLibDir=${BuildDir}/lib
BuildLibSystemDir=${BuildLibDir}/systemd/system
DebBuildDir=${EmsBuildRoot}/debbuild
DebBuildOMCDir=${EmsBuildRoot}/debbuild/usr/local/omc
DebFEBuildDir=${EmsBuildRoot}/debbuild/usr/local/omc/htdocs
DebFEBuildDir=${DebBuildOMCDir}/htdocs
DebBuild2204Dir=${EmsBuildRoot}/debbuild/22.04
DebBuild2204OMCDir=${EmsBuildRoot}/debbuild/22.04/usr/local/omc
DebFEBuild2204Dir=${EmsBuildRoot}/debbuild/22.04/usr/local/omc/htdocs
DebFEBuild2204Dir=${DebBuild2204OMCDir}/htdocs
RpmBuildDir=${EmsBuildRoot}/rpmbuild
RpmFEBuildDir=${RpmBuildDir}/BUILD/usr/local/omc/htdocs
RpmBuildOMCDir=${RpmBuildDir}/BUILD/usr/local/omc
RpmFEBuildDir=${RpmBuildOMCDir}/htdocs
OmcInstallDir=/usr/local/omc
ConfigEtcDir=${EmsBEDir}/config/etc
ConfigSystemdDir=${EmsBEDir}/config/systemd
@@ -92,36 +94,93 @@ EmsFEDir=${GitLocalRoot}/fe.ems
EmsFEVue3Dir=${GitLocalRoot}/fe.ems.vue3/dist
LibDir=${EmsBEDir}/lib
RESTAGENT=restagent
CRONTASK=crontask
SshSvcBin=sshsvc
CapTraceBin=captrace
Data2htmlBin=data2html
NBI_ALARM=nbi_alarm
NBI_AGENT=nbi_agent
AAAA_AGENT=4a_agent
RestagentDir=${EmsBEDir}/${RESTAGENT}
CrontaskDir=${EmsBEDir}/${CRONTASK}
SshSvcDir=${EmsBEDir}/${SshSvcBin}
CapTraceDir=${EmsBEDir}/${CapTraceBin}
Data2htmlDir=${EmsBEDir}/${Data2htmlBin}
DBSQLSrcDir=${EmsBEDir}/database
MiscDir=${EmsBEDir}/misc
FrontBuildDir=${BuildOMCDir}/htdocs
FrontSrcDir=${EmsBEDir}/front
CrontaskSize=27788951
RestagentSize=29525312
BinWriterDir=${HOME}/bin
if [[ ${RpmArch} =~ "x86_64" ]];then
# Get the output of uname -a
UnameOutput=$(uname -a)
# Extract hardware architecture
if [[ $UnameOutput =~ "x86_64" ]]; then
RelArch=amd64
elif [[ ${RpmArch} =~ "aarch64" ]];then
RpmArch=x86_64
elif [[ $UnameOutput =~ "aarch64" ]]; then
RelArch=arm64
RpmArch=aarch64
else
echo "Unsupported hardware architecture"
exit 1
fi
get_os_info() {
if [ -f /etc/os-release ]; then
. /etc/os-release
echo $ID
else
echo "unknown"
fi
}
get_os_version() {
if [ -f /etc/os-release ]; then
. /etc/os-release
echo $VERSION_ID
else
echo "unknown"
fi
}
OSVersion=$(get_os_version)
case $(get_os_info) in
ubuntu|debian)
ptype=deb
if [[ "$OSVersion" == "22.04" ]]; then
RelOS=ub22
DebBuildDir=${DebBuild2204Dir}
DebBuildOMCDir=${DebBuild2204OMCDir}
DebFEBuildDir=${DebFEBuild2204Dir}
elif [[ "$OSVersion" == "18.04" ]]; then
RelOS=ub18
else
echo "Unsupported Ubuntu version: $OSVersion"
exit 1
fi
;;
centos|rhel)
ptype=rpm
RelOS=ct8
RpmPkgRename=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}.${ptype}
;;
openEuler)
ptype=rpm
majorVersion=${OSVersion:0:2}
RelOS=oe${majorVersion}
RpmPkgName=${ProjectL}-${RelVer}.${RpmArch}.${ptype}
RpmPkgRename=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}.${ptype}
;;
kylin|anolis)
ptype=rpm
RelOS=ky
RpmPkgName=${ProjectL}-${RelVer}.${RpmArch}.${ptype}
RpmPkgRename=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}.${ptype}
;;
*)
echo "Unsupported OS"
exit 1
;;
esac
case "${pkgtype}" in
rpm)
echo "Begin to make ${pkgtype} package ======>"
ReleasePkgDir=${ReleaseDir}/rpms/${RelArch}
ProcList="restagent crontask sshsvc captrace data2html"
ProcList="restagent sshsvc"
cd $EmsBEDir
for procName in $ProcList;do
cd $EmsBEDir/$procName
@@ -137,24 +196,15 @@ case "${pkgtype}" in
rm -rf ${RpmBuildDir}/BUILD/usr/local/omc/etc/db/*
cp -rf ${RestagentDir}/${RESTAGENT} ${BuildOMCBinDir}
cp -rf ${CrontaskDir}/${CRONTASK} ${BuildOMCBinDir}
cp -rf ${SshSvcDir}/${SshSvcBin} ${BuildOMCBinDir}
cp -rf ${CapTraceDir}/${CapTraceBin} ${BuildOMCBinDir}
cp -rf ${Data2htmlDir}/${Data2htmlBin} ${BuildOMCBinDir}
# ${BinWriterDir}/binWriter ${BuildOMCBinDir}/${RESTAGENT} ${RestagentSize}
# ${BinWriterDir}/binWriter ${BuildOMCBinDir}/${CRONTASK} ${CrontaskSize}
# cp -rf ${MiscDir}/ne-hosts ${BuildOMCBinDir}
# cp -rf ./nbi/${NBI_ALARM}/bin/${NBI_ALARM} ${BinDir2}
# cp -rf ./nbi/${NBI_AGENT}/bin/${NBI_AGENT} ${BinDir2}
# cp -rf ./${4A_AGENT}/bin/${4A_AGENT} ${BinDir2}
cp -rf ${MiscDir}/* ${BuildOMCBinDir}
# rm -rf ${BinDir2}/ne-hosts
cp -rf ${ConfigEtcDir}/* ${BuildOMCEtcDir}
rm -rf ${BuildOMCEtcDir}/db/*
cp -rf ${DBSQLSrcDir}/* ${BuildOMCEtcDir}/db/
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
#Get SQL from database, overwrite from git
if [ "$dumpdb" = "yes" ]; then
cd ${DumpToolDir}
@@ -166,22 +216,27 @@ case "${pkgtype}" in
mkdir -p ${FrontBuildDir}/front
cp -rf ${EmsFEVue3Dir}/* ${FrontBuildDir}/front >/dev/null
chmod 755 ${BuildOMCBinDir}/*
# chmod 755 ${BinDir2}/*
cp -rf ${BuildDir}/* ${RpmBuildDir}/BUILD/
#cp -rf ${BuildDir}/nginx ${RpmBuildDir}/BUILD/etc/
#cp -rf ${BuildDir}/systemd ${RpmBuildDir}/BUILD/lib/
cp -rf ${CustomizedDir}/agt.d ${RpmBuildOMCDir}/static
cp -rf ${CustomizedDir}/omc.d ${RpmBuildOMCDir}/static
cd ${RpmBuildDir}
rpmbuild -bb -D "_topdir ${RpmBuildDir}" ${RpmBuildDir}/SPECS/omc.spec
if [ ! ProjectTag = "" ]; then
RpmPkgRename=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}-${ProjectTag}.${ptype}
fi
mv -f $RpmsDir/$RpmArch/$RpmPkgName ${ReleasePkgDir}/$RpmPkgRename
cd ${ReleasePkgDir}
rm -f omc-md5sum.txt
# rpm --addsign *.rpm
md5sum $RpmPkgRename >omc-md5sum.txt
echo "Finish to make ${pkgtype} package <======"
;;
deb)
echo "Begin to make ${pkgtype} package ======>"
ReleasePkgDir=${ReleaseDir}/debs/${RelArch}
ProcList="restagent crontask sshsvc captrace data2html"
ProcList="restagent sshsvc"
cd $EmsBEDir
for procName in $ProcList;do
cd $EmsBEDir/$procName
@@ -189,19 +244,10 @@ case "${pkgtype}" in
make
done
VersionID=`grep VERSION_ID /etc/os-release`
if [[ ${VersionID} =~ 'VERSION_ID="22.04"' ]]; then
DebBuildDir=${DebBuild2204Dir}
DebBuildOMCDir=${DebBuild2204OMCDir}
DebFEBuildDir=${DebFEBuild2204Dir}
#DebPkgFile=${PROJECT}-${VERSION}-22.04-${Release).${PLATFORM).deb
DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub22.deb
elif [[ ${VersionID} =~ 'VERSION_ID="18.04"' ]]; then
DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub18.deb
else
echo "Invalid OS release: ${VersionID}"
exit 1
fi
DebPkgFile=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}.${ptype}
if [ ! $ProjectTag = "" ]; then
DebPkgFile=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}-${ProjectTag}.${ptype}
fi
cd ${EmsBEDir}
@@ -213,17 +259,14 @@ case "${pkgtype}" in
rm -rf ${DebBuildOMCDir}/static/*
cp -rf ${RestagentDir}/${RESTAGENT} ${BuildOMCBinDir}
cp -rf ${CrontaskDir}/${CRONTASK} ${BuildOMCBinDir}
cp -rf ${SshSvcDir}/${SshSvcBin} ${BuildOMCBinDir}
cp -rf ${CapTraceDir}/${CapTraceBin} ${BuildOMCBinDir}
cp -rf ${Data2htmlDir}/${Data2htmlBin} ${BuildOMCBinDir}
cp -rf ${MiscDir}/* ${BuildOMCBinDir}
cp -rf ${ConfigEtcDir}/* ${BuildOMCEtcDir}
rm -rf ${BuildOMCEtcDir}/db/*
cp -rf ${DBSQLSrcDir}/* ${BuildOMCEtcDir}/db/
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
#Get SQL from database, overwrite from git
if [ "${dumpdb}" = "yes" ]; then
cd ${DumpToolDir}
@@ -243,17 +286,20 @@ case "${pkgtype}" in
#cp -rf ${BuildDir}/systemd/*.service ${DebBuildDir}/lib/systemd/system/
chmod +x ${DebBuildDir}/usr/local/omc/bin/*
sed -i "s/YYYYMMDD/${RelDate}/g" ${DebBuildDir}/DEBIAN/control
sed -i "s/Architecture: amd64/Architecture: ${RelArch}/g" ${DebBuildDir}/DEBIAN/control
perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: omcuser/g' ${DebBuildDir}/usr/local/omc/etc/default/restconf.yaml
dpkg -b ${DebBuildDir} ${ReleasePkgDir}/${DebPkgFile}
cd ${ReleasePkgDir}
rm -f omc-md5sum.txt
# rpm --addsign *.rpm
md5sum ${DebPkgName} >omc-md5sum.txt
md5sum ${DebPkgName} >omc-md5sum.txt
echo "Finish to make ${pkgtype} package <======="
;;
badeb)
echo "Begin to make ${pkgtype} package ======>"
ReleasePkgDir=${ReleaseDir}/debs/${RelArch}
ProcList="restagent crontask sshsvc captrace data2html"
ProcList="restagent sshsvc"
cd $EmsBEDir
for procName in $ProcList;do
cd $EmsBEDir/$procName
@@ -261,19 +307,7 @@ case "${pkgtype}" in
make
done
VersionID=`grep VERSION_ID /etc/os-release`
if [[ ${VersionID} =~ 'VERSION_ID="22.04"' ]]; then
DebBuildDir=${DebBuild2204Dir}
DebBuildOMCDir=${DebBuild2204OMCDir}
DebFEBuildDir=${DebFEBuild2204Dir}
#DebPkgFile=${PROJECT}-${VERSION}-22.04-${Release).${PLATFORM).deb
DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub22-ba.deb
elif [[ ${VersionID} =~ 'VERSION_ID="18.04"' ]]; then
DebPkgFile=${PROJECT}-r${VERSION}-${RelDate}-ub18-ba.deb
else
echo "Invalid OS release: ${VersionID}"
exit 1
fi
DebPkgFile=${ProjectL}-r${RelVer}-${RelOS}-${RelArch}-ba.deb
cd ${EmsBEDir}
@@ -285,17 +319,15 @@ case "${pkgtype}" in
rm -rf ${DebBuildOMCDir}/static/*
cp -rf ${RestagentDir}/${RESTAGENT} ${BuildOMCBinDir}
cp -rf ${CrontaskDir}/${CRONTASK} ${BuildOMCBinDir}
cp -rf ${SshSvcDir}/${SshSvcBin} ${BuildOMCBinDir}
cp -rf ${CapTraceDir}/${CapTraceBin} ${BuildOMCBinDir}
cp -rf ${Data2htmlDir}/${Data2htmlBin} ${BuildOMCBinDir}
cp -rf ${MiscDir}/* ${BuildOMCBinDir}
cp -rf ${ConfigEtcDir}/* ${BuildOMCEtcDir}
rm -rf ${BuildOMCEtcDir}/db/*
cp -rf ${DBSQLSrcDir}/* ${BuildOMCEtcDir}/db/
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/install
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgrade
cp -rf ${BuildOMCEtcDir}/db/common/* ${BuildOMCEtcDir}/db/upgvue3
#Get SQL from database, overwrite from git
if [ "${dumpdb}" = "yes" ]; then
cd ${DumpToolDir}
@@ -311,16 +343,18 @@ case "${pkgtype}" in
cp -rf ${BuildDir}/* ${DebBuildDir}/
cp -rf ${CustomizedDir}/ba.d ${DebBuildOMCDir}/static
# replace Chinese character
find "${DebBuildOMCDir}/etc/db" -type f -name '*.sql' -exec sed -i 's/[一-龥]//g' {} +
find "${DebBuildOMCDir}/etc/db" -type f -name '*.sql' -exec sed -i 's/[一-龥()“”,。?!]~·]//g' {} +
echo "Replace all chinese character."
chmod +x ${DebBuildDir}/usr/local/omc/bin
sed -i "s/YYYYMMDD/${RelDate}/g" ${DebBuildDir}/DEBIAN/control
sed -i "s/Architecture: amd64/Architecture: ${RelArch}/g" ${DebBuildDir}/DEBIAN/control
perl -0777 -i -pe 's/ne:\n user: root/ne:\n user: omcuser/g' ${DebBuildDir}/usr/local/omc/etc/default/restconf.yaml
dpkg -b ${DebBuildDir} ${ReleasePkgDir}/${DebPkgFile}
cd ${ReleasePkgDir}
rm -f omc-md5sum.txt
md5sum ${DebPkgName} >omc-md5sum.txt
md5sum ${DebPkgName} >omc-md5sum.txt
echo "Finish to make ${pkgtype} package <======"
;;
*)
usage

View File

@@ -11,6 +11,7 @@ usage() {
echo " -m, =be|fe|all be: only process back-end code, default if non input"
echo " fe: only process front-end code"
echo " all: process all include be and fe"
echo " -c, =ba ba: customized for BA OMC"
}
pkgtype=""
@@ -49,8 +50,11 @@ while getopts "m:r:c:d" option; do
be_args+=("-d")
;;
c)
pkgtype="badeb"
be_args+=("$pkgtype")
c_arg=$(echo $OPTARG | tr '[:upper:]' '[:lower:]')
if [ "${c_arg}" == "ba" ]; then
pkgtype="badeb"
be_args+=("${pkgtype}")
fi
;;
\?)
echo "Invalid option: -$OPTARG" >&2
@@ -66,22 +70,44 @@ if [ ! -d ${rootdir} ]; then
fi
bedir=${rootdir}/be.ems
fedir=${rootdir}/fe.ems.vue3
builddir=${rootdir}/build.ems
buildcustomized=${builddir}/customized
customizeddir=${buildcustomized}/${c_arg}.d
fedir=${rootdir}/fe.ems.vue3
feassetsdir=${fedir}/src/assets
felocalesdir=${fedir}/src/i18n/locales
feconstantsdir=${fedir}/src/constants
fehooksdir=${fedir}/src/hooks
makefe() {
cd ${fedir}
git checkout ${feassetsdir}
git checkout ${felocalesdir}
git checkout ${feconstantsdir}
git checkout ${fehooksdir}
git pull
npm install --registry https://registry.npmmirror.com
if [ "${pkgtype}" == "badeb" ]; then
cp -rf ${customizeddir}/images/* ${feassetsdir}
cp -rf ${customizeddir}/locales/* ${felocalesdir}
find "${feconstantsdir}" -type f -name '*.ts' -exec sed -i 's/[一-龥()“”,。?!]~·]//g' {} +
find "${fehooksdir}" -type f -name '*.ts' -exec sed -i 's/[一-龥()“”,。?!]~·]//g' {} +
fi
npm install --force --registry https://registry.npmmirror.com
echo -n "Building front-end vue ... "
npm run build 1>/dev/null
if [ $? = 0 ]; then
echo "done"
fi
git checkout ${feassetsdir}
git checkout ${felocalesdir}
git checkout ${feconstantsdir}
git checkout ${fehooksdir}
}
makebe() {
cd ${builddir}
cd ${builddir}/bin
#chmod +x mkpkg.sh
chmod +x build.sh
./build.sh ${be_args[@]}

View File

@@ -1,44 +0,0 @@
# 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: warn
duration: 24
count: 90
omc:
name: OMC01
hosturi: http://127.0.0.1:33030
hostno: A001
province: ""
netabbr: HX
vendor: ""
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
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
# northbound interface, cm/pm
# duration(day): saved days
# zipPeriods(day): periods of zip pm data file
nbi:
cm:
cfgfiledir: /usr/local/omc/etc/cm
xmlfiledir: /opt/omc/ftp
version: V1.0.1
duration: 30
pm:
cfgfiledir: /usr/local/omc/etc/pm
xmlfiledir: /opt/omc/ftp
version: V1.0.1
duration: 30
zipPeriods: 1

View File

@@ -1,193 +0,0 @@
# 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: warn
duration: 24
count: 90
# 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: 33030
- ipv4: 0.0.0.0
ipv6:
port: 33443
schema: https
clientAuthType: 0
caFile: /usr/local/omc/etc/certs/omc-ca.crt
certFile: /usr/local/omc/etc/certs/omc-server.crt
keyFile: /usr/local/omc/etc/certs/omc-server.key
webServer:
enabled: true
rootDir: /usr/local/omc/htdocs/front
listen:
- addr: :80
schema: http
- addr: :443
schema: https
clientAuthType: 0
caFile: /usr/local/omc/etc/certs/omc-ca.crt
certFile: /usr/local/omc/etc/certs/omc-server.crt
keyFile: /usr/local/omc/etc/certs/omc-server.key
database:
type: mysql
user: root
password: 1000omc@kp!
host: 127.0.0.1
port: 33066
name: omc_db
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
backup: /usr/local/omc/database
# Redis data cache
redis:
dataSource:
# OMC system db
default:
port: 6379 # Redis port
host: "127.0.0.1" # Redis host
password: "helloearth"
db: 10 # Redis db_num
# UDM sub/auth db
udmuser:
port: 6379 # Redis port
host: "127.0.0.1"
password: "helloearth"
db: 0 # Redis db_num
# used to specify the default data source for multiple data resourece
defaultDataSourceName: "default"
# sleep: time delay for after write buffer (millisecond)
# deadLine: timeout for io read and write (second)
mml:
sleep: 200
deadLine: 10
sizeRow: 600
sizeCol: 128
bufferSize: 65535
mmlHome: ./mmlhome
# Tracking configuration
trace:
enabled: true
host: "172.16.5.100" # Fill in the specific IP address
port: 33033
# NE config
ne:
user: omcuser
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, does not contain spaces
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: ""
vendor: ""
dn: ""
chk2ne: false
sn: "-"
checksign: false
rootDir: /usr/local/omc
binDir: /usr/local/omc/bin
backup: /usr/local/omc/backup
upload: /usr/local/omc/upload
frontUpload: /usr/local/omc/htdocs/front/upload
frontTraceDir: /usr/local/omc/htdocs/front/trace
software: /usr/local/omc/software
license: /usr/local/omc/license
gtpUri: gtp:192.168.2.119:32152
checkContentType: false
testMode: false
rbacMode: true
runDir: /usr/local/omc/run
cmdTimeout: 120
# Alarm module setting
# Forward interface:
# TLS Skip verify: true/false
# email/sms
# smProxy: sms(Short Message Service)/smsc(SMS Centre)
# dataCoding: 0:GSM7BIT, 1:ASCII, 2:BINARY8BIT1, 3:LATIN1,
# 4:BINARY8BIT2, 6:CYRILLIC, 7:HEBREW, 8:UCS2
alarm:
alarmEmailForward:
enable: true
emailList:
smtp: mail.smtp.com
port: 25
user: smtpext@smtp.com
password: "1000smtp@omc!"
tlsSkipVerify: true
alarmSMSForward:
enable: true
mobileList:
smscAddr: "192.168.13.114:2775"
systemID: "omc"
password: "omc123"
systemType: "UTRAN"
dataCoding: 0
serviceNumber: "OMC"
sms:
apiURL: http://smsc.xxx.com/
accessKeyID: xxxx
accessKeySecret: xxxx
signName: xxx SMSC
templateCode: 1000
smProxy: smsc
# 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: /usr/local/omc/etc/certs/omc
privateKey: /usr/local/omc/etc/certs/omc
# 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: false
file: /usr/local/omc/etc/testconfig.yaml

View File

@@ -1,183 +0,0 @@
# 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
status: Inactive
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 expired history gold_kpi
status: Inactive
uri: /api/rest/databaseManagement/v1/omc_db/gold_kpi
params: WHERE=now()+>+ADDDATE(`date`,+interval+IFNULL((SELECT+`value`+FROM+config+WHERE+config_tag='goldKpiDuration'),7)+day)
interval: 1
unit: Days
at: 00:12: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
status: Inactive
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
status: Inactive
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
status: Inactive
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: 10200
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: 10100 #alarm_code
interval: 1
unit: Days
at: 00:30
do: TaskGenLicenseAlarm
- name: Task of Generate NE system state alarm
status: Inactive
uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
params: 10000
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: 10201
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

View File

@@ -0,0 +1,2 @@
export default {
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

View File

View File

@@ -1,5 +1,5 @@
Package: OMC
Version: 2.2410.3-YYYYMMDD
Version: 2.2508.2-YYYYMMDD
Section: AGrandTech
Prioritt: optional
Architecture: amd64

View File

@@ -4,36 +4,23 @@ OMCRootDir=/usr/local/omc
SystemdRootDir=/lib/systemd/system
OMCEtcDir=${OMCRootDir}/etc
FERootDir=${OMCRootDir}/htdocs/front
X86Lib64Dir=/lib/x86_64-linux-gnu
OmcBinDir=${OMCRootDir}/bin
OMCStaticDir=${OMCRootDir}/static
UsrLocalBinDir=/usr/local/bin
OmcDaemon=omcd
NginxEtcDir=/etc/nginx
NginxConfDir=${NginxEtcDir}/conf.d
CFileList="restconf.yaml crontask.yaml tasks.yaml sshsvc.yaml capconf.yaml omc.conf"
CFileList=$(ls ${OMCEtcDir}/default)
LogoFileList="zh_brand.png zh_icon.png en_brand.png en_icon.png"
echo ""
echo "* To start/stop/restart/status omc service, please run:"
echo " sudo systemctl start/stop/restart/status restagent.service"
echo " sudo systemctl start/stop/restart/status crontask.service"
echo " sudo systemctl start/stop/restart/status sshsvc.service"
echo " sudo systemctl start/stop/restart/status captrace.service"
echo " or run: "
echo " sudo /usr/local/omc/bin/omcsvc.sh start/stop/restart/status"
echo ""
cd ${X86Lib64Dir}
chmod +rx libwireshark.so.15.0.12
if [ ! -e libwireshark.so.15 ]; then ln -s libwireshark.so.15.0.12 libwireshark.so.15; fi
if [ ! -e libwireshark.so ]; then ln -s libwireshark.so.15.0.12 libwireshark.so; fi
chmod +rx libwiretap.so.12.0.12
if [ ! -e libwiretap.so.12 ]; then ln -s libwiretap.so.12.0.12 libwiretap.so.12; fi
if [ ! -e libwiretap.so ]; then ln -s libwiretap.so.12.0.12 libwiretap.so; fi
chmod +rx libwsutil.so.13.1.0
if [ ! -e libwsutil.so.13 ]; then ln -s libwsutil.so.13.1.0 libwsutil.so.13; fi
if [ ! -e libwsutil.so ]; then ln -s libwsutil.so.13.1.0 libwsutil.so; fi
cd ${UsrLocalBinDir}
if [ ! -e ${OmcDaemon} ]; then ln -s ${OmcBinDir}/omcsvc.sh ${OmcDaemon}; fi
@@ -82,9 +69,7 @@ systemctl daemon-reload
systemctl disable --now unattended-upgrades
systemctl enable restagent.service
systemctl enable crontask.service
systemctl enable sshsvc.service
systemctl enable captrace.service
systemctl daemon-reload
@@ -105,8 +90,6 @@ if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then
fi
echo -n "Starting OMC service ... "
systemctl start crontask.service
systemctl start sshsvc.service
systemctl start captrace.service
systemctl start restagent.service
echo "done"

View File

@@ -1,13 +1,5 @@
# !/bin/bash
X86Lib64Dir=/lib/x86_64-linux-gnu
rm -rf ${X86Lib64Dir}/libwireshark.so.15
rm -rf ${X86Lib64Dir}/libwireshark.so
rm -rf ${X86Lib64Dir}/libwiretap.so.12
rm -rf ${X86Lib64Dir}/libwiretap.so
rm -rf ${X86Lib64Dir}/libwsutil.so.13
rm -rf ${X86Lib64Dir}/libwsutil.so
#rm -rf /usr/local/omc
rm -rf /etc/nginx/conf.d/omc.conf
rm -f /usr/local/bin/omcd
@@ -17,15 +9,11 @@ systemctl daemon-reload
if systemctl list-units --type=service --all | grep -q 'restagent.service'; then
echo -n "Stopping OMC service ... "
systemctl stop restagent.service
systemctl stop crontask.service
systemctl stop sshsvc.service
systemctl stop captrace.service
echo "done"
fi
systemctl disable restagent.service
systemctl disable crontask.service
systemctl disable sshsvc.service
systemctl disable captrace.service
systemctl daemon-reload

View File

@@ -4,9 +4,7 @@ systemctl daemon-reload
if systemctl list-units --type=service --all | grep -q 'restagent.service'; then
echo -n "Stopping OMC service ... "
systemctl stop restagent.service
systemctl stop crontask.service
systemctl stop sshsvc.service
systemctl stop captrace.service
echo "done"
fi

View File

@@ -1,5 +1,5 @@
Package: OMC
Version: 2.2410.3-YYYYMMDD
Version: 2.2508.2-YYYYMMDD
Section: AGrandTech
Prioritt: optional
Architecture: amd64

View File

@@ -4,36 +4,23 @@ OMCRootDir=/usr/local/omc
SystemdRootDir=/lib/systemd/system
OMCEtcDir=${OMCRootDir}/etc
FERootDir=${OMCRootDir}/htdocs/front
X86Lib64Dir=/lib/x86_64-linux-gnu
OmcBinDir=${OMCRootDir}/bin
OMCStaticDir=${OMCRootDir}/static
UsrLocalBinDir=/usr/local/bin
OmcDaemon=omcd
NginxEtcDir=/etc/nginx
NginxConfDir=${NginxEtcDir}/conf.d
CFileList="restconf.yaml crontask.yaml tasks.yaml sshsvc.yaml capconf.yaml omc.conf"
CFileList=$(ls ${OMCEtcDir}/default)
LogoFileList="zh_brand.png zh_icon.png en_brand.png en_icon.png"
echo ""
echo "* To start/stop/restart/status omc service, please run:"
echo " sudo systemctl start/stop/restart/status restagent.service"
echo " sudo systemctl start/stop/restart/status crontask.service"
echo " sudo systemctl start/stop/restart/status sshsvc.service"
echo " sudo systemctl start/stop/restart/status captrace.service"
echo " or run: "
echo " sudo /usr/local/omc/bin/omcsvc.sh start/stop/restart/status"
echo ""
cd ${X86Lib64Dir}
chmod +rx libwireshark.so.15.0.12
if [ ! -e libwireshark.so.15 ]; then ln -s libwireshark.so.15.0.12 libwireshark.so.15; fi
if [ ! -e libwireshark.so ]; then ln -s libwireshark.so.15.0.12 libwireshark.so; fi
chmod +rx libwiretap.so.12.0.12
if [ ! -e libwiretap.so.12 ]; then ln -s libwiretap.so.12.0.12 libwiretap.so.12; fi
if [ ! -e libwiretap.so ]; then ln -s libwiretap.so.12.0.12 libwiretap.so; fi
chmod +rx libwsutil.so.13.1.0
if [ ! -e libwsutil.so.13 ]; then ln -s libwsutil.so.13.1.0 libwsutil.so.13; fi
if [ ! -e libwsutil.so ]; then ln -s libwsutil.so.13.1.0 libwsutil.so; fi
cd ${UsrLocalBinDir}
if [ ! -e ${OmcDaemon} ]; then ln -s ${OmcBinDir}/omcsvc.sh ${OmcDaemon}; fi
@@ -82,9 +69,7 @@ systemctl daemon-reload
systemctl disable --now unattended-upgrades
systemctl enable restagent.service
systemctl enable crontask.service
systemctl enable sshsvc.service
systemctl enable captrace.service
systemctl daemon-reload
@@ -105,8 +90,6 @@ if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then
fi
echo -n "Starting OMC service ... "
systemctl start crontask.service
systemctl start sshsvc.service
systemctl start captrace.service
systemctl start restagent.service
echo "done"

View File

@@ -1,13 +1,5 @@
# !/bin/bash
X86Lib64Dir=/lib/x86_64-linux-gnu
rm -rf ${X86Lib64Dir}/libwireshark.so.15
rm -rf ${X86Lib64Dir}/libwireshark.so
rm -rf ${X86Lib64Dir}/libwiretap.so.12
rm -rf ${X86Lib64Dir}/libwiretap.so
rm -rf ${X86Lib64Dir}/libwsutil.so.13
rm -rf ${X86Lib64Dir}/libwsutil.so
#rm -rf /usr/local/omc
rm -rf /etc/nginx/conf.d/omc.conf
rm -f /usr/local/bin/omcd
@@ -17,15 +9,11 @@ systemctl daemon-reload
if systemctl list-units --type=service --all | grep -q 'restagent.service'; then
echo -n "Stopping OMC service ... "
systemctl stop restagent.service
systemctl stop crontask.service
systemctl stop sshsvc.service
systemctl stop captrace.service
echo "done"
fi
systemctl disable restagent.service
systemctl disable crontask.service
systemctl disable sshsvc.service
systemctl disable captrace.service
systemctl daemon-reload

View File

@@ -4,9 +4,7 @@ systemctl daemon-reload
if systemctl list-units --type=service --all | grep -q 'restagent.service'; then
echo -n "Stopping OMC service ... "
systemctl stop restagent.service
systemctl stop crontask.service
systemctl stop sshsvc.service
systemctl stop captrace.service
echo "done"
fi

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,175 @@
# -*- coding: utf-8 -*-
import pandas as pd
import json
import random
import os
import glob
def generate_pm_json(excel_file_path, output_file_path):
"""
从 Excel 文件中提取英文名称和空间粒度,生成 PM JSON 文件
"""
try:
# 检查文件是否存在
if not os.path.exists(excel_file_path):
print(f"错误:文件 {excel_file_path} 不存在")
return False
print(f"正在读取 Excel 文件: {excel_file_path}")
# 读取 Excel 文件的所有工作表
excel_data = pd.read_excel(excel_file_path, sheet_name=None)
# 使用字典按 granularity 分组
granularity_groups = {}
processed_sheets = 0
# 遍历所有工作表,查找包含"英文名称"列的表格
for sheet_name, df in excel_data.items():
print(f" 处理工作表: {sheet_name}")
# 检查是否包含"英文名称"列
if '英文名称' in df.columns:
processed_sheets += 1
print(f" - 找到英文名称列,共 {len(df)} 行数据")
# 检查是否有空间粒度列
granularity_col = None
for col in df.columns:
if '空间粒度' in str(col) or '粒度' in str(col):
granularity_col = col
break
# 用于记录当前sheet中最后一个不为空的空间粒度
last_valid_granularity = "DefaultFunction"
for index, row in df.iterrows():
english_name = row['英文名称']
# 跳过空值和非字符串值
if pd.notna(english_name) and str(english_name).strip() and str(english_name) != 'nan':
english_name = str(english_name).strip()
# 获取空间粒度信息
current_granularity = None
if granularity_col and pd.notna(row[granularity_col]):
current_granularity = str(row[granularity_col]).strip()
if current_granularity: # 确保不是空字符串
last_valid_granularity = current_granularity
# 如果当前行的空间粒度为空,使用最后一个有效的空间粒度
granularity = last_valid_granularity
# 生成随机值
random_value = random.randint(0, 16)
kpi = {
"KPIID": english_name,
"KPIValues": [
{
"Name": "Total",
"Value": random_value
}
]
}
# 按 granularity 分组
if granularity not in granularity_groups:
granularity_groups[granularity] = []
granularity_groups[granularity].append(kpi)
# 显示使用的粒度信息
granularity_info = ""
if current_granularity:
granularity_info = f" (当前: {granularity})"
else:
granularity_info = f" (继承: {granularity})"
print(f" 添加 KPI: {english_name} = {random_value}{granularity_info}")
else:
print(f" - 跳过(无英文名称列)")
# 生成最终的 JSON 结构
result = []
for granularity, kpis in granularity_groups.items():
result.append({
"ObjectType": granularity,
"KPIs": kpis
})
# 写入文件
with open(output_file_path, 'w', encoding='utf-8') as f:
json.dump(result, f, indent=4, ensure_ascii=False)
print(f" 成功生成文件: {output_file_path}")
print(f" 处理了 {processed_sheets} 个工作表")
print(f" 生成了 {len(granularity_groups)} 个对象类型")
for granularity, kpis in granularity_groups.items():
print(f" - {granularity}: {len(kpis)} 个 KPI")
return True
except Exception as e:
print(f"错误: {str(e)}")
import traceback
traceback.print_exc()
return False
def main():
print("PM JSON 批量生成器")
print("=" * 60)
# 定义要处理的文件列表
pm_files = [
"AMF-PM(V1.1.5)-Company-Version00.xlsx",
"PCF-PM(V1.1.4)-Company-Version00.xlsx",
"SMF-PM(V1.2.1)-Company-Version00.xlsx",
"UDM-PM(V1.2.2)-Company-Version00.xlsx",
"UPF-PM(V1.2.1)-Company-Version00.xlsx"
]
# 也可以自动发现当前目录下的所有 PM Excel 文件
# pm_files = glob.glob("*-PM(*)-Company-Version*.xlsx")
successful_files = 0
failed_files = 0
for excel_file in pm_files:
print(f"\n处理文件: {excel_file}")
print("-" * 50)
# 检查文件是否存在
if not os.path.exists(excel_file):
print(f" 警告:文件 {excel_file} 不存在,跳过")
failed_files += 1
continue
# 生成输出文件名
base_name = os.path.splitext(excel_file)[0]
output_file = f"{base_name}-generated.json"
# 处理文件
if generate_pm_json(excel_file, output_file):
successful_files += 1
else:
failed_files += 1
# 汇总结果
print("\n" + "=" * 60)
print("批量处理完成!")
print(f"成功处理: {successful_files} 个文件")
print(f"失败/跳过: {failed_files} 个文件")
print(f"总计: {successful_files + failed_files} 个文件")
if successful_files > 0:
print("\n生成的文件列表:")
for excel_file in pm_files:
if os.path.exists(excel_file):
base_name = os.path.splitext(excel_file)[0]
output_file = f"{base_name}-generated.json"
if os.path.exists(output_file):
print(f" - {output_file}")
if __name__ == "__main__":
main()

225
docs/nbi/pm/pm_generator.go Normal file
View File

@@ -0,0 +1,225 @@
package main
import (
"encoding/json"
"fmt"
"math/rand"
"os"
"path/filepath"
"strings"
)
// KPIValue 表示单个 KPI 值
type KPIValue struct {
Name string `json:"Name"`
Value int `json:"Value"`
}
// KPI 表示单个 KPI 项
type KPI struct {
KPIID string `json:"KPIID"`
KPIValues []KPIValue `json:"KPIValues"`
}
// PMObject 表示性能管理对象
type PMObject struct {
ObjectType string `json:"ObjectType"`
KPIs []KPI `json:"KPIs"`
}
// PMData 表示完整的性能管理数据
type PMData []PMObject
// generateRandomValue 生成 0-16 之间的随机数
func generateRandomValue() int {
return rand.Intn(17) // 0-16
}
// generatePMDataFromSchema 从 schema 文件生成随机数据
func generatePMDataFromSchema(schemaFile string, outputFile string) error {
// 读取 schema 文件
schemaData, err := os.ReadFile(schemaFile)
if err != nil {
return fmt.Errorf("读取 schema 文件失败: %v", err)
}
// 解析 JSON
var pmSchema PMData
if err := json.Unmarshal(schemaData, &pmSchema); err != nil {
return fmt.Errorf("解析 JSON 失败: %v", err)
}
// 生成新的随机数据
var newPMData PMData
for _, pmObj := range pmSchema {
newObj := PMObject{
ObjectType: pmObj.ObjectType,
KPIs: make([]KPI, len(pmObj.KPIs)),
}
for i, kpi := range pmObj.KPIs {
newKPI := KPI{
KPIID: kpi.KPIID,
KPIValues: make([]KPIValue, len(kpi.KPIValues)),
}
for j, kpiVal := range kpi.KPIValues {
newKPI.KPIValues[j] = KPIValue{
Name: kpiVal.Name,
Value: generateRandomValue(),
}
}
newObj.KPIs[i] = newKPI
}
newPMData = append(newPMData, newObj)
}
// 写入新文件
outputData, err := json.MarshalIndent(newPMData, "", " ")
if err != nil {
return fmt.Errorf("序列化 JSON 失败: %v", err)
}
if err := os.WriteFile(outputFile, outputData, 0644); err != nil {
return fmt.Errorf("写入文件失败: %v", err)
}
fmt.Printf("成功生成随机数据文件: %s\n", outputFile)
return nil
}
// generatePMDataFromMultipleSchemas 批量处理多个 schema 文件
func generatePMDataFromMultipleSchemas(schemaDir string) error {
// 查找所有 *-generated.json 文件
pattern := filepath.Join(schemaDir, "*-generated.json")
schemaFiles, err := filepath.Glob(pattern)
if err != nil {
return fmt.Errorf("查找 schema 文件失败: %v", err)
}
if len(schemaFiles) == 0 {
return fmt.Errorf("未找到任何 schema 文件 (pattern: %s)", pattern)
}
fmt.Printf("找到 %d 个 schema 文件\n", len(schemaFiles))
successCount := 0
failCount := 0
for _, schemaFile := range schemaFiles {
// 生成输出文件名:将 "-generated.json" 替换为 "-random.json"
outputFile := strings.Replace(schemaFile, "-generated.json", "-random.json", 1)
fmt.Printf("\n处理文件: %s\n", filepath.Base(schemaFile))
fmt.Printf("输出文件: %s\n", filepath.Base(outputFile))
if err := generatePMDataFromSchema(schemaFile, outputFile); err != nil {
fmt.Printf("错误: %v\n", err)
failCount++
} else {
successCount++
}
}
fmt.Printf("\n处理完成! 成功: %d, 失败: %d\n", successCount, failCount)
return nil
}
// printPMDataSummary 打印 PM 数据摘要信息
func printPMDataSummary(file string) error {
data, err := os.ReadFile(file)
if err != nil {
return err
}
var pmData PMData
if err := json.Unmarshal(data, &pmData); err != nil {
return err
}
fmt.Printf("\n文件: %s\n", filepath.Base(file))
fmt.Printf("对象类型数量: %d\n", len(pmData))
totalKPIs := 0
for _, obj := range pmData {
fmt.Printf(" - %s: %d 个 KPI\n", obj.ObjectType, len(obj.KPIs))
totalKPIs += len(obj.KPIs)
}
fmt.Printf("总 KPI 数量: %d\n", totalKPIs)
return nil
}
// 示例用法函数
func main() {
// 设置随机种子
// rand.Seed(time.Now().UnixNano())
if len(os.Args) < 2 {
fmt.Println("用法:")
fmt.Println(" go run pm_generator.go <command> [args]")
fmt.Println("")
fmt.Println("命令:")
fmt.Println(" batch <directory> - 批量处理目录下的所有 *-generated.json 文件")
fmt.Println(" single <input> <output> - 处理单个文件")
fmt.Println(" summary <file> - 显示文件摘要信息")
fmt.Println("")
fmt.Println("示例:")
fmt.Println(" go run pm_generator.go batch .")
fmt.Println(" go run pm_generator.go single AMF-PM-generated.json AMF-PM-random.json")
fmt.Println(" go run pm_generator.go summary AMF-PM-random.json")
return
}
command := os.Args[1]
switch command {
case "batch":
dir := "."
if len(os.Args) > 2 {
dir = os.Args[2]
}
fmt.Println("PM 数据随机生成器 - 批量模式")
fmt.Println(strings.Repeat("=", 50))
if err := generatePMDataFromMultipleSchemas(dir); err != nil {
fmt.Printf("错误: %v\n", err)
os.Exit(1)
}
case "single":
if len(os.Args) < 4 {
fmt.Println("用法: go run pm_generator.go single <input_file> <output_file>")
os.Exit(1)
}
inputFile := os.Args[2]
outputFile := os.Args[3]
fmt.Printf("处理单个文件: %s -> %s\n", inputFile, outputFile)
if err := generatePMDataFromSchema(inputFile, outputFile); err != nil {
fmt.Printf("错误: %v\n", err)
os.Exit(1)
}
case "summary":
if len(os.Args) < 3 {
fmt.Println("用法: go run pm_generator.go summary <file>")
os.Exit(1)
}
file := os.Args[2]
if err := printPMDataSummary(file); err != nil {
fmt.Printf("错误: %v\n", err)
os.Exit(1)
}
default:
fmt.Printf("未知命令: %s\n", command)
os.Exit(1)
}
}

47
docs/nbi/pm/protocol.md Normal file
View File

@@ -0,0 +1,47 @@
# OMC->北向通信协议 基于redis stream消息队列实现
## 告警关联关系数据上报变更
alarm_relation告警新增时
* streamkey和数据格式
```json
alarm_relation
{
"payload": "{\"ids\":[\"871847\",\"557903\"]}"
}
```
1、871847,557903为alarm_relation表主键至少一个数据
## 资源数据上报变更
nbi_cm表新增时
* streamkey和数据格式
```json
nbi_cm
{
"payload": "{\"ids\":[\"642470\",\"105633\"]}"
}
```
1、642470,105633为nbi_cm表主键IDID支持多个
## 1分钟性能订阅上报数据
kpi_report_*表新增时
* 数据格式
```json
nbi_pm
{
"payload": "{\"neType\":\"AMF\",\"id\":\"606538\"}"
}
```
1、AMF、PCF等为具体对应的网元
2、606538为kpi_report_amf、kpi_report_pcf等表主键IDID支持一个

View File

@@ -0,0 +1,66 @@
-- 1. 建辅助数字表
DROP TABLE IF EXISTS tmp_num_100;
CREATE TABLE tmp_num_100 (n TINYINT UNSIGNED PRIMARY KEY);
INSERT INTO tmp_num_100(n)
SELECT a.n + b.n AS n FROM (
SELECT 0 n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
) a
CROSS JOIN (
SELECT 0 n UNION ALL SELECT 10 UNION ALL SELECT 20 UNION ALL SELECT 30 UNION ALL SELECT 40
UNION ALL SELECT 50 UNION ALL SELECT 60 UNION ALL SELECT 70 UNION ALL SELECT 80 UNION ALL SELECT 90
) b
ORDER BY a.n + b.n;
DROP TABLE IF EXISTS tmp_num_500;
CREATE TABLE tmp_num_500 (n SMALLINT UNSIGNED PRIMARY KEY);
INSERT INTO tmp_num_500(n)
SELECT t.n FROM (
SELECT @r:=@r+1 n
FROM (SELECT 0 FROM tmp_num_100) a,
(SELECT 0 FROM tmp_num_100) b,
(SELECT @r:=-1) init
LIMIT 500
) t;
-- 2. 目标表(若未建)
-- CREATE TABLE cdr_event_smsc (
-- id BIGINT AUTO_INCREMENT PRIMARY KEY,
-- ne_type VARCHAR(16),
-- ne_name VARCHAR(64),
-- rm_uid VARCHAR(64),
-- `timestamp` BIGINT,
-- cdr_json JSON,
-- created_at DATETIME,
-- tenant_id VARCHAR(64)
-- ) ENGINE=InnoDB;
-- 3. 关闭一些约束提高插入速度(可选)
SET autocommit = 0;
SET unique_checks = 0;
SET foreign_key_checks = 0;
-- 4. 插入 500 万100 * 100 * 500
-- 随机时间:过去一年内的任意秒(不均匀)
SET @start_ts = UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 365 DAY));
SET @range_sec = 365 * 24 * 3600;
INSERT INTO cdr_event_smsc
(ne_type, ne_name, rm_uid, `timestamp`, cdr_json, created_at)
SELECT
'SMSC' AS ne_type,
'SMSC_001' AS ne_name,
'4400HXSMSC001' AS rm_uid,
@start_ts + FLOOR(RAND()*@range_sec) AS `timestamp`,
'{\"calledParty\":\"15731123455\",\"callerParty\":\"18165338055\",\"cause\":28,\"recordType\":\"MTSM\",\"result\":0,\"serviceType\":\"Normal\",\"updateTime\":\"2025-08-18T11:09:52.703Z\"}' AS cdr_json,
NOW() AS created_at
FROM tmp_num_100 a
CROSS JOIN tmp_num_100 b
CROSS JOIN tmp_num_500 c;
COMMIT;
-- 5. 恢复
SET unique_checks = 1;
SET foreign_key_checks = 1;
SET autocommit = 1;

6
package-lock.json generated
View File

@@ -1,6 +0,0 @@
{
"name": "build.ems",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}

View File

@@ -6,9 +6,10 @@
%define project_lname omc
%define project_Uname OMC
Name: %{project_lname}
Summary: 5GC OMC
Version: 2.2410.3
Version: 2.2508.2
Release: %{release_date}
Vendor: omc
URL: https://www.omc.com/
@@ -28,36 +29,40 @@ chmod +rx ${RPM_BUILD_ROOT}/usr/local/bin/*
chmod +x ${RPM_BUILD_ROOT}/usr/local/omc/htdocs/front
chmod +rx ${RPM_BUILD_ROOT}/usr/lib64/*
# 安装前执行
%pre
echo -n "Stopping OMC service ... "
systemctl stop restagent.service
systemctl stop sshsvc.service
echo "done"
# 安装完成后执行
%post
OMCRootDir=/usr/local/omc
OMCEtcDir=${OMCRootDir}/etc
FERootDir=${OMCRootDir}/htdocs/front
UsrLib64Dir=/usr/lib64
OMCBinDir=${OMCRootDir}/bin
OMCStaticDir=${OMCRootDir}/static
UsrLocalBinDir=/usr/local/bin
OMCDaemon=omcd
NginxEtcDir=/etc/nginx
CFileList="restconf.yaml crontask.yaml tasks.yaml sshsvc.yaml capconf.yaml omc.conf"
CFileList=$(ls ${OMCEtcDir}/default)
LogoFileList="zh_brand.png zh_icon.png en_brand.png en_icon.png"
echo -n "Stopping OMC service ... "
systemctl stop restagent.service
systemctl stop crontask.service
systemctl stop sshsvc.service
systemctl stop captrace.service
echo "done"
# echo -n "Stopping OMC service ... "
# systemctl stop restagent.service
# systemctl stop sshsvc.service
# echo "done"
for CFile in ${CFileList}; do
if [ ! -e "${OMCEtcDir}/${CFile}" ]; then
cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
else
#else
# mv -f ${OMCEtcDir}/${CFile} ${OMCEtcDir}/${CFile}.bak
# cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
if [ -e "${OMCBinDir}/upgconf.sh" ]; then
${OMCBinDir}/upgconf.sh
fi
#if [ -e "${OMCBinDir}/upgconf.sh" ]; then
# ${OMCBinDir}/upgconf.sh
#fi
fi
done
@@ -70,28 +75,24 @@ done
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
cd ${UsrLib64Dir}
if [ ! -e libwireshark.so.15 ]; then ln -s libwireshark.so.15.0.12 libwireshark.so.15; fi
if [ ! -e libwireshark.so ]; then ln -s libwireshark.so.15.0.12 libwireshark.so; fi
if [ ! -e libwiretap.so.12 ]; then ln -s libwiretap.so.12.0.12 libwiretap.so.12; fi
if [ ! -e libwiretap.so ]; then ln -s libwiretap.so.12.0.12 libwiretap.so; fi
if [ ! -e libwsutil.so.13 ]; then ln -s libwsutil.so.13.1.0 libwsutil.so.13; fi
if [ ! -e libwsutil.so ]; then ln -s libwsutil.so.13.1.0 libwsutil.so; fi
cd ${UsrLocalBinDir}
if [ ! -e ${OMCDaemon} ]; then ln -s ${OMCBinDir}/omcsvc.sh ${OMCDaemon}; fi
if [ ! -e ${UsrLocalBinDir}/${OMCDaemon} ]; then
echo -n "Creating symbolic link ${UsrLocalBinDir}/${OMCDaemon} ... "
ln -s ${OMCBinDir}/omcsvc.sh ${UsrLocalBinDir}/${OMCDaemon};
echo "done"
fi
# setting firewall
PortList="80 443 44080 44443 33030 22222"
for Port in ${PortList}; do
port_list="80 443 44080 44443 33030 33443 33066 6379 22222"
for Port in ${port_list}; do
echo -n "firewall-cmd add port ${Port} ... "
firewall-cmd --zone=public --add-port=${Port}/tcp --permanent
done
firewall-cmd --reload
systemctl daemon-reload
systemctl enable restagent.service
systemctl enable crontask.service
systemctl enable sshsvc.service
systemctl enable captrace.service
# read environment parameter and to do
if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then
@@ -109,55 +110,40 @@ if [ "$M_PARAM" = "install" -o "$M_PARAM" = "upgrade" ]; then
fi
fi
echo -n "Starting OMC service ... "
systemctl start captrace.service
systemctl start sshsvc.service
systemctl start crontask.service
systemctl start restagent.service
echo "done"
# echo -n "Starting OMC service ... "
# systemctl start sshsvc.service
# systemctl start restagent.service
# echo "done"
# 卸载时执行
%postun
UsrLocalBinDir=/usr/local/bin
UsrLib64Dir=/usr/lib64
cd ${UsrLib64Dir}
rm libwireshark.so.15
rm libwireshark.so
rm libwiretap.so.12
rm libwiretap.so
rm libwsutil.so.13
rm libwsutil.so
rm -f ${UsrLocalBinDir}/omcd
# setting firewall
PortList="80 443 44080 44443 33030 22222"
for Port in ${PortList}; do
firewall-cmd --zone=public --remove-port=${Port}/tcp --permanent
done
firewall-cmd --reload
OMCDaemon=omcd
if [ "$1" = "0" ] ; then
sudo systemctl stop restagent.service
sudo systemctl stop crontask.service
sudo systemctl stop sshsvc.service
sudo systemctl stop captrace.service
#rm -rf /usr/local/omc
rm -rf /etc/nginx/conf.d/omc.conf
sudo systemctl disable restagent.service
sudo systemctl disable crontask.service
sudo systemctl disable sshsvc.service
sudo systemctl disable captrace.service
sudo systemctl daemon-reload
# setting firewall
port_list="80 443 44080 44443 33030 33443 33066 6379 22222"
for Port in ${port_list}; do
echo -n "firewall-cmd remove port ${Port} ... "
firewall-cmd --zone=public --remove-port=${Port}/tcp --permanent
done
firewall-cmd --reload
rm -f ${UsrLocalBinDir}/${OMCDaemon}
else
echo -n "Starting OMC service ... "
sudo systemctl daemon-reload
sudo systemctl stop restagent.service
sudo systemctl stop crontask.service
sudo systemctl stop sshsvc.service
sudo systemctl stop captrace.service
sudo systemctl start crontask.service
sudo systemctl start sshsvc.service
sudo systemctl start captrace.service
sudo systemctl start restagent.service
echo "done"
fi
# 规定那些文件必须放入安装程序中,如果没有就报错
@@ -179,11 +165,7 @@ fi
/usr/local/omc/static
#/etc/nginx/conf.d/omc.conf
/lib/systemd/system/restagent.service
/lib/systemd/system/crontask.service
/lib/systemd/system/sshsvc.service
/lib/systemd/system/captrace.service
/usr/lib64/libwireshark.so.15.0.12
/usr/lib64/libwiretap.so.12.0.12
/usr/lib64/libwsutil.so.13.1.0
/usr/local/bin/tshark