-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Description: Log:
- Loading branch information
Showing
4 changed files
with
105 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,9 +6,9 @@ | |
# SPDX-License-Identifier: GPL-2.0-only | ||
import json | ||
import os | ||
from concurrent.futures import ALL_COMPLETED | ||
from concurrent.futures import ThreadPoolExecutor | ||
from concurrent.futures import wait | ||
# from concurrent.futures import ALL_COMPLETED | ||
# from concurrent.futures import ThreadPoolExecutor | ||
# from concurrent.futures import wait | ||
from time import sleep | ||
from urllib.parse import urlencode | ||
|
||
|
@@ -17,6 +17,7 @@ | |
from src.pms._base import _Base | ||
from src.rtk._base import transform_app_name | ||
|
||
__all__ = [] | ||
|
||
class Csv2Pms(_Base): | ||
__author__ = "mikigo<[email protected]>" | ||
|
@@ -117,10 +118,10 @@ def push(value, index): | |
) | ||
print(f"({index}) {case_id} {data} {res.status}") | ||
|
||
tasks = [] | ||
executor = ThreadPoolExecutor() | ||
# tasks = [] | ||
# executor = ThreadPoolExecutor() | ||
for index, value in enumerate(taglines): | ||
# push(value, index) | ||
t = executor.submit(push, value, index) | ||
tasks.append(t) | ||
wait(tasks, return_when=ALL_COMPLETED) | ||
push(value, index) | ||
# t = executor.submit(push, value, index) | ||
# tasks.append(t) | ||
# wait(tasks, return_when=ALL_COMPLETED) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
#!/usr/bin/env python3 | ||
# _*_ coding:utf-8 _*_ | ||
|
||
# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. | ||
|
||
import functools | ||
# SPDX-License-Identifier: GPL-2.0-only | ||
import os | ||
import sys | ||
import time | ||
|
||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||
|
||
from setting import conf | ||
|
||
try: | ||
import zerorpc | ||
except ImportError: | ||
os.system("pip3 install zerorpc -i https://pypi.tuna.tsinghua.edu.cn/simple") | ||
time.sleep(1) | ||
import zerorpc | ||
|
||
|
||
def _context_manager(func): | ||
@functools.wraps(func) | ||
def wrapper(*args, **kwargs): | ||
|
||
tool_status = os.popen( | ||
f'''sshpass -p '{conf.PASSWORD}' ssh {kwargs['user']}@{kwargs['ip']} "ps -aux | grep remote_mousekey | grep -v grep"''' | ||
).read() | ||
if not tool_status: | ||
sudo = f"echo '{conf.PASSWORD}' | sudo -S" | ||
if "StrictHostKeyChecking no" not in os.popen("cat /etc/ssh/ssh_config").read(): | ||
os.system( | ||
f'{sudo} sed -i "s/# StrictHostKeyChecking ask/ StrictHostKeyChecking no/g" /etc/ssh/ssh_config' | ||
) | ||
if "/home/" not in conf.ROOT_DIR: | ||
raise EnvironmentError | ||
client_project_path = "/".join(conf.ROOT_DIR.split("/")[3:]) | ||
os.system( | ||
f'''sshpass -p '{conf.PASSWORD}' ssh {kwargs['user']}@{kwargs['ip']} "mkdir -p ~/{client_project_path}"''') | ||
exclude = "" | ||
for i in [ | ||
"apps", | ||
"report", | ||
"public", | ||
"__pycache__", | ||
".pytest_cache", | ||
".vscode", | ||
".idea", | ||
".git", | ||
"site", | ||
"docs", | ||
"site", | ||
"README.md", | ||
"README.en.md", | ||
"RELEASE.md", | ||
]: | ||
exclude += f"--exclude='{i}' " | ||
os.system( | ||
f"sshpass -p '{conf.PASSWORD}' rsync -av -e ssh {exclude} {conf.ROOT_DIR}/* " | ||
f"{kwargs['user']}@{kwargs['ip']}:~/{client_project_path}/" | ||
) | ||
os.system( | ||
f"sshpass -p '{conf.PASSWORD}' ssh {kwargs['user']}@{kwargs['ip']} " | ||
f'"cd ~/{client_project_path}/;' | ||
f'bash env.sh"' | ||
) | ||
_cmd = ( | ||
f"nohup sshpass -p '{conf.PASSWORD}' ssh {kwargs['user']}@{kwargs['ip']} " | ||
f'"cd ~/{client_project_path}/src/;' | ||
f'pipenv run python remotectl.py" > /tmp/remote_result.log 2>&1 &' | ||
) | ||
print(_cmd) | ||
res = os.popen(_cmd).read() | ||
print(res) | ||
time.sleep(2) | ||
return func(*args, **kwargs) | ||
|
||
return wrapper | ||
|
||
|
||
@_context_manager | ||
def remotectl(user, ip): | ||
r = zerorpc.Client(timeout=50, heartbeat=None) | ||
r.connect(f"tcp://{ip}:4242") | ||
return r | ||
|
||
|
||
if __name__ == '__main__': | ||
from src import Src | ||
|
||
server = zerorpc.Server(Src()) | ||
server.bind("tcp://0.0.0.0:4242") | ||
server.run() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters