1. 10 Aug, 2013 1 commit
  2. 28 Jul, 2013 1 commit
  3. 24 Jul, 2013 1 commit
  4. 23 Jul, 2013 1 commit
  5. 18 Jul, 2013 1 commit
  6. 14 Jul, 2013 1 commit
  7. 01 Jul, 2013 1 commit
  8. 22 Jun, 2013 1 commit
    • expanduser on each component of plug-in paths · b32131c8
      ansible.constants was calling expanduser (by way of shell_expand_path)
      on the entire configured value for the library and *_plugins
      configuration values, but these values have always been interpreted as
      multiple directories separated by os.pathsep.  Thus, if you supplied
      multiple directories for one of these values, typically only the first
      (at least on *nix) would have e.g. "~" expanded to HOME.
      
      Now PluginLoader does expansion on each individual path in each of
      these variables.
      Dale Sedivec committed
  9. 19 Jun, 2013 1 commit
  10. 03 Jun, 2013 1 commit
  11. 31 May, 2013 1 commit
  12. 30 May, 2013 1 commit
  13. 24 May, 2013 1 commit
    • Plug-ins loaded from top-level plug-in directory · 611d56dc
      PluginLoader._get_paths, as of 391fb98e, was only finding plug-ins that
      were in a subdirectory of one of the basedirs (i.e. in a category
      directory).  For example, action_plugins/foo.py would never be loaded,
      but action_plugins/bar/foo.py would work.
      
      This makes it so that "uncategorized" plug-ins in the top level of a
      directory such as action_plugins will be loaded, though plug-ins in a
      "category" subdirectory will still be preferred.  For example,
      action_plugins/bar/foo.py would be preferred over action_plugins/foo.py.
      Dale Sedivec committed
  14. 23 May, 2013 1 commit
  15. 09 May, 2013 1 commit
  16. 17 Apr, 2013 1 commit
    • copy action plug-in check mode respects force=no · 515fd9e9
      The copy action accepts force=no, which tells it not to replace an
      existing file even if it differs from the source.  The copy action
      plug-in wasn't respecting this option when operated in check mode, so it
      would report that changes are necessary in check mode even though copy
      would make no changes when run normally.
      
      Runner._remote_md5 was changed to make the logic for setting rc perhaps
      a little more clear, and to make sure that rc=0 when the file does not
      exist.
      Dale Sedivec committed
  17. 11 Apr, 2013 1 commit
    • Prevent premature substitution of variables into tasks · 377bc313
      As documented in #2623, early variable substitution causes when_
      tests to fail and possibly other side effects.
      
      I can see the reason for this early substitution, likely introduced
      in 1dfe60a6, to allow many playbook parameters to be templated.
      This is a valid goal, but the recursive nature of the utils.template
      function means that it goes too far.
      
      At this point removing tasks from the list of parameters to be
      substituted seems sufficient to make my tests pass. It may be the
      case that other parameters should be excluded, but I suspect not.
      
      Adding a test case. I would prefer to analyse not just the aggregate
      statistics but also whether the results are as expected - I can't
      see an easy way to do that with the available callbacks at present.
      willthames committed
  18. 10 Apr, 2013 3 commits
  19. 08 Apr, 2013 1 commit
    • Test case and fix for shlex.split unicode bug · 9d87733f
      When operating on a unicode string in python 2.6, shlex.split returns
      a result that does not work with the file constructor.
      
      To reproduce this requires a task include that is templated (this is
      because the templated string is a unicode result, whereas a non-
      templated string is a non-unicode string)
      
          [will@centos6.3] $ python
          Python 2.6.6 (r266:84292, Sep 11 2012, 08:34:23)
          [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
          Type "help", "copyright", "credits" or "license" for more information.
          >>> import shlex
          >>> shlex.split(u'abc')
          ['a\x00\x00\x00b\x00\x00\x00c\x00\x00\x00']
      
          [will@fedora17] $ python
          Python 2.7.3 (default, Jul 24 2012, 10:05:38)
          [GCC 4.7.0 20120507 (Red Hat 4.7.0-5)] on linux2
          Type "help", "copyright", "credits" or "license" for more information.
          >>> import shlex
          >>> shlex.split(u'abc')
          ['abc']
      
      The proposed fix (coercing the include parameters to string before the
      shlex.split) may not be ideal but it does fix the bug for my test case.
      willthames committed
  20. 06 Apr, 2013 1 commit
  21. 05 Apr, 2013 2 commits
  22. 03 Apr, 2013 1 commit
  23. 27 Mar, 2013 2 commits
  24. 10 Mar, 2013 1 commit
  25. 01 Mar, 2013 2 commits
  26. 28 Feb, 2013 1 commit
  27. 23 Feb, 2013 2 commits
  28. 09 Feb, 2013 1 commit
    • Cron module upgrades · 171a01de
        - added cron_file attribute: if specified, the file with appropriate
      job is created in /etc/cron.d directory. Also, you can store multiple
      jobs in one file. state='absent' attribute is handled in the following
      way in this case: if after the deletion of the job from the file specified
      by cron_file variable the file is empty, the file is deleted, otherwise
      not.
        - fixed the behaviour, when the backupfile is saved forever in /tmp
      folder, even if the backup= atribute is not set (os.unlink() is called if
      backup is not True).
        - added some comments to the unobvious places
      Mike Grozak committed
  29. 05 Feb, 2013 1 commit
  30. 03 Feb, 2013 1 commit
    • Make template_ds the only templater · a79373f6
      Instead of having to remember when to use which one, rename template_ds
      to template and move the last bit of code from template to varReplace
      (which gets used for all string replacements, in the end).
      
      This means that you can template any data type without worrying about
      whether it's a string or not, and the right thing will happen.
      Daniel Hokka Zakrisson committed
  31. 25 Jan, 2013 1 commit
  32. 16 Jan, 2013 1 commit
    • add apt_key module · ad637343
      Pretty straightforward.  Give it a URL with an exported GPG key for signing an
      Apt repository.  It downloads it and will install it using apt-key.  It's even
      smart enough to tell if it's already there (i.e. actually tells you if it
      changed or not).
      Jayson Vantuyl committed
  33. 09 Jan, 2013 2 commits