pyinfra 3.5__tar.gz → 3.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyinfra-3.6/.editorconfig +3 -0
- pyinfra-3.6/.git-blame-ignore-revs +5 -0
- pyinfra-3.6/.github/FUNDING.yml +1 -0
- pyinfra-3.6/.github/ISSUE_TEMPLATE/bug_report.md +26 -0
- pyinfra-3.6/.github/ISSUE_TEMPLATE/config.yml +10 -0
- pyinfra-3.6/.github/ISSUE_TEMPLATE/feature_request.md +12 -0
- pyinfra-3.6/.github/PULL_REQUEST_TEMPLATE.md +15 -0
- pyinfra-3.6/.github/workflows/docs.yml +56 -0
- pyinfra-3.6/.github/workflows/test.yml +124 -0
- pyinfra-3.6/.gitignore +36 -0
- pyinfra-3.6/.typos.toml +21 -0
- pyinfra-3.6/CHANGELOG.md +364 -0
- pyinfra-3.6/CONTRIBUTING.md +5 -0
- pyinfra-3.6/PKG-INFO +142 -0
- pyinfra-3.6/README.md +105 -0
- pyinfra-3.6/codecov.yml +6 -0
- pyinfra-3.6/docs/api/connectors.md +260 -0
- pyinfra-3.6/docs/api/deploys.md +64 -0
- pyinfra-3.6/docs/api/facts.md +96 -0
- pyinfra-3.6/docs/api/index.rst +66 -0
- pyinfra-3.6/docs/api/operations.md +79 -0
- pyinfra-3.6/docs/api/reference.rst +23 -0
- pyinfra-3.6/docs/arguments.rst +9 -0
- pyinfra-3.6/docs/changes.rst +5 -0
- pyinfra-3.6/docs/cli.md +180 -0
- pyinfra-3.6/docs/compatibility.md +103 -0
- pyinfra-3.6/docs/conf.py +113 -0
- pyinfra-3.6/docs/connectors.rst +56 -0
- pyinfra-3.6/docs/contributing.md +100 -0
- pyinfra-3.6/docs/deploy-process.rst +181 -0
- pyinfra-3.6/docs/examples/client_side_assets.md +16 -0
- pyinfra-3.6/docs/examples/data_multiple_environments.md +38 -0
- pyinfra-3.6/docs/examples/dynamic_execution_deploy.md +41 -0
- pyinfra-3.6/docs/examples/dynamic_inventories_data.md +45 -0
- pyinfra-3.6/docs/examples/groups_roles.md +48 -0
- pyinfra-3.6/docs/examples/secret_storage.md +29 -0
- pyinfra-3.6/docs/examples.rst +4 -0
- pyinfra-3.6/docs/facts.rst +102 -0
- pyinfra-3.6/docs/faq.rst +84 -0
- pyinfra-3.6/docs/getting-started.rst +113 -0
- pyinfra-3.6/docs/index.rst +124 -0
- pyinfra-3.6/docs/install.md +170 -0
- pyinfra-3.6/docs/inventory-data.rst +160 -0
- pyinfra-3.6/docs/operations.rst +73 -0
- pyinfra-3.6/docs/performance.rst +9 -0
- pyinfra-3.6/docs/static/logo_small.png +0 -0
- pyinfra-3.6/docs/static/performance.png +0 -0
- pyinfra-3.6/docs/support.md +20 -0
- pyinfra-3.6/docs/using-operations.rst +373 -0
- pyinfra-3.6/docs/utils.py +13 -0
- pyinfra-3.6/examples/README.md +1 -0
- pyinfra-3.6/pyinfra-metadata-schema-1.0.0.json +57 -0
- pyinfra-3.6/pyinfra-metadata.toml +550 -0
- pyinfra-3.6/pyproject.toml +141 -0
- pyinfra-3.6/scripts/build-public-docs.sh +61 -0
- pyinfra-3.6/scripts/cleanup_words.py +24 -0
- pyinfra-3.6/scripts/dev-lint.sh +14 -0
- pyinfra-3.6/scripts/dev-test-e2e.sh +14 -0
- pyinfra-3.6/scripts/dev-test.sh +8 -0
- pyinfra-3.6/scripts/generate_api_docs.py +31 -0
- pyinfra-3.6/scripts/generate_arguments_doc.py +92 -0
- pyinfra-3.6/scripts/generate_connectors_docs.py +110 -0
- pyinfra-3.6/scripts/generate_facts_docs.py +146 -0
- pyinfra-3.6/scripts/generate_next_version.py +20 -0
- pyinfra-3.6/scripts/generate_operations_docs.py +222 -0
- pyinfra-3.6/scripts/generate_redirect_pages.py +42 -0
- pyinfra-3.6/scripts/make_github_release.py +46 -0
- pyinfra-3.6/scripts/pyinfra-complete.sh +21 -0
- pyinfra-3.6/scripts/pyinfra-complete.zsh +28 -0
- pyinfra-3.6/scripts/release.sh +27 -0
- pyinfra-3.6/scripts/spellcheck.sh +3 -0
- pyinfra-3.6/src/pyinfra/__main__.py +4 -0
- pyinfra-3.6/src/pyinfra/api/__init__.py +27 -0
- pyinfra-3.6/src/pyinfra/api/arguments.py +413 -0
- pyinfra-3.6/src/pyinfra/api/exceptions.py +96 -0
- pyinfra-3.6/src/pyinfra/api/facts.py +326 -0
- pyinfra-3.6/src/pyinfra/api/host.py +463 -0
- pyinfra-3.6/src/pyinfra/api/metadata.py +69 -0
- pyinfra-3.6/src/pyinfra/api/operation.py +496 -0
- pyinfra-3.6/src/pyinfra/api/operations.py +397 -0
- pyinfra-3.6/src/pyinfra/api/util.py +470 -0
- pyinfra-3.6/src/pyinfra/connectors/chroot.py +212 -0
- pyinfra-3.6/src/pyinfra/connectors/docker.py +405 -0
- pyinfra-3.6/src/pyinfra/connectors/ssh.py +727 -0
- pyinfra-3.6/src/pyinfra/connectors/util.py +417 -0
- pyinfra-3.6/src/pyinfra/facts/crontab.py +195 -0
- pyinfra-3.6/src/pyinfra/facts/files.py +676 -0
- pyinfra-3.6/src/pyinfra/facts/freebsd.py +70 -0
- pyinfra-3.6/src/pyinfra/facts/npm.py +38 -0
- pyinfra-3.6/src/pyinfra/facts/selinux.py +161 -0
- pyinfra-3.6/src/pyinfra/facts/server.py +970 -0
- pyinfra-3.6/src/pyinfra/operations/apk.py +99 -0
- pyinfra-3.6/src/pyinfra/operations/apt.py +496 -0
- pyinfra-3.6/src/pyinfra/operations/brew.py +232 -0
- pyinfra-3.6/src/pyinfra/operations/choco.py +61 -0
- pyinfra-3.6/src/pyinfra/operations/crontab.py +194 -0
- pyinfra-3.6/src/pyinfra/operations/dnf.py +213 -0
- pyinfra-3.6/src/pyinfra/operations/docker.py +492 -0
- pyinfra-3.6/src/pyinfra/operations/files.py +2014 -0
- pyinfra-3.6/src/pyinfra/operations/flatpak.py +95 -0
- pyinfra-3.6/src/pyinfra/operations/gem.py +48 -0
- pyinfra-3.6/src/pyinfra/operations/git.py +420 -0
- pyinfra-3.6/src/pyinfra/operations/iptables.py +312 -0
- pyinfra-3.6/src/pyinfra/operations/lxd.py +69 -0
- pyinfra-3.6/src/pyinfra/operations/mysql.py +610 -0
- pyinfra-3.6/src/pyinfra/operations/opkg.py +89 -0
- pyinfra-3.6/src/pyinfra/operations/pacman.py +82 -0
- pyinfra-3.6/src/pyinfra/operations/pip.py +206 -0
- pyinfra-3.6/src/pyinfra/operations/pipx.py +103 -0
- pyinfra-3.6/src/pyinfra/operations/pkg.py +71 -0
- pyinfra-3.6/src/pyinfra/operations/pkgin.py +92 -0
- pyinfra-3.6/src/pyinfra/operations/postgres.py +437 -0
- pyinfra-3.6/src/pyinfra/operations/puppet.py +41 -0
- pyinfra-3.6/src/pyinfra/operations/python.py +73 -0
- pyinfra-3.6/src/pyinfra/operations/selinux.py +190 -0
- pyinfra-3.6/src/pyinfra/operations/server.py +1100 -0
- pyinfra-3.6/src/pyinfra/operations/snap.py +118 -0
- pyinfra-3.6/src/pyinfra/operations/ssh.py +217 -0
- pyinfra-3.6/src/pyinfra/operations/systemd.py +150 -0
- pyinfra-3.6/src/pyinfra/operations/sysvinit.py +142 -0
- pyinfra-3.6/src/pyinfra/operations/util/docker.py +407 -0
- pyinfra-3.6/src/pyinfra/operations/util/files.py +247 -0
- pyinfra-3.6/src/pyinfra/operations/util/packaging.py +338 -0
- pyinfra-3.6/src/pyinfra/operations/xbps.py +78 -0
- pyinfra-3.6/src/pyinfra/operations/yum.py +213 -0
- pyinfra-3.6/src/pyinfra/operations/zfs.py +176 -0
- pyinfra-3.6/src/pyinfra/operations/zypper.py +193 -0
- pyinfra-3.6/src/pyinfra_cli/cli.py +793 -0
- pyinfra-3.6/src/pyinfra_cli/main.py +40 -0
- pyinfra-3.6/src/pyinfra_cli/util.py +239 -0
- pyinfra-3.6/tests/__init__.py +13 -0
- pyinfra-3.6/tests/end-to-end/conftest.py +68 -0
- pyinfra-3.6/tests/end-to-end/test_e2e_docker.py +58 -0
- pyinfra-3.6/tests/end-to-end/test_e2e_local.py +149 -0
- pyinfra-3.6/tests/end-to-end/test_e2e_podman.py +14 -0
- pyinfra-3.6/tests/end-to-end/test_e2e_ssh.py +133 -0
- pyinfra-3.6/tests/facts/apk.ApkPackages/packages.json +34 -0
- pyinfra-3.6/tests/facts/apk.ApkPackages/packages_2.json +576 -0
- pyinfra-3.6/tests/facts/apt.AptKeys/keys.json +44 -0
- pyinfra-3.6/tests/facts/apt.AptSources/component_with_number.json +19 -0
- pyinfra-3.6/tests/facts/apt.AptSources/sources.json +44 -0
- pyinfra-3.6/tests/facts/apt.SimulateOperationWillChange/upgrade-nochanges.json +22 -0
- pyinfra-3.6/tests/facts/apt.SimulateOperationWillChange/upgrade.json +57 -0
- pyinfra-3.6/tests/facts/brew.BrewCasks/casks.json +28 -0
- pyinfra-3.6/tests/facts/brew.BrewPackages/packages.json +48 -0
- pyinfra-3.6/tests/facts/brew.BrewTaps/taps.json +12 -0
- pyinfra-3.6/tests/facts/brew.BrewVersion/bad_output.json +8 -0
- pyinfra-3.6/tests/facts/brew.BrewVersion/version.json +10 -0
- pyinfra-3.6/tests/facts/cargo.CargoPackages/packages.json +14 -0
- pyinfra-3.6/tests/facts/choco.ChocoPackages/packages.json +26 -0
- pyinfra-3.6/tests/facts/choco.ChocoVersion/version.json +5 -0
- pyinfra-3.6/tests/facts/crontab.Crontab/comments.json +33 -0
- pyinfra-3.6/tests/facts/crontab.Crontab/simple.json +34 -0
- pyinfra-3.6/tests/facts/crontab.Crontab/simple_user.json +29 -0
- pyinfra-3.6/tests/facts/deb.DebPackage/package.json +13 -0
- pyinfra-3.6/tests/facts/deb.DebPackage/whitespace.json +30 -0
- pyinfra-3.6/tests/facts/deb.DebPackages/hold_packages.json +14 -0
- pyinfra-3.6/tests/facts/deb.DebPackages/packages.json +18 -0
- pyinfra-3.6/tests/facts/dnf.DnfRepositories/repos-with-spaces.json +14 -0
- pyinfra-3.6/tests/facts/dnf.DnfRepositories/repos.json +22 -0
- pyinfra-3.6/tests/facts/docker.DockerContainer/container.json +11 -0
- pyinfra-3.6/tests/facts/docker.DockerContainers/container.json +8 -0
- pyinfra-3.6/tests/facts/docker.DockerImages/images.json +8 -0
- pyinfra-3.6/tests/facts/docker.DockerPlugin/plugin.json +11 -0
- pyinfra-3.6/tests/facts/docker.DockerPlugins/plugins.json +8 -0
- pyinfra-3.6/tests/facts/efibootmgr.EFIBootMgr/boot_entries.json +18 -0
- pyinfra-3.6/tests/facts/efibootmgr.EFIBootMgr/boot_entries2.json +20 -0
- pyinfra-3.6/tests/facts/efibootmgr.EFIBootMgr/boot_entries_complex.json +30 -0
- pyinfra-3.6/tests/facts/efibootmgr.EFIBootMgr/not_uefi.json +6 -0
- pyinfra-3.6/tests/facts/files.Block/defaults.json +12 -0
- pyinfra-3.6/tests/facts/files.Block/no_markers_found.json +8 -0
- pyinfra-3.6/tests/facts/files.Block/not_found.json +8 -0
- pyinfra-3.6/tests/facts/files.Directory/file.json +8 -0
- pyinfra-3.6/tests/facts/files.Directory/link.json +8 -0
- pyinfra-3.6/tests/facts/files.Directory/ls_fallback.json +16 -0
- pyinfra-3.6/tests/facts/files.Directory/ls_fallback_freebsd.json +16 -0
- pyinfra-3.6/tests/facts/files.Directory/ls_fallback_macos.json +16 -0
- pyinfra-3.6/tests/facts/files.Directory/valid.json +16 -0
- pyinfra-3.6/tests/facts/files.File/directory.json +8 -0
- pyinfra-3.6/tests/facts/files.File/invalid_output.json +8 -0
- pyinfra-3.6/tests/facts/files.File/link.json +8 -0
- pyinfra-3.6/tests/facts/files.File/ls_fallback.json +16 -0
- pyinfra-3.6/tests/facts/files.File/ls_fallback_selinux.json +16 -0
- pyinfra-3.6/tests/facts/files.File/ls_fallback_time.json +16 -0
- pyinfra-3.6/tests/facts/files.File/mode_setgid_setuid.json +16 -0
- pyinfra-3.6/tests/facts/files.File/mode_sticky.json +16 -0
- pyinfra-3.6/tests/facts/files.File/tilde.json +16 -0
- pyinfra-3.6/tests/facts/files.File/tilde_with_space.json +16 -0
- pyinfra-3.6/tests/facts/files.File/valid.json +16 -0
- pyinfra-3.6/tests/facts/files.File/valid_needs_quotes.json +16 -0
- pyinfra-3.6/tests/facts/files.File/valid_with_space.json +16 -0
- pyinfra-3.6/tests/facts/files.FileContents/file.json +6 -0
- pyinfra-3.6/tests/facts/files.FileContents/no_file.json +6 -0
- pyinfra-3.6/tests/facts/files.FindDirectories/directories.json +10 -0
- pyinfra-3.6/tests/facts/files.FindFiles/files.json +10 -0
- pyinfra-3.6/tests/facts/files.FindFiles/files_with_name.json +13 -0
- pyinfra-3.6/tests/facts/files.FindFiles/files_with_name_wildcard.json +13 -0
- pyinfra-3.6/tests/facts/files.FindInFile/lines.json +12 -0
- pyinfra-3.6/tests/facts/files.FindInFile/lines_interpolate.json +12 -0
- pyinfra-3.6/tests/facts/files.FindInFile/lines_no_interpolate.json +12 -0
- pyinfra-3.6/tests/facts/files.FindInFile/lines_quote.json +12 -0
- pyinfra-3.6/tests/facts/files.FindInFile/no_file.json +6 -0
- pyinfra-3.6/tests/facts/files.FindInFile/no_matches.json +8 -0
- pyinfra-3.6/tests/facts/files.FindLinks/links.json +10 -0
- pyinfra-3.6/tests/facts/files.Flags/bad_output.json +10 -0
- pyinfra-3.6/tests/facts/files.Flags/no_flags_set.json +10 -0
- pyinfra-3.6/tests/facts/files.Flags/no_output.json +9 -0
- pyinfra-3.6/tests/facts/files.Flags/one_flag_set.json +11 -0
- pyinfra-3.6/tests/facts/files.Flags/too_much_output.json +11 -0
- pyinfra-3.6/tests/facts/files.Flags/two_flags_set.json +12 -0
- pyinfra-3.6/tests/facts/files.Link/directory.json +8 -0
- pyinfra-3.6/tests/facts/files.Link/file.json +8 -0
- pyinfra-3.6/tests/facts/files.Link/ls_fallback.json +17 -0
- pyinfra-3.6/tests/facts/files.Link/valid.json +17 -0
- pyinfra-3.6/tests/facts/files.Link/valid_centos6.json +17 -0
- pyinfra-3.6/tests/facts/files.Md5File/file.json +8 -0
- pyinfra-3.6/tests/facts/files.Md5File/file_bsd_style.json +8 -0
- pyinfra-3.6/tests/facts/files.Md5File/file_needs_quotes.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha1File/file.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha1File/file_bsd_style.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha1File/file_needs_quotes.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha256File/file.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha256File/file_bsd_style.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha256File/file_needs_quotes.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha384File/file.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha384File/file_bsd_style.json +8 -0
- pyinfra-3.6/tests/facts/files.Sha384File/file_needs_quotes.json +8 -0
- pyinfra-3.6/tests/facts/flatpak.FlatpakPackage/kodi.json +32 -0
- pyinfra-3.6/tests/facts/flatpak.FlatpakPackage/not_found.json +9 -0
- pyinfra-3.6/tests/facts/flatpak.FlatpakPackage/vlc.json +32 -0
- pyinfra-3.6/tests/facts/flatpak.FlatpakPackages/packages.json +17 -0
- pyinfra-3.6/tests/facts/freebsd.PkgPackage/package-with-jail.json +11 -0
- pyinfra-3.6/tests/facts/freebsd.PkgPackage/package.json +8 -0
- pyinfra-3.6/tests/facts/freebsd.ServiceScript/found.json +8 -0
- pyinfra-3.6/tests/facts/freebsd.ServiceScript/not-found.json +6 -0
- pyinfra-3.6/tests/facts/freebsd.ServiceStatus/not-running.json +6 -0
- pyinfra-3.6/tests/facts/freebsd.ServiceStatus/running.json +8 -0
- pyinfra-3.6/tests/facts/freebsd.Sysrc/found.json +8 -0
- pyinfra-3.6/tests/facts/freebsd.Sysrc/not-found.json +6 -0
- pyinfra-3.6/tests/facts/gem.GemPackages/packages.json +10 -0
- pyinfra-3.6/tests/facts/git.GitBranch/branch.json +9 -0
- pyinfra-3.6/tests/facts/git.GitConfig/global.json +10 -0
- pyinfra-3.6/tests/facts/git.GitConfig/multi_value.json +14 -0
- pyinfra-3.6/tests/facts/git.GitConfig/repo.json +11 -0
- pyinfra-3.6/tests/facts/git.GitTag/tag.json +13 -0
- pyinfra-3.6/tests/facts/git.GitTrackingBranch/branch.json +9 -0
- pyinfra-3.6/tests/facts/git.GitTrackingBranch/branch_behind.json +9 -0
- pyinfra-3.6/tests/facts/git.GitTrackingBranch/no_branch.json +9 -0
- pyinfra-3.6/tests/facts/gpg.GpgKey/key_from_file.json +24 -0
- pyinfra-3.6/tests/facts/gpg.GpgKey/key_from_url.json +24 -0
- pyinfra-3.6/tests/facts/gpg.GpgKeys/keys.json +60 -0
- pyinfra-3.6/tests/facts/gpg.GpgKeys/keys_keyring.json +45 -0
- pyinfra-3.6/tests/facts/gpg.GpgSecretKeys/keys.json +60 -0
- pyinfra-3.6/tests/facts/gpg.GpgSecretKeys/keys_keyring.json +45 -0
- pyinfra-3.6/tests/facts/hardware.BlockDevices/devices.json +17 -0
- pyinfra-3.6/tests/facts/hardware.Cpus/invalid.json +5 -0
- pyinfra-3.6/tests/facts/hardware.Cpus/valid.json +5 -0
- pyinfra-3.6/tests/facts/hardware.Ipv4Addresses/linux_ip.json +15 -0
- pyinfra-3.6/tests/facts/hardware.Ipv4Addrs/linux_ip_multiple.json +16 -0
- pyinfra-3.6/tests/facts/hardware.Ipv6Addresses/linux_ip.json +18 -0
- pyinfra-3.6/tests/facts/hardware.Ipv6Addrs/linux_ip_multiple.json +22 -0
- pyinfra-3.6/tests/facts/hardware.Memory/vmstat_bsd.json +42 -0
- pyinfra-3.6/tests/facts/hardware.Memory/vmstat_linux.json +33 -0
- pyinfra-3.6/tests/facts/hardware.NetworkDevices/linux_ifconfig.json +89 -0
- pyinfra-3.6/tests/facts/hardware.NetworkDevices/linux_ifconfig_multiple.json +197 -0
- pyinfra-3.6/tests/facts/hardware.NetworkDevices/linux_ip.json +28 -0
- pyinfra-3.6/tests/facts/hardware.NetworkDevices/linux_ip_multiple_addrs.json +36 -0
- pyinfra-3.6/tests/facts/hardware.NetworkDevices/linux_ip_multiple_ifaces.json +160 -0
- pyinfra-3.6/tests/facts/hardware.NetworkDevices/macos_ifconfig.json +27 -0
- pyinfra-3.6/tests/facts/iptables.Ip6tablesChains/chains.json +17 -0
- pyinfra-3.6/tests/facts/iptables.Ip6tablesRules/rules.json +24 -0
- pyinfra-3.6/tests/facts/iptables.IptablesChains/chains.json +17 -0
- pyinfra-3.6/tests/facts/iptables.IptablesRules/rules.json +24 -0
- pyinfra-3.6/tests/facts/launchd.LaunchdStatus/services.json +17 -0
- pyinfra-3.6/tests/facts/lxd.LxdContainers/stripped.json +16 -0
- pyinfra-3.6/tests/facts/mysql.MysqlDatabases/multiple.json +29 -0
- pyinfra-3.6/tests/facts/mysql.MysqlDatabases/multiple_custom_connection.json +18 -0
- pyinfra-3.6/tests/facts/mysql.MysqlUserGrants/multiple.json +18 -0
- pyinfra-3.6/tests/facts/mysql.MysqlUsers/multiple.json +78 -0
- pyinfra-3.6/tests/facts/npm.NpmPackages/local_packages.json +13 -0
- pyinfra-3.6/tests/facts/npm.NpmPackages/packages.json +12 -0
- pyinfra-3.6/tests/facts/openrc.OpenrcEnabled/services.json +18 -0
- pyinfra-3.6/tests/facts/openrc.OpenrcEnabled/services_runlevel.json +19 -0
- pyinfra-3.6/tests/facts/openrc.OpenrcStatus/services.json +22 -0
- pyinfra-3.6/tests/facts/openrc.OpenrcStatus/services_runlevel.json +22 -0
- pyinfra-3.6/tests/facts/opkg.OpkgConf/opkg_conf.json +42 -0
- pyinfra-3.6/tests/facts/opkg.OpkgFeeds/opkg_feeds.json +51 -0
- pyinfra-3.6/tests/facts/opkg.OpkgInstallableArchitectures/opkg_installable_architectures.json +20 -0
- pyinfra-3.6/tests/facts/opkg.OpkgPackages/opkg_packages.json +39 -0
- pyinfra-3.6/tests/facts/opkg.OpkgUpgradeablePackages/opkg_upgradeable_packages.json +34 -0
- pyinfra-3.6/tests/facts/pacman.PacmanPackages/packages.json +56 -0
- pyinfra-3.6/tests/facts/pip.Pip3Packages/packages.json +10 -0
- pyinfra-3.6/tests/facts/pip.PipPackages/packages.json +10 -0
- pyinfra-3.6/tests/facts/pip.PipPackages/packages_pip3.json +11 -0
- pyinfra-3.6/tests/facts/pipx.PipxEnvironment/environment.json +22 -0
- pyinfra-3.6/tests/facts/pipx.PipxPackages/packages.json +12 -0
- pyinfra-3.6/tests/facts/pkg.PkgPackages/packages.json +9 -0
- pyinfra-3.6/tests/facts/pkgin.PkginPackages/packages.json +28 -0
- pyinfra-3.6/tests/facts/podman.PodmanPs/empty.json +8 -0
- pyinfra-3.6/tests/facts/podman.PodmanPs/onecontainer.json +74 -0
- pyinfra-3.6/tests/facts/podman.PodmanSystemInfo/info1.json +290 -0
- pyinfra-3.6/tests/facts/postgresql.PostgresqlDatabases/multiple.json +42 -0
- pyinfra-3.6/tests/facts/postgresql.PostgresqlRoles/multiple.json +40 -0
- pyinfra-3.6/tests/facts/postgresql.PostgresqlRoles/multiple_custom_connection.json +44 -0
- pyinfra-3.6/tests/facts/rpm.RpmPackage/package.json +12 -0
- pyinfra-3.6/tests/facts/rpm.RpmPackageProvides/package.json +11 -0
- pyinfra-3.6/tests/facts/rpm.RpmPackages/packages.json +10 -0
- pyinfra-3.6/tests/facts/runit.RunitManaged/single.json +11 -0
- pyinfra-3.6/tests/facts/runit.RunitManaged/status.json +21 -0
- pyinfra-3.6/tests/facts/runit.RunitStatus/single.json +11 -0
- pyinfra-3.6/tests/facts/runit.RunitStatus/status.json +23 -0
- pyinfra-3.6/tests/facts/selinux.FileContext/file_context.json +13 -0
- pyinfra-3.6/tests/facts/selinux.FileContextMapping/found.json +14 -0
- pyinfra-3.6/tests/facts/selinux.FileContextMapping/not_found.json +8 -0
- pyinfra-3.6/tests/facts/selinux.SEBoolean/get.json +9 -0
- pyinfra-3.6/tests/facts/selinux.SEPort/generic_and_specific.json +10 -0
- pyinfra-3.6/tests/facts/selinux.SEPort/get_bad_port.json +8 -0
- pyinfra-3.6/tests/facts/selinux.SEPort/only_generic.json +9 -0
- pyinfra-3.6/tests/facts/selinux.SEPorts/line_noise_input.json +8 -0
- pyinfra-3.6/tests/facts/selinux.SEPorts/multiple_single_ports.json +10 -0
- pyinfra-3.6/tests/facts/selinux.SEPorts/only_single_port.json +10 -0
- pyinfra-3.6/tests/facts/selinux.SEPorts/port_range.json +14 -0
- pyinfra-3.6/tests/facts/selinux.SEPorts/single_and_range.json +10 -0
- pyinfra-3.6/tests/facts/server.Arch/arch.json +5 -0
- pyinfra-3.6/tests/facts/server.Command/command.json +6 -0
- pyinfra-3.6/tests/facts/server.Date/date.json +5 -0
- pyinfra-3.6/tests/facts/server.Groups/groups.json +13 -0
- pyinfra-3.6/tests/facts/server.HasGui/gui_absent.json +5 -0
- pyinfra-3.6/tests/facts/server.HasGui/gui_present.json +7 -0
- pyinfra-3.6/tests/facts/server.Home/home.json +5 -0
- pyinfra-3.6/tests/facts/server.Home/root.json +6 -0
- pyinfra-3.6/tests/facts/server.Home/some_user.json +6 -0
- pyinfra-3.6/tests/facts/server.Hostname/hostname.json +5 -0
- pyinfra-3.6/tests/facts/server.KernelModules/modules.json +40 -0
- pyinfra-3.6/tests/facts/server.LinuxDistribution/archlinux.json +36 -0
- pyinfra-3.6/tests/facts/server.LinuxDistribution/centos-6.json +19 -0
- pyinfra-3.6/tests/facts/server.LinuxDistribution/centos-7.json +46 -0
- pyinfra-3.6/tests/facts/server.LinuxDistribution/no_match.json +10 -0
- pyinfra-3.6/tests/facts/server.LinuxDistribution/ubuntu.json +21 -0
- pyinfra-3.6/tests/facts/server.LinuxGui/gnome_present.json +7 -0
- pyinfra-3.6/tests/facts/server.LinuxName/ubuntu.json +8 -0
- pyinfra-3.6/tests/facts/server.Locales +17 -0
- pyinfra-3.6/tests/facts/server.LsbRelease/release.json +17 -0
- pyinfra-3.6/tests/facts/server.Mounts/mounts.json +48 -0
- pyinfra-3.6/tests/facts/server.Os/os.json +5 -0
- pyinfra-3.6/tests/facts/server.OsVersion/os_version.json +5 -0
- pyinfra-3.6/tests/facts/server.Port/empty.json +7 -0
- pyinfra-3.6/tests/facts/server.Port/one-process.json +12 -0
- pyinfra-3.6/tests/facts/server.Port/two-processes.json +14 -0
- pyinfra-3.6/tests/facts/server.RebootRequired/alpine_reboot_required.json +5 -0
- pyinfra-3.6/tests/facts/server.RebootRequired/freebsd_reboot_required.json +4 -0
- pyinfra-3.6/tests/facts/server.RebootRequired/linux_no_reboot.json +5 -0
- pyinfra-3.6/tests/facts/server.RebootRequired/linux_reboot_required.json +5 -0
- pyinfra-3.6/tests/facts/server.SecurityLimits/security_limits.json +74 -0
- pyinfra-3.6/tests/facts/server.Selinux/no-output.json +10 -0
- pyinfra-3.6/tests/facts/server.Selinux/selinux.json +11 -0
- pyinfra-3.6/tests/facts/server.Sysctl/sysctl_linux.json +14 -0
- pyinfra-3.6/tests/facts/server.Sysctl/sysctl_macos.json +13 -0
- pyinfra-3.6/tests/facts/server.TmpDir/default_fallback.json +5 -0
- pyinfra-3.6/tests/facts/server.TmpDir/temp_set.json +5 -0
- pyinfra-3.6/tests/facts/server.TmpDir/tmp_set.json +5 -0
- pyinfra-3.6/tests/facts/server.TmpDir/tmpdir_set.json +5 -0
- pyinfra-3.6/tests/facts/server.Users/mixed.json +107 -0
- pyinfra-3.6/tests/facts/server.Which/which.json +6 -0
- pyinfra-3.6/tests/facts/snap.SnapPackage/lxd.json +73 -0
- pyinfra-3.6/tests/facts/snap.SnapPackage/not_found.json +9 -0
- pyinfra-3.6/tests/facts/snap.SnapPackage/snapd.json +36 -0
- pyinfra-3.6/tests/facts/snap.SnapPackage/vlc.json +42 -0
- pyinfra-3.6/tests/facts/snap.SnapPackages/packages.json +19 -0
- pyinfra-3.6/tests/facts/systemd.SystemdEnabled/machine_services.json +20 -0
- pyinfra-3.6/tests/facts/systemd.SystemdEnabled/root_machine_services.json +20 -0
- pyinfra-3.6/tests/facts/systemd.SystemdEnabled/services.json +19 -0
- pyinfra-3.6/tests/facts/systemd.SystemdEnabled/user_machine_services.json +20 -0
- pyinfra-3.6/tests/facts/systemd.SystemdEnabled/user_services.json +20 -0
- pyinfra-3.6/tests/facts/systemd.SystemdStatus/machine_services.json +24 -0
- pyinfra-3.6/tests/facts/systemd.SystemdStatus/root_machine_services.json +24 -0
- pyinfra-3.6/tests/facts/systemd.SystemdStatus/services.json +27 -0
- pyinfra-3.6/tests/facts/systemd.SystemdStatus/services_invalid_output.json +25 -0
- pyinfra-3.6/tests/facts/systemd.SystemdStatus/user_machine_services.json +24 -0
- pyinfra-3.6/tests/facts/systemd.SystemdStatus/user_services.json +24 -0
- pyinfra-3.6/tests/facts/sysvinit.InitdStatus/services.json +13 -0
- pyinfra-3.6/tests/facts/upstart.UpstartStatus/services.json +12 -0
- pyinfra-3.6/tests/facts/vzctl.OpenvzContainers/containers.json +14 -0
- pyinfra-3.6/tests/facts/xbps.XbpsPackages/dot-in-package-name.json +14 -0
- pyinfra-3.6/tests/facts/xbps.XbpsPackages/packages.json +10 -0
- pyinfra-3.6/tests/facts/yum.YumRepositories/repos.json +18 -0
- pyinfra-3.6/tests/facts/zfs.Datasets/datasets.yaml +26 -0
- pyinfra-3.6/tests/facts/zfs.Filesystems/filesystems.yaml +21 -0
- pyinfra-3.6/tests/facts/zfs.Pools/pools.yaml +9 -0
- pyinfra-3.6/tests/facts/zfs.Snapshots/snapshots.yaml +16 -0
- pyinfra-3.6/tests/facts/zfs.Volumes/volumes.yaml +15 -0
- pyinfra-3.6/tests/facts/zypper.ZypperRepositories/repos.json +18 -0
- pyinfra-3.6/tests/operations/apk.packages/add_packages.json +9 -0
- pyinfra-3.6/tests/operations/apk.packages/remove_packages.json +14 -0
- pyinfra-3.6/tests/operations/apk.packages/upgrade_packages.json +14 -0
- pyinfra-3.6/tests/operations/apk.packages/upgrade_update.json +18 -0
- pyinfra-3.6/tests/operations/apk.upgrade/upgrade_available.json +10 -0
- pyinfra-3.6/tests/operations/apt.deb/add.json +23 -0
- pyinfra-3.6/tests/operations/apt.deb/add_existing.json +20 -0
- pyinfra-3.6/tests/operations/apt.deb/download_add.json +30 -0
- pyinfra-3.6/tests/operations/apt.deb/remove_existing.json +24 -0
- pyinfra-3.6/tests/operations/apt.deb/remove_no_exist.json +21 -0
- pyinfra-3.6/tests/operations/apt.dist_upgrade/dist_upgrade.json +11 -0
- pyinfra-3.6/tests/operations/apt.dist_upgrade/dist_upgrade_autoremove.json +16 -0
- pyinfra-3.6/tests/operations/apt.key/add.json +14 -0
- pyinfra-3.6/tests/operations/apt.key/add_exists.json +15 -0
- pyinfra-3.6/tests/operations/apt.key/add_keyserver.json +12 -0
- pyinfra-3.6/tests/operations/apt.key/add_keyserver_exists.json +14 -0
- pyinfra-3.6/tests/operations/apt.key/add_keyserver_multiple.json +12 -0
- pyinfra-3.6/tests/operations/apt.key/add_keyserver_multiple_partial.json +14 -0
- pyinfra-3.6/tests/operations/apt.key/add_keyserver_no_keyid.json +12 -0
- pyinfra-3.6/tests/operations/apt.key/add_no_gpg.json +14 -0
- pyinfra-3.6/tests/operations/apt.key/add_url.json +14 -0
- pyinfra-3.6/tests/operations/apt.packages/add_package.json +9 -0
- pyinfra-3.6/tests/operations/apt.packages/add_package_allow_downgrades.json +12 -0
- pyinfra-3.6/tests/operations/apt.packages/add_package_force.json +12 -0
- pyinfra-3.6/tests/operations/apt.packages/add_package_no_recommends.json +12 -0
- pyinfra-3.6/tests/operations/apt.packages/add_packages.json +17 -0
- pyinfra-3.6/tests/operations/apt.packages/install_with_args.json +12 -0
- pyinfra-3.6/tests/operations/apt.packages/remove_packages.json +19 -0
- pyinfra-3.6/tests/operations/apt.packages/remove_packages_with_args.json +17 -0
- pyinfra-3.6/tests/operations/apt.packages/update_cache_old.json +19 -0
- pyinfra-3.6/tests/operations/apt.packages/update_cached.json +17 -0
- pyinfra-3.6/tests/operations/apt.packages/update_cached_tz.json +17 -0
- pyinfra-3.6/tests/operations/apt.packages/update_nocache.json +17 -0
- pyinfra-3.6/tests/operations/apt.packages/update_upgrade.json +16 -0
- pyinfra-3.6/tests/operations/apt.packages/upgrade_packages.json +17 -0
- pyinfra-3.6/tests/operations/apt.ppa/add.json +10 -0
- pyinfra-3.6/tests/operations/apt.ppa/remove.json +15 -0
- pyinfra-3.6/tests/operations/apt.repo/add.json +12 -0
- pyinfra-3.6/tests/operations/apt.repo/add_existing.json +14 -0
- pyinfra-3.6/tests/operations/apt.repo/add_filename.json +15 -0
- pyinfra-3.6/tests/operations/apt.repo/remove.json +21 -0
- pyinfra-3.6/tests/operations/apt.upgrade/upgrade.json +17 -0
- pyinfra-3.6/tests/operations/apt.upgrade/upgrade_autoremove.json +11 -0
- pyinfra-3.6/tests/operations/brew.cask_upgrade/new_cli_upgrade.json +8 -0
- pyinfra-3.6/tests/operations/brew.cask_upgrade/old_cli_upgrade.json +8 -0
- pyinfra-3.6/tests/operations/brew.casks/add_casks_upgrade.json +16 -0
- pyinfra-3.6/tests/operations/brew.casks/new_cli_add_casks.json +8 -0
- pyinfra-3.6/tests/operations/brew.casks/old_cli_add_casks.json +10 -0
- pyinfra-3.6/tests/operations/brew.packages/add_packages.json +9 -0
- pyinfra-3.6/tests/operations/brew.packages/remove_packages.json +14 -0
- pyinfra-3.6/tests/operations/brew.packages/upgrade_packages.json +17 -0
- pyinfra-3.6/tests/operations/brew.packages/upgrade_update.json +18 -0
- pyinfra-3.6/tests/operations/brew.tap/add_exists.json +10 -0
- pyinfra-3.6/tests/operations/brew.tap/add_tap.json +9 -0
- pyinfra-3.6/tests/operations/brew.tap/add_tap_bad_url.json +11 -0
- pyinfra-3.6/tests/operations/brew.tap/add_tap_no_args.json +9 -0
- pyinfra-3.6/tests/operations/brew.tap/add_tap_url.json +14 -0
- pyinfra-3.6/tests/operations/brew.tap/add_tap_url_exists.json +15 -0
- pyinfra-3.6/tests/operations/brew.tap/add_tap_url_no_src.json +10 -0
- pyinfra-3.6/tests/operations/brew.tap/remove_no_exists.json +11 -0
- pyinfra-3.6/tests/operations/brew.tap/remove_tap.json +14 -0
- pyinfra-3.6/tests/operations/brew.upgrade/upgrade.json +6 -0
- pyinfra-3.6/tests/operations/bsdinit.service/disabled.json +20 -0
- pyinfra-3.6/tests/operations/bsdinit.service/enabled.json +19 -0
- pyinfra-3.6/tests/operations/bsdinit.service/reload.json +17 -0
- pyinfra-3.6/tests/operations/bsdinit.service/skip_started.json +11 -0
- pyinfra-3.6/tests/operations/bsdinit.service/start.json +12 -0
- pyinfra-3.6/tests/operations/bsdinit.service/stop.json +15 -0
- pyinfra-3.6/tests/operations/cargo.packages/add_packages.json +12 -0
- pyinfra-3.6/tests/operations/cargo.packages/remove_packages.json +17 -0
- pyinfra-3.6/tests/operations/choco.install/install.json +6 -0
- pyinfra-3.6/tests/operations/choco.packages/add_packages.json +9 -0
- pyinfra-3.6/tests/operations/choco.packages/remove_packages.json +14 -0
- pyinfra-3.6/tests/operations/crontab.crontab/add.json +12 -0
- pyinfra-3.6/tests/operations/crontab.crontab/add_another.json +16 -0
- pyinfra-3.6/tests/operations/crontab.crontab/add_existing.json +18 -0
- pyinfra-3.6/tests/operations/crontab.crontab/add_existing_int.json +22 -0
- pyinfra-3.6/tests/operations/crontab.crontab/add_named.json +27 -0
- pyinfra-3.6/tests/operations/crontab.crontab/add_special_time.json +15 -0
- pyinfra-3.6/tests/operations/crontab.crontab/add_user.json +15 -0
- pyinfra-3.6/tests/operations/crontab.crontab/edit.json +26 -0
- pyinfra-3.6/tests/operations/crontab.crontab/edit_named.json +28 -0
- pyinfra-3.6/tests/operations/crontab.crontab/edit_special_time.json +21 -0
- pyinfra-3.6/tests/operations/crontab.crontab/remove.json +25 -0
- pyinfra-3.6/tests/operations/dnf.key/add.json +6 -0
- pyinfra-3.6/tests/operations/dnf.packages/add_packages.json +20 -0
- pyinfra-3.6/tests/operations/dnf.packages/install_with_args.json +15 -0
- pyinfra-3.6/tests/operations/dnf.packages/install_with_nobest.json +15 -0
- pyinfra-3.6/tests/operations/dnf.packages/noop_add_package_alias.json +13 -0
- pyinfra-3.6/tests/operations/dnf.packages/remove_package.json +25 -0
- pyinfra-3.6/tests/operations/dnf.packages/uninstall_with_args.json +20 -0
- pyinfra-3.6/tests/operations/dnf.packages/update_clean.json +16 -0
- pyinfra-3.6/tests/operations/dnf.repo/add.json +23 -0
- pyinfra-3.6/tests/operations/dnf.repo/remove.json +14 -0
- pyinfra-3.6/tests/operations/dnf.rpm/add.json +16 -0
- pyinfra-3.6/tests/operations/dnf.rpm/add_existing.json +16 -0
- pyinfra-3.6/tests/operations/dnf.rpm/add_existing_upgrade.json +15 -0
- pyinfra-3.6/tests/operations/dnf.rpm/add_url.json +25 -0
- pyinfra-3.6/tests/operations/dnf.rpm/remove.json +20 -0
- pyinfra-3.6/tests/operations/docker.container/add_and_start_no_existent_container.json +20 -0
- pyinfra-3.6/tests/operations/docker.container/add_container_with_labels.json +19 -0
- pyinfra-3.6/tests/operations/docker.container/add_existent_container.json +248 -0
- pyinfra-3.6/tests/operations/docker.container/add_no_existent_container.json +19 -0
- pyinfra-3.6/tests/operations/docker.container/remove_container.json +248 -0
- pyinfra-3.6/tests/operations/docker.container/start_container.json +246 -0
- pyinfra-3.6/tests/operations/docker.container/stop_container.json +248 -0
- pyinfra-3.6/tests/operations/docker.image/force_pull_image.json +27 -0
- pyinfra-3.6/tests/operations/docker.image/image_from_github_registry_exists.json +26 -0
- pyinfra-3.6/tests/operations/docker.image/image_with_digest_exists.json +24 -0
- pyinfra-3.6/tests/operations/docker.image/image_with_digest_not_exists.json +15 -0
- pyinfra-3.6/tests/operations/docker.image/image_with_latest_tag_always_pull.json +27 -0
- pyinfra-3.6/tests/operations/docker.image/image_with_specific_tag_exists.json +26 -0
- pyinfra-3.6/tests/operations/docker.image/image_with_specific_tag_not_exists.json +15 -0
- pyinfra-3.6/tests/operations/docker.image/image_with_tag_and_digest.json +16 -0
- pyinfra-3.6/tests/operations/docker.image/image_with_tag_and_digest_different_digest.json +15 -0
- pyinfra-3.6/tests/operations/docker.image/image_with_tag_and_digest_different_tag.json +26 -0
- pyinfra-3.6/tests/operations/docker.image/image_without_tag_always_pull.json +27 -0
- pyinfra-3.6/tests/operations/docker.image/pull_image_from_private_registry.json +15 -0
- pyinfra-3.6/tests/operations/docker.image/remove_existing_image.json +26 -0
- pyinfra-3.6/tests/operations/docker.image/remove_nonexistent_image.json +13 -0
- pyinfra-3.6/tests/operations/docker.network/add_network.json +16 -0
- pyinfra-3.6/tests/operations/docker.network/add_network_macvlan_with_aux_addresses.json +21 -0
- pyinfra-3.6/tests/operations/docker.network/add_network_with_gateway.json +15 -0
- pyinfra-3.6/tests/operations/docker.network/add_network_with_ip_range.json +15 -0
- pyinfra-3.6/tests/operations/docker.network/add_network_with_opts.json +16 -0
- pyinfra-3.6/tests/operations/docker.network/remove_network.json +14 -0
- pyinfra-3.6/tests/operations/docker.plugin/disable_plugin.json +20 -0
- pyinfra-3.6/tests/operations/docker.plugin/enable_plugin.json +19 -0
- pyinfra-3.6/tests/operations/docker.plugin/install_plugin.json +13 -0
- pyinfra-3.6/tests/operations/docker.plugin/install_plugin_disabled.json +14 -0
- pyinfra-3.6/tests/operations/docker.plugin/install_plugin_with_alias_and_options.json +18 -0
- pyinfra-3.6/tests/operations/docker.plugin/remove_plugin.json +20 -0
- pyinfra-3.6/tests/operations/docker.plugin/set_plugin_options.json +31 -0
- pyinfra-3.6/tests/operations/docker.plugin/set_plugin_options_disabled_plugin.json +30 -0
- pyinfra-3.6/tests/operations/docker.volume/add_volume.json +14 -0
- pyinfra-3.6/tests/operations/docker.volume/add_volume_with_driver.json +15 -0
- pyinfra-3.6/tests/operations/docker.volume/add_volume_with_labels.json +15 -0
- pyinfra-3.6/tests/operations/files.block/add_existing_block_different_content.json +24 -0
- pyinfra-3.6/tests/operations/files.block/add_existing_block_different_content_and_backup.json +25 -0
- pyinfra-3.6/tests/operations/files.block/add_existing_block_different_content_multiple_lines.json +28 -0
- pyinfra-3.6/tests/operations/files.block/add_existing_block_same_content.json +16 -0
- pyinfra-3.6/tests/operations/files.block/add_line_given_but_before_eq_after.json +19 -0
- pyinfra-3.6/tests/operations/files.block/add_no_content_provided.json +13 -0
- pyinfra-3.6/tests/operations/files.block/add_no_existing_block_and_no_line.json +22 -0
- pyinfra-3.6/tests/operations/files.block/add_no_existing_block_and_non_str_line_given.json +18 -0
- pyinfra-3.6/tests/operations/files.block/add_no_existing_block_line_provided.json +22 -0
- pyinfra-3.6/tests/operations/files.block/add_no_existing_block_line_provided_escape_regex.json +23 -0
- pyinfra-3.6/tests/operations/files.block/add_no_existing_file.json +22 -0
- pyinfra-3.6/tests/operations/files.block/add_no_line_given_but_before_ne_after.json +18 -0
- pyinfra-3.6/tests/operations/files.block/remove_but_content_not_none.json +23 -0
- pyinfra-3.6/tests/operations/files.block/remove_existing_block.json +22 -0
- pyinfra-3.6/tests/operations/files.block/remove_no_existing_block.json +12 -0
- pyinfra-3.6/tests/operations/files.block/remove_no_file.json +12 -0
- pyinfra-3.6/tests/operations/files.copy/copies_directory.json +22 -0
- pyinfra-3.6/tests/operations/files.copy/copies_directory_overwriting.json +21 -0
- pyinfra-3.6/tests/operations/files.copy/copies_file.json +19 -0
- pyinfra-3.6/tests/operations/files.copy/copies_file_overwriting.json +19 -0
- pyinfra-3.6/tests/operations/files.copy/invalid_dest.json +21 -0
- pyinfra-3.6/tests/operations/files.copy/invalid_overwrite.json +26 -0
- pyinfra-3.6/tests/operations/files.copy/invalid_src.json +21 -0
- pyinfra-3.6/tests/operations/files.copy/noop_dest_file_exists.json +24 -0
- pyinfra-3.6/tests/operations/files.directory/add.json +19 -0
- pyinfra-3.6/tests/operations/files.directory/add_force.json +15 -0
- pyinfra-3.6/tests/operations/files.directory/add_force_backup_dir.json +16 -0
- pyinfra-3.6/tests/operations/files.directory/add_force_no_backup.json +16 -0
- pyinfra-3.6/tests/operations/files.directory/add_with_spaces.json +19 -0
- pyinfra-3.6/tests/operations/files.directory/delete.json +18 -0
- pyinfra-3.6/tests/operations/files.directory/edit.json +21 -0
- pyinfra-3.6/tests/operations/files.directory/edit_with_spaces.json +21 -0
- pyinfra-3.6/tests/operations/files.directory/ignore_link_type.json +16 -0
- pyinfra-3.6/tests/operations/files.directory/invalid.json +17 -0
- pyinfra-3.6/tests/operations/files.directory/invalid_type.json +7 -0
- pyinfra-3.6/tests/operations/files.download/download.json +23 -0
- pyinfra-3.6/tests/operations/files.download/download_cache_time.json +20 -0
- pyinfra-3.6/tests/operations/files.download/download_cache_time_needs_refresh.json +22 -0
- pyinfra-3.6/tests/operations/files.download/download_directory.json +18 -0
- pyinfra-3.6/tests/operations/files.download/download_existing_checksum.json +34 -0
- pyinfra-3.6/tests/operations/files.download/download_extra_args_curl.json +22 -0
- pyinfra-3.6/tests/operations/files.download/download_extra_args_wget.json +23 -0
- pyinfra-3.6/tests/operations/files.download/download_headers_curl.json +22 -0
- pyinfra-3.6/tests/operations/files.download/download_headers_wget.json +23 -0
- pyinfra-3.6/tests/operations/files.download/download_insecure_curl.json +20 -0
- pyinfra-3.6/tests/operations/files.download/download_insecure_wget.json +21 -0
- pyinfra-3.6/tests/operations/files.download/download_needs_quotes.json +23 -0
- pyinfra-3.6/tests/operations/files.download/download_no_curl_no_wget.json +24 -0
- pyinfra-3.6/tests/operations/files.download/download_proxy_curl.json +20 -0
- pyinfra-3.6/tests/operations/files.download/download_proxy_wget.json +21 -0
- pyinfra-3.6/tests/operations/files.download/download_wget.json +24 -0
- pyinfra-3.6/tests/operations/files.download/download_with_checksums.json +25 -0
- pyinfra-3.6/tests/operations/files.download/download_with_checksums_needs_quotes.json +25 -0
- pyinfra-3.6/tests/operations/files.download/pathlib_download.json +24 -0
- pyinfra-3.6/tests/operations/files.download/skip_existing.json +14 -0
- pyinfra-3.6/tests/operations/files.file/add.json +18 -0
- pyinfra-3.6/tests/operations/files.file/add_force.json +15 -0
- pyinfra-3.6/tests/operations/files.file/add_force_backup_dir.json +16 -0
- pyinfra-3.6/tests/operations/files.file/add_force_backup_dir_nested.json +19 -0
- pyinfra-3.6/tests/operations/files.file/add_force_no_backup.json +16 -0
- pyinfra-3.6/tests/operations/files.file/add_special_chars.json +21 -0
- pyinfra-3.6/tests/operations/files.file/add_with_spaces.json +18 -0
- pyinfra-3.6/tests/operations/files.file/create_directory.json +18 -0
- pyinfra-3.6/tests/operations/files.file/delete.json +18 -0
- pyinfra-3.6/tests/operations/files.file/delete_with_spaces.json +18 -0
- pyinfra-3.6/tests/operations/files.file/edit.json +21 -0
- pyinfra-3.6/tests/operations/files.file/edit_nothing.json +19 -0
- pyinfra-3.6/tests/operations/files.file/invalid.json +17 -0
- pyinfra-3.6/tests/operations/files.file/invalid_type.json +7 -0
- pyinfra-3.6/tests/operations/files.file/touch.json +18 -0
- pyinfra-3.6/tests/operations/files.flags/clear_no_flags.json +12 -0
- pyinfra-3.6/tests/operations/files.flags/clear_one_flag_already_clear.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/clear_one_flag_was_set.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/clear_two_flags.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/clear_two_flags_already_clear.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/clear_two_flags_first_already_clear.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/clear_two_flags_second_already_clear.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/set_no_flags.json +12 -0
- pyinfra-3.6/tests/operations/files.flags/set_one_flag_already_set.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/set_one_flag_not_yet_set.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/set_two_flags.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/set_two_flags_already_set.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/set_two_flags_first_already_set.json +15 -0
- pyinfra-3.6/tests/operations/files.flags/set_two_flags_second_already_set.json +15 -0
- pyinfra-3.6/tests/operations/files.get/create_directory.json +17 -0
- pyinfra-3.6/tests/operations/files.get/different_remote.json +22 -0
- pyinfra-3.6/tests/operations/files.get/fallback_md5.json +25 -0
- pyinfra-3.6/tests/operations/files.get/fallback_sha256.json +28 -0
- pyinfra-3.6/tests/operations/files.get/no_change_md5.json +24 -0
- pyinfra-3.6/tests/operations/files.get/no_change_sha256.json +27 -0
- pyinfra-3.6/tests/operations/files.get/no_local.json +13 -0
- pyinfra-3.6/tests/operations/files.get/no_remote.json +11 -0
- pyinfra-3.6/tests/operations/files.get/path_with_spaces.json +11 -0
- pyinfra-3.6/tests/operations/files.get/path_with_spaces_already_escaped.json +11 -0
- pyinfra-3.6/tests/operations/files.get/pathlib_path_with_spaces.json +12 -0
- pyinfra-3.6/tests/operations/files.line/add.json +11 -0
- pyinfra-3.6/tests/operations/files.line/add_backup.json +14 -0
- pyinfra-3.6/tests/operations/files.line/add_existing.json +14 -0
- pyinfra-3.6/tests/operations/files.line/add_replace.json +16 -0
- pyinfra-3.6/tests/operations/files.line/add_replace_noop.json +15 -0
- pyinfra-3.6/tests/operations/files.line/add_with_quote.json +11 -0
- pyinfra-3.6/tests/operations/files.line/edit.json +17 -0
- pyinfra-3.6/tests/operations/files.line/edit_backup.json +18 -0
- pyinfra-3.6/tests/operations/files.line/pathlib_edit.json +17 -0
- pyinfra-3.6/tests/operations/files.link/add.json +17 -0
- pyinfra-3.6/tests/operations/files.link/add_force.json +16 -0
- pyinfra-3.6/tests/operations/files.link/add_force_backup_dir.json +17 -0
- pyinfra-3.6/tests/operations/files.link/add_force_no_backup.json +17 -0
- pyinfra-3.6/tests/operations/files.link/add_no_target.json +16 -0
- pyinfra-3.6/tests/operations/files.link/add_with_spaces.json +17 -0
- pyinfra-3.6/tests/operations/files.link/create_directory.json +19 -0
- pyinfra-3.6/tests/operations/files.link/delete.json +18 -0
- pyinfra-3.6/tests/operations/files.link/edit.json +22 -0
- pyinfra-3.6/tests/operations/files.link/edit_nothing.json +19 -0
- pyinfra-3.6/tests/operations/files.link/invalid.json +17 -0
- pyinfra-3.6/tests/operations/files.link/invalid_type.json +7 -0
- pyinfra-3.6/tests/operations/files.link/pathlib_edit.json +22 -0
- pyinfra-3.6/tests/operations/files.move/directory.json +19 -0
- pyinfra-3.6/tests/operations/files.move/invalid_dest.json +18 -0
- pyinfra-3.6/tests/operations/files.move/invalid_src.json +18 -0
- pyinfra-3.6/tests/operations/files.move/link.json +21 -0
- pyinfra-3.6/tests/operations/files.move/no_conflict.json +18 -0
- pyinfra-3.6/tests/operations/files.move/no_overwrite.json +23 -0
- pyinfra-3.6/tests/operations/files.move/overwrite.json +21 -0
- pyinfra-3.6/tests/operations/files.put/atime_mtime_sub_second.json +31 -0
- pyinfra-3.6/tests/operations/files.put/change_atime_eq_mtime_ref_remote.json +37 -0
- pyinfra-3.6/tests/operations/files.put/change_mode_owner.json +33 -0
- pyinfra-3.6/tests/operations/files.put/change_mode_owner_with_spaces.json +33 -0
- pyinfra-3.6/tests/operations/files.put/change_mtime_arg_no_tz.json +37 -0
- pyinfra-3.6/tests/operations/files.put/change_mtime_atime_ref_local file.json +44 -0
- pyinfra-3.6/tests/operations/files.put/copy_local_permissions.json +26 -0
- pyinfra-3.6/tests/operations/files.put/create_directory.json +29 -0
- pyinfra-3.6/tests/operations/files.put/different_remote.json +37 -0
- pyinfra-3.6/tests/operations/files.put/fallback_md5.json +31 -0
- pyinfra-3.6/tests/operations/files.put/fallback_sha256.json +34 -0
- pyinfra-3.6/tests/operations/files.put/no_change.json +22 -0
- pyinfra-3.6/tests/operations/files.put/no_change_atime_mtime.json +43 -0
- pyinfra-3.6/tests/operations/files.put/no_change_md5.json +25 -0
- pyinfra-3.6/tests/operations/files.put/no_change_same_mode_as_local.json +29 -0
- pyinfra-3.6/tests/operations/files.put/no_change_sha256.json +28 -0
- pyinfra-3.6/tests/operations/files.put/no_local.json +7 -0
- pyinfra-3.6/tests/operations/files.put/no_remote.json +28 -0
- pyinfra-3.6/tests/operations/files.put/path_with_spaces.json +21 -0
- pyinfra-3.6/tests/operations/files.put/path_with_spaces_already_escaped.json +21 -0
- pyinfra-3.6/tests/operations/files.put/pathlib_with_spaces.json +22 -0
- pyinfra-3.6/tests/operations/files.put/upload_to_directory.json +28 -0
- pyinfra-3.6/tests/operations/files.replace/no_match.json +10 -0
- pyinfra-3.6/tests/operations/files.replace/replace_double_quotes_interpolate.json +14 -0
- pyinfra-3.6/tests/operations/files.replace/replace_double_quotes_no_interpolate.json +14 -0
- pyinfra-3.6/tests/operations/files.replace/replace_single_quotes_interpolate.json +14 -0
- pyinfra-3.6/tests/operations/files.replace/replace_single_quotes_no_interpolate.json +14 -0
- pyinfra-3.6/tests/operations/files.replace/simple_interpolate.json +15 -0
- pyinfra-3.6/tests/operations/files.replace/simple_no_interpolate.json +15 -0
- pyinfra-3.6/tests/operations/files.sync/sync_delete_posix.json +78 -0
- pyinfra-3.6/tests/operations/files.sync/sync_delete_windows.json +97 -0
- pyinfra-3.6/tests/operations/files.sync/sync_destination_link.json +88 -0
- pyinfra-3.6/tests/operations/files.sync/sync_exclude_multiple.json +101 -0
- pyinfra-3.6/tests/operations/files.sync/sync_no_destination_exist.json +58 -0
- pyinfra-3.6/tests/operations/files.sync/sync_no_local_exist_posix.json +16 -0
- pyinfra-3.6/tests/operations/files.sync/sync_no_local_exist_windows.json +16 -0
- pyinfra-3.6/tests/operations/files.sync/sync_partial_exists.json +66 -0
- pyinfra-3.6/tests/operations/files.sync/sync_special_chars.json +40 -0
- pyinfra-3.6/tests/operations/files.template/invalid_template_syntax.json +18 -0
- pyinfra-3.6/tests/operations/files.template/no_remote.json +28 -0
- pyinfra-3.6/tests/operations/files.template/undefined_template_variable.json +18 -0
- pyinfra-3.6/tests/operations/flatpak.packages/install_package.json +10 -0
- pyinfra-3.6/tests/operations/flatpak.packages/install_packages.json +16 -0
- pyinfra-3.6/tests/operations/flatpak.packages/remove_packages.json +12 -0
- pyinfra-3.6/tests/operations/freebsd.freebsd_update.update/update.json +5 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.autoremove/autoremove-with-jail.json +8 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.autoremove/autoremove.json +5 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.clean/clean-all-with-jail.json +9 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.clean/clean-all.json +8 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.clean/clean-with-jail.json +8 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.clean/clean.json +5 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.install/install-with-custom-repo.json +14 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.install/install-with-jail-and-custom-repo.json +15 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.install/install-with-jail.json +14 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.install/install.json +11 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.remove/remove-with-jail.json +13 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.remove/remove.json +10 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.update/update.json +5 -0
- pyinfra-3.6/tests/operations/freebsd.pkg.upgrade/upgrade.json +5 -0
- pyinfra-3.6/tests/operations/freebsd.service.service/custom.json +18 -0
- pyinfra-3.6/tests/operations/freebsd.service.service/reload.json +17 -0
- pyinfra-3.6/tests/operations/freebsd.service.service/restart.json +17 -0
- pyinfra-3.6/tests/operations/freebsd.service.service/start.json +17 -0
- pyinfra-3.6/tests/operations/freebsd.service.service/stop.json +17 -0
- pyinfra-3.6/tests/operations/freebsd.sysrc.sysrc/add.json +15 -0
- pyinfra-3.6/tests/operations/freebsd.sysrc.sysrc/del.json +15 -0
- pyinfra-3.6/tests/operations/freebsd.sysrc.sysrc/set.json +15 -0
- pyinfra-3.6/tests/operations/freebsd.sysrc.sysrc/sub.json +15 -0
- pyinfra-3.6/tests/operations/gem.packages/add_packages.json +9 -0
- pyinfra-3.6/tests/operations/gem.packages/remove_packages.json +14 -0
- pyinfra-3.6/tests/operations/git.bare_repo/chmod.json +20 -0
- pyinfra-3.6/tests/operations/git.bare_repo/delete.json +17 -0
- pyinfra-3.6/tests/operations/git.bare_repo/init.json +17 -0
- pyinfra-3.6/tests/operations/git.config/add_existing_multi_value.json +15 -0
- pyinfra-3.6/tests/operations/git.config/add_first_multi_value.json +14 -0
- pyinfra-3.6/tests/operations/git.config/add_second_multi_value.json +16 -0
- pyinfra-3.6/tests/operations/git.config/edit_global.json +13 -0
- pyinfra-3.6/tests/operations/git.config/edit_system.json +16 -0
- pyinfra-3.6/tests/operations/git.config/set_existing_global.json +12 -0
- pyinfra-3.6/tests/operations/git.config/set_existing_system.json +15 -0
- pyinfra-3.6/tests/operations/git.config/set_global.json +11 -0
- pyinfra-3.6/tests/operations/git.config/set_repo.json +19 -0
- pyinfra-3.6/tests/operations/git.config/set_system.json +14 -0
- pyinfra-3.6/tests/operations/git.repo/branch_pull.json +31 -0
- pyinfra-3.6/tests/operations/git.repo/clone.json +18 -0
- pyinfra-3.6/tests/operations/git.repo/clone_keyscan.json +25 -0
- pyinfra-3.6/tests/operations/git.repo/clone_keyscan_invalid.json +19 -0
- pyinfra-3.6/tests/operations/git.repo/rebase.json +22 -0
- pyinfra-3.6/tests/operations/git.repo/recursive_submodules.json +24 -0
- pyinfra-3.6/tests/operations/git.repo/update_submodules.json +23 -0
- pyinfra-3.6/tests/operations/git.worktree/create.json +18 -0
- pyinfra-3.6/tests/operations/git.worktree/create_detached.json +19 -0
- pyinfra-3.6/tests/operations/git.worktree/create_detached_from_commitish.json +20 -0
- pyinfra-3.6/tests/operations/git.worktree/create_existing_branch.json +19 -0
- pyinfra-3.6/tests/operations/git.worktree/create_force.json +19 -0
- pyinfra-3.6/tests/operations/git.worktree/create_from_commitish.json +19 -0
- pyinfra-3.6/tests/operations/git.worktree/create_new_branch.json +24 -0
- pyinfra-3.6/tests/operations/git.worktree/create_new_branch_from_commitish.json +25 -0
- pyinfra-3.6/tests/operations/git.worktree/pull.json +18 -0
- pyinfra-3.6/tests/operations/git.worktree/pull_disable.json +18 -0
- pyinfra-3.6/tests/operations/git.worktree/pull_from_bad_remote_branch.json +20 -0
- pyinfra-3.6/tests/operations/git.worktree/pull_from_remote_branch.json +21 -0
- pyinfra-3.6/tests/operations/git.worktree/pull_rebase from_remote_branch.json +22 -0
- pyinfra-3.6/tests/operations/git.worktree/pull_rebase.json +21 -0
- pyinfra-3.6/tests/operations/git.worktree/remove.json +16 -0
- pyinfra-3.6/tests/operations/git.worktree/remove_force.json +17 -0
- pyinfra-3.6/tests/operations/iptables.chain/add_chain.json +15 -0
- pyinfra-3.6/tests/operations/iptables.chain/delete_chain.json +16 -0
- pyinfra-3.6/tests/operations/iptables.chain/delete_chain_noop.json +13 -0
- pyinfra-3.6/tests/operations/iptables.chain/edit_chain.json +16 -0
- pyinfra-3.6/tests/operations/iptables.rule/add_log_rule.json +14 -0
- pyinfra-3.6/tests/operations/iptables.rule/add_rule.json +26 -0
- pyinfra-3.6/tests/operations/iptables.rule/add_to_ports.json +15 -0
- pyinfra-3.6/tests/operations/iptables.rule/add_to_source.json +15 -0
- pyinfra-3.6/tests/operations/iptables.rule/add_v6_rule.json +17 -0
- pyinfra-3.6/tests/operations/iptables.rule/already_absent.json +15 -0
- pyinfra-3.6/tests/operations/iptables.rule/already_present.json +18 -0
- pyinfra-3.6/tests/operations/iptables.rule/delete_rule.json +20 -0
- pyinfra-3.6/tests/operations/iptables.rule/invalid_destination_port.json +10 -0
- pyinfra-3.6/tests/operations/iptables.rule/invalid_log_prefix.json +10 -0
- pyinfra-3.6/tests/operations/iptables.rule/invalid_source_destination.json +10 -0
- pyinfra-3.6/tests/operations/iptables.rule/invalid_to_destination.json +10 -0
- pyinfra-3.6/tests/operations/iptables.rule/invalid_to_ports.json +10 -0
- pyinfra-3.6/tests/operations/launchd.service/restart.json +17 -0
- pyinfra-3.6/tests/operations/launchd.service/restart_stopped.json +20 -0
- pyinfra-3.6/tests/operations/launchd.service/start.json +11 -0
- pyinfra-3.6/tests/operations/launchd.service/start_running.json +10 -0
- pyinfra-3.6/tests/operations/launchd.service/stop.json +14 -0
- pyinfra-3.6/tests/operations/lxd.container/add_container.json +12 -0
- pyinfra-3.6/tests/operations/lxd.container/already_absent.json +17 -0
- pyinfra-3.6/tests/operations/lxd.container/already_present.json +16 -0
- pyinfra-3.6/tests/operations/lxd.container/delete_container.json +18 -0
- pyinfra-3.6/tests/operations/lxd.container/delete_running_container.json +19 -0
- pyinfra-3.6/tests/operations/mysql.database/add.json +15 -0
- pyinfra-3.6/tests/operations/mysql.database/add_noop.json +12 -0
- pyinfra-3.6/tests/operations/mysql.database/add_privileges.json +22 -0
- pyinfra-3.6/tests/operations/mysql.database/delete.json +16 -0
- pyinfra-3.6/tests/operations/mysql.database/delete_noop.json +13 -0
- pyinfra-3.6/tests/operations/mysql.dump/dump.json +15 -0
- pyinfra-3.6/tests/operations/mysql.load/load.json +10 -0
- pyinfra-3.6/tests/operations/mysql.load/load_space.json +11 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add.json +14 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add_all_with_grant_option.json +17 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add_database.json +17 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add_delete.json +15 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add_delete_usage.json +14 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add_existing.json +12 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add_table.json +18 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add_table_invalid.json +21 -0
- pyinfra-3.6/tests/operations/mysql.privileges/add_with_grant_option.json +17 -0
- pyinfra-3.6/tests/operations/mysql.privileges/delete.json +14 -0
- pyinfra-3.6/tests/operations/mysql.privileges/delete_all.json +15 -0
- pyinfra-3.6/tests/operations/mysql.privileges/delete_all_with_grant_option.json +15 -0
- pyinfra-3.6/tests/operations/mysql.privileges/delete_with_grant_option.json +14 -0
- pyinfra-3.6/tests/operations/mysql.privileges/remove_noop.json +12 -0
- pyinfra-3.6/tests/operations/mysql.privileges/remove_usage.json +14 -0
- pyinfra-3.6/tests/operations/mysql.sql/execute.json +7 -0
- pyinfra-3.6/tests/operations/mysql.sql/execute_mysql_kwargs.json +16 -0
- pyinfra-3.6/tests/operations/mysql.user/add.json +14 -0
- pyinfra-3.6/tests/operations/mysql.user/add_noop.json +12 -0
- pyinfra-3.6/tests/operations/mysql.user/add_password.json +18 -0
- pyinfra-3.6/tests/operations/mysql.user/add_privileges.json +20 -0
- pyinfra-3.6/tests/operations/mysql.user/add_resources.json +18 -0
- pyinfra-3.6/tests/operations/mysql.user/add_ssl.json +14 -0
- pyinfra-3.6/tests/operations/mysql.user/add_x509.json +15 -0
- pyinfra-3.6/tests/operations/mysql.user/add_x509_specified.json +18 -0
- pyinfra-3.6/tests/operations/mysql.user/delete.json +17 -0
- pyinfra-3.6/tests/operations/mysql.user/invalid_require_cipher.json +11 -0
- pyinfra-3.6/tests/operations/mysql.user/invalid_require_issuer.json +11 -0
- pyinfra-3.6/tests/operations/mysql.user/invalid_require_subject.json +11 -0
- pyinfra-3.6/tests/operations/mysql.user/invalid_require_type.json +10 -0
- pyinfra-3.6/tests/operations/mysql.user/remove_noop.json +13 -0
- pyinfra-3.6/tests/operations/mysql.user/update_resources.json +24 -0
- pyinfra-3.6/tests/operations/mysql.user/update_resources_partial.json +24 -0
- pyinfra-3.6/tests/operations/mysql.user/update_ssl.json +18 -0
- pyinfra-3.6/tests/operations/mysql.user/update_x509.json +18 -0
- pyinfra-3.6/tests/operations/mysql.user/update_x509_specified.json +23 -0
- pyinfra-3.6/tests/operations/mysql.user/update_x509_specified_partial.json +23 -0
- pyinfra-3.6/tests/operations/npm.packages/add_local_packages.json +17 -0
- pyinfra-3.6/tests/operations/npm.packages/add_packages.json +14 -0
- pyinfra-3.6/tests/operations/npm.packages/remove_packages.json +18 -0
- pyinfra-3.6/tests/operations/openrc.service/disable.json +21 -0
- pyinfra-3.6/tests/operations/openrc.service/disable_noop.json +20 -0
- pyinfra-3.6/tests/operations/openrc.service/disable_runlevel.json +22 -0
- pyinfra-3.6/tests/operations/openrc.service/enable.json +21 -0
- pyinfra-3.6/tests/operations/openrc.service/enable_noop.json +20 -0
- pyinfra-3.6/tests/operations/openrc.service/enable_runlevel.json +22 -0
- pyinfra-3.6/tests/operations/openrc.service/running_noop.json +12 -0
- pyinfra-3.6/tests/operations/openrc.service/start.json +13 -0
- pyinfra-3.6/tests/operations/openrc.service/stop.json +16 -0
- pyinfra-3.6/tests/operations/openrc.service/stopped_noop.json +15 -0
- pyinfra-3.6/tests/operations/opkg.packages/add_existing_package.json +12 -0
- pyinfra-3.6/tests/operations/opkg.packages/add_multiple_packages.json +12 -0
- pyinfra-3.6/tests/operations/opkg.packages/add_one_package.json +12 -0
- pyinfra-3.6/tests/operations/opkg.packages/add_with_unallowed_pinning.json +11 -0
- pyinfra-3.6/tests/operations/opkg.packages/list_of_nulls_package_list.json +9 -0
- pyinfra-3.6/tests/operations/opkg.packages/null_package_list.json +9 -0
- pyinfra-3.6/tests/operations/opkg.packages/remove_existing_package.json +13 -0
- pyinfra-3.6/tests/operations/opkg.packages/remove_existing_package_and_require_update.json +14 -0
- pyinfra-3.6/tests/operations/opkg.packages/remove_not_existing_package.json +13 -0
- pyinfra-3.6/tests/operations/opkg.packages/update_then_add_one.json +11 -0
- pyinfra-3.6/tests/operations/opkg.update/first_update.json +9 -0
- pyinfra-3.6/tests/operations/pacman.packages/add_packages.json +13 -0
- pyinfra-3.6/tests/operations/pacman.packages/add_packages_group_expand.json +12 -0
- pyinfra-3.6/tests/operations/pacman.packages/remove_packages.json +18 -0
- pyinfra-3.6/tests/operations/pacman.packages/remove_packages_expand.json +20 -0
- pyinfra-3.6/tests/operations/pacman.packages/upgrade_update.json +21 -0
- pyinfra-3.6/tests/operations/pip.packages/add_existing_package_with_url.json +13 -0
- pyinfra-3.6/tests/operations/pip.packages/add_new_virtualenv_packages.json +24 -0
- pyinfra-3.6/tests/operations/pip.packages/add_packages.json +14 -0
- pyinfra-3.6/tests/operations/pip.packages/add_packages_case_insensitive.json +14 -0
- pyinfra-3.6/tests/operations/pip.packages/add_virtualenv_packages.json +20 -0
- pyinfra-3.6/tests/operations/pip.packages/install_extra_args.json +17 -0
- pyinfra-3.6/tests/operations/pip.packages/install_latest_requirements.json +12 -0
- pyinfra-3.6/tests/operations/pip.packages/install_requirements.json +11 -0
- pyinfra-3.6/tests/operations/pip.packages/install_virtualenv_requirements.json +16 -0
- pyinfra-3.6/tests/operations/pip.packages/remove_packages.json +18 -0
- pyinfra-3.6/tests/operations/pip.packages/uninstall_requirements.json +12 -0
- pyinfra-3.6/tests/operations/pip.packages/use_pip3.json +14 -0
- pyinfra-3.6/tests/operations/pip.packages/use_pip3_virtualenv.json +18 -0
- pyinfra-3.6/tests/operations/pip.venv/add_virtualenv.json +14 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/add_virtualenv.json +13 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/add_virtualenv_py3.json +14 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/add_with_options.json +16 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/already_absent.json +16 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/already_present.json +12 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/delete_virtualenv.json +17 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/present_empty_directory.json +16 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/use_stdlib_venv.json +15 -0
- pyinfra-3.6/tests/operations/pip.virtualenv/use_stdlib_venv_py3.json +15 -0
- pyinfra-3.6/tests/operations/pipx.ensure_path/ensure_path.json +19 -0
- pyinfra-3.6/tests/operations/pipx.packages/add_existing_package_with_url.json +9 -0
- pyinfra-3.6/tests/operations/pipx.packages/add_nothing.json +9 -0
- pyinfra-3.6/tests/operations/pipx.packages/add_package.json +9 -0
- pyinfra-3.6/tests/operations/pipx.packages/add_packages.json +10 -0
- pyinfra-3.6/tests/operations/pipx.packages/install_extra_args.json +16 -0
- pyinfra-3.6/tests/operations/pipx.packages/remove_packages.json +16 -0
- pyinfra-3.6/tests/operations/pipx.upgrade_all/upgrade_all.json +9 -0
- pyinfra-3.6/tests/operations/pkg.packages/pkg_add_packages.json +21 -0
- pyinfra-3.6/tests/operations/pkg.packages/pkg_add_packages_with_installurl.json +23 -0
- pyinfra-3.6/tests/operations/pkg.packages/pkg_delete_packages.json +20 -0
- pyinfra-3.6/tests/operations/pkg.packages/pkg_install_packages.json +18 -0
- pyinfra-3.6/tests/operations/pkg.packages/pkg_remove_packages.json +20 -0
- pyinfra-3.6/tests/operations/pkgin.packages/add_packages.json +9 -0
- pyinfra-3.6/tests/operations/pkgin.packages/remove_packages.json +14 -0
- pyinfra-3.6/tests/operations/pkgin.packages/upgrade_packages.json +14 -0
- pyinfra-3.6/tests/operations/pkgin.packages/upgrade_update.json +18 -0
- pyinfra-3.6/tests/operations/postgresql.database/add_database.json +11 -0
- pyinfra-3.6/tests/operations/postgresql.database/add_database_locales.json +16 -0
- pyinfra-3.6/tests/operations/postgresql.database/add_database_owner.json +14 -0
- pyinfra-3.6/tests/operations/postgresql.database/remove_database.json +16 -0
- pyinfra-3.6/tests/operations/postgresql.database/remove_database_noop.json +13 -0
- pyinfra-3.6/tests/operations/postgresql.database/update_database.json +17 -0
- pyinfra-3.6/tests/operations/postgresql.database/update_database_noop.json +15 -0
- pyinfra-3.6/tests/operations/postgresql.dump/dump.json +17 -0
- pyinfra-3.6/tests/operations/postgresql.load/load.json +15 -0
- pyinfra-3.6/tests/operations/postgresql.role/role_remove_noop.json +13 -0
- pyinfra-3.6/tests/operations/postgresql.role/role_update.json +23 -0
- pyinfra-3.6/tests/operations/postgresql.role/role_update_noop.json +19 -0
- pyinfra-3.6/tests/operations/postgresql.role/user_add.json +18 -0
- pyinfra-3.6/tests/operations/postgresql.role/user_add_no_login.json +14 -0
- pyinfra-3.6/tests/operations/postgresql.role/user_add_privileges.json +17 -0
- pyinfra-3.6/tests/operations/postgresql.role/user_add_replication.json +15 -0
- pyinfra-3.6/tests/operations/postgresql.role/user_add_super.json +14 -0
- pyinfra-3.6/tests/operations/postgresql.role/user_remove.json +14 -0
- pyinfra-3.6/tests/operations/postgresql.sql/execute.json +12 -0
- pyinfra-3.6/tests/operations/puppet.agent/run_agent.json +10 -0
- pyinfra-3.6/tests/operations/python.call/call_func.json +10 -0
- pyinfra-3.6/tests/operations/python.raise_exception/call_func.json +7 -0
- pyinfra-3.6/tests/operations/runit.manage/manage.json +21 -0
- pyinfra-3.6/tests/operations/runit.manage/unmanage.json +25 -0
- pyinfra-3.6/tests/operations/runit.service/disable.json +28 -0
- pyinfra-3.6/tests/operations/runit.service/enable.json +33 -0
- pyinfra-3.6/tests/operations/selinux.boolean/bad_value.json +10 -0
- pyinfra-3.6/tests/operations/selinux.boolean/change_not_persistent.json +13 -0
- pyinfra-3.6/tests/operations/selinux.boolean/change_persistent.json +14 -0
- pyinfra-3.6/tests/operations/selinux.boolean/no_change.json +14 -0
- pyinfra-3.6/tests/operations/selinux.file_context/change.json +13 -0
- pyinfra-3.6/tests/operations/selinux.file_context/no_change.json +13 -0
- pyinfra-3.6/tests/operations/selinux.file_context_mapping/add_None.json +11 -0
- pyinfra-3.6/tests/operations/selinux.file_context_mapping/add_different.json +15 -0
- pyinfra-3.6/tests/operations/selinux.file_context_mapping/add_no_change.json +15 -0
- pyinfra-3.6/tests/operations/selinux.file_context_mapping/add_none_existeing.json +15 -0
- pyinfra-3.6/tests/operations/selinux.file_context_mapping/delete_existing.json +14 -0
- pyinfra-3.6/tests/operations/selinux.file_context_mapping/delete_none_existing.json +15 -0
- pyinfra-3.6/tests/operations/selinux.port/add_None.json +10 -0
- pyinfra-3.6/tests/operations/selinux.port/add_different.json +19 -0
- pyinfra-3.6/tests/operations/selinux.port/add_different_direct.json +17 -0
- pyinfra-3.6/tests/operations/selinux.port/add_not_existing.json +17 -0
- pyinfra-3.6/tests/operations/selinux.port/add_not_existing_direct.json +17 -0
- pyinfra-3.6/tests/operations/selinux.port/add_not_existing_protocol.json +15 -0
- pyinfra-3.6/tests/operations/selinux.port/add_same.json +16 -0
- pyinfra-3.6/tests/operations/selinux.port/add_same_direct.json +16 -0
- pyinfra-3.6/tests/operations/selinux.port/remove_existing.json +17 -0
- pyinfra-3.6/tests/operations/selinux.port/remove_existing_direct.json +17 -0
- pyinfra-3.6/tests/operations/selinux.port/remove_not_existing.json +16 -0
- pyinfra-3.6/tests/operations/selinux.port/remove_not_existing_direct.json +16 -0
- pyinfra-3.6/tests/operations/server.group/add.freebsd.json +14 -0
- pyinfra-3.6/tests/operations/server.group/add.json +14 -0
- pyinfra-3.6/tests/operations/server.group/delete.freebsd.json +15 -0
- pyinfra-3.6/tests/operations/server.group/delete.json +15 -0
- pyinfra-3.6/tests/operations/server.hostname/hostname_noop.json +12 -0
- pyinfra-3.6/tests/operations/server.hostname/hostnamectl_noop.json +11 -0
- pyinfra-3.6/tests/operations/server.hostname/set_hostname_bsd.json +21 -0
- pyinfra-3.6/tests/operations/server.hostname/set_hostname_linux.json +22 -0
- pyinfra-3.6/tests/operations/server.hostname/set_hostnamectl_linux.json +18 -0
- pyinfra-3.6/tests/operations/server.locale/add.json +33 -0
- pyinfra-3.6/tests/operations/server.locale/remove.json +34 -0
- pyinfra-3.6/tests/operations/server.modprobe/add-list.json +11 -0
- pyinfra-3.6/tests/operations/server.modprobe/add.json +9 -0
- pyinfra-3.6/tests/operations/server.modprobe/add_exists.json +10 -0
- pyinfra-3.6/tests/operations/server.modprobe/add_force.json +12 -0
- pyinfra-3.6/tests/operations/server.modprobe/add_multiple_exists.json +11 -0
- pyinfra-3.6/tests/operations/server.modprobe/remove-list.json +14 -0
- pyinfra-3.6/tests/operations/server.modprobe/remove.json +14 -0
- pyinfra-3.6/tests/operations/server.mount/mount.json +9 -0
- pyinfra-3.6/tests/operations/server.mount/mount_device.json +12 -0
- pyinfra-3.6/tests/operations/server.mount/mount_device_fstype.json +13 -0
- pyinfra-3.6/tests/operations/server.mount/mount_exists.json +10 -0
- pyinfra-3.6/tests/operations/server.mount/mount_options.json +12 -0
- pyinfra-3.6/tests/operations/server.mount/remount_options.json +17 -0
- pyinfra-3.6/tests/operations/server.mount/unmount.json +14 -0
- pyinfra-3.6/tests/operations/server.packages/add_apk_packages.json +19 -0
- pyinfra-3.6/tests/operations/server.packages/add_dnf_packages.json +27 -0
- pyinfra-3.6/tests/operations/server.packages/add_yum_packages.json +31 -0
- pyinfra-3.6/tests/operations/server.reboot/reboot.json +13 -0
- pyinfra-3.6/tests/operations/server.script/upload_run.json +27 -0
- pyinfra-3.6/tests/operations/server.script_template/script.json +27 -0
- pyinfra-3.6/tests/operations/server.security_limit/set.json +17 -0
- pyinfra-3.6/tests/operations/server.service/invalid.json +24 -0
- pyinfra-3.6/tests/operations/server.service/start_initd.json +25 -0
- pyinfra-3.6/tests/operations/server.service/start_initd_service.json +24 -0
- pyinfra-3.6/tests/operations/server.service/start_openrc.json +21 -0
- pyinfra-3.6/tests/operations/server.service/start_rcd.json +26 -0
- pyinfra-3.6/tests/operations/server.service/start_runit.json +33 -0
- pyinfra-3.6/tests/operations/server.service/start_systemd.json +21 -0
- pyinfra-3.6/tests/operations/server.service/start_upstart.json +22 -0
- pyinfra-3.6/tests/operations/server.shell/shell.json +11 -0
- pyinfra-3.6/tests/operations/server.shell/single_shell.json +7 -0
- pyinfra-3.6/tests/operations/server.sysctl/set.json +11 -0
- pyinfra-3.6/tests/operations/server.sysctl/set_list.json +11 -0
- pyinfra-3.6/tests/operations/server.sysctl/set_noop.json +12 -0
- pyinfra-3.6/tests/operations/server.sysctl/set_noop_string_value.json +12 -0
- pyinfra-3.6/tests/operations/server.sysctl/set_noop_zero_int.json +12 -0
- pyinfra-3.6/tests/operations/server.sysctl/set_persist.json +19 -0
- pyinfra-3.6/tests/operations/server.user/add.freebsd.json +27 -0
- pyinfra-3.6/tests/operations/server.user/add.json +27 -0
- pyinfra-3.6/tests/operations/server.user/add_group_exists.freebsd.json +18 -0
- pyinfra-3.6/tests/operations/server.user/add_group_exists.json +18 -0
- pyinfra-3.6/tests/operations/server.user/add_home_is_link.freebsd.json +20 -0
- pyinfra-3.6/tests/operations/server.user/add_home_is_link.json +20 -0
- pyinfra-3.6/tests/operations/server.user/add_invalid_home_is_file.json +21 -0
- pyinfra-3.6/tests/operations/server.user/add_non_unique.freebsd.json +15 -0
- pyinfra-3.6/tests/operations/server.user/add_non_unique.json +15 -0
- pyinfra-3.6/tests/operations/server.user/append_secondary_existing_groups.json +35 -0
- pyinfra-3.6/tests/operations/server.user/append_secondary_groups.freebsd.json +36 -0
- pyinfra-3.6/tests/operations/server.user/append_secondary_groups.json +36 -0
- pyinfra-3.6/tests/operations/server.user/delete.freebsd.json +19 -0
- pyinfra-3.6/tests/operations/server.user/delete.json +19 -0
- pyinfra-3.6/tests/operations/server.user/edit.freebsd.json +39 -0
- pyinfra-3.6/tests/operations/server.user/edit.json +39 -0
- pyinfra-3.6/tests/operations/server.user/exists_noop.json +25 -0
- pyinfra-3.6/tests/operations/server.user/key_files.json +53 -0
- pyinfra-3.6/tests/operations/server.user/keys.json +43 -0
- pyinfra-3.6/tests/operations/server.user/keys_delete.json +57 -0
- pyinfra-3.6/tests/operations/server.user/keys_nohome.json +42 -0
- pyinfra-3.6/tests/operations/server.user/keys_single.json +43 -0
- pyinfra-3.6/tests/operations/server.wait/port.json +9 -0
- pyinfra-3.6/tests/operations/snap.package/install_package.json +12 -0
- pyinfra-3.6/tests/operations/snap.package/install_package_classic.json +19 -0
- pyinfra-3.6/tests/operations/snap.package/install_package_with_channel.json +13 -0
- pyinfra-3.6/tests/operations/snap.package/install_packages.json +20 -0
- pyinfra-3.6/tests/operations/snap.package/install_refresh_packages.json +29 -0
- pyinfra-3.6/tests/operations/snap.package/refresh_package.json +21 -0
- pyinfra-3.6/tests/operations/snap.package/remove_packages.json +14 -0
- pyinfra-3.6/tests/operations/ssh.command/command.json +7 -0
- pyinfra-3.6/tests/operations/ssh.command/command_quotes.json +7 -0
- pyinfra-3.6/tests/operations/ssh.command/command_user_port.json +11 -0
- pyinfra-3.6/tests/operations/ssh.download/download.json +24 -0
- pyinfra-3.6/tests/operations/ssh.download/download_exists.json +10 -0
- pyinfra-3.6/tests/operations/ssh.download/download_exists_force.json +16 -0
- pyinfra-3.6/tests/operations/ssh.download/download_not_file.json +21 -0
- pyinfra-3.6/tests/operations/ssh.keyscan/scan_not_present.json +17 -0
- pyinfra-3.6/tests/operations/ssh.keyscan/scan_present.json +16 -0
- pyinfra-3.6/tests/operations/ssh.keyscan/scan_present_force.json +23 -0
- pyinfra-3.6/tests/operations/ssh.upload/upload.json +22 -0
- pyinfra-3.6/tests/operations/ssh.upload/upload_remote_sudo.json +11 -0
- pyinfra-3.6/tests/operations/ssh.upload/upload_remote_sudo_user.json +12 -0
- pyinfra-3.6/tests/operations/systemd.service/daemon_reload.json +18 -0
- pyinfra-3.6/tests/operations/systemd.service/disabled.json +21 -0
- pyinfra-3.6/tests/operations/systemd.service/enabled.json +21 -0
- pyinfra-3.6/tests/operations/systemd.service/machine_daemon_reload.json +20 -0
- pyinfra-3.6/tests/operations/systemd.service/machine_disabled.json +22 -0
- pyinfra-3.6/tests/operations/systemd.service/machine_enabled.json +22 -0
- pyinfra-3.6/tests/operations/systemd.service/machine_start.json +17 -0
- pyinfra-3.6/tests/operations/systemd.service/running_ambiguous_unit.json +13 -0
- pyinfra-3.6/tests/operations/systemd.service/running_noop.json +12 -0
- pyinfra-3.6/tests/operations/systemd.service/running_timer.json +13 -0
- pyinfra-3.6/tests/operations/systemd.service/start.json +13 -0
- pyinfra-3.6/tests/operations/systemd.service/stopped_noop.json +15 -0
- pyinfra-3.6/tests/operations/systemd.service/timer.json +13 -0
- pyinfra-3.6/tests/operations/systemd.service/user_daemon_reload.json +19 -0
- pyinfra-3.6/tests/operations/systemd.service/user_disabled.json +22 -0
- pyinfra-3.6/tests/operations/systemd.service/user_enabled.json +22 -0
- pyinfra-3.6/tests/operations/systemd.service/user_machine_daemon_reload.json +21 -0
- pyinfra-3.6/tests/operations/systemd.service/user_machine_disabled.json +24 -0
- pyinfra-3.6/tests/operations/systemd.service/user_machine_enabled.json +24 -0
- pyinfra-3.6/tests/operations/systemd.service/user_machine_start.json +18 -0
- pyinfra-3.6/tests/operations/systemd.service/user_start.json +16 -0
- pyinfra-3.6/tests/operations/sysvinit.enable/create.json +35 -0
- pyinfra-3.6/tests/operations/sysvinit.service/command.json +20 -0
- pyinfra-3.6/tests/operations/sysvinit.service/disabled.json +19 -0
- pyinfra-3.6/tests/operations/sysvinit.service/enabled_chkconfig.json +21 -0
- pyinfra-3.6/tests/operations/sysvinit.service/enabled_rc-update.json +20 -0
- pyinfra-3.6/tests/operations/sysvinit.service/enabled_update-rc.d.json +20 -0
- pyinfra-3.6/tests/operations/sysvinit.service/reload.json +16 -0
- pyinfra-3.6/tests/operations/sysvinit.service/restart.json +16 -0
- pyinfra-3.6/tests/operations/sysvinit.service/restart_down.json +19 -0
- pyinfra-3.6/tests/operations/sysvinit.service/skip_started.json +10 -0
- pyinfra-3.6/tests/operations/sysvinit.service/start.json +11 -0
- pyinfra-3.6/tests/operations/sysvinit.service/stop.json +14 -0
- pyinfra-3.6/tests/operations/upstart.service/disabled.json +21 -0
- pyinfra-3.6/tests/operations/upstart.service/enabled.json +19 -0
- pyinfra-3.6/tests/operations/upstart.service/running.json +11 -0
- pyinfra-3.6/tests/operations/vzctl.create/add_template.json +13 -0
- pyinfra-3.6/tests/operations/vzctl.create/already_existing.json +13 -0
- pyinfra-3.6/tests/operations/vzctl.delete/delete.json +7 -0
- pyinfra-3.6/tests/operations/vzctl.mount/mount.json +7 -0
- pyinfra-3.6/tests/operations/vzctl.restart/restart.json +8 -0
- pyinfra-3.6/tests/operations/vzctl.restart/restart_force.json +11 -0
- pyinfra-3.6/tests/operations/vzctl.set/set.json +10 -0
- pyinfra-3.6/tests/operations/vzctl.set/set_multiple.json +10 -0
- pyinfra-3.6/tests/operations/vzctl.set/set_no_save.json +11 -0
- pyinfra-3.6/tests/operations/vzctl.start/start.json +7 -0
- pyinfra-3.6/tests/operations/vzctl.start/start_force.json +10 -0
- pyinfra-3.6/tests/operations/vzctl.stop/stop.json +7 -0
- pyinfra-3.6/tests/operations/vzctl.unmount/unmount.json +7 -0
- pyinfra-3.6/tests/operations/xbps.packages/add_packages.json +9 -0
- pyinfra-3.6/tests/operations/xbps.packages/remove_packages.json +14 -0
- pyinfra-3.6/tests/operations/xbps.packages/upgrade_update.json +18 -0
- pyinfra-3.6/tests/operations/yum.key/add.json +6 -0
- pyinfra-3.6/tests/operations/yum.packages/add_packages.json +20 -0
- pyinfra-3.6/tests/operations/yum.packages/add_packages_alias.json +14 -0
- pyinfra-3.6/tests/operations/yum.packages/add_packages_alias_different_version.json +16 -0
- pyinfra-3.6/tests/operations/yum.packages/add_packages_alias_multiple_version.json +22 -0
- pyinfra-3.6/tests/operations/yum.packages/install_with_args.json +15 -0
- pyinfra-3.6/tests/operations/yum.packages/install_with_nobest.json +15 -0
- pyinfra-3.6/tests/operations/yum.packages/noop_add_packages_alias.json +15 -0
- pyinfra-3.6/tests/operations/yum.packages/noop_add_packages_alias_multiple_version.json +19 -0
- pyinfra-3.6/tests/operations/yum.packages/remove_package.json +25 -0
- pyinfra-3.6/tests/operations/yum.packages/remove_packages_alias_multiple_version.json +21 -0
- pyinfra-3.6/tests/operations/yum.packages/uninstall_with_args.json +20 -0
- pyinfra-3.6/tests/operations/yum.packages/update_clean.json +16 -0
- pyinfra-3.6/tests/operations/yum.repo/add.json +23 -0
- pyinfra-3.6/tests/operations/yum.repo/add_url.json +16 -0
- pyinfra-3.6/tests/operations/yum.repo/remove.json +14 -0
- pyinfra-3.6/tests/operations/yum.rpm/add.json +16 -0
- pyinfra-3.6/tests/operations/yum.rpm/add_existing.json +16 -0
- pyinfra-3.6/tests/operations/yum.rpm/add_existing_upgrade.json +15 -0
- pyinfra-3.6/tests/operations/yum.rpm/add_url.json +25 -0
- pyinfra-3.6/tests/operations/yum.rpm/remove.json +20 -0
- pyinfra-3.6/tests/operations/zfs.dataset/create.yaml +11 -0
- pyinfra-3.6/tests/operations/zfs.dataset/create_noop.yaml +11 -0
- pyinfra-3.6/tests/operations/zfs.dataset/create_recursive.yaml +10 -0
- pyinfra-3.6/tests/operations/zfs.dataset/create_sparse.yaml +11 -0
- pyinfra-3.6/tests/operations/zfs.dataset/create_volume.yaml +10 -0
- pyinfra-3.6/tests/operations/zfs.dataset/delete.yaml +10 -0
- pyinfra-3.6/tests/operations/zfs.dataset/delete_noop.yaml +8 -0
- pyinfra-3.6/tests/operations/zfs.dataset/delete_recursive.yaml +13 -0
- pyinfra-3.6/tests/operations/zfs.dataset/set_props.yaml +16 -0
- pyinfra-3.6/tests/operations/zfs.filesystem/create.yaml +11 -0
- pyinfra-3.6/tests/operations/zfs.filesystem/delete.yaml +10 -0
- pyinfra-3.6/tests/operations/zfs.snapshot/create.yaml +10 -0
- pyinfra-3.6/tests/operations/zfs.volume/create.yaml +10 -0
- pyinfra-3.6/tests/operations/zypper.key/add.json +6 -0
- pyinfra-3.6/tests/operations/zypper.packages/add_packages.json +16 -0
- pyinfra-3.6/tests/operations/zypper.packages/install_with_args.json +12 -0
- pyinfra-3.6/tests/operations/zypper.packages/install_with_global_args.json +12 -0
- pyinfra-3.6/tests/operations/zypper.packages/uninstall_with_args.json +17 -0
- pyinfra-3.6/tests/operations/zypper.packages/uninstall_with_global_args.json +21 -0
- pyinfra-3.6/tests/operations/zypper.packages/update_clean.json +15 -0
- pyinfra-3.6/tests/operations/zypper.repo/add.json +22 -0
- pyinfra-3.6/tests/operations/zypper.repo/add_url.json +16 -0
- pyinfra-3.6/tests/operations/zypper.repo/remove.json +14 -0
- pyinfra-3.6/tests/operations/zypper.rpm/add.json +16 -0
- pyinfra-3.6/tests/operations/zypper.rpm/add_existing.json +16 -0
- pyinfra-3.6/tests/operations/zypper.rpm/add_existing_upgrade.json +15 -0
- pyinfra-3.6/tests/operations/zypper.rpm/add_url.json +25 -0
- pyinfra-3.6/tests/operations/zypper.rpm/remove.json +20 -0
- pyinfra-3.6/tests/paramiko_util.py +109 -0
- pyinfra-3.6/tests/test_api/test_api_deploys.py +127 -0
- pyinfra-3.6/tests/test_api/test_api_facts.py +338 -0
- pyinfra-3.6/tests/test_api/test_api_operations.py +949 -0
- pyinfra-3.6/tests/test_cli/__init__.py +0 -0
- pyinfra-3.6/tests/test_cli/deploy/deploy.py +90 -0
- pyinfra-3.6/tests/test_cli/deploy/deploy_random.py +83 -0
- pyinfra-3.6/tests/test_cli/deploy/files/a_file +1 -0
- pyinfra-3.6/tests/test_cli/deploy/group_data/all.py +1 -0
- pyinfra-3.6/tests/test_cli/deploy/group_data/invalid.json +0 -0
- pyinfra-3.6/tests/test_cli/deploy/group_data/leftover_data.py +2 -0
- pyinfra-3.6/tests/test_cli/deploy/inventories/inventory.py +9 -0
- pyinfra-3.6/tests/test_cli/deploy/inventories/inventory_all.py +11 -0
- pyinfra-3.6/tests/test_cli/deploy/inventories/inventory_ansible +10 -0
- pyinfra-3.6/tests/test_cli/deploy/inventories/inventory_ansible.json +22 -0
- pyinfra-3.6/tests/test_cli/deploy/inventories/inventory_ansible.yml +13 -0
- pyinfra-3.6/tests/test_cli/deploy/tasks/a_task.py +25 -0
- pyinfra-3.6/tests/test_cli/deploy/tasks/another_task.py +6 -0
- pyinfra-3.6/tests/test_cli/deploy/tasks/b_task.py +7 -0
- pyinfra-3.6/tests/test_cli/deploy/tasks/nested/empty_task.py +0 -0
- pyinfra-3.6/tests/test_cli/deploy/templates/a_template.j2 +3 -0
- pyinfra-3.6/tests/test_cli/deploy/utils.py +9 -0
- pyinfra-3.6/tests/test_cli/deploy_fails/invalid_argument_type.py +3 -0
- pyinfra-3.6/tests/test_cli/deploy_fails/invalid_operation_arg.py +3 -0
- pyinfra-3.6/tests/test_cli/deploy_fails/operation_error.py +3 -0
- pyinfra-3.6/tests/test_cli/inventories/invalid.py +13 -0
- pyinfra-3.6/tests/test_cli/test_cli.py +196 -0
- pyinfra-3.6/tests/test_cli/test_cli_deploy.py +120 -0
- pyinfra-3.6/tests/test_cli/test_cli_exceptions.py +86 -0
- pyinfra-3.6/tests/test_cli/test_cli_inventory.py +119 -0
- pyinfra-3.6/tests/test_cli/test_cli_util.py +85 -0
- pyinfra-3.6/tests/test_cli/user/test_ops.py +6 -0
- pyinfra-3.6/tests/test_connectors/__init__.py +0 -0
- pyinfra-3.6/tests/test_connectors/test_docker.py +284 -0
- pyinfra-3.6/tests/test_connectors/test_ssh.py +1335 -0
- pyinfra-3.6/tests/test_connectors/test_terraform.py +107 -0
- pyinfra-3.6/tests/test_facts.py +130 -0
- pyinfra-3.6/tests/test_global_arguments.py +55 -0
- pyinfra-3.6/tests/test_operations.py +176 -0
- pyinfra-3.6/tests/test_operations_utils.py +297 -0
- pyinfra-3.6/tests/typing/invalid/operation_kwarg.py +5 -0
- pyinfra-3.6/tests/typing/invalid/operation_kwarg_value.py +3 -0
- pyinfra-3.6/tests/typing/valid/operation.py +5 -0
- pyinfra-3.6/tests/util.py +482 -0
- pyinfra-3.6/tests/words.txt +445 -0
- pyinfra-3.6/uv.lock +1931 -0
- pyinfra-3.5/CHANGELOG.md +0 -282
- pyinfra-3.5/MANIFEST.in +0 -1
- pyinfra-3.5/PKG-INFO +0 -194
- pyinfra-3.5/README.md +0 -105
- pyinfra-3.5/pyinfra/__main__.py +0 -1
- pyinfra-3.5/pyinfra/api/__init__.py +0 -26
- pyinfra-3.5/pyinfra/api/arguments.py +0 -406
- pyinfra-3.5/pyinfra/api/exceptions.py +0 -90
- pyinfra-3.5/pyinfra/api/facts.py +0 -307
- pyinfra-3.5/pyinfra/api/host.py +0 -460
- pyinfra-3.5/pyinfra/api/operation.py +0 -494
- pyinfra-3.5/pyinfra/api/operations.py +0 -397
- pyinfra-3.5/pyinfra/api/util.py +0 -454
- pyinfra-3.5/pyinfra/connectors/chroot.py +0 -208
- pyinfra-3.5/pyinfra/connectors/docker.py +0 -383
- pyinfra-3.5/pyinfra/connectors/ssh.py +0 -671
- pyinfra-3.5/pyinfra/connectors/util.py +0 -410
- pyinfra-3.5/pyinfra/facts/crontab.py +0 -195
- pyinfra-3.5/pyinfra/facts/files.py +0 -677
- pyinfra-3.5/pyinfra/facts/freebsd.py +0 -75
- pyinfra-3.5/pyinfra/facts/npm.py +0 -38
- pyinfra-3.5/pyinfra/facts/selinux.py +0 -161
- pyinfra-3.5/pyinfra/facts/server.py +0 -954
- pyinfra-3.5/pyinfra/operations/apk.py +0 -98
- pyinfra-3.5/pyinfra/operations/apt.py +0 -488
- pyinfra-3.5/pyinfra/operations/brew.py +0 -231
- pyinfra-3.5/pyinfra/operations/choco.py +0 -57
- pyinfra-3.5/pyinfra/operations/crontab.py +0 -191
- pyinfra-3.5/pyinfra/operations/dnf.py +0 -210
- pyinfra-3.5/pyinfra/operations/docker.py +0 -447
- pyinfra-3.5/pyinfra/operations/files.py +0 -1908
- pyinfra-3.5/pyinfra/operations/flatpak.py +0 -94
- pyinfra-3.5/pyinfra/operations/gem.py +0 -47
- pyinfra-3.5/pyinfra/operations/git.py +0 -419
- pyinfra-3.5/pyinfra/operations/iptables.py +0 -311
- pyinfra-3.5/pyinfra/operations/lxd.py +0 -68
- pyinfra-3.5/pyinfra/operations/mysql.py +0 -609
- pyinfra-3.5/pyinfra/operations/opkg.py +0 -88
- pyinfra-3.5/pyinfra/operations/pacman.py +0 -81
- pyinfra-3.5/pyinfra/operations/pip.py +0 -205
- pyinfra-3.5/pyinfra/operations/pipx.py +0 -102
- pyinfra-3.5/pyinfra/operations/pkg.py +0 -70
- pyinfra-3.5/pyinfra/operations/pkgin.py +0 -91
- pyinfra-3.5/pyinfra/operations/postgres.py +0 -436
- pyinfra-3.5/pyinfra/operations/puppet.py +0 -40
- pyinfra-3.5/pyinfra/operations/python.py +0 -72
- pyinfra-3.5/pyinfra/operations/selinux.py +0 -189
- pyinfra-3.5/pyinfra/operations/server.py +0 -1099
- pyinfra-3.5/pyinfra/operations/snap.py +0 -117
- pyinfra-3.5/pyinfra/operations/ssh.py +0 -216
- pyinfra-3.5/pyinfra/operations/systemd.py +0 -149
- pyinfra-3.5/pyinfra/operations/sysvinit.py +0 -141
- pyinfra-3.5/pyinfra/operations/util/docker.py +0 -251
- pyinfra-3.5/pyinfra/operations/util/files.py +0 -243
- pyinfra-3.5/pyinfra/operations/util/packaging.py +0 -323
- pyinfra-3.5/pyinfra/operations/xbps.py +0 -77
- pyinfra-3.5/pyinfra/operations/yum.py +0 -210
- pyinfra-3.5/pyinfra/operations/zfs.py +0 -175
- pyinfra-3.5/pyinfra/operations/zypper.py +0 -192
- pyinfra-3.5/pyinfra.egg-info/PKG-INFO +0 -194
- pyinfra-3.5/pyinfra.egg-info/SOURCES.txt +0 -201
- pyinfra-3.5/pyinfra.egg-info/dependency_links.txt +0 -1
- pyinfra-3.5/pyinfra.egg-info/entry_points.txt +0 -12
- pyinfra-3.5/pyinfra.egg-info/requires.txt +0 -69
- pyinfra-3.5/pyinfra.egg-info/top_level.txt +0 -3
- pyinfra-3.5/pyinfra_cli/__main__.py +0 -43
- pyinfra-3.5/pyinfra_cli/main.py +0 -781
- pyinfra-3.5/pyinfra_cli/util.py +0 -233
- pyinfra-3.5/pyproject.toml +0 -38
- pyinfra-3.5/setup.cfg +0 -37
- pyinfra-3.5/setup.py +0 -158
- pyinfra-3.5/tests/test_api/test_api_deploys.py +0 -124
- pyinfra-3.5/tests/test_api/test_api_facts.py +0 -329
- pyinfra-3.5/tests/test_api/test_api_operations.py +0 -927
- pyinfra-3.5/tests/test_cli/test_cli.py +0 -195
- pyinfra-3.5/tests/test_cli/test_cli_deploy.py +0 -120
- pyinfra-3.5/tests/test_cli/test_cli_exceptions.py +0 -86
- pyinfra-3.5/tests/test_cli/test_cli_inventory.py +0 -119
- pyinfra-3.5/tests/test_cli/test_cli_util.py +0 -85
- pyinfra-3.5/tests/test_connectors/test_docker.py +0 -234
- pyinfra-3.5/tests/test_connectors/test_ssh.py +0 -1249
- pyinfra-3.5/tests/test_connectors/test_terraform.py +0 -108
- pyinfra-3.5/tests/test_facts.py +0 -123
- pyinfra-3.5/tests/test_global_arguments.py +0 -55
- pyinfra-3.5/tests/test_operations.py +0 -171
- pyinfra-3.5/tests/test_operations_utils.py +0 -17
- {pyinfra-3.5 → pyinfra-3.6}/LICENSE.md +0 -0
- {pyinfra-3.5/pyinfra/connectors → pyinfra-3.6/docs}/__init__.py +0 -0
- {pyinfra-3.5/tests/test_api → pyinfra-3.6/scripts}/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/api/arguments_typed.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/api/command.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/api/config.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/api/connect.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/api/connectors.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/api/deploy.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/api/inventory.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/api/state.py +0 -0
- {pyinfra-3.5/tests/test_cli → pyinfra-3.6/src/pyinfra/connectors}/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/base.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/dockerssh.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/local.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/scp/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/scp/client.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/ssh_util.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/sshuserclient/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/sshuserclient/client.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/sshuserclient/config.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/terraform.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/connectors/vagrant.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/context.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/apk.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/apt.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/brew.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/bsdinit.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/cargo.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/choco.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/deb.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/dnf.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/docker.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/efibootmgr.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/flatpak.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/gem.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/git.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/gpg.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/hardware.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/iptables.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/launchd.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/lxd.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/mysql.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/openrc.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/opkg.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/pacman.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/pip.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/pipx.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/pkg.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/pkgin.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/podman.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/postgres.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/postgresql.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/rpm.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/runit.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/snap.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/systemd.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/sysvinit.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/upstart.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/util/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/util/databases.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/util/packaging.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/util/units.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/util/win_files.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/vzctl.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/xbps.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/yum.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/zfs.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/facts/zypper.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/local.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/bsdinit.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/cargo.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/freebsd/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/freebsd/freebsd_update.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/freebsd/pkg.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/freebsd/service.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/freebsd/sysrc.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/launchd.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/npm.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/openrc.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/postgresql.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/runit.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/upstart.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/util/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/util/service.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/operations/vzctl.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/progress.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/py.typed +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra/version.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra_cli/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra_cli/commands.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra_cli/exceptions.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra_cli/inventory.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra_cli/log.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra_cli/prints.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6/src}/pyinfra_cli/virtualenv.py +0 -0
- {pyinfra-3.5/tests/test_connectors → pyinfra-3.6/tests/test_api}/__init__.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_api/test_api.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_api/test_api_arguments.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_api/test_api_command.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_api/test_api_config.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_api/test_api_host.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_api/test_api_inventory.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_api/test_api_util.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_cli/test_context_objects.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_cli/util.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_connectors/test_chroot.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_connectors/test_dockerssh.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_connectors/test_local.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_connectors/test_sshuserclient.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_connectors/test_util.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_connectors/test_vagrant.py +0 -0
- {pyinfra-3.5 → pyinfra-3.6}/tests/test_units.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
github: fizzadar
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: 🐛 Bug Report
|
|
4
|
+
about: Create a report to help us improve pyinfra.
|
|
5
|
+
labels: Bug
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Describe the bug
|
|
10
|
+
A clear and concise description of what the bug is.
|
|
11
|
+
|
|
12
|
+
## To Reproduce
|
|
13
|
+
Steps to reproduce the behavior, please include where possible:
|
|
14
|
+
|
|
15
|
+
+ Operation code & usage
|
|
16
|
+
+ Target system information
|
|
17
|
+
+ Example using the `@docker` connector (helps isolate the problem)
|
|
18
|
+
|
|
19
|
+
## Expected behavior
|
|
20
|
+
A clear and concise description of what you expected to happen.
|
|
21
|
+
|
|
22
|
+
## Meta
|
|
23
|
+
+ Include output of `pyinfra --support`.
|
|
24
|
+
+ How was pyinfra installed (source/pip)?
|
|
25
|
+
+ Include pyinfra-debug.log (if one was created)
|
|
26
|
+
+ Consider including output with `-vv` and `--debug`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
blank_issues_enabled: true
|
|
2
|
+
|
|
3
|
+
contact_links:
|
|
4
|
+
- name: 📖 Documentation
|
|
5
|
+
url: https://docs.pyinfra.com
|
|
6
|
+
about: View the pyinfra documentation.
|
|
7
|
+
|
|
8
|
+
- name: 💬 Help & Support
|
|
9
|
+
url: https://docs.pyinfra.com/page/support.html
|
|
10
|
+
about: Please ask and answer usage questions here.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: 💡 Feature Request
|
|
4
|
+
about: Suggest an idea for this project.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Is your feature request related to a problem? Please describe
|
|
9
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
10
|
+
|
|
11
|
+
## Describe the solution you'd like
|
|
12
|
+
A clear and concise description of what you want to happen.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
🎉 Thank you for taking the time to contribute to pyinfra! 🎉
|
|
3
|
+
|
|
4
|
+
Please provide a short description of the proposed change and here's a handy checklist of things
|
|
5
|
+
to make PRs quicker to review and merge.
|
|
6
|
+
|
|
7
|
+
Note that we will not merge new connectors, but instead welcome PRs that link to thid party
|
|
8
|
+
connector packages.
|
|
9
|
+
-->
|
|
10
|
+
|
|
11
|
+
- [ ] Pull request is based on the default branch (`3.x` at this time)
|
|
12
|
+
- [ ] Pull request includes tests for any new/updated operations/facts
|
|
13
|
+
- [ ] Pull request includes documentation for any new/updated operations/facts
|
|
14
|
+
- [ ] Tests pass (see `scripts/dev-test.sh`)
|
|
15
|
+
- [ ] Type checking & code style passes (see `scripts/dev-lint.sh`)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Generate & Deploy Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
branches:
|
|
7
|
+
- 3.x
|
|
8
|
+
- 2.x
|
|
9
|
+
- 1.x
|
|
10
|
+
- 0.x
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
deploy:
|
|
14
|
+
runs-on: ubuntu-24.04
|
|
15
|
+
if: github.repository == 'pyinfra-dev/pyinfra'
|
|
16
|
+
steps:
|
|
17
|
+
- name: Clone Source Repository
|
|
18
|
+
uses: actions/checkout@v5
|
|
19
|
+
|
|
20
|
+
- name: Fetch git tags
|
|
21
|
+
run: git fetch --tags origin
|
|
22
|
+
|
|
23
|
+
- name: Clone Generated Repository
|
|
24
|
+
uses: actions/checkout@v5
|
|
25
|
+
with:
|
|
26
|
+
token: ${{ secrets.ACCESS_TOKEN }}
|
|
27
|
+
repository: pyinfra-dev/docs.pyinfra.com
|
|
28
|
+
path: docs/public/
|
|
29
|
+
|
|
30
|
+
- name: Set up Python
|
|
31
|
+
uses: actions/setup-python@v5
|
|
32
|
+
with:
|
|
33
|
+
python-version: "3.13"
|
|
34
|
+
- name: Install uv
|
|
35
|
+
uses: astral-sh/setup-uv@v6
|
|
36
|
+
- name: Install
|
|
37
|
+
run: |
|
|
38
|
+
uv sync --group docs --no-default-groups
|
|
39
|
+
uv pip install 'jinja2<3.1'
|
|
40
|
+
|
|
41
|
+
- name: Generate documentation
|
|
42
|
+
run: scripts/build-public-docs.sh
|
|
43
|
+
env:
|
|
44
|
+
PYTHONPATH: '.'
|
|
45
|
+
|
|
46
|
+
- name: Push & Update
|
|
47
|
+
run: |
|
|
48
|
+
cd docs/public/
|
|
49
|
+
|
|
50
|
+
if [[ `git status --porcelain` ]]; then
|
|
51
|
+
git config user.name github-actions
|
|
52
|
+
git config user.email github-actions@github.com
|
|
53
|
+
git add .
|
|
54
|
+
git commit -m "Docs build $(date -I)"
|
|
55
|
+
git push origin HEAD:main
|
|
56
|
+
fi
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
name: Lint & Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- 3.x
|
|
7
|
+
- 2.x
|
|
8
|
+
- 1.x
|
|
9
|
+
- 0.x
|
|
10
|
+
pull_request:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
# Linting
|
|
14
|
+
#
|
|
15
|
+
|
|
16
|
+
lint:
|
|
17
|
+
runs-on: ubuntu-24.04
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v5
|
|
20
|
+
- uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: "3.13"
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v6
|
|
25
|
+
- uses: astral-sh/ruff-action@v3
|
|
26
|
+
- uses: astral-sh/ruff-action@v3
|
|
27
|
+
with:
|
|
28
|
+
args: "format --check"
|
|
29
|
+
|
|
30
|
+
type-check:
|
|
31
|
+
runs-on: ubuntu-24.04
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v5
|
|
34
|
+
- uses: actions/setup-python@v5
|
|
35
|
+
with:
|
|
36
|
+
python-version: "3.13"
|
|
37
|
+
- name: Install uv
|
|
38
|
+
uses: astral-sh/setup-uv@v6
|
|
39
|
+
- run: uv sync --group test --no-default-groups
|
|
40
|
+
- run: uv run mypy
|
|
41
|
+
|
|
42
|
+
spell-check:
|
|
43
|
+
runs-on: ubuntu-24.04
|
|
44
|
+
steps:
|
|
45
|
+
- uses: actions/checkout@v5
|
|
46
|
+
- name: Check spelling
|
|
47
|
+
uses: crate-ci/typos@v1.30.3
|
|
48
|
+
|
|
49
|
+
unit-test:
|
|
50
|
+
needs:
|
|
51
|
+
- lint
|
|
52
|
+
- type-check
|
|
53
|
+
- spell-check
|
|
54
|
+
strategy:
|
|
55
|
+
matrix:
|
|
56
|
+
os: [macos-26, macos-15, macos-14, windows-2025, windows-2022, ubuntu-24.04, ubuntu-22.04]
|
|
57
|
+
# Test every OS vs. Python 3.13, and only one for 3.1[012]
|
|
58
|
+
python-version: ["3.13"]
|
|
59
|
+
include:
|
|
60
|
+
- os: ubuntu-24.04
|
|
61
|
+
python-version: "3.12"
|
|
62
|
+
- os: ubuntu-24.04
|
|
63
|
+
python-version: "3.11"
|
|
64
|
+
- os: ubuntu-24.04
|
|
65
|
+
python-version: "3.10"
|
|
66
|
+
runs-on: ${{ matrix.os }}
|
|
67
|
+
steps:
|
|
68
|
+
- uses: actions/checkout@v5
|
|
69
|
+
- uses: actions/setup-python@v5
|
|
70
|
+
with:
|
|
71
|
+
python-version: ${{ matrix.python-version }}
|
|
72
|
+
- name: Install uv
|
|
73
|
+
uses: astral-sh/setup-uv@v6
|
|
74
|
+
- run: uv sync --group test --no-default-groups --python=${{ matrix.python-version }}
|
|
75
|
+
- run: uv run pytest --cov --disable-warnings
|
|
76
|
+
- name: Upload coverage report to codecov
|
|
77
|
+
if: ${{ matrix.os == 'ubuntu-24.04' && matrix.python-version == '3.13' }}
|
|
78
|
+
uses: codecov/codecov-action@v5
|
|
79
|
+
|
|
80
|
+
# End-to-end tests
|
|
81
|
+
#
|
|
82
|
+
|
|
83
|
+
end-to-end-test:
|
|
84
|
+
needs:
|
|
85
|
+
- lint
|
|
86
|
+
- type-check
|
|
87
|
+
- spell-check
|
|
88
|
+
strategy:
|
|
89
|
+
matrix:
|
|
90
|
+
os: [ubuntu-22.04, ubuntu-24.04]
|
|
91
|
+
test-name: [local, ssh, docker, podman]
|
|
92
|
+
include:
|
|
93
|
+
- os: macos-14
|
|
94
|
+
test-name: local
|
|
95
|
+
- os: macos-15
|
|
96
|
+
test-name: local
|
|
97
|
+
- os: macos-26
|
|
98
|
+
test-name: local
|
|
99
|
+
runs-on: ${{ matrix.os }}
|
|
100
|
+
steps:
|
|
101
|
+
- uses: actions/checkout@v5
|
|
102
|
+
- uses: actions/setup-python@v5
|
|
103
|
+
with:
|
|
104
|
+
python-version: "3.13"
|
|
105
|
+
- name: Install uv
|
|
106
|
+
uses: astral-sh/setup-uv@v6
|
|
107
|
+
- run: uv sync --group test --no-default-groups --python=${{ matrix.python-version }}
|
|
108
|
+
- run: uv run pytest -m end_to_end_${{ matrix.test-name }}
|
|
109
|
+
|
|
110
|
+
# Finally, single jon to check if all completed, for use in protected branch
|
|
111
|
+
|
|
112
|
+
tests-done:
|
|
113
|
+
if: ${{ always() }}
|
|
114
|
+
needs:
|
|
115
|
+
- lint
|
|
116
|
+
- type-check
|
|
117
|
+
- spell-check
|
|
118
|
+
- unit-test
|
|
119
|
+
- end-to-end-test
|
|
120
|
+
runs-on: ubuntu-latest
|
|
121
|
+
steps:
|
|
122
|
+
- uses: matrix-org/done-action@v3
|
|
123
|
+
with:
|
|
124
|
+
needs: ${{ toJSON(needs) }}
|
pyinfra-3.6/.gitignore
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
.DS_Store
|
|
2
|
+
.ropeproject
|
|
3
|
+
|
|
4
|
+
*.pyc
|
|
5
|
+
*.egg-info
|
|
6
|
+
|
|
7
|
+
.*sw[pno]
|
|
8
|
+
|
|
9
|
+
build/
|
|
10
|
+
dist/
|
|
11
|
+
|
|
12
|
+
venv/
|
|
13
|
+
.venv/
|
|
14
|
+
.cache/
|
|
15
|
+
.mypy_cache/
|
|
16
|
+
.pytest_cache/
|
|
17
|
+
.python-version
|
|
18
|
+
|
|
19
|
+
.vagrant*
|
|
20
|
+
|
|
21
|
+
.coverage
|
|
22
|
+
|
|
23
|
+
.docstmp
|
|
24
|
+
docs/build/
|
|
25
|
+
docs/public/
|
|
26
|
+
docs/connectors/
|
|
27
|
+
docs/facts/
|
|
28
|
+
docs/operations/
|
|
29
|
+
docs/apidoc/
|
|
30
|
+
docs/_deploy_globals.rst
|
|
31
|
+
|
|
32
|
+
.idea/
|
|
33
|
+
.vscode/
|
|
34
|
+
|
|
35
|
+
pyinfra-debug.log
|
|
36
|
+
Makefile
|
pyinfra-3.6/.typos.toml
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[files]
|
|
2
|
+
extend-exclude = [
|
|
3
|
+
"tests/facts/apt.SimulateOperationWillChange/upgrade.json",
|
|
4
|
+
"tests/facts/opkg.OpkgPackages/opkg_packages.json",
|
|
5
|
+
"tests/words.txt",
|
|
6
|
+
]
|
|
7
|
+
|
|
8
|
+
[default]
|
|
9
|
+
extend-ignore-re = [
|
|
10
|
+
"shell\\('uptim'\\)",
|
|
11
|
+
'"fpr:::::::::',
|
|
12
|
+
'== "fpr":',
|
|
13
|
+
"00740ba1",
|
|
14
|
+
"forr something in",
|
|
15
|
+
"unknown tag 'forr'",
|
|
16
|
+
"nd6 options=",
|
|
17
|
+
"4Ue1", # Ignore false positive in test_sshuserclient.py (EXAMPLE_KEY_1)
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[default.extend-words]
|
|
21
|
+
datas = "datas"
|
pyinfra-3.6/CHANGELOG.md
ADDED
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
# v3.6
|
|
2
|
+
|
|
3
|
+
First 2026 release - Happy New Year all! Thank you to all contributors. One big highlight is new metadata spec for plugins, this is the start of better discovery and documentation generation for third party facts and operations:
|
|
4
|
+
|
|
5
|
+
- add metadata spec for pyinfra plugins (@rod7760)
|
|
6
|
+
|
|
7
|
+
New and updated operations/facts:
|
|
8
|
+
|
|
9
|
+
- operations: add `_temp_dir` global argument for configuring temp directory (@wowi42)
|
|
10
|
+
- operations: add `files.copy` operation (@EricDriussi)
|
|
11
|
+
- operations.crontab: fix modification not properly relying on the `cron_name` parameter (@information-redacted)
|
|
12
|
+
- operations.docker.container: add support for setting labels (@spookyvision)
|
|
13
|
+
- operations: add import statements on at least one example of every operation (@mkinney)
|
|
14
|
+
- operations.docker.image: make operation idempotent (@DonDebonair)
|
|
15
|
+
- operations.files.template: allow custom jinja2 template loaders (@DaRasch)
|
|
16
|
+
- operations.files.block/connectors.util: use correct temporary directory (@morrison12)
|
|
17
|
+
- operations.util.packaging: allow empty package list in `ensure_packages` (@schenker)
|
|
18
|
+
- operations: fix tmpdir to properly use all the POSIX environment variables (@wowi42)
|
|
19
|
+
- facts.files.FileContents: improve docstring (@adonm)
|
|
20
|
+
- facts.apt.update: fix computation of cache_time when host is not UTC (@philippemilink)
|
|
21
|
+
- facts: add `FactProcessError` to log, not explode, issues processing facts (@NichtJens)
|
|
22
|
+
- facts.npm: check directory exists before cd-ing (wowi42)
|
|
23
|
+
|
|
24
|
+
Connectors:
|
|
25
|
+
|
|
26
|
+
- connectors.docker: add platform and architecture option via connector data (@JP-Ellis)
|
|
27
|
+
- connectors: close stdin after writing any input
|
|
28
|
+
- connectors.ssh: add workaround for paramiko no session error (@dfaerch)
|
|
29
|
+
|
|
30
|
+
CLI:
|
|
31
|
+
|
|
32
|
+
- cli: change color of "No changes" to cyan
|
|
33
|
+
- cli: add option `--same-sudo-password` (@philippemilink)
|
|
34
|
+
|
|
35
|
+
Docs/meta:
|
|
36
|
+
|
|
37
|
+
- docs: replace `python -m` with `uv run -m` (@JP-Ellis)
|
|
38
|
+
- docs: fix URLs in API documentation (@kelno)
|
|
39
|
+
- docs/connectors: document command wrapping and parameter filtering best practices (@elazar)
|
|
40
|
+
- tests: freeze date for fact tests
|
|
41
|
+
|
|
42
|
+
# v3.5.3
|
|
43
|
+
|
|
44
|
+
- another release to fix different doc generation issues 🫠
|
|
45
|
+
|
|
46
|
+
# v3.5.2
|
|
47
|
+
|
|
48
|
+
- fix operation & fact docs generation
|
|
49
|
+
|
|
50
|
+
# v3.5.1
|
|
51
|
+
|
|
52
|
+
Patch release with a bunch of great fixes. But notably want to call out two major changes for anyone working on the pyinfra code itself (huge thank you Daan for implementing these):
|
|
53
|
+
|
|
54
|
+
- feat: use ruff for linting and formatting (@DonDebonair)
|
|
55
|
+
- feat: use uv for project and dependency management (@DonDebonair)
|
|
56
|
+
|
|
57
|
+
Core fixes:
|
|
58
|
+
|
|
59
|
+
- api: correctly set context state+host when calling `get_facts`
|
|
60
|
+
- cli: catch exceptions when testing inventory/operation imports
|
|
61
|
+
- cli: fix/remove datetime timezone warnings (@wowi42)
|
|
62
|
+
- operations/files.block: correct behaviour when markers/block not found and no line provided (@morrison12)
|
|
63
|
+
- operations.util.packaging: extend PkgInfo for winget (@rod7760)
|
|
64
|
+
- facts/server: support negative value in sysctl (@imlonghao)
|
|
65
|
+
|
|
66
|
+
Docs:
|
|
67
|
+
|
|
68
|
+
- docs: fix dynamic execution example (@wowi42)
|
|
69
|
+
- docs: Specify how the recursive argument to directory() works (@cliffmccarthy)
|
|
70
|
+
- docs: change recommended installation methods (@DonDebonair)
|
|
71
|
+
- docs: update writing connectors
|
|
72
|
+
|
|
73
|
+
Tests:
|
|
74
|
+
|
|
75
|
+
- op.server.user tests: add exists_noop.json for user existence checks (fix warning) (@maisim)
|
|
76
|
+
- op.server.user tests: add noop_description (fix warning) (@maisim)
|
|
77
|
+
- fix: add missing command field in test (@maisim)
|
|
78
|
+
- tests: clear the host sftp memoization cache before setting up the mock (@wowi42)
|
|
79
|
+
- tests: export testgen class to a new package/repo
|
|
80
|
+
- tests: fix missing stage sets on state
|
|
81
|
+
|
|
82
|
+
# v3.5
|
|
83
|
+
|
|
84
|
+
New release with some really awesome new features, brought to you by the fantastic contributions of the community. New stuff:
|
|
85
|
+
|
|
86
|
+
- add `--diff` argument to show file diffs for potential file changes (@jgelens)
|
|
87
|
+
- add `_retries`, `_retry_delay` and `_retry_until` global arguments (@shohamd4)
|
|
88
|
+
- parallelize disconnecting from hosts (@gwelch-contegix)
|
|
89
|
+
- enable using SCP instead of SFTP for SSH file transfers (@DonDebonair)
|
|
90
|
+
|
|
91
|
+
New and updated operations/facts:
|
|
92
|
+
|
|
93
|
+
- facts/server: add `RebootRequired` fact (@wowi42)
|
|
94
|
+
- operations/pip: support PEP-508 package versions (@morrison12)
|
|
95
|
+
- operations+facts/docker: add Docker plugin support (@DonDebonair)
|
|
96
|
+
- operations/files.put: add `atime` and `mtime` arguments (@vram0gh2)
|
|
97
|
+
- operations/openrc: support runlevel when enabling services (@sengo4hd)
|
|
98
|
+
- facts/yum+dnf+zypper: return `repoid` in repository facts
|
|
99
|
+
|
|
100
|
+
Operation/fact fixes:
|
|
101
|
+
|
|
102
|
+
- facts/files.File: add ls fallback support (@mrkbac)
|
|
103
|
+
- operations/openrc: add missing noop messages (@sengo4hd)
|
|
104
|
+
- operations/server.crontab: fix newline when replacing existing values (@Nananas)
|
|
105
|
+
- operations/files.block: fix examples doc (@morrison12)
|
|
106
|
+
- operations/files.block: fix case where file exists but line is missing (@morrison12)
|
|
107
|
+
- operations/files.block: improve handling of special characters in marker lines (@morrison12)
|
|
108
|
+
|
|
109
|
+
Internal/meta:
|
|
110
|
+
|
|
111
|
+
- documentation link fix (@sengo4hd)
|
|
112
|
+
|
|
113
|
+
# v3.4.1
|
|
114
|
+
|
|
115
|
+
- fix config context when getting operation arguments
|
|
116
|
+
|
|
117
|
+
# v3.4
|
|
118
|
+
|
|
119
|
+
Much delayed 3.4, great collection of additions and improvements. Huge THANK YOU to all contributors as always. New features:
|
|
120
|
+
|
|
121
|
+
- Add @podman connector (@Griffoen)
|
|
122
|
+
|
|
123
|
+
New and updated operations/facts:
|
|
124
|
+
|
|
125
|
+
- operations/docker.network: add support for aux addresses (@DonDebonair)
|
|
126
|
+
- operations/files: try multiple hash functions in `files.get` + `files.put` (@mrkbac)
|
|
127
|
+
- operations/files.download: add `temp_dir` argument (@scy)
|
|
128
|
+
- operations/files.download: add `extra_curl_args` and `extra_wget_args` arguments (@jgelens)
|
|
129
|
+
- operations/flatpak: add remote support (@Griffoen)
|
|
130
|
+
- operations/git + facts/git: add `GitTag` fact and support tag checkout (@wowi42)
|
|
131
|
+
- operations/server.mount: add support for FreeBSD mounts (@DtxdF)
|
|
132
|
+
- facts/server: add `server.Port` fact to find process listening on port (@missytake)
|
|
133
|
+
|
|
134
|
+
Operation/fact fixes:
|
|
135
|
+
|
|
136
|
+
- operations/docker: handle case where no docker containers/etc exist (@wowi42)
|
|
137
|
+
- operations/files + operations/crontab: fix deletion of lines when `present=False` (@bad)
|
|
138
|
+
- operations/files.block: avoid use of non-POSIX `chown -n`
|
|
139
|
+
- operations/files.put: fix copying of local file mode (@vram0gh2)
|
|
140
|
+
- operations/server.user: fix appending of user groups (@aaron-riact)
|
|
141
|
+
- facts/server.Mounts: fix whitespace and escaped character parsing (@lemmi)
|
|
142
|
+
- facts/systemd: treat mounted units as active
|
|
143
|
+
|
|
144
|
+
Internal/meta:
|
|
145
|
+
|
|
146
|
+
- remove unnecessary setuptools runtime dependency (@karlicoss)
|
|
147
|
+
|
|
148
|
+
# v3.3.1
|
|
149
|
+
|
|
150
|
+
- connectors/ssh: fix extra `keep_alive` key passing through to paramiko `connect` call (@chipot)
|
|
151
|
+
- docs: refine installation guide with updated Python requirements and best practices (@wowi42)
|
|
152
|
+
|
|
153
|
+
# v3.3
|
|
154
|
+
|
|
155
|
+
Second release of 2025: loads of adds, fixes and documentation improvements. A huge THANK YOU to all contributors. Slightly changed format for the change list based on commit messages which should speed up releases:
|
|
156
|
+
|
|
157
|
+
New operations & arguments:
|
|
158
|
+
|
|
159
|
+
- operations/freebsd: add FreeBSD operations & facts (@DtxdF)
|
|
160
|
+
- operations/files.move: new operation (@Pirols)
|
|
161
|
+
- operations/server.user: enable adding user to secondary groups (Pirols)
|
|
162
|
+
- operations/postgres: enhance role management by adding `ALTER ROLE` support (@wowi42)
|
|
163
|
+
- operations/postgres: enable modifying existing postgres databases (@wowi42)
|
|
164
|
+
- operations/docker.container: refactor to support container recreation (@minor-fixes)
|
|
165
|
+
|
|
166
|
+
Operation/fact fixes:
|
|
167
|
+
|
|
168
|
+
- operations/postgres: fix quoting of locale parameters (@xvello)
|
|
169
|
+
- operations/server: remove leftover deprecated parameter (@wowi42)
|
|
170
|
+
- operations/pacmen: update PACMAN_REGEX to support additional characters (@wowi42)
|
|
171
|
+
- operations/server.sysctl: handle 0 integer values correctly (@lemmi)
|
|
172
|
+
- operations/apt: dist-upgrade also supports --autoremove (@bauen1)
|
|
173
|
+
- operations/apt: fix parameter name in docs (@bauen1)
|
|
174
|
+
- operations/server: fix: lastlog is always null (@ingstem)
|
|
175
|
+
- operations/docker: Fixed a typo with the volumes parameter to docker.prune operation (@mpilone)
|
|
176
|
+
- facts/xbps.XbpsPackages: allow . in package names (@lemmi)
|
|
177
|
+
|
|
178
|
+
Connectors, CLI:
|
|
179
|
+
|
|
180
|
+
- connectors: improve detection of sudo password needed
|
|
181
|
+
- connectors/ssh: add support for `ServerAliveInterval` (@chipot)
|
|
182
|
+
- cli: enable -h as shorthand for --help (@NichtJens)
|
|
183
|
+
|
|
184
|
+
Docs:
|
|
185
|
+
|
|
186
|
+
- docs: Add a section explaining connector flow (@goetzk)
|
|
187
|
+
- docs: Add inventory processing note and reference it (@goetzk)
|
|
188
|
+
- docs: Add example of logging to using operations docs (@goetzk)
|
|
189
|
+
- docs: fix wrong example operation using forbidden argument 'name' (@robertmx)
|
|
190
|
+
- docs: Add a note to the docs about using `_inner` when calling operations from other operations (@CSDUMMI)
|
|
191
|
+
- docs: Document host, state, inventory in files.template (@mpilone)
|
|
192
|
+
- docs: Minor adjustments to wording help docs and help (@goetzk)
|
|
193
|
+
- docs: expand connectors documentation (@goetzk)
|
|
194
|
+
- docs: correct import path for any_changed, all_changed (@lemmi)
|
|
195
|
+
- docs: Add note re: global arguments to operations (@simonhammes)
|
|
196
|
+
|
|
197
|
+
Internal/meta:
|
|
198
|
+
|
|
199
|
+
- refactor: update opkg documentation and add requires_command to ZFS and Git tests (@wowi42)
|
|
200
|
+
- Update testing and development dependencies in setup.py (@wowi42)
|
|
201
|
+
- tests: Load test specs with PyYAML instead of json (@taliaferro)
|
|
202
|
+
- typing: Require explicit override decorator (@bauen1)
|
|
203
|
+
- api: don't execute callbacks within a greenlet if we're already in one
|
|
204
|
+
- ci: Github Actions support for python 3.12 (@wowi42)
|
|
205
|
+
- ci: Prevent docs job from running on forks (@simonhammes)
|
|
206
|
+
|
|
207
|
+
# v3.2
|
|
208
|
+
|
|
209
|
+
Hello 2025! Here's pyinfra 3.2 - with another incredible round of contributions from the community, THANK YOU ALL. New stuff:
|
|
210
|
+
|
|
211
|
+
- Add total counts to results summary (@NichtJens)
|
|
212
|
+
- Enable passing extra data via `local.include` (@TimothyWillard)
|
|
213
|
+
- Validate inventory files and display warnings for unexpected variables (@simonhammes)
|
|
214
|
+
|
|
215
|
+
New operations/facts:
|
|
216
|
+
|
|
217
|
+
- Add `pipx` operations (`packages`, `upgrade_all`, `ensure_path`) facts (`PipxPackages`, `PipxEnvironment`) and operations (@maisim)
|
|
218
|
+
- Add `server.OsRelease` fact (@wowi42)
|
|
219
|
+
- Add `podman.PodmanSystemInfo` and `podman.PodmanPs` facts (@bauen1)
|
|
220
|
+
- Add many extra arguments (including generic args) to `files.FindFiles*` facts (@JakkuSakura)
|
|
221
|
+
- Add `system` argument to `git.config` operation (@Pirols)
|
|
222
|
+
- Add `psql_database` argument to postgres operations & facts (@hamishfagg)
|
|
223
|
+
- Add `files.Sha384File` fact and `sha384sum` argument to `files.download` operation (@simonhammes)
|
|
224
|
+
- Add `apt.SimulateOperationWillChange` fact (@bauen1)
|
|
225
|
+
- Detect changes in `apt.upgrade` and `apt.dist_upgrade` operations (@bauen1)
|
|
226
|
+
- Add `fibootmgr.EFIBootMgr` fact (@bauen1)
|
|
227
|
+
- Add opkg facts and operations (@morrison12)
|
|
228
|
+
|
|
229
|
+
Fixes:
|
|
230
|
+
|
|
231
|
+
- Multiple fixes for `server.crontab` operation and facts (@JakkuSakura)
|
|
232
|
+
- Correctly handle `latest` argument with requirements file in `pip.packages` operation (@amiraliakbari)
|
|
233
|
+
- Fix regex used to parse installed apk packages (@simonhammes)
|
|
234
|
+
- Fix SSH connector overwriting known hosts files (@vo452)
|
|
235
|
+
|
|
236
|
+
Docs/internal tweaks:
|
|
237
|
+
|
|
238
|
+
- Add type annotations for many more operations (@simonhammes)
|
|
239
|
+
- Add typos CI checking to replace flake8-spellcheck (@simonhammes)
|
|
240
|
+
- Bump CI actions and dependencies (@simonhammes)
|
|
241
|
+
- Require JSON tests to include all arguments
|
|
242
|
+
- Remove unused `configparser` dependency (@bkmgit)
|
|
243
|
+
- Many small documentation fixes/tweaks
|
|
244
|
+
|
|
245
|
+
# v3.1.1
|
|
246
|
+
|
|
247
|
+
- Improve errors with 2.x style `@decorator` (vs `@decorator()`) functions
|
|
248
|
+
- Document adding custom connectors (@simonhammes)
|
|
249
|
+
- Add basic API example to docs (@pirate)
|
|
250
|
+
- Fix sphinx warnings (@simonhammes)
|
|
251
|
+
- Fix force & pull arguments in `git.worktree` operation
|
|
252
|
+
- Fix `server.reboot` reconnection (@wackou)
|
|
253
|
+
- Fix chroot/local connector non-utf file gets (@evoldstad)
|
|
254
|
+
- Fix `AptSources` fact to parse components in order & with digits (@rsfzi)
|
|
255
|
+
|
|
256
|
+
# v3.1
|
|
257
|
+
|
|
258
|
+
Here's pyinfra 3.1 - a release primarily driven by contributors new and old - a HUGE THANK YOU to all of you who dedicate time to work on pushing pyinfra forward. New stuff:
|
|
259
|
+
|
|
260
|
+
- Add `zfs` operations (`dataset`, `snapshot`, `volume`, `filesystem`) facts (`Pools`, `Datasets`, `Filesystems`, `Snapshots`, `Volumes`) (@taliaferro)
|
|
261
|
+
- Add `flatpak` operations (`packages`) and facts (`FlatpakPackage`, `FlatpakPackages`) (@JustScreaMy)
|
|
262
|
+
- Add `jinja_env_kwargs` argument to `files.template` operation (@DonDebonair)
|
|
263
|
+
- Add using dictionaries as `@terraform` output (map from group -> hosts)
|
|
264
|
+
- Add default `@terraform` output key - `pyinfra_inventory.value`, promote connector to beta
|
|
265
|
+
- Add support for multiple keys in each `server.authorized_keys` file (@matthijskooijman)
|
|
266
|
+
- Add print all dependency versions with `--support` flag (@kytta)
|
|
267
|
+
|
|
268
|
+
Fixes:
|
|
269
|
+
|
|
270
|
+
- Fix when `ssh_hostname` is set as override data, don't do inventory hostname check
|
|
271
|
+
- Fix `apt.AptSources` parsing special characters (@CondensedTea)
|
|
272
|
+
- Fix `server.reboot` connection detection (@bauen1 + @lemmi)
|
|
273
|
+
- Fix systemd flagging of sockets running (@bauen1)
|
|
274
|
+
- Fix mysql dump quoting (@simonhammes)
|
|
275
|
+
- Fix tilde expansion in files facts (@simonhammes)
|
|
276
|
+
- Fix host lookup check with SSH alias config (@simonhammes)
|
|
277
|
+
- Fix crontab comparison (@andrew-d)
|
|
278
|
+
|
|
279
|
+
Docs/internal tweaks:
|
|
280
|
+
|
|
281
|
+
- Improve operations documentation (@bauen1)
|
|
282
|
+
- Default to local machine if `user_name` set in systecmt (@bauen1)
|
|
283
|
+
- Improve efficiency of Docker operations (@apecnascimento)
|
|
284
|
+
- Shallow copy `host.data` data to mutation
|
|
285
|
+
|
|
286
|
+
# v3.0.2
|
|
287
|
+
|
|
288
|
+
- Fix `OperationMeta.did_change`: this is now a function as originally designed
|
|
289
|
+
- Add quick test for `host.when` context manager
|
|
290
|
+
- Remove extra detected changes note when not relevant
|
|
291
|
+
|
|
292
|
+
# v3.0.1
|
|
293
|
+
|
|
294
|
+
- Switch to `command -v` not `which` in `server.Which` fact (@lemmi)
|
|
295
|
+
- Fix detection of xbps in `server.packages` operation (@romain-dartigues)
|
|
296
|
+
- Fix argument typo in operations doc (@scoufman)
|
|
297
|
+
- Add expanded note about detected changes + hidden side effects during execution
|
|
298
|
+
- Fix missing global arguments in group data files
|
|
299
|
+
- Fix `--group-data` CLI argument behaviour
|
|
300
|
+
- Remove unused/dead `--quiet` flag
|
|
301
|
+
|
|
302
|
+
# v3.0
|
|
303
|
+
|
|
304
|
+
Welcome to pyinfra v3! This version is the biggest overhaul of pyinfra since it was created back in 2015. Most v2 deployment code should be automatically compatible, but as always be aware. Major changes:
|
|
305
|
+
|
|
306
|
+
### Runtime operation execution
|
|
307
|
+
|
|
308
|
+
pyinfra now executes operations at runtime, rather than pre-generating commands. Although the change isn't noticeable this fixes an entire class of bugs and confusion. See the [limitations](https://docs.pyinfra.com/en/2.x/deploy-process.html#limitations) section in the v2 docs. All of those issues are now a thing of the past.
|
|
309
|
+
|
|
310
|
+
This represents a huge overhaul of pyinfra's internals and should be a huge improvement for users.
|
|
311
|
+
|
|
312
|
+
Care has been taken to reduce the overhead of this change which still supports the same diffs and change proposal mechanism.
|
|
313
|
+
|
|
314
|
+
### CLI flow & prompts
|
|
315
|
+
|
|
316
|
+
The pyinfra CLI will now prompt (instead of ignore, or immediately exit) when problems are encountered, allowing the user to choose to continue. Additionally an approval step is added before executing changes (this can be skipped with `-y` or setting the `PYINFRA_YES` environment variable).
|
|
317
|
+
|
|
318
|
+
### Extendable connectors API, typing overhaul
|
|
319
|
+
|
|
320
|
+
v3 of pyinfra includes for the first time a (mostly) typed internal API with proper support for IDE linting. There's a whole new connectors API that provides a framework for building new connectors.
|
|
321
|
+
|
|
322
|
+
### Breaking changes
|
|
323
|
+
|
|
324
|
+
- Rename `_use_sudo_password` argument to `_sudo_password`
|
|
325
|
+
- Remove `winrm` connector and `windows*` operations/facts, moving to [`pyinfra-windows`](https://github.com/pyinfra-dev/pyinfra-windows)
|
|
326
|
+
- The deploy decorator must now be called, ie used as `@deploy()`, and is now typed
|
|
327
|
+
- Remove broken Ansible inventory connector
|
|
328
|
+
|
|
329
|
+
### Operations & Facts
|
|
330
|
+
|
|
331
|
+
- Add `docker.container`, `docker.image`, `docker.volume`, `docker.network` & `docker.prune` operations (@apecnascimento)
|
|
332
|
+
- Add `runit.service` operation and `RunitStatus` fact (@lemmi)
|
|
333
|
+
- Add `TmpDir` fact
|
|
334
|
+
- Add `services` argument to systemd facts for filtering
|
|
335
|
+
- Add type hints for all the operations (@stone-w4tch3r)
|
|
336
|
+
- Lowercase pip packages properly (PEP-0426)
|
|
337
|
+
- Rename `postgresql` -> `postgres` operations & facts (old ones still work)
|
|
338
|
+
- Improve IP/MAC parsing in `NetworkDevices` fact (@sudoBash418)
|
|
339
|
+
- Enable getting `Home` fact for other users (@matthijskooijman)
|
|
340
|
+
- Use users correct home directory in `server.user_authorized_keys` operation (@matthijskooijman)
|
|
341
|
+
- Fix `destination`/`not_destination` arguments in `iptables.rule` operation
|
|
342
|
+
- Fix remote dirs when executing from Windows in `files.sync` operation (@Renerick)
|
|
343
|
+
- Fix quoting of systemd unit names (@martenlienen)
|
|
344
|
+
|
|
345
|
+
### Other Changes
|
|
346
|
+
|
|
347
|
+
- Add new `_if` global argument to control operation execution at runtime
|
|
348
|
+
- Add `--debug-all` flag to set debug logging for all packages
|
|
349
|
+
- Retry SSH connections on failure (configurable, see [SSH connector](https://docs.pyinfra.com/en/3.x/connectors/ssh.html#available-data)) (@fwiesel)
|
|
350
|
+
- Documentation typo fixes (@szepeviktor, @sudoBash418)
|
|
351
|
+
- Fix handling of binary files in Docker connector (@matthijskooijman)
|
|
352
|
+
- Add `will_change` attribute and `did_change` context manager to `OperationMeta`
|
|
353
|
+
- Replace use of `pkg_resources` with `importlib.metadata` (@diazona)
|
|
354
|
+
- Fix identifying Python inventory files as modules (@martenlienen)
|
|
355
|
+
- Fix typed arguments order (@cdleonard)
|
|
356
|
+
- Check that fact commands don't take global arguments (@martenlienen)
|
|
357
|
+
|
|
358
|
+
# v2.x
|
|
359
|
+
|
|
360
|
+
[See this file in the `2.x` branch](https://github.com/Fizzadar/pyinfra/blob/2.x/CHANGELOG.md).
|
|
361
|
+
|
|
362
|
+
# v1.x
|
|
363
|
+
|
|
364
|
+
[See this file in the `1.x` branch](https://github.com/Fizzadar/pyinfra/blob/1.x/CHANGELOG.md).
|