homebrew-core/Formula/ansible.rb

510 lines
19 KiB
Ruby

class Ansible < Formula
desc "Automate deployment, configuration, and upgrading"
homepage "http://www.ansible.com/home"
url "http://releases.ansible.com/ansible/ansible-1.9.3.tar.gz"
sha256 "2594f642fd800056a427c1026410dc6ed8dfa7c0033f5c3d187abdb2b0d4eeed"
head "https://github.com/ansible/ansible.git", :branch => "devel"
bottle do
sha256 "3a84121aa26fe4f6d9bc2af11c4a3fc212c832c8696a2817f6b71b6207c4b69a" => :el_capitan
sha256 "e9513e2972a1d11ceebdc20be52995a41ed219587a5cae25ef28892c4098d963" => :yosemite
sha256 "3cca5dd439c1e1bae4cf7575a17bba52e423a8df0df563b87fa1d09594e53c0e" => :mavericks
sha256 "f4f08f04623570a93bf05f067033e175adf0069f9f426b152980c17437b2473d" => :mountain_lion
end
depends_on :python if MacOS.version <= :snow_leopard
depends_on "libyaml"
depends_on "openssl"
#
# ansible (core dependencies)
#
resource "Jinja2" do
url "https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.8.tar.gz"
sha256 "bc1ff2ff88dbfacefde4ddde471d1417d3b304e8df103a7a9437d47269201bf4"
end
resource "MarkupSafe" do
url "https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.23.tar.gz"
sha256 "a4ec1aff59b95a14b45eb2e23761a0179e98319da5a7eb76b56ea8cdc7b871c3"
end
resource "paramiko" do
url "https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.2.tar.gz"
sha256 "4f56a671a3eecbb76e6143e6e4ca007d503a39aa79aa9e14ade667fa53fd6e55"
end
resource "pycrypto" do
url "https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz"
sha256 "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c"
end
resource "PyYAML" do
url "https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz"
sha256 "c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8"
end
#
# Required by the 'paramiko' core module
# https://github.com/paramiko/paramiko)
#
resource "ecdsa" do
url "https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.13.tar.gz"
sha256 "64cf1ee26d1cde3c73c6d7d107f835fed7c6a2904aef9eac223d57ad800c43fa"
end
#
# Required by the 'uri' core module
# See http://docs.ansible.com/uri_module.html#requirements)
#
resource "httplib2" do
url "https://pypi.python.org/packages/source/h/httplib2/httplib2-0.9.1.tar.gz"
sha256 "bc6339919a5235b9d1aaee011ca5464184098f0c47c9098001f91c97176583f5"
end
#
# Resources required by docker-py and pyrax (see below)
#
resource "requests" do
url "https://pypi.python.org/packages/source/r/requests/requests-2.7.0.tar.gz"
sha256 "398a3db6d61899d25fd4a06c6ca12051b0ce171d705decd7ed5511517b4bb93d"
end
resource "six" do
url "https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz"
sha256 "e24052411fc4fbd1f672635537c3fc2330d9481b18c0317695b46259512c91d5"
end
#
# docker-py (for Docker support)
#
resource "backports.ssl_match_hostname" do
url "https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.4.0.2.tar.gz"
sha256 "07410e7fb09aab7bdaf5e618de66c3dac84e2e3d628352814dc4c37de321d6ae"
end
resource "docker-py" do
url "https://pypi.python.org/packages/source/d/docker-py/docker-py-1.3.1.tar.gz"
sha256 "743f3fc78f6159d14ac603def6470cf1b4edefc04de8b1ad8c349b380b503f50"
end
resource "websocket-client" do
url "https://pypi.python.org/packages/source/w/websocket-client/websocket_client-0.32.0.tar.gz"
sha256 "cb3ab95617ed2098d24723e3ad04ed06c4fde661400b96daa1859af965bfe040"
end
#
# pywinrm (for Windows support)
#
resource "isodate" do
url "https://pypi.python.org/packages/source/i/isodate/isodate-0.5.1.tar.gz"
sha256 "b12aed31c0e834543497e24d609a41531a800d8304c39e6665c45ca023b012fb"
end
resource "pywinrm" do
url "https://pypi.python.org/packages/source/p/pywinrm/pywinrm-0.0.3.tar.gz"
sha256 "be3775890effcddfb1fca440b43bf08af165527a7b102d43518232bfc9c021bc"
end
resource "xmltodict" do
url "https://pypi.python.org/packages/source/x/xmltodict/xmltodict-0.9.2.tar.gz"
sha256 "275d1e68c95cd7e3ee703ddc3ea7278e8281f761680d6bdd637bcd00a5c59901"
end
#
# kerberos (for Windows support)
#
resource "kerberos" do
url "https://pypi.python.org/packages/source/k/kerberos/kerberos-1.2.2.tar.gz"
sha256 "070ff6d9baf3752323283b1c8ed75e2edd0ec55337359185abf5bb0b617d2f5d"
end
#
# boto (for AWS support)
#
resource "boto" do
url "https://pypi.python.org/packages/source/b/boto/boto-2.38.0.tar.gz"
sha256 "d9083f91e21df850c813b38358dc83df16d7f253180a1344ecfedce24213ecf2"
end
#
# pyrax (for Rackspace support)
#
resource "Babel" do
url "https://pypi.python.org/packages/source/B/Babel/Babel-2.0.tar.gz"
sha256 "44988df191123065af9857eca68e9151526a931c12659ca29904e4f11de7ec1b"
end
resource "debtcollector" do
url "https://pypi.python.org/packages/source/d/debtcollector/debtcollector-0.7.0.tar.gz"
sha256 "03ef06604e666a9f4a1506ffcfa887068bdb9f16e33657f9211a7b4e8bc753ea"
end
resource "funcsigs" do
url "https://pypi.python.org/packages/source/f/funcsigs/funcsigs-0.4.tar.gz"
sha256 "d83ce6df0b0ea6618700fe1db353526391a8a3ada1b7aba52fed7a61da772033"
end
resource "iso8601" do
url "https://pypi.python.org/packages/source/i/iso8601/iso8601-0.1.10.tar.gz"
sha256 "e712ff3a18604833f5073e836aad795b21170b19bbef70947c441ed89d0ac0e1"
end
resource "keyring" do
url "https://pypi.python.org/packages/source/k/keyring/keyring-5.3.zip"
sha256 "ac2b4dc17e6edfb804b09ade15df79f251522e442976ea0c8ea0051474502cf5"
end
resource "mock" do
# NOTE: mock versions above 1.0.1 fail to install due to a broken setuptools version check.
url "https://pypi.python.org/packages/source/m/mock/mock-1.0.1.tar.gz"
sha256 "b839dd2d9c117c701430c149956918a423a9863b48b09c90e30a6013e7d2f44f"
end
resource "monotonic" do
url "https://pypi.python.org/packages/source/m/monotonic/monotonic-0.3.tar.gz"
sha256 "2825ba5ded67b1a70d44529634d3f4ddfad67a5ed7fdcf026022a3ce175be07b"
end
resource "msgpack-python" do
url "https://pypi.python.org/packages/source/m/msgpack-python/msgpack-python-0.4.6.tar.gz"
sha256 "bfcc581c9dbbf07cc2f951baf30c3249a57e20dcbd60f7e6ffc43ab3cc614794"
end
resource "netaddr" do
url "https://pypi.python.org/packages/source/n/netaddr/netaddr-0.7.15.tar.gz"
sha256 "d5b5bb3f4e9a94f93d232bb876e567517d8fb59e5bebb5339483b44df5529d11"
end
resource "netifaces" do
url "https://pypi.python.org/packages/source/n/netifaces/netifaces-0.10.4.tar.gz"
sha256 "9656a169cb83da34d732b0eb72b39373d48774aee009a3d1272b7ea2ce109cde"
end
resource "os_diskconfig_python_novaclient_ext" do
url "https://pypi.python.org/packages/source/o/os_diskconfig_python_novaclient_ext/os_diskconfig_python_novaclient_ext-0.1.2.tar.gz"
sha256 "78076a7b05afb8842734329f306bd69e64af6af910a3bc973fcf023723b8d7fc"
end
resource "os_networksv2_python_novaclient_ext" do
url "https://pypi.python.org/packages/source/o/os_networksv2_python_novaclient_ext/os_networksv2_python_novaclient_ext-0.25.tar.gz"
sha256 "35ba71b027daf4c407d7a2fd94604d0437eea0c1de4d8d5d0f8ab69100834a0f"
end
resource "os_virtual_interfacesv2_python_novaclient_ext" do
url "https://pypi.python.org/packages/source/o/os_virtual_interfacesv2_python_novaclient_ext/os_virtual_interfacesv2_python_novaclient_ext-0.19.tar.gz"
sha256 "5171370e5cea447019cee5da22102b7eca4d4a7fb3f12875e2d7658d98462c0a"
end
resource "oslo.config" do
url "https://pypi.python.org/packages/source/o/oslo.config/oslo.config-2.2.0.tar.gz"
sha256 "8ecb41d524a5c09e9a06513936177c2b8df3494d065f6999df7c533370693e3d"
end
resource "oslo.i18n" do
url "https://pypi.python.org/packages/source/o/oslo.i18n/oslo.i18n-2.3.0.tar.gz"
sha256 "9cd35cd12104672e4675465d59badf9b1d1c1bfc54ceef57d076d4fa8a12afc6"
end
resource "oslo.serialization" do
url "https://pypi.python.org/packages/source/o/oslo.serialization/oslo.serialization-1.8.0.tar.gz"
sha256 "89156873f2dfa4aed0265ca9c27d7e66c9aff6cfd5b01cafd2eb4e6bd462579b"
end
resource "oslo.utils" do
url "https://pypi.python.org/packages/source/o/oslo.utils/oslo.utils-2.2.0.tar.gz"
sha256 "75edebbb9715d9658e12a0b1b510389f5af5b66da7035bae48b3c79c6ac14aad"
end
resource "pbr" do
url "https://pypi.python.org/packages/source/p/pbr/pbr-1.4.0.tar.gz"
sha256 "f080232fb6b208615b4c1854bf4277bb097d19c9ef89f94f203c1436fe600e92"
end
resource "PrettyTable" do
url "https://pypi.python.org/packages/source/P/PrettyTable/prettytable-0.7.2.tar.bz2"
sha256 "853c116513625c738dc3ce1aee148b5b5757a86727e67eff6502c7ca59d43c36"
end
resource "pyrax" do
url "https://pypi.python.org/packages/source/p/pyrax/pyrax-1.9.4.tar.gz"
sha256 "5cc27688cccd4137a4c53a69b6e0e877054a0bafec899f8170ccc0b58fbf95f3"
end
resource "python-keystoneclient" do
url "https://pypi.python.org/packages/source/p/python-keystoneclient/python-keystoneclient-1.6.0.tar.gz"
sha256 "45ac3b13b8b63ab62cb3fbfcaf46a2241d8053dfe17961db911c45c1f23d06ff"
end
resource "python-novaclient" do
url "https://pypi.python.org/packages/source/p/python-novaclient/python-novaclient-2.26.0.tar.gz"
sha256 "725e28e981422e051352a76947dfab05838ee687f3c73a6524d64be8af8a900f"
end
resource "pytz" do
url "https://pypi.python.org/packages/source/p/pytz/pytz-2015.4.tar.bz2"
sha256 "a78b484d5472dd8c688f8b3eee18646a25c66ce45b2c26652850f6af9ce52b17"
end
resource "rackspace-auth-openstack" do
url "https://pypi.python.org/packages/source/r/rackspace-auth-openstack/rackspace-auth-openstack-1.3.tar.gz"
sha256 "c4c069eeb1924ea492c50144d8a4f5f1eb0ece945e0c0d60157cabcadff651cd"
end
resource "rackspace-novaclient" do
url "https://pypi.python.org/packages/source/r/rackspace-novaclient/rackspace-novaclient-1.4.tar.gz"
sha256 "68e1f53411b635f836a53d09e6c85f6a7d5d69d39df2e25a745406140cd5c275"
end
resource "rax_default_network_flags_python_novaclient_ext" do
url "https://pypi.python.org/packages/source/r/rax_default_network_flags_python_novaclient_ext/rax_default_network_flags_python_novaclient_ext-0.3.1.tar.gz"
sha256 "336d60bdb836dd4e51b142f7977da57b078ad2104a6628eaef7135c67a627c70"
end
resource "rax_scheduled_images_python_novaclient_ext" do
url "https://pypi.python.org/packages/source/r/rax_scheduled_images_python_novaclient_ext/rax_scheduled_images_python_novaclient_ext-0.3.1.tar.gz"
sha256 "f170cf97b20bdc8a1784cc0b85b70df5eb9b88c3230dab8e68e1863bf3937cdb"
end
resource "simplejson" do
url "https://pypi.python.org/packages/source/s/simplejson/simplejson-3.8.0.tar.gz"
sha256 "217e4797da3a9a4a9fbe6722e0db98070b8443a88212d7acdbd241a7668141d9"
end
resource "stevedore" do
url "https://pypi.python.org/packages/source/s/stevedore/stevedore-1.7.0.tar.gz"
sha256 "68cf8691407cfd9c11e32381ef14ff566292dca0d113aba384d3fcc100933791"
end
resource "wrapt" do
url "https://pypi.python.org/packages/source/w/wrapt/wrapt-1.10.5.tar.gz"
sha256 "99cbb4e3a3ea964df0cb1437261fc1198616ec872e7b501622f3f7f92fcd0833"
end
#
# python-keyczar (for Accelerated Mode support)
#
resource "pyasn1" do
url "https://pypi.python.org/packages/source/p/pyasn1/pyasn1-0.1.8.tar.gz"
sha256 "5d33be7ca0ec5997d76d29ea4c33b65c00c0231407fff975199d7f40530b8347"
end
resource "python-keyczar" do
url "https://pypi.python.org/packages/source/p/python-keyczar/python-keyczar-0.715.tar.gz"
sha256 "f43f9f15b0b719de94cab2754dcf78ef63b40ee2a12cea296e7af788b28501bb"
end
resource "passlib" do
url "https://pypi.python.org/packages/source/p/passlib/passlib-1.6.4.tar.gz"
sha256 "d41bd7a2d22f9bd7e19ff4eed0eea2316eb737f3ec6a7c361dde6b2785b08cdc"
end
#
# shade (for OpenStack support)
#
resource "anyjson" do
url "https://pypi.python.org/packages/source/a/anyjson/anyjson-0.3.3.tar.gz"
sha256 "37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba"
end
resource "appdirs" do
url "https://pypi.python.org/packages/source/a/appdirs/appdirs-1.4.0.tar.gz"
sha256 "8fc245efb4387a4e3e0ac8ebcc704582df7d72ff6a42a53f5600bbb18fdaadc5"
end
resource "bunch" do
url "https://pypi.python.org/packages/source/b/bunch/bunch-1.0.1.tar.gz"
sha256 "50c77a0fc0cb372dfe48b5e11937d5f70e743adbf42683f3a6d2857645a76aaa"
end
resource "cffi" do
url "https://pypi.python.org/packages/source/c/cffi/cffi-1.1.2.tar.gz"
sha256 "390970b602708c91ddc73953bb6929e56291c18a4d80f360afa00fad8b6f3339"
end
resource "cliff" do
url "https://pypi.python.org/packages/source/c/cliff/cliff-1.13.0.tar.gz"
sha256 "2b92d12cf1aa59c0cf1914b4b6b02b78daadac890a53d0e6b71b5220661ab9e0"
end
resource "cmd2" do
url "https://pypi.python.org/packages/source/c/cmd2/cmd2-0.6.8.tar.gz"
sha256 "ac780d8c31fc107bf6b4edcbcea711de4ff776d59d89bb167f8819d2d83764a8"
end
resource "cryptography" do
url "https://pypi.python.org/packages/source/c/cryptography/cryptography-0.9.3.tar.gz"
sha256 "aed022f738dd9adb840d92960b0464ea1fbb222ba118938858eb93fe25151c2d"
end
resource "decorator" do
url "https://pypi.python.org/packages/source/d/decorator/decorator-4.0.2.tar.gz"
sha256 "1a089279d5de2471c47624d4463f2e5b3fc6a2cf65045c39bf714fc461a25206"
end
resource "dogpile" do
url "https://pypi.python.org/packages/source/d/dogpile/dogpile-0.2.2.tar.gz"
sha256 "bce7e7145054af20d4bef01c7b2fb4266fa88dca107ed246c395558a824e9bf0"
end
resource "dogpile.cache" do
url "https://pypi.python.org/packages/source/d/dogpile.cache/dogpile.cache-0.5.6.tar.gz"
sha256 "f80544c5555f66cf7b5fc99f15431f3b35f78009bc6b03b58fe1724236bbc57b"
end
resource "dogpile.core" do
url "https://pypi.python.org/packages/source/d/dogpile.core/dogpile.core-0.4.1.tar.gz"
sha256 "be652fb11a8eaf66f7e5c94d418d2eaa60a2fe81dae500f3743a863cc9dbed76"
end
resource "enum34" do
url "https://pypi.python.org/packages/source/e/enum34/enum34-1.0.4.tar.gz"
sha256 "d3c19f26a6a34629c18c775f59dfc5dd595764c722b57a2da56ebfb69b94e447"
end
resource "functools32" do
url "https://pypi.python.org/packages/source/f/functools32/functools32-3.2.3-2.tar.gz"
sha256 "f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d"
end
resource "futures" do
url "https://pypi.python.org/packages/source/f/futures/futures-3.0.3.tar.gz"
sha256 "2fe2342bb4fe8b8e217f0d21b5921cbe5408bf966d9f92025e707e881b198bed"
end
resource "idna" do
url "https://pypi.python.org/packages/source/i/idna/idna-2.0.tar.gz"
sha256 "16199aad938b290f5be1057c0e1efc6546229391c23cea61ca940c115f7d3d3b"
end
resource "ipaddress" do
url "https://pypi.python.org/packages/source/i/ipaddress/ipaddress-1.0.14.tar.gz"
sha256 "226f4be44c6cb64055e23060848266f51f329813baae28b53dc50e93488b3b3e"
end
resource "jsonpatch" do
url "https://pypi.python.org/packages/source/j/jsonpatch/jsonpatch-1.11.tar.gz"
sha256 "22d0bc0f5522a4a03dd9fb4c4cdf7c1f03256546c88be4c61e5ceabd22280e47"
end
resource "jsonpointer" do
url "https://pypi.python.org/packages/source/j/jsonpointer/jsonpointer-1.9.tar.gz"
sha256 "39403b47a71aa782de6d80db3b78f8a5f68ad8dfc9e674ca3bb5b32c15ec7308"
end
resource "jsonschema" do
url "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-2.5.1.tar.gz"
sha256 "36673ac378feed3daa5956276a829699056523d7961027911f064b52255ead41"
end
resource "lxml" do
url "https://pypi.python.org/packages/source/l/lxml/lxml-3.4.4.tar.gz"
sha256 "b3d362bac471172747cda3513238f115cbd6c5f8b8e6319bf6a97a7892724099"
end
resource "os-client-config" do
url "https://pypi.python.org/packages/source/o/os-client-config/os-client-config-1.6.1.tar.gz"
sha256 "24323a33fe4ec4ff0c71a91aa16d26f4c4320f0b0234c5ac22d08f99e2f5c24d"
end
resource "pycparser" do
url "https://pypi.python.org/packages/source/p/pycparser/pycparser-2.14.tar.gz"
sha256 "7959b4a74abdc27b312fed1c21e6caf9309ce0b29ea86b591fd2e99ecdf27f73"
end
resource "pyOpenSSL" do
url "https://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.15.1.tar.gz"
sha256 "f0a26070d6db0881de8bcc7846934b7c3c930d8f9c79d45883ee48984bc0d672"
end
resource "pyparsing" do
url "https://pypi.python.org/packages/source/p/pyparsing/pyparsing-2.0.3.tar.gz"
sha256 "06e729e1cbf5274703b1f47b6135ed8335999d547f9d8cf048b210fb8ebf844f"
end
resource "python-cinderclient" do
url "https://pypi.python.org/packages/source/p/python-cinderclient/python-cinderclient-1.1.2.tar.gz"
sha256 "d364b627fbcbd049b2cedf125fb6aa06e2ca6213208f92b7ea393a7e1d7ecbe2"
end
resource "python-glanceclient" do
url "https://pypi.python.org/packages/source/p/python-glanceclient/python-glanceclient-0.19.0.tar.gz"
sha256 "45115023cadfdbc24a10b10ca5d003f8f04fd5642b7c8fb565efa566bac4bf51"
end
resource "python-ironicclient" do
url "https://pypi.python.org/packages/source/p/python-ironicclient/python-ironicclient-0.7.0.tar.gz"
sha256 "2017670848153e8b7715d8704e8bf75bd262efa9b76a1aeb23ef26b0a2b58b12"
end
resource "python-neutronclient" do
url "https://pypi.python.org/packages/source/p/python-neutronclient/python-neutronclient-2.6.0.tar.gz"
sha256 "ce72506c0720825edcb0e93b643340e044f1de9235d398fe1c45d851971020df"
end
resource "python-swiftclient" do
url "https://pypi.python.org/packages/source/p/python-swiftclient/python-swiftclient-2.5.0.tar.gz"
sha256 "6efcbff0bf60521ef682068c10c2d8959d887f70ed84ccd2def9945e8e94560e"
end
resource "python-troveclient" do
url "https://pypi.python.org/packages/source/p/python-troveclient/python-troveclient-1.2.0.tar.gz"
sha256 "a0583f5b102953c433de01ef3b4964e78dab3f0a64c6dea5b0e09ef8e87d4b30"
end
resource "shade" do
url "https://pypi.python.org/packages/source/s/shade/shade-0.11.0.tar.gz"
sha256 "262acc863a34103a2416e54f3ee137de96f6e061bfebe53bdb0b19df5235c012"
end
resource "warlock" do
url "https://pypi.python.org/packages/source/w/warlock/warlock-1.1.0.tar.gz"
sha256 "bbfb4279034ccc402723e38d2a2e67cd619988bf4802fda7ba3e8fab15762651"
end
def install
ENV.prepend_create_path "PYTHONPATH", libexec/"vendor/lib/python2.7/site-packages"
resources.each do |r|
r.stage do
system "python", *Language::Python.setup_install_args(libexec/"vendor")
end
end
inreplace "lib/ansible/constants.py" do |s|
s.gsub! "/usr/share/ansible", share/"ansible"
s.gsub! "/etc/ansible", etc/"ansible"
end
ENV.prepend_create_path "PYTHONPATH", libexec/"lib/python2.7/site-packages"
system "python", *Language::Python.setup_install_args(libexec)
man1.install Dir["docs/man/man1/*.1"]
bin.install Dir["#{libexec}/bin/*"]
bin.env_script_all_files(libexec/"bin", :PYTHONPATH => ENV["PYTHONPATH"])
end
def caveats; <<-EOS.undent
Homebrew writes wrapper scripts that set PYTHONPATH in ansible's
execution environment, which is inherited by Python scripts invoked
by ansible. If this causes problems, you can modify your playbooks
to invoke python with -E, which causes python to ignore PYTHONPATH.
EOS
end
test do
ENV["ANSIBLE_REMOTE_TEMP"] = testpath/"tmp"
(testpath/"playbook.yml").write <<-EOF.undent
---
- hosts: all
gather_facts: False
tasks:
- name: ping
ping:
EOF
(testpath/"hosts.ini").write("localhost ansible_connection=local\n")
system bin/"ansible-playbook", testpath/"playbook.yml", "-i", testpath/"hosts.ini"
end
end