core#

这是 SDK 的核心模块, 实现了各种底层方法.

acore_soap_app.sdk.core.build_cli_arg_for_gm(command: str, username: Optional[str] = None, password: Optional[str] = None, raises: bool = True, s3uri_output: Optional[str] = None, path_cli: str = '/home/ubuntu/git_repos/acore_soap_app-project/.venv/bin/acsoap') str[source]#

构造最终的 acsoap 命令行参数. 以便之后 pass 给 acore_soap_app.cli.main.Command.gm() 命令.

acore_soap_app.sdk.core.run_soap_command(bsm: BotoSesManager, server_id: str, request_like: Union[str, List[str], SOAPRequest, List[SOAPRequest]], username: Optional[str] = None, password: Optional[str] = None, raises: bool = True, s3uri_input: Optional[str] = None, s3uri_output: Optional[str] = None, path_cli: str = '/home/ubuntu/git_repos/acore_soap_app-project/.venv/bin/acsoap', sync: bool = True, delays: int = 1, timeout: int = 10, verbose: bool = True) Union[List[SOAPResponse], str][source]#

从任何地方, 通过 SSM Run Command, 远程执行 SOAP 命令.

Usage Example:

>>> response = run_soap_command(bsm, "sbx-blue", ".server info")
>>> response = run_soap_command(bsm, "sbx-blue", [".account create test1 test1", ".account create test2 test2"])
Parameters:
  • bsmboto_session_manager.BotoSesManager 对象, 定义了 AWS 权限.

  • server_id – AzerothCore 服务器的逻辑 ID, 命名规律为 “${env_name}-${server_name}”, 例如 “sbx-blue”

  • request_like – 请参考 batch_load

  • username – 默认的用户名, 只有当 request.username 为 None 的时候才会用到.

  • password – 默认的密码, 只有当 request.password 为 None 的时候才会用到.

  • raises – 默认为 True. 如果为 True, 则在遇到错误时抛出异常. 反之则将 failed SOAP Response 原封不动地返回.

  • s3uri_input – 如果指定, 则将输入写入 S3. 常用于 Payload 比较大的情况. 如果你一次性发送的 request 大于 20 条, 则必须使用这个参数.

  • s3uri_output – 如果不指定, 则默认将输出作为 JSON 打印. 如果指定了 s3uri, 则将输出写入到 S3.

  • path_cli – EC2 上 acsoap 命令行工具的绝对路径.

  • sync – 同步和异步模式, 默认为同步模式 - 如果以同步模式运行, 则会等待 SSM Run Command 完成 - 如果以异步模式运行, 则会立刻返回一个 SSM Run Command 的 command id.

  • delays – 同步模式下的等待间隔

  • timeout – 同步模式下的超时限制

  • verbose – 同步模式下是否显示进度条