Commit Graph

377 Commits (bb3ce0c744123f6e7c33f9a62c5e6affbd1fdeb8)

Author SHA1 Message Date
Michael DeHaan 06cfc52afd fix tests and change nosetests flags so asserts show what comparisons failed 12 years ago
Daniel Hokka Zakrisson 9e4fac5ebd Create a string parser for varReplace instead of using re
This fixes a few issues,
- ${foo}${bar} would be parsed as a variable named foo}${bar,
  which wouldn't be easily fixed without breaking ${foo.${bar}}
- allows escaping . in variable parts so e.g.
  ${hostvars.{test.example.com}.foo} works

This is slower than using re. 3 million templating calls take about
about twice as long to complete with this compared to the regexp,
from ~65 seconds to ~115 seconds on my laptop.
12 years ago
Daniel Hokka Zakrisson b55ef665ba Fix only_if statements referencing non-string types
This fixes e.g. only_if: ${task.changed} which would always
evaluate to true due to it having been replaced by a string for its
boolean value. Also adds a test case to ensure it doesn't get
missed again.
12 years ago
Daniel Hokka Zakrisson 51216dcfae Add tests for varReplace repr 12 years ago
Michael DeHaan 4ded8cb3b3 Change $FILE{} and $PIPE{} to $FILE() and $PIPE() 12 years ago
Daniel Hokka Zakrisson cc948f339c Allow including files through variables
$FILE{file} will be replaced with the contents of "file"
$PIPE{cat file} will be replaced with the output of "cat file"
12 years ago
Michael DeHaan b8c4bb9e6e Revert "Allow including files through variables"
This reverts commit bf47bb4753.

Conflicts:

	lib/ansible/utils.py
	test/TestUtils.py
12 years ago
Michael DeHaan b2af95e4a6 Change $FILE{} and $PIPE{} to $FILE() and $PIPE() 12 years ago
Michael DeHaan e1ecb95b3d Delete test that was coded against *local* resolv.conf -- obviously not going to be the same between people's computers 12 years ago
Michael DeHaan 08b70949c7 Fix a test and a typo in an example 12 years ago
Aleksej Romanov eefe66f1cc Squashed commit of the following:
commit 80a26a8175b779b707bc08e9d28c451c30ee4ada
Merge: b25b9fd 61e9b27
Author: Michael DeHaan <michael.dehaan@gmail.com>
Date:   Tue Sep 18 21:01:47 2012 -0400

    Merge branch 'devel' of git://github.com/alopropoz/ansible into file-force

commit 61e9b27df2
Merge: 3f6f329 16bf3e1
Author: Aleksej Romanov <alopropoz2@yandex.ru>
Date:   Thu Sep 13 20:48:02 2012 +0700

    Merge remote branch 'upstream/devel' into devel

commit 3f6f3291df
Author: Aleksej Romanov <alopropoz2@yandex.ru>
Date:   Thu Sep 13 20:41:31 2012 +0700

    'force' option for 'file' module.

commit 6223bba941
Author: Aleksej Romanov <alopropoz2@yandex.ru>
Date:   Thu Sep 13 20:40:19 2012 +0700

    changed = True when changing symlink referent, #1008. Needed for tests.
12 years ago
Michael DeHaan b25b9fd840 Merge pull request #1058 from jkleint/devel
Support iteration over command output in with_items.
12 years ago
John Kleint 2a002f5c0b Support iteration over command output in with_items.
When the output of a command is stored in a register, this will create a
stdout_lines field in the result object that contains stdout split into a list
of lines.  This list can then be iterated over using with_items.
12 years ago
Daniel Hokka Zakrisson 9e78b10ae3 Add test data file 12 years ago
Daniel Hokka Zakrisson bf47bb4753 Allow including files through variables
$FILE{file} will be replaced with the contents of "file"
$PIPE{cat file} will be replaced with the output of "cat file"
12 years ago
Michael DeHaan 04555f525e Fix a test from a previous pull request. 12 years ago
John Kleint 1f8696f5c1 Fix inventory.get_hosts when hosts is a list. 12 years ago
Brian Coca 83d1028a21 - Makefile now works with freebsd (date command options are diff)
date still issues warning and ignores TZ

- Updated tests to work inside bsd jails (127 addresses are an issue)
Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
12 years ago
Michael DeHaan 508c04b85b remove svn tests 12 years ago
Dane Summers eb49ee38ae full test case for subversion, minimal tests for git 12 years ago
Dave Peticolas b42e835aab Always load group_vars and host_vars. 12 years ago
Michael DeHaan 9041adddaa Add support for ranged patterns like webservers[0-49] for hitting the first 50 webservers. 12 years ago
Michael DeHaan de21cb27d8 Remove tests that involve network effects -- makes things faster and they are not really deep tests here either way. 12 years ago
Michael DeHaan 259f2dc4de Various retooling of the internal code behind inventory pattern matching in support of pending support
for host ranges.
12 years ago
Dave Peticolas 08272dc25d Remove unused imports. 12 years ago
Michael DeHaan 1c9b43df1b more whitespace 12 years ago
Petros Moisiadis 2ac4acbf97 fixes for tests 12 years ago
Will Thames 845a7ac5ae test_one not working as tests after skipped test failing, because
on_skipped callback being passed an extra item parameter that it wasn't
expecting.
Fixed it so that on_skipped in TestCallbacks accepts and ignores the
extra parameter
Extra parameter was added in 4b9b9a8a5b
but not really clear why from commit message
12 years ago
Michael DeHaan d79900b434 Merge pull request #732 from willthames/fix_git_fail_json
Fixes for git module when it fails.
12 years ago
u348095 e863ba0cec Fixes for git module when it fails.
* module.fail_json *must* have msg argument
Using http://github.com/ rather than git://github.com/ as it gets through more
firewalls
12 years ago
Michael DeHaan fe558f680a Fix some failing tests, script tests seem to indicate magic variables are not being provided
to scripted inventory so need to investigate this.
12 years ago
Michael DeHaan 47cead3603 Merge pull request #727 from sfromm/git
Git module ported to use module magic
12 years ago
willthames 1bcba4f4a2 test/TestRunner.py now executes false with no directory prefix
as it is /bin/false on many systems but /usr/bin/false on OS X
test/playbook1.yml now just does command true, rather than command /bin/true,
again so that it works on OS X

Changed from using which false to just using command false to
make it simpler and also match how playbook1.yml works
12 years ago
Stephen Fromm 90bf67cf56 Make test_git functional in TestRunner.py 12 years ago
Michael DeHaan 8fa4dc3920 Small change to previous patch, make ranges of hosts inclusive. 12 years ago
Chin Fang e3b2521f01 Added a host expansion feature to ansible's inventory parsing 12 years ago
Michael DeHaan dde11baa56 Remove YAML inventory tests since this is now deprecated. 12 years ago
Michael DeHaan 9e62fd42b5 update test utils code 13 years ago
Michael DeHaan 867b2437cc consolidate output code in callbacks.py, from utils, remove extra functions 13 years ago
Michael DeHaan 279b5965b8 Much streamlining around setup steps in playbooks, now only run setup once per play. 13 years ago
Michael DeHaan 931f9f1a61 Setup module no longer saves to disk, as templates are mostly useful in playbooks and this allows lots of simplifications
around file pathing and removes occasional permissions conflicts depending on how things are used.
13 years ago
Michael DeHaan 60f295f7a0 Squashed commit of the following:
commit 4430ce3eefcdff0b0ceffea0ef66ea8e876a807d
Merge: 631783b 649963c
Author: Michael DeHaan <michael.dehaan@gmail.com>
Date:   Thu Jul 12 01:28:43 2012 -0400

    Merge branch 'host-groups' of https://github.com/dagwieers/ansible into daggroups

commit 649963ca2c
Author: Dag Wieërs <dag@wieers.com>
Date:   Thu Jul 12 23:01:00 2012 +0200

    Added comments in the example yaml file as requested

commit 7f9718f185
Author: Dag Wieërs <dag@wieers.com>
Date:   Thu Jul 12 22:49:38 2012 +0200

    Add the default nose color too, to test specific overrides

commit eb63b9e899
Author: Dag Wieërs <dag@wieers.com>
Date:   Thu Jul 12 22:44:35 2012 +0200

    Introduce comics and cartoons to test yaml groups defined on a per-node basis

commit aa13d23307
Author: Dag Wieërs <dag@wieers.com>
Date:   Thu Jul 12 19:33:15 2012 +0200

    A small fix to revert to old state

commit 264ebaa77c
Author: Dag Wieërs <dag@wieers.com>
Date:   Thu Jul 12 19:31:51 2012 +0200

    Combine both yaml unit tests into one example file

commit 7db49a8048
Author: Dag Wieërs <dag@wieers.com>
Date:   Thu Jul 12 16:46:53 2012 +0200

    Might as well fix this too

commit f36c6c8c5b
Author: Dag Wieërs <dag@wieers.com>
Date:   Thu Jul 12 16:42:00 2012 +0200

    Added unit tests for host-groups patch

    For the unit test I chose to keep the original yaml file in place as a reference.

    This patch also includes a fix.

commit a96f681352
Author: Dag Wieërs <dag@wieers.com>
Date:   Thu Jul 12 12:30:43 2012 +0200

    Allow groups to be defined on a per-host basis

    This makes it possible to define on a per-host basis what groups a host is in.
    When managing a large set of systems it makes it easier to ensure each of the
    systems is defined in a set of groups (e.g. production/qa/development,
    linux/solaris/aix) rather than having to add systems to multiple disconnected
    groups.

    ----
      - host: system01

      - host: system02

      - host: system03

      - group: linux
        hosts:
        - system01
        - system02

      - group: solaris
        hosts:
        - system03

      - group: production
        hosts:
        - system01
        - system03

      - group: qa
        - system02

      - group: dbserver
        hosts:
        - system01

      - group: ntpserver
        hosts:
        - system02

      - group: webserver
        - system03
    ----

    Can be redefined as:

    ----
      - host: system01
        groups: [ linux, production, dbserver ]

      - host: system02
        groups: [ linux, qa, ntpserver ]

      - host: system03
        groups: [ solaris, production, webserver ]
    ----
13 years ago
Michael DeHaan efac68b636 Remove the -D module debug flag, which no longer is functional due to sudo pty requirements, and replace with -v/--verbose.
This flag will show playbook output from non-failing commands.  -v is also added to /usr/bin/ansible, but not  yet used.

I also gutted some internals code dealing with 'invocations' which allowed the callback to know what module invoked
it.  This is not something 0.5 does or needed, so callbacks have been simplified.
13 years ago
Jeroen Hoekx d592e15dcc Correctly add ungrouped hosts to 'ungrouped' in YAML inventory. 13 years ago
Daniel Hokka Zakrisson 031c75e53a Update tests to reflect new API 13 years ago
Daniel Hokka Zakrisson 24d73b0fe6 Add tests of iterative templating 13 years ago
Daniel Hokka Zakrisson 05a7a3725b Add tests of host exclusions 13 years ago
Michael DeHaan bd893b765b Merge pull request #459 from dhozac/with_items-variable
Allow a variable in with_items
13 years ago
Stephen Fromm 9cf182c225 Add assemble module
This adds a module that concatenates (ie. assembles) a file from
fragments in a directory in alphabetical order.  It chains the file
module afterward to fix up ownership and permission.  This also adds
tests for the assemble module with fragments in assemble.d.
13 years ago
Daniel Hokka Zakrisson a05da2d312 Allow with_items to specify a variable 13 years ago
John Kleint 70837469c6 Properly template list of hosts in playbooks.
In playbooks, hosts can be a YAML list. We templated the list before
converting it to a semicolon-separated string, which actually templated its
repr. This converts to a string first. A basic unit test is included.
13 years ago
Matt Goodall 639763c138 Allow "=" in k-v values. 13 years ago
Michael DeHaan 8e88667f82 Fix hosts being in multiple groups, and duplicate host references in the same inventory file. 13 years ago
Jeroen Hoekx ecc0b0770c If /usr/share/dict/words does not exist, use cracklib-small to test large output. 13 years ago
Michael DeHaan d4f660edc3 Do not run unit tests against the EVENTS code because it is subject to change and that does not mean anything is broken.
If we want to test playbooks, it's best to test the result of a playbook to make sure it does the correct thing.  Also
remove playbook2/3 yml which were not used.
13 years ago
Michael DeHaan f8807da57b Merge pull request #363 from jhoekx/template-only-if
Fix correct variable expansion in includes only_if.
13 years ago
Jeroen Hoekx cd9f926b5f Fix correct variable expansion in includes only_if.
There's not need to run the complete include through the templating engine.
Several variables were not included before the conditional was evaluated.
13 years ago
Jeroen Hoekx 3cbc229990 Support list indexing in varReplace. 13 years ago
Jeroen Hoekx 74e21e6154 Fixup unicode varReplace templating.
The original patches should have conflicted?
53bde0bf51 vs efde61e537
13 years ago
Michael DeHaan 36639186e0 Merge pull request #362 from jhoekx/uppercase-vars
Allow camelCase variables in varReplace.
13 years ago
John Kleint 83b9a43e60 Add test for large output; fix indentation. 13 years ago
Jeroen Hoekx dc60f2d844 Allow camelCase variables in varreplace. 13 years ago
Jeroen Hoekx 2bbc05185e Make no_engine the default templating action. 13 years ago
Jeroen Hoekx 82144fd543 Support nested variables in varReplace. 13 years ago
Jeroen Hoekx e09572a8e1 Inventory: undefined group -> ungrouped.
Also change test name collision.
13 years ago
Jeroen Hoekx d419a13ca7 Inventory: support list of vars in host. 13 years ago
Michael DeHaan 157d21b1c3 Add tests for new advanced inventory features (groups of groups, group variables) in the default INI format file. 13 years ago
Michael DeHaan 1a00e2635e Further work on making the YAML inventory parser use the new inventory objects. 13 years ago
Michael DeHaan 256377166a Reinstate external inventory script support this time using the new more OO-ey inventory system.
Next up: YAML format.
13 years ago
Michael DeHaan 0669ce858a Refactored inventory to make it object oriented, need to make YAML format and executable script
format compatible with this still, and add some tests for INI-style groups of groups
and variables.
13 years ago
Jeroen Hoekx 03541baba7 Define 'inventory_hostname' variable for hosts. 13 years ago
Jeroen Hoekx 029fe1273c Modify /usr/bin/ansible and playbooks to use the new async API. 13 years ago
Jeroen Hoekx b87710a1df Introduce group_names in template variables.
This is a list of all the groups a host is in.
13 years ago
Michael DeHaan b9982fc17b Reinstate --extra-vars, which can do things in playbooks like:
ansible-playbook release-my-app.yml --extra-vars="version=123"

And make $version available in the playbook without re-editing the file
13 years ago
Jeroen Hoekx cc579a8aa2 Fix tests for facter and the ansible_facts API. 13 years ago
Jeroen Hoekx 2dc9a563ef Allow modules to return facts.
If the module result contains "ansible_facts", that will be added to the setup
cache.
13 years ago
Michael DeHaan c0c691089d Fix bug in src. Should not code this early :) 13 years ago
Jeroen Hoekx 903e4f6eae Support dicts in inventory vars. 13 years ago
Michael DeHaan 30d06dbcea Don't force down ansible facts back to setup, the setup module won't like parsing them on input and that
data is already there.
13 years ago
Michael DeHaan da0209dbc4 The fetch module really should preserve the whole directory structure being fetched to allow subsequent calls,
particularly in playbook, to recreate the host tree structure.  Making it thus.
13 years ago
Jeroen Hoekx 6f09b41eb5 Don't test modules that aren't present.
Also account for path difference in sleep in different distributions.
13 years ago
Michael DeHaan 3f26a1c7f6 verbose option is not being used, so remove it. debug variable still exists. 13 years ago
Michael DeHaan 9ce27be878 Remove extra_vars tests 13 years ago
Jeroen Hoekx 8c3206c99f Return a copy of the host variables. 13 years ago
Jeroen Hoekx 961ccdb2f4 List hosts in no group in the ungrouped group. 13 years ago
Jeroen Hoekx 3a24aa9a70 Add YAML inventory format.
See test/yaml_hosts for an example.

