Commit Graph

93 Commits (63fe40c691dd7199ad9ee40dbd09f5e9cfa84c49)

Author SHA1 Message Date
Toshio Kuratomi e238ae999b Cyptography pr 20566 rebase (#25560)
Make pyca/cryptography the preferred backend for cryptographic needs (mainly vault) falling back to pycrypto

pyca/cryptography is already implicitly a dependency in many cases
through paramiko (2.0+) as well as the new openssl_publickey module,
which requires pyOpenSSL 16.0+. Additionally, pyca/cryptography is
an optional dep for better performance with vault already.

This commit leverages cryptography's padding, constant time comparisons,
and CBC/CTR modes to reduce the amount of code ansible needs to
maintain.

* Handle wrong password given for VaultAES format

* Do not display deprecation warning for cryptography on python-2.6

* Namespace all of the pycrypto imports and always import them

  Makes unittests better and the code less likely to get stupid mistakes
  (like using HMAC from cryptogrpahy when the one from pycrypto is needed)

* Add back in atfork since we need pycrypto to reinitialize its RNG just in case we're being used with old paramiko

* contrib/inventory/gce: Remove spurious require on pycrypto

(cherry picked from commit 9e16b9db275263b3ea8d1b124966fdebfc9ab271)

* Add cryptography to ec2_win_password module requirements
  * Fix python3 bug which would pass text strings to a function which
    requires byte strings.

* Attempt to add pycrypto version to setup deps

* Change hacking README for dual pycrypto/cryptography

* update dependencies for various CI scripts

* additional CI dockerfile/script updates

* add paramiko to the windows and sanity requirement set

  This is needed because ansible lists it as a requirement. Previously
  the missing dep wasn't enforced, but cryptography imports pkg_resources
  so you can't ignore a requirement any more

* Add integration test cases for old vault and for wrong passwords

* helper script for manual testing of pycrypto/cryptography

* Skip the pycrypto tests so that users without it installed can still run the unittests

* Run unittests for vault with both cryptography and pycrypto backend
8 years ago
nemobis 5d28d76277 Set license GPLv3+ ("or any later version") in setup.py
Most file headers in the project contain the standard
> either version 3 of the License, or (at your option) any later version
https://github.com/ansible/ansible/search?utf8=%E2%9C%93&q=%22any+later+version%22

So this project appears to be GPLv3+, as stated in the classifiers function.
8 years ago
Brian Coca 74842adc07 1st part of ansible config, adds ansible-config to view/manage configs (#12797)
* Start of ansible config project

moved configuration definitions to external yaml file vs hardcoded
 * updated constants to be a data strcutures that are looped over and also return origin of setting
changed to manager/data scheme for base classes
new cli ansible-config to view/manage ansible configuration settings
 * prints green for default/unchanged and yellow for those that have been overriden
 * added list action to show all configurable settings and their associated ini and env var names
 * allows specifying config file to see what result would look like
 * TBD update, edit and view options

removed test for functions that have been removed

env_Vars are now list of dicts
allows for version_added and deprecation in future
added a couple of descriptions for future doc autogeneration
ensure test does not fail if delete_me exists
normalized 'path expansion'
added yaml config to setup packaging
removed unused imports
better encoding handling

updated as per feedback

* pep8
8 years ago
Toshio Kuratomi 9bbd48ad5f Make setting of metadata for crypto backend settable at buildtime
Working on several separate ideas to make ansible work with both
cryptography or pycrypto.  This particular change will let a user
installing ansible change which crypto backend gets encoded in the
metadata (and hence, which backend is required by pkg_resource).

This works with both setup.py and pip::

  ANSIBLE_CRYPTO_BACKEND=cryptography pip install ansible
  ANSIBLE_CRYPTO_BACKEND=cryptography python2 ./setup.py

Note that the code to use cryptography is not yet merged so using
ANSIBLE_CRYPTO_BACKEND is not yet a good idea (as it can lead to not
installing pycrypto and hence the current vault code will fail).

Related to: #20566
8 years ago
Dag Wieers 4efec414e7 test/: PEP8 compliancy (#24803)
* test/: PEP8 compliancy

- Make PEP8 compliant

* Python3 chokes on casting int to bytes (#24952)

But if we tell the formatter that the var is a number, it works
8 years ago
Adrian Likins 6f2cd64cff Include .git_keep files in role template skeleton (#24381)
setup.py will not install package_data this is just an empty
directory, even if the globs in package_data match it.

So the role skeleton that was being installed to galaxy/data/*/
was excluding the files/ and templates/ directories since they were
empty.

Since the skeleton dir doesnt include those dirs
'ansible-galaxy init' would not set them up.

So this adds a .* glob to those directories so the .git_keep
will be included as well, so that setup.py will create the otherwise
empty directoty. ansible-galaxy init already knows to ignore those
files, so no other changes are needed.

(Including the .git_keep files is a little odd, but the alternative
would be creating our own placeholder files. Since ansible-galaxy
already understands .git_keep files we just reuse that)

Fixes #23597
8 years ago
Toshio Kuratomi 57a7d7704f Make scripts into symlinks
pip can't handle zip files with symlinks.  Attempt to workaround that by
transforming the bin scripts into symlinks after the zip file has been
unarchived into the build tree.
8 years ago
Robin Schneider 3700bcb6dd Use HTTPS instead of legacy HTTP for ansible.com (#16870)
Mechanical edit done by this "one-liner":

```Shell
git ls-files -z "$(git rev-parse --show-toplevel)" | xargs --null -I '{}' find '{}' -type f -print0 | xargs --null sed --in-place --regexp-extended 's#http://(www\.|galaxy\.|)ansible\.com#https://\1ansible.com#g;'
```

Related to: https://github.com/ansible/ansible/issues/16869
8 years ago
Toshio Kuratomi d7b7cbac1a Move to using a requirements.txt to install the python packages. (#21430)
Move to using a requirements.txt to install the python packages.

This makes it easy to keep the documentation and actual package
dependencies in sync.

Fixes #18453
8 years ago
Matt Martz 87aa59af79 Legacy pep8 updates for setup.py and tests 8 years ago
Toshio Kuratomi d1a6b07fe1 Move ssh and local connection plugins from using raw select to selectors
At the moment, this change will use EPoll on Linux, KQueue on *BSDs,
etc, so it should alleviate problems with too many open file
descriptors.

* Bundle a copy of selectors2 so that we have the selectors API everywhere.
* Add licensing information to selectors2 file so it's clear what the
  licensing terms and conditions are.
* Exclude the bundled copy of selectors2 from our boilerplate code-smell test
* Rewrite ssh_run tests to attempt to work around problem with mocking
  select on shippable

Fixes #14143
8 years ago
Matt Clay 10d9318de7 PEP 8 indent cleanup. (#20800)
* PEP 8 E121 cleanup.

* PEP 8 E126 cleanup.

* PEP 8 E122 cleanup.
8 years ago
James Cammarata 4f55f032ea Updating setup.py to remove extras specific paths 8 years ago
Nathaniel Case 4680fafd9b Add ansible-connection to scripts in setup.py 8 years ago
David Côté-Tremblay 221cafe769 Removing the shebang and the execution permission so the command be prefixed with python2 or python3 as needed 8 years ago
Toshio Kuratomi a3ba96c512 Fix setup.py install.
In setuptools prior to 21.2.1, package_data can't directly reference
a directory.  Modify the entry for galaxy data so that it includes the
files but not the directories

Fixes #18231
8 years ago
Bill Nottingham 77e7ae6838 Change <support@ansible.com> - it's being retired. 8 years ago
Toshio Kuratomi 487e6562ca Fix ziploader for the cornercase of ansible invoking ansible.
* Make ziploader's ansible and ansible.module_utils libraries into
  namespace packages.
* Move __version__ and __author__ from ansible/__init__ to
  ansible/release.py.  This is because namespace packages only load one
  __init__.py.  If that is not the __init__.py with the author and
  version info then those won't be available.
* In ziplaoder, move the version ito ANSIBLE_CONSTANTS.
* Change PluginLoader to properly construct the path to the plugins even
  when namespace packages are present.
9 years ago
Brian Coca 369b3b317e renamed shell to console in last spot 9 years ago
Brian Coca e74ab3ecdd draft 1st release of ansible-console
porting @dominis 's ansible-shell tool from 1.9 and integrating it into ansible
added verbosity control
made more resilitent to several errors
added highlight color, to configurable colors
more resilient on exception and interruptions
prompt coloring, goes red and changes to # when using become = true and root
become setting is now explicit and not a toggle
9 years ago
Toshio Kuratomi baa309309d Bundle a new version of python-six for compatibility along with some code to make it easy for distributions to override the bunndled copy if they have a new enough version. 9 years ago
Brian Coca 66c3461f3c now include galaxy/data/ stuff for use with ansible-galaxy 9 years ago
billwanjohi b2739cec6d add distutils package classifiers
I was particularly interested in the programming language ones,
but the others might be useful to others browsing PyPI.

Now with GPLv3+, and Utilities topic.
9 years ago
James Cammarata 8509f22839 Merge pull request #11731 from danasmera/devel
Delete unused import glob
9 years ago
danasmera 966193e233 Delete unused import glob 9 years ago
James Cammarata 373830b5df Fix removal of .git from modules directories
Also changed the setup.py maintainers email to our default support one.

Fixes #11051
10 years ago
Matt Martz a0fc8bb0bd Testing additions and fixes
* Fix import pathing for units.mock
* Add some additional requirements
* Use compileall to test compatiblity with different python versions
10 years ago
Jürgen Hermann 597c0f48f5 Generic package_dir mapping in setup.py (closes #10437) 10 years ago
Toshio Kuratomi 9095e97c6a Parenthesis mean we can get rid of line continuation markers 10 years ago
Gilles Pietri ee448493d7 Make setup.py work with Python 3 (and requiring 2.6) 10 years ago
Michael DeHaan f80e766d97 Need to include extras in setup to accomodate future windows extras modules 10 years ago
Chris Church 8665f94ecb Make sure Windows modules are installed. 10 years ago
James Laska a0fecd6101 Fix packaging to work with new module location
Changes include:
 * Remove references to old module dir from .spec
 * Use setuptools find_packages find all ansible packages
10 years ago
Michael DeHaan e5116d2f9b changes for package loading of modules 10 years ago
Josh Drake aa419044c4 WIP on the re-implementation of fact caching and various backends. 10 years ago
James Cammarata 4bf826f514 Include *.ps1 files in the library for installation
Fixes #8490
10 years ago
James Laska 03efbfca29 Correct string concatenation error 11 years ago
Chris Church 3b4adb78cb Add shell_plugins to packages. 11 years ago
Michael DeHaan 56d03fc766 Merge pull request #6994 from tonk/docfix
Fix documentation error
11 years ago
James Cammarata 8e66a6c811 Cleaning up the import testing around setuptools 11 years ago
Ton Kersten 6735733ed1 Fix documentation error 11 years ago
Toshio Kuratomi e622074812 Prnt error message is unable to use setuptools when building 11 years ago
Toshio Kuratomi 17f134ca02 distutils' requires parameter doesn't work with setuptools. Use
setuptools' instal_requires instead
11 years ago
Toshio Kuratomi 0fefab6651 Require a recent enough version of pycrypto and see that playbook and vault ues it. 11 years ago
Ton Kersten ad687fcefd Added ansible-vault to the installer 11 years ago
James Cammarata b73a8efbd9 Tweak library installation path to default to /usr/share/ansible if specified 11 years ago
James Cammarata 79b5ed5331 Merge branch 'patch-1' of https://github.com/eggsby/ansible into eggsby-patch-1 11 years ago
Michael DeHaan d07a3b5e9b AnsibleWorks -> Ansible 11 years ago
Thomas Omans 4310fc260b bugfix: support path separators in module path
As described by http://docs.ansible.com/intro_configuration.html#library the library supports multiple paths to load modules from. 

Currently `setup.py` treats something like `/usr/share/ansible:/my/custom/modules` as a single directory name and results in the installed modules not being on the module path. (instead they are in a directory named `/usr/share/ansible:/my/custom/modules`) 

This commit simply takes the first listed directory as the install directory for the core modules.
11 years ago
Rene Moser dc40c406c6 setup.py: fix ansible-galaxy was not installed when using make install 11 years ago