diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000000000000000000000000000000000000..1ff039c3e2c68f268bacb1aad067742c463c8dee
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,7 @@
+recursive-include sysom *.py
+recursive-include ui *
+recursive-include tools *
+recursive-include requirements *.txt
+include tools/scripts/sysom-python
+include VERSION
+include Makefile
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..4db6e6ca65e34b3689b9ae932b95b037fb0310ed
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,104 @@
+# python venv global variable
+# start: --------------------------------------
+
+PYTHON ?= python3
+PYTHON_VERSION = $(shell $(PYTHON) -c "from distutils.sysconfig import get_python_version; print(get_python_version())")
+
+VERSION := $(shell $(PYTHON) setup.py --version)
+NAME ?= sysom
+
+SDIST_TAR_NAME = $(NAME)-$(VERSION)
+SDIST_TAR_FILE ?= $(SDIST_TAR_NAME).tar.gz
+
+DEST_BASE ?= /var/lib/sysom
+VENV_BASE = $(DEST_BASE)/venv
+
+# Python packages to install only from source (not from binary wheels)
+# Comma separated list
+# These should be upgraded in the sysom and Ansible venv before attempting
+# to install the actual requirements
+VENV_BOOTSTRAP ?= pip==21.3.1 setuptools==60.5.0 wheel==0.37.1
+
+# end: --------------------------------------
+
+# sysom web global variable
+# start: --------------------------------------
+
+NODE_VERSION ?= v16.13.2
+THIRD_PARTY ?= 3rdparty
+ifeq ($(shell uname -m), x86_64)
+ DISTRO = linux-x64
+else ifeq ($(shell uname -m), aarch64)
+ DISTRO = linux-arm64
+endif
+
+PATH := $(shell realpath $(THIRD_PARTY))/node-$(NODE_VERSION)-$(DISTRO)/bin:$(PATH)
+SHELL := env PATH=$(PATH) /bin/bash
+
+# end: --------------------------------------
+
+clean-nodejs:
+ rm -rf $(THIRD_PARTY)
+ rm -f node-$(NODE_VERSION)-$(DISTRO).tar.xz
+
+clean-web:
+ rm -rf ui/node_modules
+
+clean: clean-nodejs clean-web
+
+# sysom web
+# start: --------------------------------------
+
+install_nodejs:
+ @echo install nodejs
+ if [ "$(THIRD_PARTY)" ]; then \
+ if [ ! -d "$(THIRD_PARTY)" ]; then \
+ mkdir -p $(THIRD_PARTY); \
+ fi; \
+ wget https://npmmirror.com/mirrors/node/$(NODE_VERSION)/node-$(NODE_VERSION)-$(DISTRO).tar.xz; \
+ tar -xf node-$(NODE_VERSION)-$(DISTRO).tar.xz -C $(THIRD_PARTY); \
+ fi
+
+build_ui: install_nodejs
+ @echo build web
+ npm config set registry 'https://registry.npmmirror.com'; \
+ npm install --global yarn; \
+ yarn --cwd ui install; \
+ yarn --cwd ui build; \
+ if [ "$(DEST_BASE)" ]; then \
+ if [ ! -d "$(DEST_BASE)/ui" ]; then \
+ mkdir -p $(DEST_BASE)/ui; \
+ fi; \
+ mv ui/dist $(DEST_BASE)/ui; \
+ fi
+# end: --------------------------------------
+
+# sysom web
+# start: --------------------------------------
+
+virtualenv: virtualenv_sysom
+
+# flit is needed for offline install of certain packages, specifically ptyprocess
+# it is needed for setup, but not always recognized as a setup dependency
+# similar to pip, setuptools, and wheel, these are all needed here as a bootstrapping issues
+virtualenv_sysom:
+ if [ "$(VENV_BASE)" ]; then \
+ if [ ! -d "$(VENV_BASE)" ]; then \
+ mkdir -p $(VENV_BASE); \
+ fi; \
+ if [ ! -d "$(VENV_BASE)/sysom" ]; then \
+ $(PYTHON) -m venv $(VENV_BASE)/sysom; \
+ $(VENV_BASE)/sysom/bin/pip install $(PIP_OPTIONS) $(VENV_BOOTSTRAP); \
+ fi; \
+ fi
+
+# Install third-party requirements needed for sysom's environment.
+# this does not use system site packages intentionally
+requirements_sysom: virtualenv_sysom
+ $(VENV_BASE)/sysom/bin/pip install $(PIP_OPTIONS) -r requirements/requirements.txt ; \
+
+requirements_dev:
+ $(VENV_BASE)/sysom/bin/pip install -r requirements/requirements_dev.txt
+
+# end: --------------------------------------
+
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000000000000000000000000000000000000..3eefcb9dd5b38e2c1dc061052455dd97bcd51e6c
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+1.0.0
diff --git a/sysom_api/manage.py b/manage.py
similarity index 100%
rename from sysom_api/manage.py
rename to manage.py
diff --git a/package.sh b/package.sh
deleted file mode 100644
index 25ed686c0232c2f56c27585a28127be3c3d8ff7e..0000000000000000000000000000000000000000
--- a/package.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-green="\033[32m"
-RELEASE=sysomRelease-$(date +"%Y%m%d%H%M%S")
-APIDIR=sysom_api
-WEBDIR=sysom_web
-SCRIPTDIR=script
-TOOLSDIR=tools
-# build web
-pushd sysom_web
-yarn
-yarn build
-popd
-
-mkdir -p ${RELEASE}
-cp -r ${APIDIR}/ ${TOOLSDIR}/ ${RELEASE}/
-cp -r ${WEBDIR}/dist/ ${RELEASE}/${WEBDIR}/
-mkdir -p ${RELEASE}/${WEBDIR}/download/
-cp ${TOOLSDIR}/deploy/deploy.sh ${RELEASE}/
-cp -r ${SCRIPTDIR} ${RELEASE}/
-tar czf ${RELEASE}.tar.gz ${RELEASE}/
-rm -rf ${RELEASE}
-printf "$green The release pacakge is ${RELEASE}.tar.gz"
diff --git a/tools/deploy/requirements.txt b/requirements/requirements.txt
similarity index 98%
rename from tools/deploy/requirements.txt
rename to requirements/requirements.txt
index 48b1d88554ede46d785de551572c14c6e4c61f97..a6758a8d221d574f5ed5183ae0d80362b0191951 100644
--- a/tools/deploy/requirements.txt
+++ b/requirements/requirements.txt
@@ -6,18 +6,18 @@ attrs==21.2.0
autobahn==21.2.1
Automat==20.2.0
autopep8==1.6.0
-bcrypt==3.2.0
+cffi==1.15.0
cairocffi==1.2.0
+bcrypt==3.2.0
CairoSVG==2.5.2
certifi==2021.10.8
-cffi==1.15.0
channels==3.0.4
channels-redis==3.3.1
charset-normalizer==2.0.7
constantly==15.1.0
coreapi==2.3.3
coreschema==0.0.4
-cryptography==35.0.0
+cryptography<3.4.0
cssselect2==0.4.1
daphne==3.0.2
defusedxml==0.7.1
diff --git a/sysom_api/requirements.txt b/requirements/requirements_dev.txt
similarity index 100%
rename from sysom_api/requirements.txt
rename to requirements/requirements_dev.txt
diff --git a/script/node/conf b/script/node/conf
deleted file mode 100644
index 0fa2c67362fff127939e61b7f25769ce196ed569..0000000000000000000000000000000000000000
--- a/script/node/conf
+++ /dev/null
@@ -1,2 +0,0 @@
-APP_HOME=/usr/local/sysom
-SERVER_IP=172.16.139.35
diff --git a/script/node/init.sh b/script/node/init.sh
deleted file mode 100644
index b1817fe148e77c79ce5622ba3723e7b156532a12..0000000000000000000000000000000000000000
--- a/script/node/init.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash -x
-
-basedir=`dirname $0`
-
-cd $basedir
-
-for i in `cat conf`
-do
- export $i
-done
-
-for dir in `ls`
-do
- if [ -d $dir ]
- then
- pushd $dir
- bash -x init.sh
- popd
- fi
-done
diff --git a/script/node/monitor/init.sh b/script/node/monitor/init.sh
deleted file mode 120000
index 8a68572a42e43f501cc06dad1988fe90a03c5933..0000000000000000000000000000000000000000
--- a/script/node/monitor/init.sh
+++ /dev/null
@@ -1 +0,0 @@
-node_exporter_deploy.sh
\ No newline at end of file
diff --git a/script/node/monitor/node_exporter_deploy.sh b/script/node/monitor/node_exporter_deploy.sh
deleted file mode 100755
index 4838acc7648fc6c496022270bd0eedcbd948e034..0000000000000000000000000000000000000000
--- a/script/node/monitor/node_exporter_deploy.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash -x
-
-RESOURCE_DIR=${APP_HOME}/monitor
-NODE_EXPORTER_VER=1.2.2
-NODE_EXPORTER_ARCH=linux-amd64
-NODE_EXPORTER_PKG=node_exporter-${NODE_EXPORTER_VER}.${NODE_EXPORTER_ARCH}
-NODE_EXPORTER_TAR=${NODE_EXPORTER_PKG}.tar.gz
-
-##设置node_exporter开机自动启动
-cat << EOF > node_exporter.service
-[Unit]
-Description=SysOM Monitor Promethues
-Documentation=SysOM Monitor Promethues
-Wants=network-online.target
-After=network-online.target
-
-[Service]
-ExecStart=${RESOURCE_DIR}/node_exporter/node_exporter
-
-[Install]
-WantedBy=multi-user.target
-EOF
-
-main()
-{
- tar -zxvf ${NODE_EXPORTER_TAR}
- rm -rf ${RESOURCE_DIR}/node_exporter
- mkdir -p ${RESOURCE_DIR}
- mv ${NODE_EXPORTER_PKG} ${RESOURCE_DIR}/node_exporter
- mv node_exporter.service /usr/lib/systemd/system
- systemctl daemon-reload
- systemctl enable node_exporter
- systemctl start node_exporter
- ps -elf | grep "${RESOURCE_DIR}/node_exporter/node_exporter" | grep -v grep 1>/dev/null
- if [ $? -ne 0 ]
- then
- exit 1
- fi
- exit 0
-}
-
-main
diff --git a/script/node/pre_init.sh b/script/node/pre_init.sh
deleted file mode 100755
index 8862af22606637805e9ae69df1623d86518ee28e..0000000000000000000000000000000000000000
--- a/script/node/pre_init.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash -x
-
-UPLOAD_DIR=${APP_HOME}/target/sysom_web/download/
-APP_CMD_CONF=${APP_HOME}/target/sysom_api/conf/__init__.py
-RESOURCE_DIR=${APP_HOME}/monitor
-PROMETHEUS_ARCH=linux-amd64
-NODE_EXPORTER_VER=1.2.2
-NODE_EXPORTER_PKG=node_exporter-${NODE_EXPORTER_VER}.${PROMETHEUS_ARCH}
-NODE_EXPORTER_TAR=$NODE_EXPORTER_PKG.tar.gz
-NODE_INIT_DIR=sysom_node_init
-NODE_INIT_PKG=sysom_node_init.tar.gz
-
-BASE_DIR=`dirname $0`
-
-init_monitor()
-{
- cp ${RESOURCE_DIR}/${NODE_EXPORTER_TAR} monitor/
-}
-
-prepare_init_tar()
-{
- rm -f conf
- echo "APP_HOME=${APP_HOME}" >> conf
- echo "SERVER_IP=${SERVER_IP}" >> conf
- mkdir -p ../${NODE_INIT_DIR}
- cp -r * ../${NODE_INIT_DIR}
- rm -f ../${NODE_INIT_DIR}/pre_init.sh
- tar -zvcf ../${NODE_INIT_PKG} ../${NODE_INIT_DIR}
- rm -rf ../${NODE_INIT_DIR}
- mv ../${NODE_INIT_PKG} ${UPLOAD_DIR}
-}
-
-set_node_init_cmd()
-{
- line_num=`cat -n $APP_CMD_CONF | grep CLIENT_DEPLOY_CMD | awk '{print $1}'`
- sed -i "s/CLIENT_DEPLOY_CMD/#CLIENT_DEPLOY_CMD/g" $APP_CMD_CONF
- sed -i "$line_num a \ \ \ \ CLIENT_DEPLOY_CMD = \'rm -rf /tmp/sysom; mkdir -p /tmp/sysom;cd /tmp/sysom;wget http://${SERVER_IP}/download/${NODE_INIT_PKG};tar -xf ${NODE_INIT_PKG};bash -x ${NODE_INIT_DIR}/init.sh\'" $APP_CMD_CONF
-}
-
-pre_init()
-{
- pushd ${BASE_DIR}
- init_monitor
- prepare_init_tar
- set_node_init_cmd
- popd
-}
-
-main()
-{
- pre_init
-}
-
-main
diff --git a/script/node/vmcore/init.sh b/script/node/vmcore/init.sh
deleted file mode 120000
index 6223fe60f8bf51e0564f009dee45337e604f4787..0000000000000000000000000000000000000000
--- a/script/node/vmcore/init.sh
+++ /dev/null
@@ -1 +0,0 @@
-init_vmcore.sh
\ No newline at end of file
diff --git a/script/node/vmcore/init_vmcore.sh b/script/node/vmcore/init_vmcore.sh
deleted file mode 100644
index 08115058ec848165cfeb204a55988cc06132f588..0000000000000000000000000000000000000000
--- a/script/node/vmcore/init_vmcore.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#! /bin/sh
-yum install nfs-utils rpcbind -y
-systemctl start rpcbind && systemctl enable rpcbind
-systemctl start nfs && systemctl enable nfs
-
-VMCORE_HOME=${APP_HOME}/vmcore
-VMCORE_NFS_HOME=${APP_HOME}/vmcore/vmcore-nfs
-mkdir -p ${VMCORE_HOME}
-
-service="
-[Unit]
-Description=Collect vmcore file to oss
-After=network.target network-online.target remote-fs.target basic.target
-DefaultDependencies=no
-
-[Service]
-Type=forking
-ExecStart=/usr/bin/python3 ${VMCORE_HOME}/vmcore_collect.py ${SERVER_IP} ${VMCORE_NFS_HOME}
-StartLimitInterval=0
-StandardOutput=syslog
-StandardError=inherit
-
-[Install]
-WantedBy=multi-user.target
-"
-
-cat << EOF > vmcore-collect.service
-$service
-EOF
-
-cp vmcore_collect.py ${VMCORE_HOME}
-mv vmcore-collect.service /usr/lib/systemd/system/vmcore-collect.service
-chmod 644 /usr/lib/systemd/system/vmcore-collect.service
-systemctl daemon-reload
-systemctl enable vmcore-collect.service
diff --git a/script/server/init.sh b/script/server/init.sh
deleted file mode 100644
index 1e768856c1a1f9059edd23324b8d1fafa8c152f2..0000000000000000000000000000000000000000
--- a/script/server/init.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash -x
-
-basedir=`dirname $0`
-
-cd $basedir
-
-for dir in `ls`
-do
- if [ -d $dir ]
- then
- pushd $dir
- bash -x init.sh
- popd
- fi
-done
diff --git a/script/server/monitor/Readme.txt b/script/server/monitor/Readme.txt
deleted file mode 100644
index 257dfa25848394c27d01136026f3f191fdfb8155..0000000000000000000000000000000000000000
--- a/script/server/monitor/Readme.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-本目录脚本主要用于一键部署prometheus + grafana监控
-主要有以下步骤:
-1、从grafana官网下载grafana安装包,并安装启动
-2、从prometheus官网下载prometheus的安装包,并安装启动,设置systemd 服务
-3、从prometheus官网下载node_exporter安装包
-4、配置grafana的prometheus数据库,配置dashboard
-
-
-直接在sysom server机器,执行bash -x monitor_server_deploy.sh脚本即可。
-
-另外,
-1、如果受外网访问限制,你也可以预先下载好grafana,prometheus,node_exporter等安装包,
-并把安装包,放置到/usr/local/sysom/monitor目录下。
-2、sysom项目,当前采用grafana-8.2.5-1.x86_64.rpm,prometheus-2.29.1.linux-amd64.tar.gz,node_exporter-1.2.2.linux-amd64.tar.gz
-等软件包版本,如果你需要使用其它软件包版本进行安装,你需要修改一下monitor_server_deploy.sh中的版本号信息。
diff --git a/script/server/monitor/init.sh b/script/server/monitor/init.sh
deleted file mode 120000
index 3a90bc950adc0f8351606d98e5d7a1f375770ce8..0000000000000000000000000000000000000000
--- a/script/server/monitor/init.sh
+++ /dev/null
@@ -1 +0,0 @@
-monitor_server_deploy.sh
\ No newline at end of file
diff --git a/script/server/monitor/local_copy_pkg.sh b/script/server/monitor/local_copy_pkg.sh
deleted file mode 100755
index a6b4388b171345c1741c61494effc7eec6b2b910..0000000000000000000000000000000000000000
--- a/script/server/monitor/local_copy_pkg.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-mkdir -p /usr/local/sysom/monitor/
-pushd ../
-cp grafana-8.2.5-1.x86_64.rpm prometheus-2.29.1.linux-amd64.tar.gz node_exporter-1.2.2.linux-amd64.tar.gz /usr/local/sysom/monitor/
-popd
diff --git a/script/server/monitor/monitor_server_clear.sh b/script/server/monitor/monitor_server_clear.sh
deleted file mode 100755
index ced882d65965fb9840697a6df912a127b49f0f55..0000000000000000000000000000000000000000
--- a/script/server/monitor/monitor_server_clear.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash -x
-
-RESOURCE_DIR=$1/monitor
-
-disable_prometheus()
-{
- systemctl stop prometheus
- systemctl disable prometheus
-}
-
-disable_grafana()
-{
- systemctl stop grafana-server
- systemctl disable grafana-server
-}
-
-uninstall_pkg()
-{
- rm -f /usr/lib/systemd/system/prometheus.service
- rm -rf $RESOURCE_DIR/prometheus
- yum erase -y grafana.x86_64
- rm -rf /usr/share/grafana
- rm -rf /var/lib/grafana
- rm -rf /var/logre/grafana
- rm -rf /etc/grafana
-}
-
-main()
-{
- disable_prometheus
- disable_grafana
- uninstall_pkg
-}
-
-main
diff --git a/script/server/monitor/monitor_server_deploy.sh b/script/server/monitor/monitor_server_deploy.sh
deleted file mode 100755
index 9bc65fd580af85b4867299de88726980fe9d636d..0000000000000000000000000000000000000000
--- a/script/server/monitor/monitor_server_deploy.sh
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/bin/bash -x
-
-UPLOAD_DIR=${APP_HOME}/target/sysom_web/download/
-RESOURCE_DIR=${APP_HOME}/monitor
-GRAFANA_PKG=grafana-8.2.5-1.x86_64.rpm
-PROMETHEUS_VER=2.29.1
-PROMETHEUS_ARCH=linux-amd64
-PROMETHEUS_PKG=prometheus-${PROMETHEUS_VER}.${PROMETHEUS_ARCH}
-PROMETHEUS_TAR=$PROMETHEUS_PKG.tar.gz
-NODE_EXPORTER_VER=1.2.2
-NODE_EXPORTER_PKG=node_exporter-${NODE_EXPORTER_VER}.${PROMETHEUS_ARCH}
-NODE_EXPORTER_TAR=$NODE_EXPORTER_PKG.tar.gz
-
-service_head="
-[Unit]
-Description=SysOM Monitor Promethues
-Documentation=SysOM Monitor Promethues
-Wants=network-online.target
-After=network-online.target
-
-[Service]
-"
-
-service_tail="
-
-[Install]
-WantedBy=multi-user.target
-"
-
-service_task="ExecStart="
-
-start_grafana_service()
-{
- systemctl daemon-reload
- systemctl enable grafana-server
- systemctl start grafana-server
-}
-
-install_grafana()
-{
- echo "install grafana......"
-
- pushd $RESOURCE_DIR
- ls | grep $GRAFANA_PKG 1>/dev/null 2>/dev/null
- if [ $? -ne 0 ]
- then
- wget https://dl.grafana.com/oss/release/$GRAFANA_PKG
- ls
- fi
-
- yum install -y $GRAFANA_PKG
- popd
-}
-
-##configure prometheus.yml to auto discovery new nodes
-add_auto_discovery()
-{
- pushd ${RESOURCE_DIR}/prometheus
- mkdir -p node
-
- cat << EOF >> prometheus.yml
- - job_name: 'auto_discovery'
- file_sd_configs:
- - files:
- - "${RESOURCE_DIR}/prometheus/node/node.json"
- refresh_interval: 10s
-EOF
-
- popd
- cp prometheus_get_node.py ${RESOURCE_DIR}/prometheus/
-}
-
-start_prometheus_service()
-{
- ##create prometheus service
- prometheus_exec=${RESOURCE_DIR}/prometheus/prometheus
- prometheus_config="--config.file=\"${RESOURCE_DIR}/prometheus/prometheus.yml\""
- prometheus_data="--storage.tsdb.path=\"${RESOURCE_DIR}/prometheus/data/\""
-
- prometheus_service_task="$service_task$prometheus_exec $prometheus_config $prometheus_data"
-
- cat << EOF > prometheus.service
-$service_head
-$prometheus_service_task
-$service_tail
-EOF
-
- cat prometheus.service
-
- add_auto_discovery
-
- mv prometheus.service /usr/lib/systemd/system
- systemctl daemon-reload
- systemctl enable prometheus
- systemctl start prometheus
-}
-
-##download and install prometheus
-install_prometheus()
-{
- echo "install prometheus......"
- pushd $RESOURCE_DIR
-
- rm -rf prometheus
-
- ls | grep $PROMETHEUS_TAR 1>/dev/null 2>/dev/null
- if [ $? -ne 0 ]
- then
- wget https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VER}/$PROMETHEUS_TAR
- ls
- fi
- tar -zxvf $PROMETHEUS_TAR
-
- ##rename the prometheus directory
- mv $PROMETHEUS_PKG prometheus
- popd
-}
-
-##download node_exporter pkg
-download_node_exporter()
-{
- echo "install node_exporter......"
- pushd $RESOURCE_DIR
- rm -rf node_exporter
-
- ls | grep $NODE_EXPORTER_TAR 1>/dev/null 2>/dev/null
- if [ $? -ne 0 ]
- then
- echo "wget node_exporter"
- wget https://github.com/prometheus/node_exporter/releases/download/v$NODE_EXPORTER_VER/$NODE_EXPORTER_TAR
- fi
- popd
-
-}
-
-configure_grafana()
-{
- bash -x grafana_api_set.sh
-}
-
-configure_cron()
-{
- echo "* * * * * python3 $RESOURCE_DIR/prometheus/prometheus_get_node.py" ${APP_HOME} >> /var/spool/cron/root
- echo "* * * * * sleep 10;python3 $RESOURCE_DIR/prometheus/prometheus_get_node.py" ${APP_HOME} >> /var/spool/cron/root
- echo "* * * * * sleep 20;python3 $RESOURCE_DIR/prometheus/prometheus_get_node.py" ${APP_HOME} >> /var/spool/cron/root
- echo "* * * * * sleep 30;python3 $RESOURCE_DIR/prometheus/prometheus_get_node.py" ${APP_HOME} >> /var/spool/cron/root
- echo "* * * * * sleep 40;python3 $RESOURCE_DIR/prometheus/prometheus_get_node.py" ${APP_HOME} >> /var/spool/cron/root
- echo "* * * * * sleep 50;python3 $RESOURCE_DIR/prometheus/prometheus_get_node.py" ${APP_HOME} >> /var/spool/cron/root
-}
-
-main()
-{
- yum install -y wget
- echo "perpare download resource packages: grafana, prometheus, node_exporter"
- mkdir -p $RESOURCE_DIR
-# bash -x local_copy_pkg.sh
- install_grafana
- install_prometheus
- download_node_exporter
-
- start_grafana_service
- start_prometheus_service
-# start_node_exporter_service
-
- configure_grafana
- configure_cron
-}
-
-main
diff --git a/script/server/monitor/test.py b/script/server/monitor/test.py
deleted file mode 100644
index 27f960ad170a9fa6949de9e5f1bb851cd0f3e62d..0000000000000000000000000000000000000000
--- a/script/server/monitor/test.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# test_命令行传参.py
-import sys
-def para_input():
- print(len(sys.argv)) # 参数序列的长度,此时所有参数存放在一个list之中
- if len(sys.argv) < 2:
- sys.exit("python error")
- script_name = sys.argv[0] #第一个参数指的是脚本名称
- param_first = sys.argv[1] #第二个参数,此时也是一个str列表
- param_second = sys.argv[2] #第三个参数
-
- print(script_name)
- print(param_first)
- print(param_second)
- print(type(param_second))
- print(script_name, param_first, param_second)
-if __name__ == "__main__":
- para_input()
diff --git a/script/server/vmcore/init.sh b/script/server/vmcore/init.sh
deleted file mode 120000
index 76eb4bdd57d2082745724c31a367596a4f7f05b8..0000000000000000000000000000000000000000
--- a/script/server/vmcore/init.sh
+++ /dev/null
@@ -1 +0,0 @@
-init_server.sh
\ No newline at end of file
diff --git a/script/server/vmcore/init_server.sh b/script/server/vmcore/init_server.sh
deleted file mode 100644
index 950e6e632404f9c27177174e3d4fd173bea35e5b..0000000000000000000000000000000000000000
--- a/script/server/vmcore/init_server.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /bin/sh
-yum install nfs-utils rpcbind -y
-systemctl start rpcbind && systemctl enable rpcbind
-systemctl start nfs && systemctl enable nfs
-if [ $? -ne 0 ];then
- systemctl start nfs-server && systemctl enable nfs-server
-fi
-
-internal_net_seg=`echo ${SERVER_IP} | awk -F"." '{print $1"."$2"."$3}'`
-file_path=${APP_HOME}/vmcore/vmcore-nfs
-mkdir -p ${file_path}
-echo "${file_path} ${internal_net_seg}.0/24(rw,async)" >> /etc/exports
-exportfs -rv
-chmod -R 777 ${file_path}
-
-cp parse_panic.py ${APP_HOME}/vmcore
-cp vmcore_const.py ${APP_HOME}/vmcore
-echo "* * * * * pushd ${APP_HOME}/vmcore;python3 parse_panic.py ${file_path};popd" >> /var/spool/cron/root
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..8db2c9b13ec20a43ae719271db6ba5fbe404a5c0
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,82 @@
+#!/usr/bin/python3
+"""
+Description: setup up the sysom
+"""
+
+import os
+from setuptools import setup, find_packages
+
+def use_scm_version():
+ return False if version_file() else True
+
+
+def get_version_from_file():
+ vf = version_file()
+ if vf:
+ with open(vf, 'r') as file:
+ return file.read().strip()
+
+
+def version_file():
+ current_dir = os.path.dirname(os.path.abspath(__file__))
+ version_file = os.path.join(current_dir, 'VERSION')
+
+ if os.path.exists(version_file):
+ return version_file
+
+
+def setup_requires():
+ if version_file():
+ return []
+ else:
+ return ['setuptools_scm']
+
+
+extra_setup_args = {}
+if not version_file():
+ extra_setup_args.update(dict(use_scm_version=use_scm_version(), setup_requires=setup_requires()))
+
+
+#####################################################################
+setup(
+ name='sysom',
+ version=get_version_from_file(),
+ author='sysom team',
+ author_email='wangqing@uniontech.om',
+ description='sysom: API, UI and Task Engine',
+ long_description='sysom provides a web-based user interface, REST API and ' 'task engine ',
+ license='MIT',
+ url='https://gitee.com/anolis/sysom',
+ packages=find_packages(),
+ include_package_data=True,
+ zip_safe=False,
+ classifiers=[
+ 'Development Status :: 5 - Production/Stable',
+ 'Environment :: Web Environment',
+ 'Framework :: Django',
+ 'Intended Audience :: Developers',
+ 'Intended Audience :: Information Technology',
+ 'Intended Audience :: System Administrators' 'License :: MIT',
+ 'Natural Language :: English',
+ 'Operating System :: OS Independent',
+ 'Operating System :: POSIX',
+ 'Programming Language :: Python',
+ 'Topic :: System :: Installation/Setup',
+ 'Topic :: System :: Systems Administration',
+ ],
+ entry_points={
+ 'console_scripts': [
+ 'sysom-manage = manage:main',
+ ],
+ },
+ data_files=[
+ ('/usr/bin', ['tools/scripts/sysom-python']),
+ ],
+ options={
+ 'aliases': {'dev_build': 'clean --all egg_info sdist', 'release_build': 'clean --all egg_info -b "" sdist'},
+ 'build_scripts': {
+ 'executable': '/usr/bin/sysom-python',
+ },
+ },
+ **extra_setup_args,
+)
diff --git a/sysom_api/sysom/__init__.py b/sysom/__init__.py
similarity index 100%
rename from sysom_api/sysom/__init__.py
rename to sysom/__init__.py
diff --git a/sysom_api/apps/__init__.py b/sysom/apps/__init__.py
similarity index 100%
rename from sysom_api/apps/__init__.py
rename to sysom/apps/__init__.py
diff --git a/sysom_api/apps/accounts/__init__.py b/sysom/apps/accounts/__init__.py
similarity index 100%
rename from sysom_api/apps/accounts/__init__.py
rename to sysom/apps/accounts/__init__.py
diff --git a/sysom_api/apps/accounts/admin.py b/sysom/apps/accounts/admin.py
similarity index 100%
rename from sysom_api/apps/accounts/admin.py
rename to sysom/apps/accounts/admin.py
diff --git a/sysom_api/apps/accounts/apps.py b/sysom/apps/accounts/apps.py
similarity index 89%
rename from sysom_api/apps/accounts/apps.py
rename to sysom/apps/accounts/apps.py
index 445b3f167ba030985a9943d64cae92449deab461..64d374c3c6204893bccace997a5a18170d5a0083 100644
--- a/sysom_api/apps/accounts/apps.py
+++ b/sysom/apps/accounts/apps.py
@@ -7,7 +7,7 @@ logger = logging.getLogger(__name__)
class AccountsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
- name = 'apps.accounts'
+ name = 'sysom.apps.accounts'
def ready(self) -> None:
logger.info(">>> Accounts module loading success")
diff --git a/sysom_api/apps/accounts/authentication.py b/sysom/apps/accounts/authentication.py
similarity index 98%
rename from sysom_api/apps/accounts/authentication.py
rename to sysom/apps/accounts/authentication.py
index f6aca38aa7ac51080a66c0310a30438a788c2984..51778947dd530798e808d255aa996f502f199c52 100644
--- a/sysom_api/apps/accounts/authentication.py
+++ b/sysom/apps/accounts/authentication.py
@@ -14,7 +14,7 @@ from rest_framework.exceptions import AuthenticationFailed
from rest_framework import serializers
from rest_framework.request import Request
-from apps.accounts.models import User
+from sysom.apps.accounts.models import User
logger = logging.getLogger(__name__)
jwt_decode_handler = api_settings.JWT_DECODE_HANDLER
diff --git a/sysom_api/apps/accounts/models.py b/sysom/apps/accounts/models.py
similarity index 98%
rename from sysom_api/apps/accounts/models.py
rename to sysom/apps/accounts/models.py
index 319de49e1c2d241e7869bd7395dc955dcb235473..d77b8d801e1acd14f64b51220d876add81a9a875 100644
--- a/sysom_api/apps/accounts/models.py
+++ b/sysom/apps/accounts/models.py
@@ -1,6 +1,6 @@
from django.db import models
from django.contrib.auth.hashers import make_password, check_password
-from lib import BaseModel
+from sysom.lib import BaseModel
class User(BaseModel):
diff --git a/sysom_api/apps/accounts/permissions.py b/sysom/apps/accounts/permissions.py
similarity index 96%
rename from sysom_api/apps/accounts/permissions.py
rename to sysom/apps/accounts/permissions.py
index f64953d83578eb622bb3c5086f35db29cd682bf3..81ef10969ce960f24d1d04f99424d101c3e54cbc 100644
--- a/sysom_api/apps/accounts/permissions.py
+++ b/sysom/apps/accounts/permissions.py
@@ -10,7 +10,7 @@ from rest_framework.permissions import BasePermission
from rest_framework.request import Request
from rest_framework.views import APIView
-from apps.accounts.models import User
+from sysom.apps.accounts.models import User
logger = logging.getLogger(__name__)
diff --git a/sysom_api/apps/accounts/role.json b/sysom/apps/accounts/role.json
similarity index 100%
rename from sysom_api/apps/accounts/role.json
rename to sysom/apps/accounts/role.json
diff --git a/sysom_api/apps/accounts/serializer.py b/sysom/apps/accounts/serializer.py
similarity index 100%
rename from sysom_api/apps/accounts/serializer.py
rename to sysom/apps/accounts/serializer.py
diff --git a/sysom_api/apps/accounts/tests.py b/sysom/apps/accounts/tests.py
similarity index 100%
rename from sysom_api/apps/accounts/tests.py
rename to sysom/apps/accounts/tests.py
diff --git a/sysom_api/apps/accounts/urls.py b/sysom/apps/accounts/urls.py
similarity index 100%
rename from sysom_api/apps/accounts/urls.py
rename to sysom/apps/accounts/urls.py
diff --git a/sysom_api/apps/accounts/user.json b/sysom/apps/accounts/user.json
similarity index 100%
rename from sysom_api/apps/accounts/user.json
rename to sysom/apps/accounts/user.json
diff --git a/sysom_api/apps/accounts/views.py b/sysom/apps/accounts/views.py
similarity index 96%
rename from sysom_api/apps/accounts/views.py
rename to sysom/apps/accounts/views.py
index 793c963d34ac6142cf6dd13fdcf3b56b54206a87..2584dab1a1563087c3c95036cbf70577b791eed0 100644
--- a/sysom_api/apps/accounts/views.py
+++ b/sysom/apps/accounts/views.py
@@ -5,12 +5,12 @@ from rest_framework.viewsets import GenericViewSet
from rest_framework import mixins, status
from rest_framework.views import APIView
-from apps.accounts.permissions import IsAdminPermission, IsOperationPermission
-from apps.accounts.serializer import UserAuthSerializer
-from apps.accounts.authentication import Authentication
+from sysom.apps.accounts.permissions import IsAdminPermission, IsOperationPermission
+from sysom.apps.accounts.serializer import UserAuthSerializer
+from sysom.apps.accounts.authentication import Authentication
from . import models
from . import serializer
-from lib import success, other_response
+from sysom.lib import success, other_response
logger = logging.getLogger(__name__)
diff --git a/sysom_api/apps/host/__init__.py b/sysom/apps/host/__init__.py
similarity index 100%
rename from sysom_api/apps/host/__init__.py
rename to sysom/apps/host/__init__.py
diff --git a/sysom_api/apps/host/admin.py b/sysom/apps/host/admin.py
similarity index 100%
rename from sysom_api/apps/host/admin.py
rename to sysom/apps/host/admin.py
diff --git a/sysom_api/apps/host/apps.py b/sysom/apps/host/apps.py
similarity index 70%
rename from sysom_api/apps/host/apps.py
rename to sysom/apps/host/apps.py
index 9c2f36525e25c237254f7966b54764e5c907f8b6..91e06ac11407a9526691d4b037226dd886d376c6 100644
--- a/sysom_api/apps/host/apps.py
+++ b/sysom/apps/host/apps.py
@@ -7,7 +7,7 @@ logger = logging.getLogger(__name__)
class HostConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
- name = 'apps.host'
+ name = 'sysom.apps.host'
def ready(self):
- logger.info(">>> Host module loading success")
\ No newline at end of file
+ logger.info(">>> Host module loading success")
diff --git a/sysom_api/apps/host/models.py b/sysom/apps/host/models.py
similarity index 93%
rename from sysom_api/apps/host/models.py
rename to sysom/apps/host/models.py
index 575997477745683ebd20915d2a54edb2116897ac..5dda27e992165cec4b217748b40bc7deb7c5d89c 100644
--- a/sysom_api/apps/host/models.py
+++ b/sysom/apps/host/models.py
@@ -1,8 +1,8 @@
from django.db import models
-from lib import BaseModel
-from apps.accounts.models import User
+from sysom.lib import BaseModel
+from sysom.apps.accounts.models import User
-from lib.ssh import SSH
+from sysom.lib.ssh import SSH
class HostModel(BaseModel):
diff --git a/sysom_api/apps/host/serializer.py b/sysom/apps/host/serializer.py
similarity index 97%
rename from sysom_api/apps/host/serializer.py
rename to sysom/apps/host/serializer.py
index 93117795ce2be296d6be6110697095c72b70f07d..7a65986bedf80e224d52135ac22ab59b2689d689 100644
--- a/sysom_api/apps/host/serializer.py
+++ b/sysom/apps/host/serializer.py
@@ -1,7 +1,7 @@
import logging
from django.utils.translation import ugettext as _
from rest_framework import serializers
-from apps.host.models import HostModel, Cluster
+from sysom.apps.host.models import HostModel, Cluster
logger = logging.getLogger(__name__)
diff --git a/sysom_api/apps/host/tests.py b/sysom/apps/host/tests.py
similarity index 100%
rename from sysom_api/apps/host/tests.py
rename to sysom/apps/host/tests.py
diff --git a/sysom_api/apps/host/urls.py b/sysom/apps/host/urls.py
similarity index 93%
rename from sysom_api/apps/host/urls.py
rename to sysom/apps/host/urls.py
index 0a0010cf483346b3fc0d15273e72f725974215b0..0678d1837a51c0fc5509d5b363fca9510335c13a 100644
--- a/sysom_api/apps/host/urls.py
+++ b/sysom/apps/host/urls.py
@@ -3,7 +3,7 @@ from django.urls.conf import include
from rest_framework.routers import DefaultRouter
-from apps.host import views
+from . import views
router = DefaultRouter()
router.register('host', views.HostModelViewSet)
diff --git a/sysom_api/apps/host/views.py b/sysom/apps/host/views.py
similarity index 95%
rename from sysom_api/apps/host/views.py
rename to sysom/apps/host/views.py
index 40aebd58b4bf5af3224a3eec5ff79810612201d7..e9000d074537e8534a1d9e2b5a005809f1e79062 100644
--- a/sysom_api/apps/host/views.py
+++ b/sysom/apps/host/views.py
@@ -12,13 +12,13 @@ from django.db.models import Q
from django_filters.rest_framework import DjangoFilterBackend
from django.conf import settings
-from apps.host import serializer
-from apps.host.models import HostModel, Cluster
-from apps.accounts.authentication import Authentication
-from consumer.executors import SshJob
-from apps.task.models import JobModel
-from lib import *
-from lib.exception import APIException
+from sysom.apps.host import serializer
+from sysom.apps.host.models import HostModel, Cluster
+from sysom.apps.accounts.authentication import Authentication
+from sysom.consumer.executors import SshJob
+from sysom.apps.task.models import JobModel
+from sysom.lib import *
+from sysom.lib.exception import APIException
logger = logging.getLogger(__name__)
diff --git a/sysom_api/apps/monitor/__init__.py b/sysom/apps/monitor/__init__.py
similarity index 100%
rename from sysom_api/apps/monitor/__init__.py
rename to sysom/apps/monitor/__init__.py
diff --git a/sysom_api/apps/monitor/admin.py b/sysom/apps/monitor/admin.py
similarity index 100%
rename from sysom_api/apps/monitor/admin.py
rename to sysom/apps/monitor/admin.py
diff --git a/sysom_api/apps/monitor/apps.py b/sysom/apps/monitor/apps.py
similarity index 79%
rename from sysom_api/apps/monitor/apps.py
rename to sysom/apps/monitor/apps.py
index 077debb5c9ab4014c06934f8827bc9311bc45b16..b664677b9bbdf2456e526c76154e3fbf855c0281 100644
--- a/sysom_api/apps/monitor/apps.py
+++ b/sysom/apps/monitor/apps.py
@@ -3,4 +3,4 @@ from django.apps import AppConfig
class MonitorConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
- name = 'apps.monitor'
+ name = 'sysom.apps.monitor'
diff --git a/sysom_api/apps/monitor/models.py b/sysom/apps/monitor/models.py
similarity index 100%
rename from sysom_api/apps/monitor/models.py
rename to sysom/apps/monitor/models.py
diff --git a/sysom_api/apps/monitor/tests.py b/sysom/apps/monitor/tests.py
similarity index 100%
rename from sysom_api/apps/monitor/tests.py
rename to sysom/apps/monitor/tests.py
diff --git a/sysom_api/apps/monitor/urls.py b/sysom/apps/monitor/urls.py
similarity index 89%
rename from sysom_api/apps/monitor/urls.py
rename to sysom/apps/monitor/urls.py
index 55dcad6f7b30a2bec8e42ecac3e411d9728facd8..e8b3d552e4903e52ecc241b6ea5a019ea92f7ea9 100644
--- a/sysom_api/apps/monitor/urls.py
+++ b/sysom/apps/monitor/urls.py
@@ -7,7 +7,7 @@
"""
from django.urls import path, re_path
-from apps.monitor import views
+from sysom.apps.monitor import views
urlpatterns = [
path('api/v1/svg_info/', views.SvgInfoAPIView.as_view()),
diff --git a/sysom_api/apps/monitor/views.py b/sysom/apps/monitor/views.py
similarity index 93%
rename from sysom_api/apps/monitor/views.py
rename to sysom/apps/monitor/views.py
index 291d37bb8795dc7e58b6a2eb2c6b7932baa52dcf..25b6cd25a8fd5041fcb3afa20dbcc89af50658c8 100644
--- a/sysom_api/apps/monitor/views.py
+++ b/sysom/apps/monitor/views.py
@@ -6,9 +6,9 @@ from django.conf import settings
from django.http import HttpResponse
from django.views.decorators.clickjacking import xframe_options_exempt
from rest_framework.views import APIView
-from apps.accounts.authentication import Authentication
-from lib import *
-from lib.exception import FileNotFoundException
+from sysom.apps.accounts.authentication import Authentication
+from sysom.lib import *
+from sysom.lib.exception import FileNotFoundException
logger = logging.getLogger(__name__)
DOWNLOAD_SVG_URL = "/api/v1/download/svg/"
diff --git a/sysom_api/apps/task/__init__.py b/sysom/apps/task/__init__.py
similarity index 100%
rename from sysom_api/apps/task/__init__.py
rename to sysom/apps/task/__init__.py
diff --git a/sysom_api/apps/task/admin.py b/sysom/apps/task/admin.py
similarity index 100%
rename from sysom_api/apps/task/admin.py
rename to sysom/apps/task/admin.py
diff --git a/sysom_api/apps/task/apps.py b/sysom/apps/task/apps.py
similarity index 89%
rename from sysom_api/apps/task/apps.py
rename to sysom/apps/task/apps.py
index ff6c8b12d15972feaa447ea7125a4faec0f60fbd..8757fad8923a65916d6dd2b4112255c5f3a90955 100644
--- a/sysom_api/apps/task/apps.py
+++ b/sysom/apps/task/apps.py
@@ -7,7 +7,7 @@ logger = logging.getLogger(__name__)
class JobConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
- name = 'apps.task'
+ name = 'sysom.apps.task'
def ready(self):
logger.info(">>> Job module loading success")
diff --git a/sysom_api/apps/task/models.py b/sysom/apps/task/models.py
similarity index 88%
rename from sysom_api/apps/task/models.py
rename to sysom/apps/task/models.py
index 018c203e875f63e382316301fbe0f15fefb539bc..dd4077d87f9b009423be6ca929a7617764f04c4b 100644
--- a/sysom_api/apps/task/models.py
+++ b/sysom/apps/task/models.py
@@ -1,8 +1,8 @@
from django.db import models
-from lib import BaseModel
-from apps.accounts.models import User
-from apps.host.models import HostModel
+from sysom.lib import BaseModel
+from sysom.apps.accounts.models import User
+from sysom.apps.host.models import HostModel
class JobModel(BaseModel):
diff --git a/sysom_api/apps/task/seriaizer.py b/sysom/apps/task/seriaizer.py
similarity index 93%
rename from sysom_api/apps/task/seriaizer.py
rename to sysom/apps/task/seriaizer.py
index 248254eb0426763d8d82009e0cdcfc788fbab500..812b56ec4eb2ea41f04d8b36a016f2fec2680bbc 100644
--- a/sysom_api/apps/task/seriaizer.py
+++ b/sysom/apps/task/seriaizer.py
@@ -6,7 +6,7 @@
@Software: PyCharm
"""
from rest_framework import serializers
-from apps.task.models import JobModel
+from sysom.apps.task.models import JobModel
class JobListSerializer(serializers.ModelSerializer):
diff --git a/sysom_api/apps/task/tests.py b/sysom/apps/task/tests.py
similarity index 100%
rename from sysom_api/apps/task/tests.py
rename to sysom/apps/task/tests.py
diff --git a/sysom_api/apps/task/urls.py b/sysom/apps/task/urls.py
similarity index 93%
rename from sysom_api/apps/task/urls.py
rename to sysom/apps/task/urls.py
index e3eda515de5db9a25a16398546de8aa0b7695e40..7c973638608f0e7d308f3bbe9352015a4277389d 100644
--- a/sysom_api/apps/task/urls.py
+++ b/sysom/apps/task/urls.py
@@ -7,7 +7,7 @@
"""
from django.urls import path, include
from rest_framework.routers import DefaultRouter
-from apps.task import views
+from . import views
router = DefaultRouter()
diff --git a/sysom_api/apps/task/views.py b/sysom/apps/task/views.py
similarity index 94%
rename from sysom_api/apps/task/views.py
rename to sysom/apps/task/views.py
index 218f7cd746d75da2c2d0349277fce5f512324dc8..c4d953bbfd3fff04678b97afab128cc0b23ba369 100644
--- a/sysom_api/apps/task/views.py
+++ b/sysom/apps/task/views.py
@@ -7,13 +7,13 @@ from rest_framework.viewsets import GenericViewSet
from rest_framework import mixins
from django.conf import settings
-from apps.accounts.authentication import Authentication
-from apps.task import seriaizer
-from apps.task.models import JobModel
-from apps.host.models import HostModel
-from apps.accounts.models import User
-from consumer.executors import SshJob
-from lib import *
+from sysom.apps.accounts.authentication import Authentication
+from sysom.apps.task import seriaizer
+from sysom.apps.task.models import JobModel
+from sysom.apps.host.models import HostModel
+from sysom.apps.accounts.models import User
+from sysom.consumer.executors import SshJob
+from sysom.lib import *
diff --git a/sysom_api/apps/vmcore/__init__.py b/sysom/apps/vmcore/__init__.py
similarity index 100%
rename from sysom_api/apps/vmcore/__init__.py
rename to sysom/apps/vmcore/__init__.py
diff --git a/sysom_api/apps/vmcore/admin.py b/sysom/apps/vmcore/admin.py
similarity index 100%
rename from sysom_api/apps/vmcore/admin.py
rename to sysom/apps/vmcore/admin.py
diff --git a/sysom_api/apps/vmcore/apps.py b/sysom/apps/vmcore/apps.py
similarity index 80%
rename from sysom_api/apps/vmcore/apps.py
rename to sysom/apps/vmcore/apps.py
index 62a6a12d6fc63e49524586a7bdf172da4afee492..aedd96e0e21f0d4b4ec4656558556ba658296e66 100644
--- a/sysom_api/apps/vmcore/apps.py
+++ b/sysom/apps/vmcore/apps.py
@@ -3,4 +3,4 @@ from django.apps import AppConfig
class VmcoreConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
- name = 'apps.vmcore'
+ name = 'sysom.apps.vmcore'
diff --git a/sysom_api/apps/vmcore/models.py b/sysom/apps/vmcore/models.py
similarity index 98%
rename from sysom_api/apps/vmcore/models.py
rename to sysom/apps/vmcore/models.py
index 9f01982336cb2ee6809fb915eebc645fd0f21896..9404decae064ce6f7dbe5fd363aae6e1968896a9 100644
--- a/sysom_api/apps/vmcore/models.py
+++ b/sysom/apps/vmcore/models.py
@@ -1,5 +1,5 @@
from django.db import models
-from lib import BaseModel
+from sysom.lib import BaseModel
# Create your models here.
class Panic(BaseModel):
diff --git a/sysom_api/apps/vmcore/serializer.py b/sysom/apps/vmcore/serializer.py
similarity index 100%
rename from sysom_api/apps/vmcore/serializer.py
rename to sysom/apps/vmcore/serializer.py
diff --git a/sysom_api/apps/vmcore/tests.py b/sysom/apps/vmcore/tests.py
similarity index 100%
rename from sysom_api/apps/vmcore/tests.py
rename to sysom/apps/vmcore/tests.py
diff --git a/sysom_api/apps/vmcore/urls.py b/sysom/apps/vmcore/urls.py
similarity index 92%
rename from sysom_api/apps/vmcore/urls.py
rename to sysom/apps/vmcore/urls.py
index c74399a9bcaeb73b879d17340bc427c85d72e068..b87b9e58330ecd3800e96269ab744754a25b003f 100644
--- a/sysom_api/apps/vmcore/urls.py
+++ b/sysom/apps/vmcore/urls.py
@@ -3,7 +3,7 @@ from django.urls.conf import include
from rest_framework.routers import DefaultRouter
-from apps.vmcore import views
+from . import views
router = DefaultRouter()
router.register('vmcore', views.VmcoreViewSet)
diff --git a/sysom_api/apps/vmcore/views.py b/sysom/apps/vmcore/views.py
similarity index 98%
rename from sysom_api/apps/vmcore/views.py
rename to sysom/apps/vmcore/views.py
index f39adc715aad35709d58bae7bde73ab989421612..26e940eb56a7ff8fe44e4206a1759155db9348b2 100644
--- a/sysom_api/apps/vmcore/views.py
+++ b/sysom/apps/vmcore/views.py
@@ -8,12 +8,12 @@ from rest_framework import mixins
from rest_framework.views import APIView
from django_filters.rest_framework import DjangoFilterBackend
-from apps.accounts.permissions import IsAdminPermission, IsOperationPermission
-from apps.accounts.serializer import UserAuthSerializer
-from apps.accounts.authentication import Authentication
+from sysom.apps.accounts.permissions import IsAdminPermission, IsOperationPermission
+from sysom.apps.accounts.serializer import UserAuthSerializer
+from sysom.apps.accounts.authentication import Authentication
from . import models
from . import serializer
-from lib import success, other_response
+from sysom.lib import success, other_response
import datetime
import re
diff --git a/sysom_api/apps/vmcore/vmcore.json b/sysom/apps/vmcore/vmcore.json
similarity index 100%
rename from sysom_api/apps/vmcore/vmcore.json
rename to sysom/apps/vmcore/vmcore.json
diff --git a/sysom_api/sysom/asgi.py b/sysom/asgi.py
similarity index 91%
rename from sysom_api/sysom/asgi.py
rename to sysom/asgi.py
index 836eaee99fb08b08ac232d3c7af45a2e5310a3d8..7c5528418ad4dab7da2bc474baf24757e6d7fa38 100644
--- a/sysom_api/sysom/asgi.py
+++ b/sysom/asgi.py
@@ -12,7 +12,7 @@ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'sysom.settings')
from channels.routing import ProtocolTypeRouter
from django.core.asgi import get_asgi_application
-from consumer.routing import ws_router
+from sysom.consumer.routing import ws_router
application = ProtocolTypeRouter({
diff --git a/sysom_api/conf/__init__.py b/sysom/conf/__init__.py
similarity index 100%
rename from sysom_api/conf/__init__.py
rename to sysom/conf/__init__.py
diff --git a/sysom_api/conf/common.py b/sysom/conf/common.py
similarity index 93%
rename from sysom_api/conf/common.py
rename to sysom/conf/common.py
index c77c7b959b72c1290dd9d5ca16e29bebbd1d3f0a..e98240779557550a8647a5933eabb078dd123228 100644
--- a/sysom_api/conf/common.py
+++ b/sysom/conf/common.py
@@ -15,12 +15,12 @@ SECRET_KEY = 'django-insecure-^d8b9di9w&-mmsbpt@)o#e+2^z+^m4nhf+z8304%9@8y#ko46l
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
- 'apps.accounts',
- 'apps.host',
- 'apps.monitor',
- 'apps.task',
- 'apps.vmcore',
- 'consumer',
+ 'sysom.apps.accounts',
+ 'sysom.apps.host',
+ 'sysom.apps.monitor',
+ 'sysom.apps.task',
+ 'sysom.apps.vmcore',
+ 'sysom.consumer',
'rest_framework',
'corsheaders',
@@ -79,7 +79,7 @@ REST_FRAMEWORK = {
# 'rest_framework.permissions.IsAuthenticated'
),
'DEFAULT_AUTHENTICATION_CLASSES': [
- 'apps.accounts.authentication.Authentication'
+ 'sysom.apps.accounts.authentication.Authentication'
],
'UNAUTHENTICATED_USER': None,
'DEFAULT_VERSIONING_CLASS': "rest_framework.versioning.URLPathVersioning",
@@ -90,9 +90,9 @@ REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
),
- 'DEFAULT_PAGINATION_CLASS': 'lib.paginations.Pagination',
+ 'DEFAULT_PAGINATION_CLASS': 'sysom.lib.paginations.Pagination',
'UNICODE_JSON': False,
- 'EXCEPTION_HANDLER': 'lib.exception.exception_handler'
+ 'EXCEPTION_HANDLER': 'sysom.lib.exception.exception_handler'
}
JWT_AUTH = {
diff --git a/sysom_api/conf/develop.py b/sysom/conf/develop.py
similarity index 100%
rename from sysom_api/conf/develop.py
rename to sysom/conf/develop.py
diff --git a/sysom_api/conf/product.py b/sysom/conf/product.py
similarity index 100%
rename from sysom_api/conf/product.py
rename to sysom/conf/product.py
diff --git a/sysom_api/conf/testing.py b/sysom/conf/testing.py
similarity index 100%
rename from sysom_api/conf/testing.py
rename to sysom/conf/testing.py
diff --git a/sysom_api/consumer/__init__.py b/sysom/consumer/__init__.py
similarity index 100%
rename from sysom_api/consumer/__init__.py
rename to sysom/consumer/__init__.py
diff --git a/sysom_api/consumer/consumers.py b/sysom/consumer/consumers.py
similarity index 97%
rename from sysom_api/consumer/consumers.py
rename to sysom/consumer/consumers.py
index b8447608a8fbe3d0432f38ed15bd116bfafe4acd..24e18735915161484fc3ba49cdbec1ff44f47d42 100644
--- a/sysom_api/consumer/consumers.py
+++ b/sysom/consumer/consumers.py
@@ -38,7 +38,7 @@ class SshConsumer(WebsocketConsumer):
def _connect_host_init(self):
"""初始化host连接"""
- from apps.host.models import HostModel
+ from sysom.apps.host.models import HostModel
instance = get_host_instance(model=HostModel, ip=self.host_ip, created_by=self.user.id)
if not instance:
self.send(bytes_data=b'Not Found host / No Permission\r\n')
diff --git a/sysom_api/consumer/executors.py b/sysom/consumer/executors.py
similarity index 95%
rename from sysom_api/consumer/executors.py
rename to sysom/consumer/executors.py
index cfed72ac7bb987649748fc708b2660730c566f52..d8e27ea3d5c9f6f7bd35a96c7636240372b44683 100644
--- a/sysom_api/consumer/executors.py
+++ b/sysom/consumer/executors.py
@@ -2,9 +2,9 @@ import ast
import json
import os
import socket
-from apps.host.models import HostModel
-from lib.ssh import SSH
-from apps.task.models import JobModel
+from sysom.apps.host.models import HostModel
+from sysom.lib.ssh import SSH
+from sysom.apps.task.models import JobModel
from sysom import settings
diff --git a/sysom_api/consumer/middleware.py b/sysom/consumer/middleware.py
similarity index 96%
rename from sysom_api/consumer/middleware.py
rename to sysom/consumer/middleware.py
index da5d14e16f6d2ac82011a62543e8e0360061deba..419a66a108c2fa37f32a9b2ccf4acfce6cd43740 100644
--- a/sysom_api/consumer/middleware.py
+++ b/sysom/consumer/middleware.py
@@ -10,7 +10,7 @@ jwt_get_username_from_payload = api_settings.JWT_PAYLOAD_GET_USERNAME_HANDLER
@database_sync_to_async
def get_user(user_id: int):
- from apps.accounts.models import User
+ from sysom.apps.accounts.models import User
try:
user = User.objects.get(id=user_id)
except User.DoesNotExist:
diff --git a/sysom_api/consumer/routing.py b/sysom/consumer/routing.py
similarity index 100%
rename from sysom_api/consumer/routing.py
rename to sysom/consumer/routing.py
diff --git a/sysom_api/lib/__init__.py b/sysom/lib/__init__.py
similarity index 61%
rename from sysom_api/lib/__init__.py
rename to sysom/lib/__init__.py
index 158595f97f576e87a5dbefbaafc051765fd32f8f..ffc476a1d6ecfa8d083de5255b11888d7544c877 100644
--- a/sysom_api/lib/__init__.py
+++ b/sysom/lib/__init__.py
@@ -7,6 +7,6 @@
@Software: PyCharm
"""
-from .utils import *
-from .base_model import *
-from .response import *
+from sysom.lib.utils import *
+from sysom.lib.base_model import *
+from sysom.lib.response import *
diff --git a/sysom_api/lib/base_model.py b/sysom/lib/base_model.py
similarity index 92%
rename from sysom_api/lib/base_model.py
rename to sysom/lib/base_model.py
index 7fd9bdf7363585925223e3fc4a8fdb7feb9eb649..3e2a63ec26e0f6094635fd396cdfdbbd1790a137 100644
--- a/sysom_api/lib/base_model.py
+++ b/sysom/lib/base_model.py
@@ -8,7 +8,7 @@
"""
from django.db import models
-from lib import human_datetime
+from sysom.lib import human_datetime
class BaseModel(models.Model):
diff --git a/sysom_api/lib/exception.py b/sysom/lib/exception.py
similarity index 100%
rename from sysom_api/lib/exception.py
rename to sysom/lib/exception.py
diff --git a/sysom_api/lib/paginations.py b/sysom/lib/paginations.py
similarity index 89%
rename from sysom_api/lib/paginations.py
rename to sysom/lib/paginations.py
index b14639bb2a3fcd04760920db1308d1af6d614410..ee4b932359be7316529e68a1993be32bcc073f64 100644
--- a/sysom_api/lib/paginations.py
+++ b/sysom/lib/paginations.py
@@ -6,7 +6,7 @@
'''
from rest_framework.pagination import PageNumberPagination
-from lib.response import success
+from sysom.lib.response import success
class Pagination(PageNumberPagination):
@@ -23,4 +23,4 @@ class Pagination(PageNumberPagination):
def get_page_size(self, request):
if not request.query_params.get(self.page_size_query_param, None):
return self.max_page_size
- return super().get_page_size(request)
\ No newline at end of file
+ return super().get_page_size(request)
diff --git a/sysom_api/lib/response.py b/sysom/lib/response.py
similarity index 100%
rename from sysom_api/lib/response.py
rename to sysom/lib/response.py
diff --git a/sysom_api/lib/ssh.py b/sysom/lib/ssh.py
similarity index 100%
rename from sysom_api/lib/ssh.py
rename to sysom/lib/ssh.py
diff --git a/sysom_api/lib/utils.py b/sysom/lib/utils.py
similarity index 99%
rename from sysom_api/lib/utils.py
rename to sysom/lib/utils.py
index 25182886cf58a57f99a37ed7d3ab44a39ce04a0a..754fec22f8e4a0393d1b4d8809441e64b454d9e8 100644
--- a/sysom_api/lib/utils.py
+++ b/sysom/lib/utils.py
@@ -14,7 +14,7 @@ from decimal import Decimal
from apscheduler.schedulers.background import BackgroundScheduler
from paramiko import BadAuthenticationType, AuthenticationException
-from lib.ssh import SSH
+from sysom.lib.ssh import SSH
logger = logging.getLogger(__name__)
diff --git a/sysom_api/sysom/settings.py b/sysom/settings.py
similarity index 50%
rename from sysom_api/sysom/settings.py
rename to sysom/settings.py
index 64ac03d986091ac9b7bd36b30f3c1637963ab86f..d22696dcb1242bb85dfe59fa594db595dcfb269f 100644
--- a/sysom_api/sysom/settings.py
+++ b/sysom/settings.py
@@ -4,12 +4,12 @@ env = os.environ.get("env", "testing")
if env == "develop":
- from conf.develop import *
+ from sysom.conf.develop import *
elif env == "testing":
- from conf.testing import *
+ from sysom.conf.testing import *
elif env == "produce":
- from conf.product import *
+ from sysom.conf.product import *
# 跨域允许
if DEBUG:
- CORS_ORIGIN_ALLOW_ALL = True
\ No newline at end of file
+ CORS_ORIGIN_ALLOW_ALL = True
diff --git a/sysom_api/sysom/urls.py b/sysom/urls.py
similarity index 81%
rename from sysom_api/sysom/urls.py
rename to sysom/urls.py
index e267cc7b46499f0a64730d8e8541a8176c1a0bf0..c1a8701f6a1411e9f3990f1e0ff4b65d0ca35d99 100644
--- a/sysom_api/sysom/urls.py
+++ b/sysom/urls.py
@@ -19,18 +19,18 @@ from django.conf import settings
urlpatterns = [
- path('', include("apps.host.urls")),
- path('', include("apps.accounts.urls")),
- path('', include("apps.monitor.urls")),
- path('', include("apps.task.urls")),
- path('', include("apps.vmcore.urls")),
+ path('', include("sysom.apps.host.urls")),
+ path('', include("sysom.apps.accounts.urls")),
+ path('', include("sysom.apps.monitor.urls")),
+ path('', include("sysom.apps.task.urls")),
+ path('', include("sysom.apps.vmcore.urls")),
]
if settings.DEBUG:
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
- from apps.accounts.authentication import Authentication
+ from sysom.apps.accounts.authentication import Authentication
schema_view = get_schema_view(
openapi.Info(
diff --git a/sysom_api/sysom/wsgi.py b/sysom/wsgi.py
similarity index 100%
rename from sysom_api/sysom/wsgi.py
rename to sysom/wsgi.py
diff --git a/sysom_api/dockerfile b/sysom_api/dockerfile
deleted file mode 100644
index c06da861eb4067868cc09cd3112786371b72d486..0000000000000000000000000000000000000000
--- a/sysom_api/dockerfile
+++ /dev/null
@@ -1,5 +0,0 @@
-FROM python:3.7.5
-WORKDIR /home
-RUN pip install django==3.2.3
-RUN pip install uwsgi
-EXPOSE 8080
diff --git a/sysom_api/service_scripts/pingtrace b/sysom_api/service_scripts/pingtrace
deleted file mode 100755
index 590802f96be7b55ff0346727484837a248a57d08..0000000000000000000000000000000000000000
--- a/sysom_api/service_scripts/pingtrace
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/python3
-# coding=utf-8
-import json
-import sys
-
-###############################################################################
-## 如前端入参是这个:
-## {
-## "源虚拟机私网IP":"192.168.1.101",
-## "目标虚拟机私网IP":"192.168.1.102",
-## "追踪包数":"100",
-## "间隔毫秒数":"10",
-## "报文协议":"ICMP"
-## }
-## 解析参数方法:
-## sysak pingtrace -s -t 6
-## -t 6 来自 “追踪包数” * "间隔毫秒数” / 1000 + 5
-## 本命令运行在“目标虚拟机私网ip”
-##
-## sysak pingtrace_raw -c 192.168.1.102 -t 2 -i 10000 -C 100 -o log
-## -c 192.168.1.102 来自 “目标虚拟机私网ip”
-## -t 2 来自 “追踪包数” * "间隔毫秒数” / 1000 + 1
-## -i 10000 来自 “间隔毫秒数”* 1000
-## -C 100 来自 “追踪包数”
-## 本命令运行在“源虚拟机私网ip”
-###############################################################################
-
-args = json.loads(sys.argv[1])
-result = {}
-result['commands'] = []
-
-cmd0_arg = int(int(args["追踪包数"]) * int(args["间隔毫秒数"]) / 1000) + 5
-cmd0 = {}
-cmd0['instance'] = args["源实例IP"]
-cmd0['cmd'] = "sysak pingtrace -s -t "+str(cmd0_arg)+" &"
-
-cmd1 = {}
-cmd1['instance'] = args["目标实例IP"]
-cmd1_arg_c = args["目标实例IP"]
-cmd1_arg_t = str(cmd0_arg - 4)
-cmd1_arg_i = str(int(args["间隔毫秒数"]) * 1000)
-cmd1_arg_C = str(args["追踪包数"])
-cmd1['cmd'] = "sysak pingtrace -c "+cmd1_arg_c+" -t "+cmd1_arg_t+" -i "+cmd1_arg_i+" -C "+cmd1_arg_C
-
-result['commands'].append(cmd0)
-result['commands'].append(cmd1)
-
-data = json.dumps(result)
-print(data)
diff --git a/sysom_api/service_scripts/pingtrace_post b/sysom_api/service_scripts/pingtrace_post
deleted file mode 100644
index d9f665a0bc86dd2f569500f128c56b7829ae8332..0000000000000000000000000000000000000000
--- a/sysom_api/service_scripts/pingtrace_post
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/python3
-# coding=utf-8
-import sys
-import os
-import json
-import random
-
-class CpingDeamon(object):
- def __init__(self, f):
- super(CpingDeamon, self).__init__()
- self._file = f
-
- def proc(self):
- dPing = {"stat": None, "seq": []}
- for l in self._file.readlines():
- obj = json.loads(l)
- if "stat" in obj:
- dPing['stat'] = obj["stat"]
- else:
- dPing["seq"].append(obj)
- s = json.dumps(dPing, indent=4)
- print(s)
-
-if __name__ == "__main__":
- fname="/tmp/pingtrace_argv_"+str(random.random())
- f=open(fname,"w+")
- f.write(sys.argv[1])
- f.close()
- f=open(fname,"r")
- c = CpingDeamon(f)
- c.proc()
- f.close()
- os.remove(fname)
diff --git a/sysom_api/service_scripts/test b/sysom_api/service_scripts/test
deleted file mode 100755
index e0c1b732fbf8f2b4316047799fdde264ea9ab59e..0000000000000000000000000000000000000000
--- a/sysom_api/service_scripts/test
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-args=$1
-echo "{
- 'commands':[
- {
- 'instance': '116.62.146.75',
- 'cmd': 'ls /root'
- },
- {
- 'instance': '116.62.146.75',
- 'cmd': 'ls /root && echo ${args}'
- }
- ]
-}"
\ No newline at end of file
diff --git a/sysom_api/service_scripts/test.sh b/sysom_api/service_scripts/test.sh
deleted file mode 100644
index d688d2c7ee707656f5641da2e2213c71d70dd439..0000000000000000000000000000000000000000
--- a/sysom_api/service_scripts/test.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-echo "{
- 'commands':[
- {
- 'instance': '192.168.0.2',
- 'cmd': 'ls /root'
- },
- {
- 'instance': '192.168.0.3',
- 'cmd': 'ls /root'
- }
- ],
- 'taskid': 'xxxx'
-}"
diff --git a/sysom_api/service_scripts/tpython b/sysom_api/service_scripts/tpython
deleted file mode 100755
index 8bf65e64b26ed273b6dc5af8f8e01f2681de9771..0000000000000000000000000000000000000000
--- a/sysom_api/service_scripts/tpython
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env python
-import json
-import sys
-
-args = sys.argv[1]
-result = {
- 'commands':[
- {
- 'instance': '116.62.146.75',
- 'cmd': 'ls /root'
- },
- {
- 'instance': '116.62.146.75',
- 'cmd': 'ls /; echo %s' % args,
- }
- ]
-}
-data = json.dumps(result)
-print(data)
diff --git a/sysom_api/uwsgi.ini b/sysom_api/uwsgi.ini
deleted file mode 100644
index 9cfa0387e1006d02bdc81409549668633c07c020..0000000000000000000000000000000000000000
--- a/sysom_api/uwsgi.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-[uwsgi]
-socket=0.0.0.0:7001
-chdir=/home/sysom/target/sysom_api
-module=sysom.wsgi:application
-processes=10
-master=True
-vacuum=True
-pidfile=/var/run/uwsgi.pid
-enable-threads=true
-daemonize=/home/sysom/logs/uwsgi.log
diff --git a/sysom_web/public/CNAME b/sysom_web/public/CNAME
deleted file mode 100644
index 30c2d4d3624a8970342c7c6514217648aaed82d4..0000000000000000000000000000000000000000
--- a/sysom_web/public/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-preview.pro.ant.design
\ No newline at end of file
diff --git a/sysom_web/public/favicon.ico b/sysom_web/public/favicon.ico
deleted file mode 100644
index e2e93252988b5bed120ddeb168eb577bf0caa881..0000000000000000000000000000000000000000
Binary files a/sysom_web/public/favicon.ico and /dev/null differ
diff --git a/sysom_web/public/icons/icon-128x128.png b/sysom_web/public/icons/icon-128x128.png
deleted file mode 100644
index 48d0e2339a60a637b94319c65e8654289b4f4b6c..0000000000000000000000000000000000000000
Binary files a/sysom_web/public/icons/icon-128x128.png and /dev/null differ
diff --git a/sysom_web/public/icons/icon-192x192.png b/sysom_web/public/icons/icon-192x192.png
deleted file mode 100644
index 938e9b53f6850d97c693b3e3107968fbced5050c..0000000000000000000000000000000000000000
Binary files a/sysom_web/public/icons/icon-192x192.png and /dev/null differ
diff --git a/sysom_web/public/icons/icon-512x512.png b/sysom_web/public/icons/icon-512x512.png
deleted file mode 100644
index 21fc108f00294d66855a6c10af022b9d6d0f23b9..0000000000000000000000000000000000000000
Binary files a/sysom_web/public/icons/icon-512x512.png and /dev/null differ
diff --git a/sysom_web/public/logo.svg b/sysom_web/public/logo.svg
deleted file mode 100644
index 239bf69f181116ee699e122a8f43e96b11843d1d..0000000000000000000000000000000000000000
--- a/sysom_web/public/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/sysom_web/public/pro_icon.svg b/sysom_web/public/pro_icon.svg
deleted file mode 100644
index e075b78d76c1631deded7a8427656b5c085068ff..0000000000000000000000000000000000000000
--- a/sysom_web/public/pro_icon.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
\ No newline at end of file
diff --git a/tools/deploy/deploy.sh b/tools/deploy/deploy.sh
deleted file mode 100755
index a3e797d2c6ab34284a4abdc2c4010507323dd437..0000000000000000000000000000000000000000
--- a/tools/deploy/deploy.sh
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/bin/bash
-#****************************************************************#
-# ScriptName: deploy.sh
-# Author: algalon
-# Create Date: 2021-11-13 22:42
-# Modify Date: 2021-11-16 00:02
-# Function: deploy sysom
-#***************************************************************#
-
-ALIYUN_MIRROR="https://mirrors.aliyun.com/pypi/simple/"
-APP_NAME="sysom"
-API_DIR="sysom_api"
-WEB_DIR="sysom_web"
-SCRIPT_DIR="script"
-
-if [ $# != 3 ] ; then
- echo "USAGE: $0 INSTALL_DIR Internal_IP EXTERNAL_IP"
- echo " e.g.: $0 /usr/local/sysom 192.168.0.100 120.26.xx.xx"
- exit 1
-fi
-
-APP_HOME=$1
-SERVER_IP=$2
-OUTER_IP=$3
-
-export APP_HOME=${APP_HOME}
-export SERVER_IP=${SERVER_IP}
-
-VIRTUALENV_HOME="${APP_HOME}/virtualenv"
-TARGET_PATH="${APP_HOME}/target"
-
-if [ "$UID" -ne 0 ]; then
- echo "Please run as root"
- exit 1
-fi
-
-mkdir -p ${APP_HOME}
-
-touch_env_rpms() {
- if [ -f /etc/alios-release ]; then
- if [ ! -f /etc/yum.repos.d/epel.repo ]; then
- wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
- fi
- elif [ -f /etc/anolis-release ]; then
- sed -i '/epel\/8\/Everything/{n;s/enabled=0/enabled=1/;}' /etc/yum.repos.d/AnolisOS-DDE.repo
- fi
- rpm -q --quiet python3 || yum install -y python3
- rpm -q --quiet python3-virtualenv || yum install -y python3-virtualenv
- rpm -q --quiet mariadb-server || yum install -y mariadb-server
- rpm -q --quiet supervisor || yum install -y supervisor
- rpm -q --quiet nginx || yum install -y nginx
- rpm -q --quiet gcc || yum install -y gcc
-}
-
-touch_virtualenv() {
- mkdir -p ~/.pip
- cp tools/deploy/pip.conf ~/.pip/
- if [ -d ${VIRTUALENV_HOME} ]; then
- echo "virtualenv exists, skip"
- else
- virtualenv-3 ${VIRTUALENV_HOME}
- if [ "$?" = 0 ]; then
- echo "INFO: create virtualenv success"
- else
- echo "ERROR: create virtualenv failed"
- exit 1
- fi
- fi
- echo "INFO: activate virtualenv..."
- source ${VIRTUALENV_HOME}/bin/activate || exit 1
-}
-
-
-update_target() {
- if [ -d "${TARGET_PATH}" ]; then
- rm -rf ${TARGET_PATH}
- fi
- mkdir -p ${TARGET_PATH}
- echo "INFO: copy project file..."
- cp -r ${API_DIR} ${WEB_DIR} ${TARGET_PATH}
-
-}
-
-check_requirements() {
- echo "INFO: begin install requirements..."
-
- if ! [ -d ${APP_HOME}/logs/ ]; then
- mkdir -p ${APP_HOME}/logs/ || exit 1
- fi
-
- local requirements_log="${APP_HOME}/logs/${APP_NAME}_requirements.log"
- local requirements="${API_DIR}/requirements.txt"
- python_version=$(python -V | cut -b 8-10)
- if [ ${python_version} == "3.6" ];then
- requirements="tools/deploy/requirements.txt"
- fi
- touch "$requirements_log" || exit
- pip install pytest-runner cffi
- pip install -r ${requirements} -i "${ALIYUN_MIRROR}" |tee -a "${requirements_log}" || exit 1
- local pip_res=$?
- if [ $pip_res -ne 0 ]; then
- echo "ERROR: requirements not satisfied and auto install failed, please check ${requirements_log}"
- exit 1
- fi
-}
-
-setup_database() {
- systemctl restart mariadb.service
- systemctl enable mariadb.service
- mysql -uroot -e "create user 'sysom'@'%' identified by 'sysom_admin';"
- mysql -uroot -e "grant usage on *.* to 'sysom'@'localhost' identified by 'sysom_admin'"
- mysql -uroot -e "drop database sysom;"
- mysql -uroot -e "create database sysom character set utf8;"
- mysql -uroot -e "grant all privileges on sysom.* to 'sysom'@'%';"
- mysql -uroot -e "flush privileges;"
-}
-
-init_conf() {
- mkdir -p /run/daphne
- cp tools/deploy/nginx.conf /etc/nginx/
- cp tools/deploy/sysom.conf /etc/nginx/conf.d/
- sed -i "s;/home/sysom;${APP_HOME};g" /etc/nginx/conf.d/sysom.conf
- cp tools/deploy/sysom.ini /etc/supervisord.d/
- sed -i "s;/home/sysom;${APP_HOME};g" /etc/supervisord.d/sysom.ini
- cp tools/deploy/uwsgi.ini ${TARGET_PATH}/${API_DIR}
- sed -i "s;/home/sysom;${APP_HOME};g" ${TARGET_PATH}/${API_DIR}/uwsgi.ini
- pushd ${TARGET_PATH}/${API_DIR}
- rm -f apps/*/migrations/00*.py
- python manage.py makemigrations accounts
- python manage.py makemigrations host
- python manage.py makemigrations vmcore
- python manage.py makemigrations task
- python manage.py makemigrations monitor
- python manage.py migrate
- python manage.py loaddata ./apps/accounts/user.json
- python manage.py loaddata ./apps/vmcore/vmcore.json
- popd
-}
-
-start_app() {
- systemctl enable nginx.service
- systemctl enable supervisord.service
- systemctl restart nginx.service
- systemctl restart supervisord.service
-}
-
-start_script_server() {
- pushd ${SCRIPT_DIR}/server
- bash -x init.sh
- popd
-}
-
-start_script_node() {
- pushd ${SCRIPT_DIR}/node
- bash -x pre_init.sh
- popd
-}
-
-modify_grafana_url() {
- pushd ${TARGET_PATH}/${WEB_DIR}
- sed -i "s/127.0.0.1:3000/${OUTER_IP}\/grafana/g" p__monitor__SystemDashboard*js
- popd
-}
-
-deploy() {
- touch_env_rpms
- touch_virtualenv
- update_target
- check_requirements
- setup_database > ${APP_HOME}/logs/${APP_NAME}_setup_database.log 2>&1
- init_conf
- start_script_server
- start_script_node
- modify_grafana_url
- start_app
-}
-
-deploy
diff --git a/tools/deploy/nginx.conf b/tools/deploy/nginx.conf
deleted file mode 100644
index 959830cd742fe2676e65beb300170e4b19862c12..0000000000000000000000000000000000000000
--- a/tools/deploy/nginx.conf
+++ /dev/null
@@ -1,68 +0,0 @@
-# For more information on configuration, see:
-# * Official English Documentation: http://nginx.org/en/docs/
-# * Official Russian Documentation: http://nginx.org/ru/docs/
-
-user nginx;
-worker_processes auto;
-error_log /var/log/nginx/error.log;
-pid /run/nginx.pid;
-
-# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
-include /usr/share/nginx/modules/*.conf;
-
-events {
- worker_connections 1024;
-}
-
-http {
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
-
- access_log /var/log/nginx/access.log main;
-
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- server_tokens off;
- keepalive_timeout 0;
- types_hash_max_size 4096;
-
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
-
- # Load modular configuration files from the /etc/nginx/conf.d directory.
- # See http://nginx.org/en/docs/ngx_core_module.html#include
- # for more information.
- include /etc/nginx/conf.d/*.conf;
-
-
-# Settings for a TLS enabled server.
-#
-# server {
-# listen 443 ssl http2;
-# listen [::]:443 ssl http2;
-# server_name _;
-# root /usr/share/nginx/html;
-#
-# ssl_certificate "/etc/pki/nginx/server.crt";
-# ssl_certificate_key "/etc/pki/nginx/private/server.key";
-# ssl_session_cache shared:SSL:1m;
-# ssl_session_timeout 10m;
-# ssl_ciphers HIGH:!aNULL:!MD5;
-# ssl_prefer_server_ciphers on;
-#
-# # Load configuration files for the default server block.
-# include /etc/nginx/default.d/*.conf;
-#
-# error_page 404 /404.html;
-# location = /40x.html {
-# }
-#
-# error_page 500 502 503 504 /50x.html;
-# location = /50x.html {
-# }
-# }
-
-}
-
diff --git a/tools/deploy/pip.conf b/tools/deploy/pip.conf
deleted file mode 100644
index ccb91ab5e64e129f6b5b75d93a20d41c0cd9fd8a..0000000000000000000000000000000000000000
--- a/tools/deploy/pip.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-## Note, this file is written by cloud-init on first boot of an instance
-## modifications made here will not survive a re-bundle.
-###
-[global]
-index-url=https://mirrors.aliyun.com/pypi/simple/
-
-[install]
-trusted-host=mirrors.aliyun.com
diff --git a/tools/deploy/sysom-uwsgi.ini b/tools/deploy/sysom-uwsgi.ini
deleted file mode 100644
index c1597281377bbe2d0c096cec5efab8477f38f1a3..0000000000000000000000000000000000000000
--- a/tools/deploy/sysom-uwsgi.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[program:sysom]
-directory = /home/sysom/target/sysom_api
-command=/home/sysom/virtualenv/bin/uwsgi --ini /home/sysom/target/sysom_api/uwsgi.ini --catch-exceptions --protocol=http
-autostart=true
-autorestart=true
-redirect_stderr=true
-stopasgroup=true
-stdout_logfile=/home/sysom/logs/supervisor.log
-environment=PATH="/home/sysom/virtualenv/bin"
diff --git a/tools/deploy/sysom.ini b/tools/deploy/sysom.ini
deleted file mode 100644
index 58e6d5cd7f4ffc4f5725a2cf1acbe8d9ba32ec3d..0000000000000000000000000000000000000000
--- a/tools/deploy/sysom.ini
+++ /dev/null
@@ -1,12 +0,0 @@
-[fcgi-program:sysom]
-socket=tcp://localhost:7001
-directory=/home/sysom/target/sysom_api
-command=/home/sysom/virtualenv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers sysom.asgi:application
-numprocs=4
-process_name=asgi%(process_num)d
-autostart=true
-autorestart=true
-redirect_stderr=true
-stopasgroup=true
-stdout_logfile=/home/sysom/logs/supervisor.log
-environment=PATH="/home/sysom/virtualenv/bin"
diff --git a/tools/deploy/uwsgi.ini b/tools/deploy/uwsgi.ini
deleted file mode 100644
index 9cfa0387e1006d02bdc81409549668633c07c020..0000000000000000000000000000000000000000
--- a/tools/deploy/uwsgi.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-[uwsgi]
-socket=0.0.0.0:7001
-chdir=/home/sysom/target/sysom_api
-module=sysom.wsgi:application
-processes=10
-master=True
-vacuum=True
-pidfile=/var/run/uwsgi.pid
-enable-threads=true
-daemonize=/home/sysom/logs/uwsgi.log
diff --git a/script/server/monitor/grafana_api_set.sh b/tools/grafana/grafana_api_set.sh
similarity index 100%
rename from script/server/monitor/grafana_api_set.sh
rename to tools/grafana/grafana_api_set.sh
diff --git a/script/server/monitor/netinfo_dashboard.json b/tools/grafana/netinfo_dashboard.json
similarity index 100%
rename from script/server/monitor/netinfo_dashboard.json
rename to tools/grafana/netinfo_dashboard.json
diff --git a/script/server/monitor/netinfo_dashboard_new.json b/tools/grafana/netinfo_dashboard_new.json
similarity index 100%
rename from script/server/monitor/netinfo_dashboard_new.json
rename to tools/grafana/netinfo_dashboard_new.json
diff --git a/script/server/monitor/sysom-dashboard.json b/tools/grafana/sysom-dashboard.json
similarity index 100%
rename from script/server/monitor/sysom-dashboard.json
rename to tools/grafana/sysom-dashboard.json
diff --git a/tools/deploy/sysom.conf b/tools/nginx/nginx-sysom.conf
similarity index 84%
rename from tools/deploy/sysom.conf
rename to tools/nginx/nginx-sysom.conf
index ffb731d3b69f46d6a2943efeb277726b7c6b34cf..e740f7fa0b9e488ef8232c4b095c77abacc6cc56 100644
--- a/tools/deploy/sysom.conf
+++ b/tools/nginx/nginx-sysom.conf
@@ -1,7 +1,11 @@
+upstream daphne {
+ server unix:/var/run/sysom/daphne.sock;
+}
+
server {
listen 80;
server_name _;
- root /home/sysom/target/sysom_web;
+ root /var/lib/sysom/ui/dist;
index index.html;
client_max_body_size 20m;
@@ -29,7 +33,7 @@ server {
}
location /download/ {
- alias /home/sysom/target/sysom_web/download/;
+ alias /var/lib/sysom/sysom_web/download/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
diff --git a/script/server/monitor/prometheus_get_node.py b/tools/prometheus/prometheus_get_node.py
similarity index 100%
rename from script/server/monitor/prometheus_get_node.py
rename to tools/prometheus/prometheus_get_node.py
diff --git a/tools/scripts/sysom-python b/tools/scripts/sysom-python
new file mode 100755
index 0000000000000000000000000000000000000000..8907fcd01a4db537db388421f90c0f8d29e02303
--- /dev/null
+++ b/tools/scripts/sysom-python
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+# Enable sysom virtualenv
+for venv_path in /var/lib/sysom/venv/sysom; do
+ if [ -f $venv_path/bin/activate ]; then
+ . $venv_path/bin/activate
+ fi
+done
+
+# Run the requested Python command, using the interpreter from the path
+exec python3 "$@"
diff --git a/tools/supervisord/sysom.ini b/tools/supervisord/sysom.ini
new file mode 100644
index 0000000000000000000000000000000000000000..370b25d2d865206662df786574b7f82e21864bc4
--- /dev/null
+++ b/tools/supervisord/sysom.ini
@@ -0,0 +1,35 @@
+[unix_http_server]
+chown = sysom:sysom
+
+[supervisord]
+umask = 022
+minfds = 4096
+
+[fcgi-program:sysom-daphne]
+socket=tcp://localhost:7001
+# command = /var/lib/sysom/venv/sysom/bin/daphne -u /var/run/sysom/daphne.sock sysom.asgi:application
+command=/var/lib/sysom/venv/sysom/bin/daphne -u /var/run/sysom/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers sysom.asgi:application
+directory = /var/lib/sysom
+user = sysom
+numprocs=1
+process_name=asgi%(process_num)d
+autostart = true
+autorestart = true
+stopwaitsecs = 5
+redirect_stderr = true
+stdout_logfile = /var/log/supervisor/sysom-daphne.log
+stdout_logfile_maxbytes = 2MB
+stdout_logfile_backups = 10
+
+[program:sysom-rsyslogd]
+command = rsyslogd -n -i /var/run/sysom-rsyslog/rsyslog.pid -f /var/lib/sysom/rsyslog/rsyslog.conf
+user = sysom
+autostart = true
+autorestart = true
+stopwaitsecs = 5
+stopsignal=TERM
+stopasgroup=true
+killasgroup=true
+redirect_stderr=true
+stdout_logfile=/var/log/supervisor/sysom-rsyslog.log
+stdout_logfile_maxbytes=0
diff --git a/script/server/vmcore/parse_panic.py b/tools/vmcore/parse_panic.py
similarity index 100%
rename from script/server/vmcore/parse_panic.py
rename to tools/vmcore/parse_panic.py
diff --git a/script/node/vmcore/vmcore_collect.py b/tools/vmcore/vmcore_collect.py
similarity index 100%
rename from script/node/vmcore/vmcore_collect.py
rename to tools/vmcore/vmcore_collect.py
diff --git a/script/server/vmcore/vmcore_const.py b/tools/vmcore/vmcore_const.py
similarity index 100%
rename from script/server/vmcore/vmcore_const.py
rename to tools/vmcore/vmcore_const.py
diff --git a/sysom_web/README.md b/ui/README.md
similarity index 100%
rename from sysom_web/README.md
rename to ui/README.md
diff --git a/sysom_web/config/config.dev.js b/ui/config/config.dev.js
similarity index 100%
rename from sysom_web/config/config.dev.js
rename to ui/config/config.dev.js
diff --git a/sysom_web/config/config.js b/ui/config/config.js
similarity index 100%
rename from sysom_web/config/config.js
rename to ui/config/config.js
diff --git a/sysom_web/config/defaultSettings.js b/ui/config/defaultSettings.js
similarity index 100%
rename from sysom_web/config/defaultSettings.js
rename to ui/config/defaultSettings.js
diff --git a/sysom_web/config/oneapi.json b/ui/config/oneapi.json
similarity index 100%
rename from sysom_web/config/oneapi.json
rename to ui/config/oneapi.json
diff --git a/sysom_web/config/proxy.js b/ui/config/proxy.js
similarity index 100%
rename from sysom_web/config/proxy.js
rename to ui/config/proxy.js
diff --git a/sysom_web/config/routes.js b/ui/config/routes.js
similarity index 100%
rename from sysom_web/config/routes.js
rename to ui/config/routes.js
diff --git a/sysom_web/jest.config.js b/ui/jest.config.js
similarity index 100%
rename from sysom_web/jest.config.js
rename to ui/jest.config.js
diff --git a/sysom_web/jsconfig.json b/ui/jsconfig.json
similarity index 100%
rename from sysom_web/jsconfig.json
rename to ui/jsconfig.json
diff --git a/sysom_web/package.json b/ui/package.json
similarity index 100%
rename from sysom_web/package.json
rename to ui/package.json
diff --git a/sysom_web/dist/CNAME b/ui/public/CNAME
similarity index 100%
rename from sysom_web/dist/CNAME
rename to ui/public/CNAME
diff --git a/sysom_web/dist/favicon.ico b/ui/public/favicon.ico
similarity index 100%
rename from sysom_web/dist/favicon.ico
rename to ui/public/favicon.ico
diff --git a/sysom_web/dist/icons/icon-128x128.png b/ui/public/icons/icon-128x128.png
similarity index 100%
rename from sysom_web/dist/icons/icon-128x128.png
rename to ui/public/icons/icon-128x128.png
diff --git a/sysom_web/dist/icons/icon-192x192.png b/ui/public/icons/icon-192x192.png
similarity index 100%
rename from sysom_web/dist/icons/icon-192x192.png
rename to ui/public/icons/icon-192x192.png
diff --git a/sysom_web/dist/icons/icon-512x512.png b/ui/public/icons/icon-512x512.png
similarity index 100%
rename from sysom_web/dist/icons/icon-512x512.png
rename to ui/public/icons/icon-512x512.png
diff --git a/sysom_web/dist/logo.svg b/ui/public/logo.svg
similarity index 100%
rename from sysom_web/dist/logo.svg
rename to ui/public/logo.svg
diff --git a/sysom_web/dist/pro_icon.svg b/ui/public/pro_icon.svg
similarity index 100%
rename from sysom_web/dist/pro_icon.svg
rename to ui/public/pro_icon.svg
diff --git a/sysom_web/src/access.js b/ui/src/access.js
similarity index 100%
rename from sysom_web/src/access.js
rename to ui/src/access.js
diff --git a/sysom_web/src/app.jsx b/ui/src/app.jsx
similarity index 100%
rename from sysom_web/src/app.jsx
rename to ui/src/app.jsx
diff --git a/sysom_web/src/components/Footer/index.jsx b/ui/src/components/Footer/index.jsx
similarity index 100%
rename from sysom_web/src/components/Footer/index.jsx
rename to ui/src/components/Footer/index.jsx
diff --git a/sysom_web/src/components/HeaderDropdown/index.jsx b/ui/src/components/HeaderDropdown/index.jsx
similarity index 100%
rename from sysom_web/src/components/HeaderDropdown/index.jsx
rename to ui/src/components/HeaderDropdown/index.jsx
diff --git a/sysom_web/src/components/HeaderDropdown/index.less b/ui/src/components/HeaderDropdown/index.less
similarity index 100%
rename from sysom_web/src/components/HeaderDropdown/index.less
rename to ui/src/components/HeaderDropdown/index.less
diff --git a/sysom_web/src/components/HeaderSearch/index.jsx b/ui/src/components/HeaderSearch/index.jsx
similarity index 100%
rename from sysom_web/src/components/HeaderSearch/index.jsx
rename to ui/src/components/HeaderSearch/index.jsx
diff --git a/sysom_web/src/components/HeaderSearch/index.less b/ui/src/components/HeaderSearch/index.less
similarity index 100%
rename from sysom_web/src/components/HeaderSearch/index.less
rename to ui/src/components/HeaderSearch/index.less
diff --git a/sysom_web/src/components/NoticeIcon/NoticeIcon.jsx b/ui/src/components/NoticeIcon/NoticeIcon.jsx
similarity index 100%
rename from sysom_web/src/components/NoticeIcon/NoticeIcon.jsx
rename to ui/src/components/NoticeIcon/NoticeIcon.jsx
diff --git a/sysom_web/src/components/NoticeIcon/NoticeList.jsx b/ui/src/components/NoticeIcon/NoticeList.jsx
similarity index 100%
rename from sysom_web/src/components/NoticeIcon/NoticeList.jsx
rename to ui/src/components/NoticeIcon/NoticeList.jsx
diff --git a/sysom_web/src/components/NoticeIcon/NoticeList.less b/ui/src/components/NoticeIcon/NoticeList.less
similarity index 100%
rename from sysom_web/src/components/NoticeIcon/NoticeList.less
rename to ui/src/components/NoticeIcon/NoticeList.less
diff --git a/sysom_web/src/components/NoticeIcon/index.jsx b/ui/src/components/NoticeIcon/index.jsx
similarity index 100%
rename from sysom_web/src/components/NoticeIcon/index.jsx
rename to ui/src/components/NoticeIcon/index.jsx
diff --git a/sysom_web/src/components/NoticeIcon/index.less b/ui/src/components/NoticeIcon/index.less
similarity index 100%
rename from sysom_web/src/components/NoticeIcon/index.less
rename to ui/src/components/NoticeIcon/index.less
diff --git a/sysom_web/src/components/RightContent/AvatarDropdown.jsx b/ui/src/components/RightContent/AvatarDropdown.jsx
similarity index 100%
rename from sysom_web/src/components/RightContent/AvatarDropdown.jsx
rename to ui/src/components/RightContent/AvatarDropdown.jsx
diff --git a/sysom_web/src/components/RightContent/index.jsx b/ui/src/components/RightContent/index.jsx
similarity index 100%
rename from sysom_web/src/components/RightContent/index.jsx
rename to ui/src/components/RightContent/index.jsx
diff --git a/sysom_web/src/components/RightContent/index.less b/ui/src/components/RightContent/index.less
similarity index 100%
rename from sysom_web/src/components/RightContent/index.less
rename to ui/src/components/RightContent/index.less
diff --git a/sysom_web/src/components/WebConsole/index.jsx b/ui/src/components/WebConsole/index.jsx
similarity index 100%
rename from sysom_web/src/components/WebConsole/index.jsx
rename to ui/src/components/WebConsole/index.jsx
diff --git a/sysom_web/src/components/WebConsole/index.less b/ui/src/components/WebConsole/index.less
similarity index 100%
rename from sysom_web/src/components/WebConsole/index.less
rename to ui/src/components/WebConsole/index.less
diff --git a/sysom_web/src/components/index.md b/ui/src/components/index.md
similarity index 100%
rename from sysom_web/src/components/index.md
rename to ui/src/components/index.md
diff --git a/sysom_web/src/e2e/baseLayout.e2e.js b/ui/src/e2e/baseLayout.e2e.js
similarity index 100%
rename from sysom_web/src/e2e/baseLayout.e2e.js
rename to ui/src/e2e/baseLayout.e2e.js
diff --git a/sysom_web/src/global.jsx b/ui/src/global.jsx
similarity index 100%
rename from sysom_web/src/global.jsx
rename to ui/src/global.jsx
diff --git a/sysom_web/src/global.less b/ui/src/global.less
similarity index 100%
rename from sysom_web/src/global.less
rename to ui/src/global.less
diff --git a/sysom_web/src/locales/bn-BD.js b/ui/src/locales/bn-BD.js
similarity index 100%
rename from sysom_web/src/locales/bn-BD.js
rename to ui/src/locales/bn-BD.js
diff --git a/sysom_web/src/locales/bn-BD/component.js b/ui/src/locales/bn-BD/component.js
similarity index 100%
rename from sysom_web/src/locales/bn-BD/component.js
rename to ui/src/locales/bn-BD/component.js
diff --git a/sysom_web/src/locales/bn-BD/globalHeader.js b/ui/src/locales/bn-BD/globalHeader.js
similarity index 100%
rename from sysom_web/src/locales/bn-BD/globalHeader.js
rename to ui/src/locales/bn-BD/globalHeader.js
diff --git a/sysom_web/src/locales/bn-BD/menu.js b/ui/src/locales/bn-BD/menu.js
similarity index 100%
rename from sysom_web/src/locales/bn-BD/menu.js
rename to ui/src/locales/bn-BD/menu.js
diff --git a/sysom_web/src/locales/bn-BD/pages.js b/ui/src/locales/bn-BD/pages.js
similarity index 100%
rename from sysom_web/src/locales/bn-BD/pages.js
rename to ui/src/locales/bn-BD/pages.js
diff --git a/sysom_web/src/locales/bn-BD/pwa.js b/ui/src/locales/bn-BD/pwa.js
similarity index 100%
rename from sysom_web/src/locales/bn-BD/pwa.js
rename to ui/src/locales/bn-BD/pwa.js
diff --git a/sysom_web/src/locales/bn-BD/settingDrawer.js b/ui/src/locales/bn-BD/settingDrawer.js
similarity index 100%
rename from sysom_web/src/locales/bn-BD/settingDrawer.js
rename to ui/src/locales/bn-BD/settingDrawer.js
diff --git a/sysom_web/src/locales/bn-BD/settings.js b/ui/src/locales/bn-BD/settings.js
similarity index 100%
rename from sysom_web/src/locales/bn-BD/settings.js
rename to ui/src/locales/bn-BD/settings.js
diff --git a/sysom_web/src/locales/en-US.js b/ui/src/locales/en-US.js
similarity index 100%
rename from sysom_web/src/locales/en-US.js
rename to ui/src/locales/en-US.js
diff --git a/sysom_web/src/locales/en-US/component.js b/ui/src/locales/en-US/component.js
similarity index 100%
rename from sysom_web/src/locales/en-US/component.js
rename to ui/src/locales/en-US/component.js
diff --git a/sysom_web/src/locales/en-US/globalHeader.js b/ui/src/locales/en-US/globalHeader.js
similarity index 100%
rename from sysom_web/src/locales/en-US/globalHeader.js
rename to ui/src/locales/en-US/globalHeader.js
diff --git a/sysom_web/src/locales/en-US/menu.js b/ui/src/locales/en-US/menu.js
similarity index 100%
rename from sysom_web/src/locales/en-US/menu.js
rename to ui/src/locales/en-US/menu.js
diff --git a/sysom_web/src/locales/en-US/pages.js b/ui/src/locales/en-US/pages.js
similarity index 100%
rename from sysom_web/src/locales/en-US/pages.js
rename to ui/src/locales/en-US/pages.js
diff --git a/sysom_web/src/locales/en-US/pwa.js b/ui/src/locales/en-US/pwa.js
similarity index 100%
rename from sysom_web/src/locales/en-US/pwa.js
rename to ui/src/locales/en-US/pwa.js
diff --git a/sysom_web/src/locales/en-US/settingDrawer.js b/ui/src/locales/en-US/settingDrawer.js
similarity index 100%
rename from sysom_web/src/locales/en-US/settingDrawer.js
rename to ui/src/locales/en-US/settingDrawer.js
diff --git a/sysom_web/src/locales/en-US/settings.js b/ui/src/locales/en-US/settings.js
similarity index 100%
rename from sysom_web/src/locales/en-US/settings.js
rename to ui/src/locales/en-US/settings.js
diff --git a/sysom_web/src/locales/fa-IR.js b/ui/src/locales/fa-IR.js
similarity index 100%
rename from sysom_web/src/locales/fa-IR.js
rename to ui/src/locales/fa-IR.js
diff --git a/sysom_web/src/locales/fa-IR/component.js b/ui/src/locales/fa-IR/component.js
similarity index 100%
rename from sysom_web/src/locales/fa-IR/component.js
rename to ui/src/locales/fa-IR/component.js
diff --git a/sysom_web/src/locales/fa-IR/globalHeader.js b/ui/src/locales/fa-IR/globalHeader.js
similarity index 100%
rename from sysom_web/src/locales/fa-IR/globalHeader.js
rename to ui/src/locales/fa-IR/globalHeader.js
diff --git a/sysom_web/src/locales/fa-IR/menu.js b/ui/src/locales/fa-IR/menu.js
similarity index 100%
rename from sysom_web/src/locales/fa-IR/menu.js
rename to ui/src/locales/fa-IR/menu.js
diff --git a/sysom_web/src/locales/fa-IR/pages.js b/ui/src/locales/fa-IR/pages.js
similarity index 100%
rename from sysom_web/src/locales/fa-IR/pages.js
rename to ui/src/locales/fa-IR/pages.js
diff --git a/sysom_web/src/locales/fa-IR/pwa.js b/ui/src/locales/fa-IR/pwa.js
similarity index 100%
rename from sysom_web/src/locales/fa-IR/pwa.js
rename to ui/src/locales/fa-IR/pwa.js
diff --git a/sysom_web/src/locales/fa-IR/settingDrawer.js b/ui/src/locales/fa-IR/settingDrawer.js
similarity index 100%
rename from sysom_web/src/locales/fa-IR/settingDrawer.js
rename to ui/src/locales/fa-IR/settingDrawer.js
diff --git a/sysom_web/src/locales/fa-IR/settings.js b/ui/src/locales/fa-IR/settings.js
similarity index 100%
rename from sysom_web/src/locales/fa-IR/settings.js
rename to ui/src/locales/fa-IR/settings.js
diff --git a/sysom_web/src/locales/id-ID.js b/ui/src/locales/id-ID.js
similarity index 100%
rename from sysom_web/src/locales/id-ID.js
rename to ui/src/locales/id-ID.js
diff --git a/sysom_web/src/locales/id-ID/component.js b/ui/src/locales/id-ID/component.js
similarity index 100%
rename from sysom_web/src/locales/id-ID/component.js
rename to ui/src/locales/id-ID/component.js
diff --git a/sysom_web/src/locales/id-ID/globalHeader.js b/ui/src/locales/id-ID/globalHeader.js
similarity index 100%
rename from sysom_web/src/locales/id-ID/globalHeader.js
rename to ui/src/locales/id-ID/globalHeader.js
diff --git a/sysom_web/src/locales/id-ID/menu.js b/ui/src/locales/id-ID/menu.js
similarity index 100%
rename from sysom_web/src/locales/id-ID/menu.js
rename to ui/src/locales/id-ID/menu.js
diff --git a/sysom_web/src/locales/id-ID/pages.js b/ui/src/locales/id-ID/pages.js
similarity index 100%
rename from sysom_web/src/locales/id-ID/pages.js
rename to ui/src/locales/id-ID/pages.js
diff --git a/sysom_web/src/locales/id-ID/pwa.js b/ui/src/locales/id-ID/pwa.js
similarity index 100%
rename from sysom_web/src/locales/id-ID/pwa.js
rename to ui/src/locales/id-ID/pwa.js
diff --git a/sysom_web/src/locales/id-ID/settingDrawer.js b/ui/src/locales/id-ID/settingDrawer.js
similarity index 100%
rename from sysom_web/src/locales/id-ID/settingDrawer.js
rename to ui/src/locales/id-ID/settingDrawer.js
diff --git a/sysom_web/src/locales/id-ID/settings.js b/ui/src/locales/id-ID/settings.js
similarity index 100%
rename from sysom_web/src/locales/id-ID/settings.js
rename to ui/src/locales/id-ID/settings.js
diff --git a/sysom_web/src/locales/ja-JP.js b/ui/src/locales/ja-JP.js
similarity index 100%
rename from sysom_web/src/locales/ja-JP.js
rename to ui/src/locales/ja-JP.js
diff --git a/sysom_web/src/locales/ja-JP/component.js b/ui/src/locales/ja-JP/component.js
similarity index 100%
rename from sysom_web/src/locales/ja-JP/component.js
rename to ui/src/locales/ja-JP/component.js
diff --git a/sysom_web/src/locales/ja-JP/globalHeader.js b/ui/src/locales/ja-JP/globalHeader.js
similarity index 100%
rename from sysom_web/src/locales/ja-JP/globalHeader.js
rename to ui/src/locales/ja-JP/globalHeader.js
diff --git a/sysom_web/src/locales/ja-JP/menu.js b/ui/src/locales/ja-JP/menu.js
similarity index 100%
rename from sysom_web/src/locales/ja-JP/menu.js
rename to ui/src/locales/ja-JP/menu.js
diff --git a/sysom_web/src/locales/ja-JP/pages.js b/ui/src/locales/ja-JP/pages.js
similarity index 100%
rename from sysom_web/src/locales/ja-JP/pages.js
rename to ui/src/locales/ja-JP/pages.js
diff --git a/sysom_web/src/locales/ja-JP/pwa.js b/ui/src/locales/ja-JP/pwa.js
similarity index 100%
rename from sysom_web/src/locales/ja-JP/pwa.js
rename to ui/src/locales/ja-JP/pwa.js
diff --git a/sysom_web/src/locales/ja-JP/settingDrawer.js b/ui/src/locales/ja-JP/settingDrawer.js
similarity index 100%
rename from sysom_web/src/locales/ja-JP/settingDrawer.js
rename to ui/src/locales/ja-JP/settingDrawer.js
diff --git a/sysom_web/src/locales/ja-JP/settings.js b/ui/src/locales/ja-JP/settings.js
similarity index 100%
rename from sysom_web/src/locales/ja-JP/settings.js
rename to ui/src/locales/ja-JP/settings.js
diff --git a/sysom_web/src/locales/pt-BR.js b/ui/src/locales/pt-BR.js
similarity index 100%
rename from sysom_web/src/locales/pt-BR.js
rename to ui/src/locales/pt-BR.js
diff --git a/sysom_web/src/locales/pt-BR/component.js b/ui/src/locales/pt-BR/component.js
similarity index 100%
rename from sysom_web/src/locales/pt-BR/component.js
rename to ui/src/locales/pt-BR/component.js
diff --git a/sysom_web/src/locales/pt-BR/globalHeader.js b/ui/src/locales/pt-BR/globalHeader.js
similarity index 100%
rename from sysom_web/src/locales/pt-BR/globalHeader.js
rename to ui/src/locales/pt-BR/globalHeader.js
diff --git a/sysom_web/src/locales/pt-BR/menu.js b/ui/src/locales/pt-BR/menu.js
similarity index 100%
rename from sysom_web/src/locales/pt-BR/menu.js
rename to ui/src/locales/pt-BR/menu.js
diff --git a/sysom_web/src/locales/pt-BR/pages.js b/ui/src/locales/pt-BR/pages.js
similarity index 100%
rename from sysom_web/src/locales/pt-BR/pages.js
rename to ui/src/locales/pt-BR/pages.js
diff --git a/sysom_web/src/locales/pt-BR/pwa.js b/ui/src/locales/pt-BR/pwa.js
similarity index 100%
rename from sysom_web/src/locales/pt-BR/pwa.js
rename to ui/src/locales/pt-BR/pwa.js
diff --git a/sysom_web/src/locales/pt-BR/settingDrawer.js b/ui/src/locales/pt-BR/settingDrawer.js
similarity index 100%
rename from sysom_web/src/locales/pt-BR/settingDrawer.js
rename to ui/src/locales/pt-BR/settingDrawer.js
diff --git a/sysom_web/src/locales/pt-BR/settings.js b/ui/src/locales/pt-BR/settings.js
similarity index 100%
rename from sysom_web/src/locales/pt-BR/settings.js
rename to ui/src/locales/pt-BR/settings.js
diff --git a/sysom_web/src/locales/zh-CN.js b/ui/src/locales/zh-CN.js
similarity index 100%
rename from sysom_web/src/locales/zh-CN.js
rename to ui/src/locales/zh-CN.js
diff --git a/sysom_web/src/locales/zh-CN/component.js b/ui/src/locales/zh-CN/component.js
similarity index 100%
rename from sysom_web/src/locales/zh-CN/component.js
rename to ui/src/locales/zh-CN/component.js
diff --git a/sysom_web/src/locales/zh-CN/globalHeader.js b/ui/src/locales/zh-CN/globalHeader.js
similarity index 100%
rename from sysom_web/src/locales/zh-CN/globalHeader.js
rename to ui/src/locales/zh-CN/globalHeader.js
diff --git a/sysom_web/src/locales/zh-CN/menu.js b/ui/src/locales/zh-CN/menu.js
similarity index 100%
rename from sysom_web/src/locales/zh-CN/menu.js
rename to ui/src/locales/zh-CN/menu.js
diff --git a/sysom_web/src/locales/zh-CN/pages.js b/ui/src/locales/zh-CN/pages.js
similarity index 100%
rename from sysom_web/src/locales/zh-CN/pages.js
rename to ui/src/locales/zh-CN/pages.js
diff --git a/sysom_web/src/locales/zh-CN/pwa.js b/ui/src/locales/zh-CN/pwa.js
similarity index 100%
rename from sysom_web/src/locales/zh-CN/pwa.js
rename to ui/src/locales/zh-CN/pwa.js
diff --git a/sysom_web/src/locales/zh-CN/settingDrawer.js b/ui/src/locales/zh-CN/settingDrawer.js
similarity index 100%
rename from sysom_web/src/locales/zh-CN/settingDrawer.js
rename to ui/src/locales/zh-CN/settingDrawer.js
diff --git a/sysom_web/src/locales/zh-CN/settings.js b/ui/src/locales/zh-CN/settings.js
similarity index 100%
rename from sysom_web/src/locales/zh-CN/settings.js
rename to ui/src/locales/zh-CN/settings.js
diff --git a/sysom_web/src/locales/zh-TW.js b/ui/src/locales/zh-TW.js
similarity index 100%
rename from sysom_web/src/locales/zh-TW.js
rename to ui/src/locales/zh-TW.js
diff --git a/sysom_web/src/locales/zh-TW/component.js b/ui/src/locales/zh-TW/component.js
similarity index 100%
rename from sysom_web/src/locales/zh-TW/component.js
rename to ui/src/locales/zh-TW/component.js
diff --git a/sysom_web/src/locales/zh-TW/globalHeader.js b/ui/src/locales/zh-TW/globalHeader.js
similarity index 100%
rename from sysom_web/src/locales/zh-TW/globalHeader.js
rename to ui/src/locales/zh-TW/globalHeader.js
diff --git a/sysom_web/src/locales/zh-TW/menu.js b/ui/src/locales/zh-TW/menu.js
similarity index 100%
rename from sysom_web/src/locales/zh-TW/menu.js
rename to ui/src/locales/zh-TW/menu.js
diff --git a/sysom_web/src/locales/zh-TW/pwa.js b/ui/src/locales/zh-TW/pwa.js
similarity index 100%
rename from sysom_web/src/locales/zh-TW/pwa.js
rename to ui/src/locales/zh-TW/pwa.js
diff --git a/sysom_web/src/locales/zh-TW/settingDrawer.js b/ui/src/locales/zh-TW/settingDrawer.js
similarity index 100%
rename from sysom_web/src/locales/zh-TW/settingDrawer.js
rename to ui/src/locales/zh-TW/settingDrawer.js
diff --git a/sysom_web/src/locales/zh-TW/settings.js b/ui/src/locales/zh-TW/settings.js
similarity index 100%
rename from sysom_web/src/locales/zh-TW/settings.js
rename to ui/src/locales/zh-TW/settings.js
diff --git a/sysom_web/src/manifest.json b/ui/src/manifest.json
similarity index 100%
rename from sysom_web/src/manifest.json
rename to ui/src/manifest.json
diff --git a/sysom_web/src/pages/404.jsx b/ui/src/pages/404.jsx
similarity index 100%
rename from sysom_web/src/pages/404.jsx
rename to ui/src/pages/404.jsx
diff --git a/sysom_web/src/pages/Admin.jsx b/ui/src/pages/Admin.jsx
similarity index 100%
rename from sysom_web/src/pages/Admin.jsx
rename to ui/src/pages/Admin.jsx
diff --git a/sysom_web/src/pages/Monitor/SystemDashboard.jsx b/ui/src/pages/Monitor/SystemDashboard.jsx
similarity index 100%
rename from sysom_web/src/pages/Monitor/SystemDashboard.jsx
rename to ui/src/pages/Monitor/SystemDashboard.jsx
diff --git a/sysom_web/src/pages/Welcome.jsx b/ui/src/pages/Welcome.jsx
similarity index 100%
rename from sysom_web/src/pages/Welcome.jsx
rename to ui/src/pages/Welcome.jsx
diff --git a/sysom_web/src/pages/Welcome.less b/ui/src/pages/Welcome.less
similarity index 100%
rename from sysom_web/src/pages/Welcome.less
rename to ui/src/pages/Welcome.less
diff --git a/sysom_web/src/pages/diagnose/Io/IOResults.js b/ui/src/pages/diagnose/Io/IOResults.js
similarity index 100%
rename from sysom_web/src/pages/diagnose/Io/IOResults.js
rename to ui/src/pages/diagnose/Io/IOResults.js
diff --git a/sysom_web/src/pages/diagnose/Io/IOTableList.jsx b/ui/src/pages/diagnose/Io/IOTableList.jsx
similarity index 100%
rename from sysom_web/src/pages/diagnose/Io/IOTableList.jsx
rename to ui/src/pages/diagnose/Io/IOTableList.jsx
diff --git a/sysom_web/src/pages/diagnose/Io/index.jsx b/ui/src/pages/diagnose/Io/index.jsx
similarity index 100%
rename from sysom_web/src/pages/diagnose/Io/index.jsx
rename to ui/src/pages/diagnose/Io/index.jsx
diff --git a/sysom_web/src/pages/diagnose/Net/NetTableList.jsx b/ui/src/pages/diagnose/Net/NetTableList.jsx
similarity index 100%
rename from sysom_web/src/pages/diagnose/Net/NetTableList.jsx
rename to ui/src/pages/diagnose/Net/NetTableList.jsx
diff --git a/sysom_web/src/pages/diagnose/Net/NetworkFlow.js b/ui/src/pages/diagnose/Net/NetworkFlow.js
similarity index 100%
rename from sysom_web/src/pages/diagnose/Net/NetworkFlow.js
rename to ui/src/pages/diagnose/Net/NetworkFlow.js
diff --git a/sysom_web/src/pages/diagnose/Net/PacketLoss.js b/ui/src/pages/diagnose/Net/PacketLoss.js
similarity index 100%
rename from sysom_web/src/pages/diagnose/Net/PacketLoss.js
rename to ui/src/pages/diagnose/Net/PacketLoss.js
diff --git a/sysom_web/src/pages/diagnose/Net/index.jsx b/ui/src/pages/diagnose/Net/index.jsx
similarity index 100%
rename from sysom_web/src/pages/diagnose/Net/index.jsx
rename to ui/src/pages/diagnose/Net/index.jsx
diff --git a/sysom_web/src/pages/diagnose/_mock.js b/ui/src/pages/diagnose/_mock.js
similarity index 100%
rename from sysom_web/src/pages/diagnose/_mock.js
rename to ui/src/pages/diagnose/_mock.js
diff --git a/sysom_web/src/pages/diagnose/components/MetricShow.js b/ui/src/pages/diagnose/components/MetricShow.js
similarity index 100%
rename from sysom_web/src/pages/diagnose/components/MetricShow.js
rename to ui/src/pages/diagnose/components/MetricShow.js
diff --git a/sysom_web/src/pages/diagnose/diagnose.less b/ui/src/pages/diagnose/diagnose.less
similarity index 100%
rename from sysom_web/src/pages/diagnose/diagnose.less
rename to ui/src/pages/diagnose/diagnose.less
diff --git a/sysom_web/src/pages/diagnose/service.js b/ui/src/pages/diagnose/service.js
similarity index 100%
rename from sysom_web/src/pages/diagnose/service.js
rename to ui/src/pages/diagnose/service.js
diff --git a/sysom_web/src/pages/document.ejs b/ui/src/pages/document.ejs
similarity index 100%
rename from sysom_web/src/pages/document.ejs
rename to ui/src/pages/document.ejs
diff --git a/sysom_web/src/pages/host/List/index.jsx b/ui/src/pages/host/List/index.jsx
similarity index 100%
rename from sysom_web/src/pages/host/List/index.jsx
rename to ui/src/pages/host/List/index.jsx
diff --git a/sysom_web/src/pages/host/Terminal/index.jsx b/ui/src/pages/host/Terminal/index.jsx
similarity index 100%
rename from sysom_web/src/pages/host/Terminal/index.jsx
rename to ui/src/pages/host/Terminal/index.jsx
diff --git a/sysom_web/src/pages/host/_mock.js b/ui/src/pages/host/_mock.js
similarity index 100%
rename from sysom_web/src/pages/host/_mock.js
rename to ui/src/pages/host/_mock.js
diff --git a/sysom_web/src/pages/host/components/ClusterForm.jsx b/ui/src/pages/host/components/ClusterForm.jsx
similarity index 100%
rename from sysom_web/src/pages/host/components/ClusterForm.jsx
rename to ui/src/pages/host/components/ClusterForm.jsx
diff --git a/sysom_web/src/pages/host/service.js b/ui/src/pages/host/service.js
similarity index 100%
rename from sysom_web/src/pages/host/service.js
rename to ui/src/pages/host/service.js
diff --git a/sysom_web/src/pages/user/Login/_mock.js b/ui/src/pages/user/Login/_mock.js
similarity index 100%
rename from sysom_web/src/pages/user/Login/_mock.js
rename to ui/src/pages/user/Login/_mock.js
diff --git a/sysom_web/src/pages/user/Login/index.jsx b/ui/src/pages/user/Login/index.jsx
similarity index 100%
rename from sysom_web/src/pages/user/Login/index.jsx
rename to ui/src/pages/user/Login/index.jsx
diff --git a/sysom_web/src/pages/user/Login/index.less b/ui/src/pages/user/Login/index.less
similarity index 100%
rename from sysom_web/src/pages/user/Login/index.less
rename to ui/src/pages/user/Login/index.less
diff --git a/sysom_web/src/pages/user/Login/service.js b/ui/src/pages/user/Login/service.js
similarity index 100%
rename from sysom_web/src/pages/user/Login/service.js
rename to ui/src/pages/user/Login/service.js
diff --git a/sysom_web/src/pages/vmcore/Analyse/index.jsx b/ui/src/pages/vmcore/Analyse/index.jsx
similarity index 100%
rename from sysom_web/src/pages/vmcore/Analyse/index.jsx
rename to ui/src/pages/vmcore/Analyse/index.jsx
diff --git a/sysom_web/src/pages/vmcore/Detail/index.jsx b/ui/src/pages/vmcore/Detail/index.jsx
similarity index 100%
rename from sysom_web/src/pages/vmcore/Detail/index.jsx
rename to ui/src/pages/vmcore/Detail/index.jsx
diff --git a/sysom_web/src/pages/vmcore/List/index.jsx b/ui/src/pages/vmcore/List/index.jsx
similarity index 100%
rename from sysom_web/src/pages/vmcore/List/index.jsx
rename to ui/src/pages/vmcore/List/index.jsx
diff --git a/sysom_web/src/pages/vmcore/Match/index.jsx b/ui/src/pages/vmcore/Match/index.jsx
similarity index 100%
rename from sysom_web/src/pages/vmcore/Match/index.jsx
rename to ui/src/pages/vmcore/Match/index.jsx
diff --git a/sysom_web/src/pages/vmcore/_mock.js b/ui/src/pages/vmcore/_mock.js
similarity index 100%
rename from sysom_web/src/pages/vmcore/_mock.js
rename to ui/src/pages/vmcore/_mock.js
diff --git a/sysom_web/src/pages/vmcore/components/VmcoreCard.jsx b/ui/src/pages/vmcore/components/VmcoreCard.jsx
similarity index 100%
rename from sysom_web/src/pages/vmcore/components/VmcoreCard.jsx
rename to ui/src/pages/vmcore/components/VmcoreCard.jsx
diff --git a/sysom_web/src/pages/vmcore/components/VmcoreIssueForm.jsx b/ui/src/pages/vmcore/components/VmcoreIssueForm.jsx
similarity index 100%
rename from sysom_web/src/pages/vmcore/components/VmcoreIssueForm.jsx
rename to ui/src/pages/vmcore/components/VmcoreIssueForm.jsx
diff --git a/sysom_web/src/pages/vmcore/components/VmcoreTableList.jsx b/ui/src/pages/vmcore/components/VmcoreTableList.jsx
similarity index 100%
rename from sysom_web/src/pages/vmcore/components/VmcoreTableList.jsx
rename to ui/src/pages/vmcore/components/VmcoreTableList.jsx
diff --git a/sysom_web/src/pages/vmcore/service.js b/ui/src/pages/vmcore/service.js
similarity index 100%
rename from sysom_web/src/pages/vmcore/service.js
rename to ui/src/pages/vmcore/service.js
diff --git a/sysom_web/src/service-worker.js b/ui/src/service-worker.js
similarity index 100%
rename from sysom_web/src/service-worker.js
rename to ui/src/service-worker.js
diff --git a/sysom_web/src/static/img/banner1.jpg b/ui/src/static/img/banner1.jpg
similarity index 100%
rename from sysom_web/src/static/img/banner1.jpg
rename to ui/src/static/img/banner1.jpg
diff --git a/sysom_web/src/static/img/banner2.jpg b/ui/src/static/img/banner2.jpg
similarity index 100%
rename from sysom_web/src/static/img/banner2.jpg
rename to ui/src/static/img/banner2.jpg
diff --git a/sysom_web/src/static/img/banner3.jpg b/ui/src/static/img/banner3.jpg
similarity index 100%
rename from sysom_web/src/static/img/banner3.jpg
rename to ui/src/static/img/banner3.jpg
diff --git a/sysom_web/tests/PuppeteerEnvironment.js b/ui/tests/PuppeteerEnvironment.js
similarity index 100%
rename from sysom_web/tests/PuppeteerEnvironment.js
rename to ui/tests/PuppeteerEnvironment.js
diff --git a/sysom_web/tests/beforeTest.js b/ui/tests/beforeTest.js
similarity index 100%
rename from sysom_web/tests/beforeTest.js
rename to ui/tests/beforeTest.js
diff --git a/sysom_web/tests/getBrowser.js b/ui/tests/getBrowser.js
similarity index 100%
rename from sysom_web/tests/getBrowser.js
rename to ui/tests/getBrowser.js
diff --git a/sysom_web/tests/run-tests.js b/ui/tests/run-tests.js
similarity index 100%
rename from sysom_web/tests/run-tests.js
rename to ui/tests/run-tests.js
diff --git a/sysom_web/tests/setupTests.js b/ui/tests/setupTests.js
similarity index 100%
rename from sysom_web/tests/setupTests.js
rename to ui/tests/setupTests.js
diff --git a/sysom_web/yarn.lock b/ui/yarn.lock
similarity index 100%
rename from sysom_web/yarn.lock
rename to ui/yarn.lock