Hosts can be part of multiple groups.

Groups can also have variables, inherited by the hosts.
There is no variable scope, last variable seen wins.
13 years ago
Jeroen Hoekx 54f4526160 Export SSH port number as host variable. 13 years ago
Jeroen Hoekx f04041b37d Ignore port numbers in simple inventory format 13 years ago
Jeroen Hoekx 746f1b92ae Reimplement the class method on Runner. 13 years ago
Jeroen Hoekx 195e6d617b Add tests for Inventory class. 13 years ago
Michael DeHaan 08c593bee1 Warn if no hosts matched 13 years ago
Michael DeHaan b9e3b053f9 Simplify playbook tests so things are not timing dependent in the poll section, which is leading to tests
not being consistent between runs, even though there wasn't an error.  Now we'll just check the final change
counts, which should be just as solid and lead to less churn in the events file.
13 years ago
Michael DeHaan e103bdda93 Rename test class to match what it is testing 13 years ago
Michael DeHaan 245aa9bf8e Some tweaks to the fetch module. 'err' return was for stderr, so that should be empty string.
Some minor code shortening.  Added a test to TestRunner.
13 years ago
Michael DeHaan 51e4faf7aa Update test file -- we probably should not include the poll as the number of polls is changing between test
runs (that's ok, it's not intended to be realtime accurate)
13 years ago
Michael DeHaan 1d75a29ec9 Allow variables coming in from the playbook and the API to be expressed as dictionaries throughout their full life cycle
such that nested data can be made available in templates and playbooks.
13 years ago
Michael DeHaan eed4a2b717 Update tests to use 127.0.0.2 to bypass the smart "use local connection" code, and also to reflect
that commands now trigger change events.
13 years ago
Michael DeHaan 2a2b5ed73c Polling timing change results in need to change events file for tests. 13 years ago
Michael DeHaan 4792021f47 Fix syntax error in user patch 13 years ago
Michael DeHaan 2511992659 Surface module debug (-D) to /usr/bin/ansible also 13 years ago
Michael DeHaan 96a22b582b Disable ohai test as it's hanging for whatever reason, but doesn't do this in real life.
Run tests in verbose mode.
13 years ago
Michael DeHaan 3ded27fe35 Treat module args as strings everywhere to avoid unneccessary shlex and requoting 13 years ago
Michael DeHaan 6db87a5018 Minor style fix, update test to match quote fix patch 13 years ago
Michael DeHaan 6dda6f12dc Applying callback model to runner, and using that in playbooks, so output can be more immediate in playbooks.
(Runner still does not use callbacks for default output)
13 years ago
Michael DeHaan 44d4dede92 Split conditional imports in playbook into subfunction, fix small bug in event reporting on playbook
actions.
13 years ago
Michael DeHaan 6ab615c724 Code cleanup for playbooks, also added 'on_skipped' callback 13 years ago
Michael DeHaan 3814a46bbf Move playbook for user commands into examples dir 13 years ago
Michael DeHaan 6aa10691c1 Merge pull request #93 from sfromm/user-module
User module
13 years ago
Stephen Fromm 999bead9ed Add playbook to test user module 13 years ago
Michael DeHaan e6406fa5a7 Allow variable expressions to be stored as variables themselves, do some things to allow setup strings
to more easily contain spaces without being mangled, which is neccessary because of the above.
13 years ago
Michael DeHaan a5f4ca50b8 Ratchet up logging a few notches prior to controlling w/ verbosity settings 13 years ago
Michael DeHaan b5c62ec068 Enhance logging, way to gate verbosity levels pending. 13 years ago
Michael DeHaan dfbe591cc0 Add "only_if" capability, which allows task steps to be skipped if they do not match a conditional. 13 years ago
Michael DeHaan 4de7bbb169 Allow conditional imports, see examples/playbook3.yml comments for a full explanation. Extensive
refactoring of playbooks now warranted, which we'll do before we move on.   This variable assignment
system makes nearly all possible magic possible, for we can use these variables however we like,
even as module names!
13 years ago
Michael DeHaan 5ed2b894d9 Add an additional way to dereference a variable in a playbook, $foo
(Using varReplace function originally from yum, thanks Seth)
13 years ago
Michael DeHaan c1fe0dd719 Quote long variables in playbooks when feeding them to the setup command 13 years ago
Michael DeHaan 5371a9e497 Regression tests for playbooks, logging the events they call via callbacks. 13 years ago
Michael DeHaan b15c8e9cb1 Playbook test upgrades, made some notes about callbacks we need to add. Still need to compare events
recieved vs expected so we can be notified if this test breaks, and also to add some more detailed
playbooks that use includes & async, etc.
13 years ago
Michael DeHaan 45abe3c16b Add unit tests for playbooks, and fix an error caught by one 13 years ago
Michael DeHaan 4bde4926c3 Modules don't have to return JSON, key=value pairs is ok. 13 years ago
Michael DeHaan 40fd778e2c 'shell' is a magic module that executes the command module with shell=True 13 years ago
Michael DeHaan 73d20b81c6 Add basic test of yum module (VERY basic) just to make sure syntax remains ok. Need to do something
trivial for service and git module also.
13 years ago
Michael DeHaan 696b67f935 Fix async to use the new argfiles method (wrapping brain around rock, really must write module development guide) 13 years ago
Michael DeHaan cb5929dad7 Setup module tests 13 years ago
Michael DeHaan c71afe35d6 Async tests complete. Fixed bug in async_wrapper 13 years ago
Michael DeHaan fae3a71899 WIP on async tests 13 years ago
Michael DeHaan f8eab8ed7e Here are those tests I talked about previously :) 13 years ago