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