├── actions ├── lib │ ├── __init__.py │ ├── utils.py │ ├── base.py │ └── meta.py ├── runner_manage.up.yaml ├── runner_cache.mine.yaml ├── runner_cloud.query.yaml ├── runner_jobs.active.yaml ├── runner_manage.down.yaml ├── runner_cache.grains.yaml ├── runner_cache.pillar.yaml ├── runner_cloud.action.yaml ├── runner_cloud.profile.yaml ├── runner_manage.status.yaml ├── runner_thin.generate.yaml ├── salt_bootstrap.py ├── runner_jobs.list_jobs.yaml ├── runner_cache.clear_all.yaml ├── runner_cache.clear_mine.yaml ├── runner_cloud.full_query.yaml ├── runner_cloud.list_sizes.yaml ├── runner_manage.versions.yaml ├── runner_pillar.show_top.yaml ├── runner_cache.clear_grains.yaml ├── runner_cache.clear_pillar.yaml ├── runner_cloud.list_images.yaml ├── runner_cloud.select_query.yaml ├── runner_pillar.show_pillar.yaml ├── runner_cache.clear_mine_func.yaml ├── runner_cloud.list_locations.yaml ├── runner.yaml ├── local_cp.push.yaml ├── local_cron.ls.yaml ├── local_data.cas.yaml ├── local_data.dump.yaml ├── local_file.find.yaml ├── local_mine.get.yaml ├── local_mine.send.yaml ├── local_state.sls.yaml ├── local_test.echo.yaml ├── local_test.ping.yaml ├── bootstrap.yaml ├── local_archive.rar.yaml ├── local_archive.tar.yaml ├── local_cmdmod.run.yaml ├── local_cp.get_file.yaml ├── local_cp.get_url.yaml ├── local_cp.push_dir.yaml ├── local_cron.rm_env.yaml ├── local_cron.rm_job.yaml ├── local_data.getval.yaml ├── local_data.update.yaml ├── local_event.fire.yaml ├── local_event.send.yaml ├── local_file.access.yaml ├── local_file.chgrp.yaml ├── local_file.chown.yaml ├── local_file.mkdir.yaml ├── local_file.remove.yaml ├── local_file.search.yaml ├── local_file.touch.yaml ├── local_grains.get.yaml ├── local_mine.delete.yaml ├── local_mine.update.yaml ├── local_pillar.get.yaml ├── local_pip.freeze.yaml ├── local_pip.install.yaml ├── local_pkg.install.yaml ├── local_pkg.remove.yaml ├── local_puppet.fact.yaml ├── local_puppet.noop.yaml ├── local_puppet.run.yaml ├── local_ret.get_fun.yaml ├── local_ret.get_jid.yaml ├── local_useradd.add.yaml ├── local_archive.gzip.yaml ├── local_archive.zip_.yaml ├── local_cloud.action.yaml ├── local_cloud.create.yaml ├── local_cron.set_env.yaml ├── local_cron.set_job.yaml ├── local_file.replace.yaml ├── local_file.symlink.yaml ├── local_hosts.get_ip.yaml ├── local_network.ping.yaml ├── local_ret.get_jids.yaml ├── local_schedule.add.yaml ├── local_service.stop.yaml ├── local_state.single.yaml ├── local_systemd.stop.yaml ├── local_archive.gunzip.yaml ├── local_archive.unrar.yaml ├── local_archive.unzip.yaml ├── local_cloud.destroy.yaml ├── local_cloud.profile_.yaml ├── local_cmdmod.script.yaml ├── local_file.truncate.yaml ├── local_grains.append.yaml ├── local_grains.delval.yaml ├── local_grains.remove.yaml ├── local_grains.setval.yaml ├── local_hosts.rm_host.yaml ├── local_hosts.set_host.yaml ├── local_pip.uninstall.yaml ├── local_pkg.refresh_db.yaml ├── local_puppet.disable.yaml ├── local_puppet.enable.yaml ├── local_puppet.status.yaml ├── local_puppet.summary.yaml ├── local_service.start.yaml ├── local_service.status.yaml ├── local_systemd.enable.yaml ├── local_systemd.start.yaml ├── local_useradd.delete.yaml ├── local_file.file_exists.yaml ├── local_file.manage_file.yaml ├── local_hosts.add_hosts.yaml ├── local_hosts.get_alias.yaml ├── local_htpasswd.useradd.yaml ├── local_htpasswd.userdel.yaml ├── local_network.connect.yaml ├── local_network.ipaddrs.yaml ├── local_network.subnets.yaml ├── local_ret.get_minions.yaml ├── local_schedule.delete.yaml ├── local_schedule.run_job.yaml ├── local_service.restart.yaml ├── local_state.highstate.yaml ├── local_supervisord.add.yaml ├── local_supervisord.stop.yaml ├── local_systemd.disable.yaml ├── local_systemd.restart.yaml ├── local_test.cross_test.yaml ├── local_useradd.chshell.yaml ├── local_cmdmod.run_chroot.yaml ├── local_event.fire_master.yaml ├── local_saltutil.sync_all.yaml ├── local_service.available.yaml ├── local_shadow.set_expire.yaml ├── local_supervisord.start.yaml ├── local_systemd.available.yaml ├── local_cloud.volume_attach.yaml ├── local_cloud.volume_create.yaml ├── local_cloud.volume_delete.yaml ├── local_cloud.volume_detach.yaml ├── local_saltutil.sync_utils.yaml ├── local_schedule.enable_job.yaml ├── local_shadow.del_password.yaml ├── local_shadow.gen_password.yaml ├── local_supervisord.custom.yaml ├── local_supervisord.remove.yaml ├── local_supervisord.reread.yaml ├── local_supervisord.restart.yaml ├── local_cloud.network_create.yaml ├── local_file.directory_exists.yaml ├── local_network.interface_ip.yaml ├── local_saltutil.sync_grains.yaml ├── local_saltutil.sync_modules.yaml ├── local_saltutil.sync_states.yaml ├── local_schedule.disable_job.yaml ├── local_saltutil.sync_outputters.yaml ├── local_saltutil.sync_renderers.yaml ├── local_saltutil.sync_returners.yaml ├── local_systemd.systemctl_reload.yaml ├── local_cloud.virtual_interface_create.yaml ├── client.py ├── client.yaml ├── local.yaml ├── runner.py └── local.py ├── requirements-tests.txt ├── icon.png ├── requirements.txt ├── salt.yaml.example ├── pack.yaml ├── aliases ├── runner.yaml └── local.yaml ├── .circleci └── config.yml ├── .github └── workflows │ ├── build_and_test.yaml │ └── release.yaml ├── config.schema.yaml ├── .gitignore ├── CHANGES.md ├── tests └── test_action_local.py ├── README.md └── LICENSE /actions/lib/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /requirements-tests.txt: -------------------------------------------------------------------------------- 1 | requests-mock 2 | mock 3 | fixtures 4 | testtools 5 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StackStorm-Exchange/stackstorm-salt/HEAD/icon.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | salt>=3006,<3007 2 | # dependency of salt 3006 3 | pyzmq==25.0.2 4 | requests 5 | -------------------------------------------------------------------------------- /salt.yaml.example: -------------------------------------------------------------------------------- 1 | api_url: https://example.com:8000/ 2 | username: user 3 | password: 4 | eauth: pam 5 | verify_ssl: true 6 | -------------------------------------------------------------------------------- /pack.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | ref: salt 3 | name : salt 4 | description : salt integration pack 5 | keywords: 6 | - salt 7 | - cfg management 8 | - configuration management 9 | version: 3.0.1 10 | author : jcockhren 11 | email : jurnell@sophicware.com 12 | python_versions: 13 | - "3" 14 | -------------------------------------------------------------------------------- /aliases/runner.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "salt.runner" 3 | action_ref: "salt.runner" 4 | description: "Execute salt module." 5 | formats: 6 | - "salt {{module}}" 7 | ack: 8 | format: "Running salt runner across minions" 9 | result: 10 | format: "Salt said{~} {{ execution.result.result.return }}" 11 | -------------------------------------------------------------------------------- /aliases/local.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "salt.local" 3 | action_ref: "salt.local" 4 | description: "Execute salt command." 5 | formats: 6 | - "salt-local {{module}} {{target='*'}} {{args=[]}}" 7 | ack: 8 | format: "Running salt local across minions" 9 | result: 10 | format: "Salt said{~} {{ execution.result.result.return }}" -------------------------------------------------------------------------------- /actions/runner_manage.up.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_manage.up 6 | parameters: 7 | module: 8 | default: manage.up 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cache.mine.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cache.mine 6 | parameters: 7 | module: 8 | default: cache.mine 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cloud.query.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cloud.query 6 | parameters: 7 | module: 8 | default: cloud.query 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_jobs.active.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_jobs.active 6 | parameters: 7 | module: 8 | default: jobs.active 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_manage.down.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_manage.down 6 | parameters: 7 | module: 8 | default: manage.down 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cache.grains.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cache.grains 6 | parameters: 7 | module: 8 | default: cache.grains 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cache.pillar.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cache.pillar 6 | parameters: 7 | module: 8 | default: cache.pillar 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cloud.action.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cloud.action 6 | parameters: 7 | module: 8 | default: cloud.action 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cloud.profile.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cloud.profile 6 | parameters: 7 | module: 8 | default: cloud.profile 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_manage.status.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_manage.status 6 | parameters: 7 | module: 8 | default: manage.status 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_thin.generate.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_thin.generate 6 | parameters: 7 | module: 8 | default: thin.generate 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/salt_bootstrap.py: -------------------------------------------------------------------------------- 1 | import salt.cloud 2 | 3 | from st2common.runners.base_action import Action 4 | 5 | 6 | class SaltInstaller(Action): 7 | def run(self, name, provider, instance_id): 8 | client = salt.cloud.CloudClient("/etc/salt/cloud") 9 | ret = client.create(names=[name], provider=provider, instance_id=instance_id) 10 | return ret 11 | -------------------------------------------------------------------------------- /actions/runner_jobs.list_jobs.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_jobs.list_jobs 6 | parameters: 7 | module: 8 | default: jobs.list_jobs 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cache.clear_all.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cache.clear_all 6 | parameters: 7 | module: 8 | default: cache.clear_all 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cache.clear_mine.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cache.clear_mine 6 | parameters: 7 | module: 8 | default: cache.clear_mine 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cloud.full_query.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cloud.full_query 6 | parameters: 7 | module: 8 | default: cloud.full_query 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cloud.list_sizes.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cloud.list_sizes 6 | parameters: 7 | module: 8 | default: cloud.list_sizes 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_manage.versions.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_manage.versions 6 | parameters: 7 | module: 8 | default: manage.versions 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_pillar.show_top.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_pillar.show_top 6 | parameters: 7 | module: 8 | default: pillar.show_top 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | jobs: 4 | circleci_is_disabled_job: 5 | docker: 6 | - image: cimg/base:stable 7 | steps: 8 | - run: 9 | shell: /bin/bash 10 | command: echo CircleCI disabled on StackStorm-Exchange 11 | 12 | workflows: 13 | version: 2 14 | circleci_is_disabled: 15 | jobs: 16 | - circleci_is_disabled_job 17 | -------------------------------------------------------------------------------- /actions/runner_cache.clear_grains.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cache.clear_grains 6 | parameters: 7 | module: 8 | default: cache.clear_grains 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cache.clear_pillar.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cache.clear_pillar 6 | parameters: 7 | module: 8 | default: cache.clear_pillar 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cloud.list_images.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cloud.list_images 6 | parameters: 7 | module: 8 | default: cloud.list_images 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cloud.select_query.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cloud.select_query 6 | parameters: 7 | module: 8 | default: cloud.select_query 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_pillar.show_pillar.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_pillar.show_pillar 6 | parameters: 7 | module: 8 | default: pillar.show_pillar 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cache.clear_mine_func.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cache.clear_mine_func 6 | parameters: 7 | module: 8 | default: cache.clear_mine_func 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner_cloud.list_locations.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Runner functions through Salt API 3 | enabled: true 4 | entry_point: runner.py 5 | name: runner_cloud.list_locations 6 | parameters: 7 | module: 8 | default: cloud.list_locations 9 | immutable: true 10 | type: string 11 | kwargs: 12 | required: false 13 | type: object 14 | runner_type: python-script 15 | -------------------------------------------------------------------------------- /actions/runner.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'runner' 3 | runner_type: 'python-script' 4 | description: 'Run Salt Runner functions through Salt API' 5 | enabled: true 6 | entry_point: 'runner.py' 7 | parameters: 8 | module: 9 | description: 'The module to call' 10 | type: 'string' 11 | required: true 12 | kwargs: 13 | description: 'Key Pair arguments to pass to the module' 14 | type: object 15 | required: false 16 | -------------------------------------------------------------------------------- /.github/workflows/build_and_test.yaml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | pull_request: 5 | schedule: 6 | # NOTE: We run this weekly at 1 am UTC on every Saturday 7 | - cron: '0 1 * * 6' 8 | 9 | jobs: 10 | # This is mirrored in the release workflow. 11 | build_and_test: 12 | name: 'Build and Test' 13 | uses: StackStorm-Exchange/ci/.github/workflows/pack-build_and_test.yaml@master 14 | with: 15 | enable-common-libs: true 16 | #apt-cache-version: v0 17 | #py-cache-version: v0 18 | -------------------------------------------------------------------------------- /actions/local_cp.push.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cp.push 6 | parameters: 7 | module: 8 | default: cp.push 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cron.ls.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cron.ls 6 | parameters: 7 | module: 8 | default: cron.ls 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_data.cas.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_data.cas 6 | parameters: 7 | module: 8 | default: data.cas 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_data.dump.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_data.dump 6 | parameters: 7 | module: 8 | default: data.dump 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.find.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.find 6 | parameters: 7 | module: 8 | default: file.find 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_mine.get.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_mine.get 6 | parameters: 7 | module: 8 | default: mine.get 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_mine.send.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_mine.send 6 | parameters: 7 | module: 8 | default: mine.send 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_state.sls.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_state.sls 6 | parameters: 7 | module: 8 | default: state.sls 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_test.echo.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_test.echo 6 | parameters: 7 | module: 8 | default: test.echo 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_test.ping.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_test.ping 6 | parameters: 7 | module: 8 | default: test.ping 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/bootstrap.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'bootstrap' 3 | runner_type: 'python-script' 4 | description: 'Bootstrap servers with salt.cloud runner' 5 | enabled: True 6 | entry_point: 'salt_bootstrap.py' 7 | parameters: 8 | instance_id: 9 | description: 'Instance id of the server' 10 | type: 'string' 11 | required: True 12 | 13 | provider: 14 | description: 'Provider for the server' 15 | type: 'string' 16 | required: True 17 | 18 | name: 19 | description: 'Name of the server' 20 | type: 'string' 21 | required: True 22 | -------------------------------------------------------------------------------- /actions/local_archive.rar.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_archive.rar 6 | parameters: 7 | module: 8 | default: archive.rar 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_archive.tar.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_archive.tar 6 | parameters: 7 | module: 8 | default: archive.tar 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cmdmod.run.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cmdmod.run 6 | parameters: 7 | module: 8 | default: cmdmod.run 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cp.get_file.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cp.get_file 6 | parameters: 7 | module: 8 | default: cp.get_file 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cp.get_url.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cp.get_url 6 | parameters: 7 | module: 8 | default: cp.get_url 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cp.push_dir.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cp.push_dir 6 | parameters: 7 | module: 8 | default: cp.push_dir 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cron.rm_env.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cron.rm_env 6 | parameters: 7 | module: 8 | default: cron.rm_env 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cron.rm_job.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cron.rm_job 6 | parameters: 7 | module: 8 | default: cron.rm_job 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_data.getval.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_data.getval 6 | parameters: 7 | module: 8 | default: data.getval 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_data.update.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_data.update 6 | parameters: 7 | module: 8 | default: data.update 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_event.fire.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_event.fire 6 | parameters: 7 | module: 8 | default: event.fire 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_event.send.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_event.send 6 | parameters: 7 | module: 8 | default: event.send 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.access.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.access 6 | parameters: 7 | module: 8 | default: file.access 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.chgrp.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.chgrp 6 | parameters: 7 | module: 8 | default: file.chgrp 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.chown.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.chown 6 | parameters: 7 | module: 8 | default: file.chown 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.mkdir.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.mkdir 6 | parameters: 7 | module: 8 | default: file.mkdir 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.remove.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.remove 6 | parameters: 7 | module: 8 | default: file.remove 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.search.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.search 6 | parameters: 7 | module: 8 | default: file.search 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.touch.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.touch 6 | parameters: 7 | module: 8 | default: file.touch 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_grains.get.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_grains.get 6 | parameters: 7 | module: 8 | default: grains.get 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_mine.delete.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_mine.delete 6 | parameters: 7 | module: 8 | default: mine.delete 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_mine.update.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_mine.update 6 | parameters: 7 | module: 8 | default: mine.update 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_pillar.get.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_pillar.get 6 | parameters: 7 | module: 8 | default: pillar.get 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_pip.freeze.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_pip.freeze 6 | parameters: 7 | module: 8 | default: pip.freeze 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_pip.install.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_pip.install 6 | parameters: 7 | module: 8 | default: pip.install 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_pkg.install.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_pkg.install 6 | parameters: 7 | module: 8 | default: pkg.install 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_pkg.remove.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_pkg.remove 6 | parameters: 7 | module: 8 | default: pkg.remove 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_puppet.fact.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_puppet.fact 6 | parameters: 7 | module: 8 | default: puppet.fact 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_puppet.noop.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_puppet.noop 6 | parameters: 7 | module: 8 | default: puppet.noop 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_puppet.run.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_puppet.run 6 | parameters: 7 | module: 8 | default: puppet.run 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_ret.get_fun.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_ret.get_fun 6 | parameters: 7 | module: 8 | default: ret.get_fun 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_ret.get_jid.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_ret.get_jid 6 | parameters: 7 | module: 8 | default: ret.get_jid 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_useradd.add.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_useradd.add 6 | parameters: 7 | module: 8 | default: useradd.add 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_archive.gzip.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_archive.gzip 6 | parameters: 7 | module: 8 | default: archive.gzip 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_archive.zip_.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_archive.zip_ 6 | parameters: 7 | module: 8 | default: archive.zip_ 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.action.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.action 6 | parameters: 7 | module: 8 | default: cloud.action 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.create.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.create 6 | parameters: 7 | module: 8 | default: cloud.create 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cron.set_env.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cron.set_env 6 | parameters: 7 | module: 8 | default: cron.set_env 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cron.set_job.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cron.set_job 6 | parameters: 7 | module: 8 | default: cron.set_job 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.replace.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.replace 6 | parameters: 7 | module: 8 | default: file.replace 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.symlink.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.symlink 6 | parameters: 7 | module: 8 | default: file.symlink 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_hosts.get_ip.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_hosts.get_ip 6 | parameters: 7 | module: 8 | default: hosts.get_ip 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_network.ping.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_network.ping 6 | parameters: 7 | module: 8 | default: network.ping 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_ret.get_jids.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_ret.get_jids 6 | parameters: 7 | module: 8 | default: ret.get_jids 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_schedule.add.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_schedule.add 6 | parameters: 7 | module: 8 | default: schedule.add 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_service.stop.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_service.stop 6 | parameters: 7 | module: 8 | default: service.stop 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_state.single.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_state.single 6 | parameters: 7 | module: 8 | default: state.single 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_systemd.stop.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_systemd.stop 6 | parameters: 7 | module: 8 | default: systemd.stop 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_archive.gunzip.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_archive.gunzip 6 | parameters: 7 | module: 8 | default: archive.gunzip 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_archive.unrar.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_archive.unrar 6 | parameters: 7 | module: 8 | default: archive.unrar 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_archive.unzip.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_archive.unzip 6 | parameters: 7 | module: 8 | default: archive.unzip 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.destroy.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.destroy 6 | parameters: 7 | module: 8 | default: cloud.destroy 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.profile_.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.profile_ 6 | parameters: 7 | module: 8 | default: cloud.profile_ 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cmdmod.script.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cmdmod.script 6 | parameters: 7 | module: 8 | default: cmdmod.script 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.truncate.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.truncate 6 | parameters: 7 | module: 8 | default: file.truncate 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_grains.append.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_grains.append 6 | parameters: 7 | module: 8 | default: grains.append 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_grains.delval.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_grains.delval 6 | parameters: 7 | module: 8 | default: grains.delval 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_grains.remove.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_grains.remove 6 | parameters: 7 | module: 8 | default: grains.remove 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_grains.setval.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_grains.setval 6 | parameters: 7 | module: 8 | default: grains.setval 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_hosts.rm_host.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_hosts.rm_host 6 | parameters: 7 | module: 8 | default: hosts.rm_host 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_hosts.set_host.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_hosts.set_host 6 | parameters: 7 | module: 8 | default: hosts.set_host 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_pip.uninstall.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_pip.uninstall 6 | parameters: 7 | module: 8 | default: pip.uninstall 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_pkg.refresh_db.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_pkg.refresh_db 6 | parameters: 7 | module: 8 | default: pkg.refresh_db 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_puppet.disable.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_puppet.disable 6 | parameters: 7 | module: 8 | default: puppet.disable 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_puppet.enable.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_puppet.enable 6 | parameters: 7 | module: 8 | default: puppet.enable 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_puppet.status.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_puppet.status 6 | parameters: 7 | module: 8 | default: puppet.status 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_puppet.summary.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_puppet.summary 6 | parameters: 7 | module: 8 | default: puppet.summary 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_service.start.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_service.start 6 | parameters: 7 | module: 8 | default: service.start 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_service.status.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_service.status 6 | parameters: 7 | module: 8 | default: service.status 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_systemd.enable.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_systemd.enable 6 | parameters: 7 | module: 8 | default: systemd.enable 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_systemd.start.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_systemd.start 6 | parameters: 7 | module: 8 | default: systemd.start 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_useradd.delete.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_useradd.delete 6 | parameters: 7 | module: 8 | default: useradd.delete 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.file_exists.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.file_exists 6 | parameters: 7 | module: 8 | default: file.file_exists 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.manage_file.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.manage_file 6 | parameters: 7 | module: 8 | default: file.manage_file 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_hosts.add_hosts.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_hosts.add_hosts 6 | parameters: 7 | module: 8 | default: hosts.add_hosts 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_hosts.get_alias.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_hosts.get_alias 6 | parameters: 7 | module: 8 | default: hosts.get_alias 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_htpasswd.useradd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_htpasswd.useradd 6 | parameters: 7 | module: 8 | default: htpasswd.useradd 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_htpasswd.userdel.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_htpasswd.userdel 6 | parameters: 7 | module: 8 | default: htpasswd.userdel 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_network.connect.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_network.connect 6 | parameters: 7 | module: 8 | default: network.connect 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_network.ipaddrs.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_network.ipaddrs 6 | parameters: 7 | module: 8 | default: network.ipaddrs 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_network.subnets.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_network.subnets 6 | parameters: 7 | module: 8 | default: network.subnets 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_ret.get_minions.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_ret.get_minions 6 | parameters: 7 | module: 8 | default: ret.get_minions 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_schedule.delete.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_schedule.delete 6 | parameters: 7 | module: 8 | default: schedule.delete 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_schedule.run_job.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_schedule.run_job 6 | parameters: 7 | module: 8 | default: schedule.run_job 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_service.restart.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_service.restart 6 | parameters: 7 | module: 8 | default: service.restart 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_state.highstate.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_state.highstate 6 | parameters: 7 | module: 8 | default: state.highstate 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_supervisord.add.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_supervisord.add 6 | parameters: 7 | module: 8 | default: supervisord.add 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_supervisord.stop.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_supervisord.stop 6 | parameters: 7 | module: 8 | default: supervisord.stop 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_systemd.disable.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_systemd.disable 6 | parameters: 7 | module: 8 | default: systemd.disable 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_systemd.restart.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_systemd.restart 6 | parameters: 7 | module: 8 | default: systemd.restart 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_test.cross_test.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_test.cross_test 6 | parameters: 7 | module: 8 | default: test.cross_test 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_useradd.chshell.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_useradd.chshell 6 | parameters: 7 | module: 8 | default: useradd.chshell 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cmdmod.run_chroot.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cmdmod.run_chroot 6 | parameters: 7 | module: 8 | default: cmdmod.run_chroot 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_event.fire_master.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_event.fire_master 6 | parameters: 7 | module: 8 | default: event.fire_master 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_saltutil.sync_all.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_saltutil.sync_all 6 | parameters: 7 | module: 8 | default: saltutil.sync_all 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_service.available.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_service.available 6 | parameters: 7 | module: 8 | default: service.available 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_shadow.set_expire.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_shadow.set_expire 6 | parameters: 7 | module: 8 | default: shadow.set_expire 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_supervisord.start.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_supervisord.start 6 | parameters: 7 | module: 8 | default: supervisord.start 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_systemd.available.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_systemd.available 6 | parameters: 7 | module: 8 | default: systemd.available 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.volume_attach.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.volume_attach 6 | parameters: 7 | module: 8 | default: cloud.volume_attach 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.volume_create.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.volume_create 6 | parameters: 7 | module: 8 | default: cloud.volume_create 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.volume_delete.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.volume_delete 6 | parameters: 7 | module: 8 | default: cloud.volume_delete 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.volume_detach.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.volume_detach 6 | parameters: 7 | module: 8 | default: cloud.volume_detach 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_saltutil.sync_utils.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_saltutil.sync_utils 6 | parameters: 7 | module: 8 | default: saltutil.sync_utils 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_schedule.enable_job.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_schedule.enable_job 6 | parameters: 7 | module: 8 | default: schedule.enable_job 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_shadow.del_password.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_shadow.del_password 6 | parameters: 7 | module: 8 | default: shadow.del_password 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_shadow.gen_password.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_shadow.gen_password 6 | parameters: 7 | module: 8 | default: shadow.gen_password 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_supervisord.custom.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_supervisord.custom 6 | parameters: 7 | module: 8 | default: supervisord.custom 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_supervisord.remove.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_supervisord.remove 6 | parameters: 7 | module: 8 | default: supervisord.remove 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_supervisord.reread.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_supervisord.reread 6 | parameters: 7 | module: 8 | default: supervisord.reread 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_supervisord.restart.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_supervisord.restart 6 | parameters: 7 | module: 8 | default: supervisord.restart 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.network_create.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.network_create 6 | parameters: 7 | module: 8 | default: cloud.network_create 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_file.directory_exists.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_file.directory_exists 6 | parameters: 7 | module: 8 | default: file.directory_exists 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_network.interface_ip.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_network.interface_ip 6 | parameters: 7 | module: 8 | default: network.interface_ip 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_saltutil.sync_grains.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_saltutil.sync_grains 6 | parameters: 7 | module: 8 | default: saltutil.sync_grains 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_saltutil.sync_modules.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_saltutil.sync_modules 6 | parameters: 7 | module: 8 | default: saltutil.sync_modules 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_saltutil.sync_states.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_saltutil.sync_states 6 | parameters: 7 | module: 8 | default: saltutil.sync_states 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_schedule.disable_job.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_schedule.disable_job 6 | parameters: 7 | module: 8 | default: schedule.disable_job 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_saltutil.sync_outputters.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_saltutil.sync_outputters 6 | parameters: 7 | module: 8 | default: saltutil.sync_outputters 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_saltutil.sync_renderers.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_saltutil.sync_renderers 6 | parameters: 7 | module: 8 | default: saltutil.sync_renderers 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_saltutil.sync_returners.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_saltutil.sync_returners 6 | parameters: 7 | module: 8 | default: saltutil.sync_returners 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_systemd.systemctl_reload.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_systemd.systemctl_reload 6 | parameters: 7 | module: 8 | default: systemd.systemctl_reload 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /actions/local_cloud.virtual_interface_create.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | description: Run Salt Execution modules through Salt API 3 | enabled: true 4 | entry_point: local.py 5 | name: local_cloud.virtual_interface_create 6 | parameters: 7 | module: 8 | default: cloud.virtual_interface_create 9 | immutable: true 10 | type: string 11 | target: 12 | required: false 13 | type: string 14 | default: '*' 15 | tgt_type: 16 | required: false 17 | type: string 18 | default: glob 19 | args: 20 | required: false 21 | type: array 22 | kwargs: 23 | required: false 24 | type: object 25 | runner_type: python-script 26 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | branches: 6 | # the default branch 7 | - master 8 | 9 | permissions: 10 | contents: write 11 | 12 | jobs: 13 | # This mirrors build_and_test workflow 14 | build_and_test: 15 | name: 'Build and Test' 16 | uses: StackStorm-Exchange/ci/.github/workflows/pack-build_and_test.yaml@master 17 | with: 18 | enable-common-libs: true 19 | #apt-cache-version: v0 20 | #py-cache-version: v0 21 | 22 | tag_release: 23 | needs: build_and_test 24 | name: Tag Release 25 | uses: StackStorm-Exchange/ci/.github/workflows/pack-tag_release.yaml@master 26 | -------------------------------------------------------------------------------- /actions/client.py: -------------------------------------------------------------------------------- 1 | import salt.client 2 | 3 | from st2common.runners.base_action import Action 4 | 5 | 6 | class SaltClientAction(Action): 7 | def run(self, matches, module, args=[], kwargs={}): 8 | """CLI Examples: 9 | st2 run salt.client matches='web*' module=test.ping 10 | st2 run salt.client module=pkg.install \ 11 | kwargs='{"pkgs":["git","httpd"]}' 12 | """ 13 | cli = salt.client.LocalClient() 14 | if args is None: 15 | ret = cli.cmd(matches, module, kwarg=kwargs) 16 | else: 17 | ret = cli.cmd(matches, module, arg=args, kwarg=kwargs) 18 | return ret 19 | -------------------------------------------------------------------------------- /actions/client.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'client' 3 | runner_type: 'python-script' 4 | description: 'Run salt LocalClient functions' 5 | enabled: true 6 | entry_point: 'client.py' 7 | parameters: 8 | matches: 9 | description: 'Minions to target' 10 | type: 'string' 11 | required: false 12 | default: '*' 13 | 14 | module: 15 | description: 'Execution module to run on targets' 16 | type: 'string' 17 | required: true 18 | 19 | args: 20 | description: 'Arguments to pass to the module' 21 | type: array 22 | required: false 23 | 24 | kwargs: 25 | description: 'Key Pair arguments to pass to the module' 26 | type: object 27 | required: false 28 | -------------------------------------------------------------------------------- /config.schema.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_url: 3 | description: "Salt NetAPI URL if using remote server." 4 | type: "string" 5 | secret: false 6 | required: false 7 | username: 8 | description: "Username for Salt NetAPI integration." 9 | type: "string" 10 | secret: false 11 | required: false 12 | password: 13 | description: "Password for Salt NetAPI integration." 14 | type: "string" 15 | secret: true 16 | required: false 17 | eauth: 18 | description: "Salt external authentication system." 19 | type: "string" 20 | secret: false 21 | required: false 22 | default: pam 23 | verify_ssl: 24 | description: "True: verify the Salt API certificate is valid." 25 | type: "boolean" 26 | secret: false 27 | required: false 28 | default: true 29 | -------------------------------------------------------------------------------- /actions/local.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | name: 'local' 3 | runner_type: 'python-script' 4 | description: 'Run Salt Exection Modules through Salt API' 5 | enabled: true 6 | entry_point: 'local.py' 7 | parameters: 8 | module: 9 | description: 'The module to call' 10 | type: 'string' 11 | required: true 12 | target: 13 | description: 'Pattern used to match minons' 14 | type: 'string' 15 | required: false 16 | default: '*' 17 | tgt_type: 18 | description: 'Criteria used for matching minions' 19 | type: 'string' 20 | required: false 21 | default: 'glob' 22 | args: 23 | description: 'Positional arguments to pass to the module' 24 | type: array 25 | required: false 26 | default: [] 27 | kwargs: 28 | description: 'Key Pair arguments to pass to the module' 29 | type: object 30 | required: false 31 | -------------------------------------------------------------------------------- /actions/runner.py: -------------------------------------------------------------------------------- 1 | import json 2 | from requests import Session 3 | 4 | from lib.base import SaltAction 5 | 6 | 7 | class SaltRunner(SaltAction): 8 | __explicit__ = ["jobs", "manage", "pillar", "mine", "network"] 9 | 10 | def run(self, module, **kwargs): 11 | """CLI Examples: 12 | st2 run salt.runner_jobs.active 13 | st2 run salt.runner_jobs.list_jobs 14 | """ 15 | self.verify_tls = self.config.get("verify_ssl", True) 16 | 17 | _cmd = module 18 | 19 | self.generate_package("runner", cmd=_cmd) 20 | 21 | if kwargs.get("kwargs", None) is not None: 22 | self.data.update(kwargs["kwargs"]) 23 | 24 | request = self.generate_request() 25 | request.prepare_body(json.dumps(self.data), None) 26 | resp = Session().send(request, verify=self.verify_tls) 27 | 28 | if resp.ok: 29 | try: 30 | return resp.json() 31 | except ValueError: 32 | return resp.text 33 | else: 34 | return (False, f"HTTP error {resp.status_code}\n{resp.text}") 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | .hypothesis/ 47 | 48 | # Translations 49 | *.mo 50 | *.pot 51 | 52 | # Django stuff: 53 | *.log 54 | local_settings.py 55 | 56 | # Flask stuff: 57 | instance/ 58 | .webassets-cache 59 | 60 | # Scrapy stuff: 61 | .scrapy 62 | 63 | # Sphinx documentation 64 | docs/_build/ 65 | 66 | # PyBuilder 67 | target/ 68 | 69 | # IPython Notebook 70 | .ipynb_checkpoints 71 | 72 | # pyenv 73 | .python-version 74 | 75 | # celery beat schedule file 76 | celerybeat-schedule 77 | 78 | # dotenv 79 | .env 80 | 81 | # virtualenv 82 | venv/ 83 | ENV/ 84 | 85 | # Spyder project settings 86 | .spyderproject 87 | 88 | # Rope project settings 89 | .ropeproject 90 | -------------------------------------------------------------------------------- /actions/local.py: -------------------------------------------------------------------------------- 1 | import json 2 | from requests import Session 3 | 4 | from lib.base import SaltAction 5 | 6 | 7 | class SaltLocal(SaltAction): 8 | __explicit__ = [ 9 | "cmdmod", 10 | "event", 11 | "file", 12 | "grains", 13 | "pillar", 14 | "pkg", 15 | "saltcloudmod", 16 | "schedule", 17 | "service", 18 | "state", 19 | "status", 20 | ] 21 | 22 | def run(self, module, target, tgt_type, args, **kwargs): 23 | """CLI Examples: 24 | st2 run salt.local module=test.ping matches='web*' 25 | st2 run salt.local module=test.ping tgt_type=grain target='os:Ubuntu' 26 | """ 27 | self.verify_tls = self.config.get("verify_ssl", True) 28 | 29 | # ChatOps alias and newer St2 versions set default args=[] which 30 | # breaks test.ping & test.version 31 | if args == [] and module in ["test.ping", "test.version"]: 32 | args = None 33 | 34 | self.generate_package( 35 | "local", cmd=module, target=target, tgt_type=tgt_type, args=args, data=kwargs 36 | ) 37 | 38 | request = self.generate_request() 39 | request.prepare_body(json.dumps(self.data), None) 40 | resp = Session().send(request, verify=self.verify_tls) 41 | 42 | if resp.ok: 43 | try: 44 | return resp.json() 45 | except ValueError: 46 | return resp.text 47 | else: 48 | return (False, f"HTTP error {resp.status_code}\n{resp.text}") 49 | -------------------------------------------------------------------------------- /actions/lib/utils.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=line-too-long 2 | 3 | import yaml 4 | from .meta import actions 5 | 6 | runner_action_meta = { 7 | "name": "", 8 | "parameters": { 9 | "action": {"type": "string", "immutable": True, "default": ""}, 10 | "kwargs": {"type": "object", "required": False}, 11 | }, 12 | "runner_type": "python-script", 13 | "description": "Run Salt Runner functions through Salt API", 14 | "enabled": True, 15 | "entry_point": "runner.py", 16 | } 17 | 18 | local_action_meta = { 19 | "name": "", 20 | "parameters": { 21 | "action": {"type": "string", "immutable": True, "default": ""}, 22 | "args": {"type": "array", "required": False}, 23 | "kwargs": {"type": "object", "required": False}, 24 | }, 25 | "runner_type": "python-script", 26 | "description": "Run Salt Execution modules through Salt API", 27 | "enabled": True, 28 | "entry_point": "local.py", 29 | } 30 | 31 | 32 | def generate_actions(): 33 | def create_file(mt, m, a): 34 | manifest = local_action_meta 35 | manifest["name"] = f"{mt}_{m}.{a}" 36 | manifest["parameters"]["action"]["default"] = f"{m}.{a}" 37 | 38 | fh = open(f"{mt}_{m}.{a}.yaml", "w") 39 | fh.write("---\n") 40 | fh.write(yaml.dump(manifest, default_flow_style=False)) 41 | fh.close() 42 | 43 | for key in actions: 44 | map(lambda l: create_file("local", key, l), actions[key]) 45 | 46 | 47 | def sanitize_payload(keys_to_sanitize, payload): 48 | """ 49 | Removes sensitive data from payloads before publishing to the logs 50 | """ 51 | data = payload.copy() 52 | 53 | for k in keys_to_sanitize: 54 | val = payload.get(k, None) 55 | if not val: 56 | continue 57 | else: 58 | val = "*" * 8 59 | 60 | data[k] = val 61 | return data 62 | -------------------------------------------------------------------------------- /CHANGES.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## Unreleased; 3.0.2 4 | 5 | ### Add 6 | ### Change 7 | ### Removed 8 | 9 | ## 3.0.1 10 | 11 | ### Add 12 | - Added TLS connection verification. 13 | - Special handling for test.ping and test.version with empty lists. 14 | 15 | ### Change 16 | - Formatted Python code with black. 17 | - Updated client authentication to work with Salt 3004 to 3006 (maybe higher) 18 | - Improved error reporting when HTTP errors are encountered. 19 | - Fail actions when HTTP return codes >=400 20 | 21 | ### Removed 22 | - Removed salt-pepper as a python dependency. 23 | 24 | ## 3.0.0 25 | 26 | Retracted. 27 | 28 | ## 2.0.1 29 | 30 | * Drop Python 2.7 support 31 | 32 | ## 2.0.0 33 | 34 | Not available 35 | 36 | ## 1.0.1 37 | 38 | * Add logging of HTTP Code response from Salt API 39 | 40 | ## 1.0.0 41 | 42 | * Drop Python 2.7 support 43 | 44 | ## 0.8.4 45 | 46 | - Pin salt < 3001 and jinja2 < 2.11.1 to support both Python 2 and 3 47 | 48 | ## 0.8.3 49 | 50 | - Add explicit support for Python 2 and 3 51 | 52 | ## 0.8.2 53 | 54 | - Fixed `sanitize_payload` function to avoid leaking the type and length of sensitive values #15 55 | 56 | ## 0.8.1 57 | 58 | - Fixed a bug in Salt runs due to typo in processing logic for additional parameters #14 (@pengyao) 59 | 60 | ## 0.8.0 61 | 62 | - Changed expr_form to tgt_type as SaltStack upstream has replaced the functionality. 63 | 64 | ## 0.7.2 65 | 66 | - Do not send `args=None` for client actions. This was breaking on modules like `test.ping`. 67 | 68 | ## 0.7.0 69 | 70 | - Set `args=None` for `test.ping` and `test.version` 71 | - This is so action works with ChatOps and newer ST2 versions that will 72 | provide default value even for non-required parameters. 73 | 74 | ## 0.6.0 75 | 76 | - Updated action `runner_type` from `run-python` to `python-script` 77 | 78 | ## 0.5.1 79 | 80 | - Hide only valid (non-empty) payload values sent to salt CLI 81 | 82 | ## 0.5.0 83 | 84 | - Rename `config.yaml` to `config.schema.yaml` and update to use schema. 85 | -------------------------------------------------------------------------------- /tests/test_action_local.py: -------------------------------------------------------------------------------- 1 | from st2tests.base import BaseActionTestCase 2 | 3 | from local import SaltLocal 4 | import requests_mock 5 | from requests_mock.contrib import fixture 6 | import testtools 7 | 8 | __all__ = ["SaltLocalActionTestCase"] 9 | 10 | no_args = {"module": "this.something", "target": "*", "tgt_type": "glob", "args": []} 11 | 12 | one_arg = { 13 | "module": "this.something", 14 | "target": "*", 15 | "tgt_type": "glob", 16 | "args": ["os"], 17 | } 18 | 19 | multiple_args = { 20 | "module": "this.something", 21 | "target": "*", 22 | "tgt_type": "glob", 23 | "args": ["this", "that", "home"], 24 | } 25 | 26 | CONFIG_DATA = {"api_url": "https://example.com", "username": "this", "password": "that"} 27 | requests_mock.Mocker.TEST_PREFIX = "test" 28 | 29 | 30 | class SaltLocalActionTestCase(testtools.TestCase, BaseActionTestCase): 31 | action_cls = SaltLocal 32 | 33 | def setUp(self): 34 | super(SaltLocalActionTestCase, self).setUp() 35 | self.m = self.useFixture(fixture.Fixture()) 36 | self.action = self.get_action_instance(config=CONFIG_DATA) 37 | # Mock authentication 38 | self.m.register_uri( 39 | "POST", 40 | "{}/login".format(CONFIG_DATA["api_url"]), 41 | json={}, 42 | headers={"X-Auth-Token": "mock-auth-ok-token"}, 43 | ) 44 | # Mock run API 45 | self.m.register_uri("POST", "{}/".format(CONFIG_DATA["api_url"]), json={}) 46 | 47 | def test_generic_action_no_args(self): 48 | self.action.run(**no_args) 49 | self.assertNotIn("arg", self.action.data) 50 | 51 | def test_generic_action_one_arg(self): 52 | self.action.run(**one_arg) 53 | self.assertIn("arg", self.action.data) 54 | self.assertIsInstance(self.action.data["arg"], list) 55 | 56 | def test_generic_action_multiple_args(self): 57 | self.action.run(**multiple_args) 58 | self.assertIn("arg", self.action.data) 59 | self.assertIsInstance(self.action.data["arg"], list) 60 | -------------------------------------------------------------------------------- /actions/lib/base.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=no-member 2 | 3 | from st2common.runners.base_action import Action 4 | import requests 5 | from lib.utils import sanitize_payload 6 | 7 | 8 | class SaltPackage(object): 9 | _expression_forms = ["glob", "grain", "pillar", "nodegroup", "list", "compound"] 10 | 11 | def __init__(self, client="local"): 12 | self._data = {"client": "", "fun": ""} 13 | self._data["client"] = client 14 | 15 | @property 16 | def data(self): 17 | return self._data 18 | 19 | @data.setter 20 | def data(self, key_value=[]): 21 | key, value = key_value 22 | self._data[key] = value 23 | 24 | 25 | class SaltAction(Action): 26 | sensitive_keys = ["eauth", "password"] 27 | 28 | def __init__(self, config): 29 | super().__init__(config=config) 30 | self.url = self.config.get("api_url", None) 31 | self.eauth = self.config.get("eauth", None) 32 | self.username = self.config.get("username", None) 33 | self.password = self.config.get("password", None) 34 | self.verify_tls = self.config.get("verify_tls", self.config.get("verify_ssl", True)) 35 | 36 | def login(self): 37 | """ 38 | Authenticate with Salt API to receive an authentication token. 39 | """ 40 | resp = requests.request( 41 | "POST", 42 | f"{self.url}/login", 43 | json={"eauth": self.eauth, "username": self.username, "password": self.password}, 44 | verify=self.verify_tls, 45 | ) 46 | token = resp.headers.get("X-Auth-Token", "failed-login") 47 | return token 48 | 49 | def generate_package(self, client="local", cmd=None, **kwargs): 50 | self.data = SaltPackage(client).data 51 | 52 | if cmd: 53 | self.data["fun"] = cmd 54 | if client == "local": 55 | self.data["tgt"] = kwargs.get("target", "*") 56 | self.data["tgt_type"] = kwargs.get("tgt_type", "glob") 57 | if isinstance(kwargs.get("args", []), list) and len(kwargs.get("args", [])) > 0: 58 | self.data["arg"] = kwargs["args"] 59 | if len(kwargs.get("data", {})) > 0: 60 | if kwargs["data"].get("kwargs", None) is not None: 61 | self.data["kwarg"] = kwargs["data"]["kwargs"] 62 | clean_payload = sanitize_payload(SaltAction.sensitive_keys, self.data) 63 | self.logger.info("[salt] Payload to be sent: %s", clean_payload) 64 | 65 | def generate_request(self): 66 | req = requests.Request( 67 | "POST", 68 | self.url, 69 | headers={ 70 | "Accept": "application/json", 71 | "Content-Type": "application/json", 72 | "charset": "utf-8", 73 | "x-auth-token": self.login(), 74 | "User-Agent": "St2 Salt pack", 75 | }, 76 | ) 77 | return req.prepare() 78 | -------------------------------------------------------------------------------- /actions/lib/meta.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=line-too-long 2 | 3 | runner_action_meta = { 4 | "name": "", 5 | "parameters": { 6 | "action": {"type": "string", "immutable": True, "default": ""}, 7 | "kwargs": {"type": "object", "required": False}, 8 | }, 9 | "runner_type": "python-script", 10 | "description": "Run Salt Runner functions through Salt API", 11 | "enabled": True, 12 | "entry_point": "runner.py", 13 | } 14 | 15 | local_action_meta = { 16 | "name": "", 17 | "parameters": { 18 | "action": {"type": "string", "immutable": True, "default": ""}, 19 | "kwargs": {"type": "object", "required": False}, 20 | }, 21 | "runner_type": "python-script", 22 | "description": "Run Salt Runner functions through Salt API", 23 | "enabled": True, 24 | "entry_point": "runner.py", 25 | } 26 | 27 | 28 | actions = { 29 | "archive": ["gunzip", "gzip", "rar", "tar", "unrar", "unzip", "zip_"], 30 | "cloud": [ 31 | "action", 32 | "create", 33 | "destroy", 34 | "network_create", 35 | "profile_", 36 | "virtual_interface_create", 37 | "volume_attach", 38 | "volume_create", 39 | "volume_delete", 40 | "volume_detach", 41 | ], 42 | "cmdmod": ["run", "run_chroot", "script"], 43 | "cp": ["get_file", "get_url", "push", "push_dir"], 44 | "cron": ["ls", "rm_job", "set_job", "set_env", "rm_env"], 45 | "data": ["cas", "getval", "update", "dump"], 46 | "event": ["fire", "fire_master", "send"], 47 | "file": [ 48 | "access", 49 | "chgrp", 50 | "chown", 51 | "directory_exists", 52 | "file_exists", 53 | "find", 54 | "manage_file", 55 | "mkdir", 56 | "remove", 57 | "replace", 58 | "search", 59 | "symlink", 60 | "touch", 61 | "truncate", 62 | ], 63 | "grains": ["append", "delval", "get", "remove", "setval"], 64 | "hosts": ["add_hosts", "get_alias", "get_ip", "rm_host", "set_host"], 65 | "htpasswd": ["useradd", "userdel"], 66 | "mine": ["delete", "get", "send", "update"], 67 | "network": ["connect", "ipaddrs", "interface_ip", "ping", "subnets"], 68 | "pillar": ["get"], 69 | "pip": ["install", "freeze", "uninstall"], 70 | "pkg": ["install", "refresh_db", "remove"], 71 | "puppet": ["enable", "disable", "fact", "noop", "status", "run", "summary"], 72 | "ret": ["get_fun", "get_jid", "get_jids", "get_minions"], 73 | "saltutil": [ 74 | "sync_all", 75 | "sync_modules", 76 | "sync_grains", 77 | "sync_outputters", 78 | "sync_renderers", 79 | "sync_returners", 80 | "sync_states", 81 | "sync_utils", 82 | ], 83 | "schedule": ["add", "delete", "enable_job", "disable_job", "run_job"], 84 | "service": ["available", "start", "restart", "status", "stop"], 85 | "shadow": ["del_password", "gen_password", "set_expire", ""], 86 | "state": ["highstate", "single", "sls"], 87 | "supervisord": ["add", "remove", "restart", "reread", "start", "stop", "custom"], 88 | "systemd": ["available", "disable", "restart", "enable", "stop", "start", "systemctl_reload"], 89 | "test": ["ping", "cross_test", "echo"], 90 | "useradd": ["add", "delete", "chshell"], 91 | } 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SaltStack Integration Pack 2 | 3 | Pack which allows integration with SaltStack. 4 | 5 | ## Requirements 6 | 7 | This pack depends on the salt Python library which requires the following 8 | dependencies to be installed: 9 | 10 | * SSL development headers and libraries (``libssl-dev`` package on Ubuntu) 11 | * Swig (``swig`` package on Ubuntu) 12 | 13 | Those requirements need to be installed on the server where the actions will 14 | be running on and where the StackStorm packs are installed. 15 | 16 | ## Usage Options 17 | 18 | ### Scenario 1: StackStorm Installed on a Salt Master 19 | 20 | #### Configuration 21 | 22 | If StackStorm is installed on the master, no local configuration is required. 23 | 24 | #### Examples 25 | 26 | ```bash 27 | st2 run salt.client matches='web*' module=test.ping 28 | st2 run salt.client module=pkg.install kwargs='{"pkgs":["git","httpd"]}' 29 | 30 | st2 run salt.bootstrap instance_id= provider=my-nova name=web.example.com 31 | ``` 32 | 33 | ### Scenario 2: StackStorm using Salt NetAPI 34 | 35 | #### Configuration 36 | 37 | Copy the example configuration in [salt.yaml.example](./salt.yaml.example) 38 | to `/opt/stackstorm/configs/salt.yaml` and edit as required. 39 | 40 | It must contain this: 41 | 42 | ```yaml 43 | --- 44 | api_url: https://salt.example.com 45 | username: stella 46 | password: clams 47 | ``` 48 | 49 | **Note** : When modifying the configuration in `/opt/stackstorm/configs/` please 50 | remember reload StackStorm to load these new values with the command: 51 | `st2ctl reload --register-configs` 52 | 53 | #### Examples 54 | 55 | ```bash 56 | st2 run salt.runner_manage.up 57 | st2 run salt.runner_job.list_jobs kwargs='{"ext_source":"blah"}' 58 | st2 run salt.local_pillar.items args=this,that 59 | ``` 60 | 61 | One can also use the generic "runner" action to execute arbitrary runners and execution modules. 62 | 63 | ```bash 64 | st2 run salt.runner module=manage.down 65 | st2 run salt.local module=grains.get args=os 66 | st2 run salt.local module=pillar.items args=thing1,thing2 67 | ``` 68 | 69 | Wheel command allows manipulation of keys on the master and requires careful crafting of the runner call. 70 | ```bash 71 | st2 run salt.runner module=wheel kwargs='{"client": "wheel", "fun": "key.finger", "match": "*"}' 72 | ``` 73 | 74 | ### Actions 75 | 76 | Saltstack runner/execution module function calls are represented as StackStorm actions. Considering Saltstack's [`archive` execution module](http://docs.saltstack.com/en/2014.7/ref/modules/all/salt.modules.archive.html#module-salt.modules.archive), every function would be exposed as an StackStorm action. 77 | 78 | StackStorm actions for this pack are namespaced relative to their Saltstack NetAPI client name and module name. Thus having the form: 79 | 80 | `[NetAPI client name]_[module name].[function name]` 81 | 82 | An action named `runner_manage.down` calls the [`down` function from the `manage`](http://docs.saltstack.com/en/2014.7/ref/runners/all/salt.runners.manage.html#salt.runners.manage.down) runner. 83 | 84 | #### Runner Actions 85 | 86 | - runner_cache.clear_all 87 | - runner_cache.clear_grains 88 | - runner_cache.clear_mine_func 89 | - runner_cache.clear_mine 90 | - runner_cache.clear_pillar 91 | - runner_cache.grains 92 | - runner_cache.mine 93 | - runner_cache.pillar 94 | - runner_cloud.action 95 | - runner_cloud.full_query 96 | - runner_cloud.list_images 97 | - runner_cloud.list_locations 98 | - runner_cloud.list_sizes 99 | - runner_cloud.profile 100 | - runner_cloud.query 101 | - runner_cloud.select_query 102 | - runner_jobs.active 103 | - runner_jobs.list_jobs 104 | - runner_manage.down 105 | - runner_manage.status 106 | - runner_manage.up 107 | - runner_manage.versions 108 | - runner_pillar.show_pillar 109 | - runner_pillar.show_top 110 | - runner_thin.generate 111 | 112 | 113 | #### Execution Module Actions 114 | 115 | - local_archive.gzip 116 | - local_archive.rar 117 | - local_archive.tar 118 | - local_archive.unrar 119 | - local_archive.unzip 120 | - local_archive.zip_ 121 | - local_cloud.action 122 | - local_cloud.create 123 | - local_cloud.destroy 124 | - local_cloud.network_create 125 | - local_cloud.profile_ 126 | - local_cloud.virtual_interface_create 127 | - local_cloud.volume_attach 128 | - local_cloud.volume_create 129 | - local_cloud.volume_delete 130 | - local_cloud.volume_detach 131 | - local_cmdmod.run_chroot 132 | - local_cmdmod.run 133 | - local_cmdmod.script 134 | - local_cp.get_file 135 | - local_cp.get_url 136 | - local_cp.push_dir 137 | - local_cp.push 138 | - local_cron.ls 139 | - local_cron.rm_env 140 | - local_cron.rm_job 141 | - local_cron.set_env 142 | - local_cron.set_job 143 | - local_data.cas 144 | - local_data.dump 145 | - local_data.getval 146 | - local_data.update 147 | - local_event.fire_master 148 | - local_event.fire 149 | - local_event.send 150 | - local_file.access 151 | - local_file.chgrp 152 | - local_file.chown 153 | - local_file.directory_exists 154 | - local_file.file_exists 155 | - local_file.find 156 | - local_file.manage_file 157 | - local_file.mkdir 158 | - local_file.remove 159 | - local_file.replace 160 | - local_file.search 161 | - local_file.symlink 162 | - local_file.touch 163 | - local_file.truncate 164 | - local_grains.append 165 | - local_grains.delval 166 | - local_grains.get 167 | - local_grains.remove 168 | - local_grains.setval 169 | - local_hosts.add_hosts 170 | - local_hosts.get_alias 171 | - local_hosts.get_ip 172 | - local_hosts.rm_host 173 | - local_hosts.set_host 174 | - local_htpasswd.useradd 175 | - local_htpasswd.userdel 176 | - local_mine.delete 177 | - local_mine.get 178 | - local_mine.send 179 | - local_mine.update 180 | - local_network.connect 181 | - local_network.interface_ip 182 | - local_network.ipaddrs 183 | - local_network.ping 184 | - local_network.subnets 185 | - local_pillar.get 186 | - local_pip.freeze 187 | - local_pip.install 188 | - local_pip.uninstall 189 | - local_pkg.install 190 | - local_pkg.refresh_db 191 | - local_pkg.remove 192 | - local_puppet.disable 193 | - local_puppet.enable 194 | - local_puppet.fact 195 | - local_puppet.noop 196 | - local_puppet.run 197 | - local_puppet.status 198 | - local_puppet.summary 199 | - local_ret.get_fun 200 | - local_ret.get_jids 201 | - local_ret.get_jid 202 | - local_ret.get_minions 203 | - local_saltutil.sync_all 204 | - local_saltutil.sync_grains 205 | - local_saltutil.sync_modules 206 | - local_saltutil.sync_outputters 207 | - local_saltutil.sync_renderers 208 | - local_saltutil.sync_returners 209 | - local_saltutil.sync_states 210 | - local_saltutil.sync_utils 211 | - local_schedule.add 212 | - local_schedule.delete 213 | - local_schedule.disable_job 214 | - local_schedule.enable_job 215 | - local_schedule.run_job 216 | - local_service.available 217 | - local_service.restart 218 | - local_service.start 219 | - local_service.status 220 | - local_service.stop 221 | - local_shadow.del_password 222 | - local_shadow.gen_password 223 | - local_shadow.set_expire 224 | - local_state.highstate 225 | - local_state.single 226 | - local_state.sls 227 | - local_supervisord.add 228 | - local_supervisord.custom 229 | - local_supervisord.remove 230 | - local_supervisord.reread 231 | - local_supervisord.restart 232 | - local_supervisord.start 233 | - local_supervisord.stop 234 | - local_systemd.available 235 | - local_systemd.disable 236 | - local_systemd.enable 237 | - local_systemd.restart 238 | - local_systemd.start 239 | - local_systemd.stop 240 | - local_systemd.systemctl_reload 241 | - local_test.cross_test 242 | - local_test.echo 243 | - local_test.ping 244 | - local_useradd.add 245 | - local_useradd.chshell 246 | - local_useradd.delete 247 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | --------------------------------------------------------------------------------