PyAuto核心
pyauto.core的Python项目详细描述
任务运行工具
这是什么?
pyauto为捕获 配置和编排任务。
什么是任务?
python函数。
# deployment_tasks.py# this needs to be imported so that the config class will be registeredimportdeployment_configdefdeploy_app(config,app_name):# implement deployment hereprint('deploying {0}...'.format(app_name))app=config.apps.get_tag(app_name)print(app)
它是如何配置的?
yaml+python类。
# config.yml task_modules: - deployment_tasks apps: - id: my_app name: My Application source_dir: ./my_app tasks: deploy_my_app: - deploy_app,my_app
# deployment_config.pyfrompyautoimportconfigimportosclassApp(config.Config):defget_source_dir(self):returnos.path.abspath(self.source_dir)config.set_config_class('apps',App.wrap)
怎么用的?
作为一个cli工具。
运行任务
$ python -m pyauto.deploy -c config.yml deploy,my_app
输出
----- deployment_tasks.deploy_app ( my_app ) ----- deploying my_app... OrderedDict([('id', 'my_app'), ('name', 'My Application'), ('source_dir', './my_app')]) deploy_app,my_app = None
“,”将函数与字符串参数分隔开。全部任务 函数必须只接受字符串参数。
运行一系列任务
$ python -m pyauto.deploy -c config.yml deploy_my_app
输出
----- deployment_tasks.deploy_app ( my_app ) ----- deploying my_app... OrderedDict([('id', 'my_app'), ('name', 'My Application'), ('source_dir', './my_app')]) deploy_app,my_app = None
输出的第1行指示调用的函数,其中包含参数 传递给它。输出的第2-3行表示 函数执行输出的最后一行指示1) 原始函数调用字符串和2)的返回值 功能。
如果要抑制第1行和最后一行的输出,可以通过 -q选项让pyauto省略这些行。
任务序列deploy_my_app从^{tt3}中查找$ 配置的部分。任务序列可以列出尽可能多的任务或任务 按需顺序。每次任务执行时 调用序列。
干运行一系列任务
$ python -m pyauto.deploy -c config.yml deploy_my_app -i
输出
deploy_my_app ( ) deployment_tasks.deploy_app ( my_app )
这显示将运行的任务序列。这是一件小事 例如,但也可以从任务中调用其他任务序列 序列,这可能导致任务的复杂顺序。此功能 允许您检查给定任务序列将在您之前执行的操作 执行它。