diff --git a/docs/cec_develop_api.md b/docs/cec_develop_api.md new file mode 100644 index 0000000000000000000000000000000000000000..9fc26a388ebcc72c31944991246e38e0ce625dcf --- /dev/null +++ b/docs/cec_develop_api.md @@ -0,0 +1,118 @@ +# CEC框架中的API使用方法demo + +## 配置部分 + +```yaml +vars: + SERVICE_NAME: &SERVICE_NAME sysom_config_trace + SERVICE_CONSUMER_GROUP: + !concat &SERVICE_CONSUMER_GROUP [*SERVICE_NAME, "_consumer_group"] + +sysom_server: + cec: + consumer_group: *SERVICE_CONSUMER_GROUP + channel_job: + target_topic: SYSOM_CEC_CHANNEL_TOPIC + listen_topic: SYSOM_CEC_CHANNEL_CONFIGTRACE_TOPIC + consumer_group: *SERVICE_CONSUMER_GROUP + +sysom_service: + service_name: *SERVICE_NAME + service_dir: *SERVICE_NAME + config_path: config_trace.conf + +``` + +```python +from clogger import logger +import os +from pathlib import Path +from sysom_utils import ConfigParser, CecTarget, SysomFramework + +BASE_DIR = Path(__file__).resolve().parent.parent.parent + +################################################################## +# Load yaml config first +################################################################## +YAML_GLOBAL_CONFIG_PATH = f"{BASE_DIR.parent.parent}/conf/config.yml" + +if not os.path.exists(YAML_GLOBAL_CONFIG_PATH): + YAML_GLOBAL_CONFIG_PATH = f"/etc/sysom/config.yml" + +YAML_SERVICE_CONFIG_PATH = f"{BASE_DIR}/config.yml" + +YAML_CONFIG = ConfigParser(YAML_GLOBAL_CONFIG_PATH, YAML_SERVICE_CONFIG_PATH) +################################################################## +# Cec settings +################################################################## +SYSOM_CEC_PRODUCER_URL = YAML_CONFIG.get_cec_url(CecTarget.PRODUCER) +# 配置管理模块消费组 +SYSOM_CEC_CONFIGTRACE_CONSUMER_GROUP = "sysom_configtrace_consumer_group" +# 配置管理任务下发主题(由 View -> Executor) +SYSOM_CEC_CONFIGTRACE_TASK_DISPATCH_TOPIC = "SYSOM_CEC_CONFIGTRACE_TASK_DISPATCH_TOPIC" + +# channl_job SDK 需要的url +CHANNEL_JOB_URL = YAML_CONFIG.get_local_channel_job_url() + +################################################################## +# GClient Config +################################################################## +GCLIENT_PROTO = 'http' +GCLIENT_HOST = '127.0.0.1' +GCLIENT_PORT = '7003' + +########################################################################################## +# Web Config +########################################################################################## + +SysomFramework.init(YAML_CONFIG) + +``` + +## 执行命令 +```python +from channel_job import default_channel_job_executor +job = default_channel_job_executor.dispatch_job( + channel_type="ssh", + channel_opt="cmd", + params={ + "instance": "1.2.3.4", + "command": "ls ." + }, + timeout=10000, + auto_retry=False +) +channel_result = job.execute() +return channel_result.code +``` +## 传输文件 + +```python +from channel_job import default_channel_job_executor +job = default_channel_job_executor.dispatch_job( + params={ + "local_path": lpath, + "remote_path": rpath, + "instances": "1.2.3.4" + }, + opt="send-file", + timeout=10000, + auto_retry=False +) +channel_result = job.execute() +return channel_result.code +``` + +```python +from channel_job import default_channel_job_executor +job = default_channel_job_executor.dispatch_file_job( + params={ + "local_path": lpath, + "remote_path": rpath, + "instance": ip + }, + opt="get-file" + ) +channel_result = job.execute() +return channel_result.code +``` \ No newline at end of file