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 @@ -Group 28 Copy 5Created with Sketch. \ 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