Commit graph

8281 commits

Author SHA1 Message Date
Michael DeHaan
51160d96f1 Merge pull request #631 from sfromm/facts
Update setup module for facts derived from classes - take 2
2012-07-20 03:58:42 -07:00
Michael DeHaan
853d1179e0 By defining a main function here, and including it ahead of the boilerplate insertion symbol, tracebacks are
now accurate with respect to the main function, but may include lines not in the original file.  A lot better
than before, where they were offset.
2012-07-20 06:37:46 -04:00
Stephen Fromm
9f063f1d3d Update LinuxNetwork to not use fcntl and ioctls
get_interfaces() updated to read /proc/net/dev.  This means it no
longer provides only interfaces that are up.

get_iface_hwaddr() updated to read from /sys/class/net/<iface>/address.

Added get_interface_facts() to pull in mac address and interface mtu.
Can be used later for additional interface-facts.

Added get_ipv6_facts(), which reads from /proc/net/if_inet6.

get_network_facts() renamed to get_ipv4_facts().  It still calls
ifconfig to determine ipv4 facts.
2012-07-19 23:50:13 -07:00
Stephen Fromm
cf9b078619 Check if CPU is QEMU via different mechanism
The processor fact doesn't exist in LinuxVirtual.  Read /proc/cpuinfo
and check if it is QEMU.
2012-07-19 23:50:12 -07:00
Stephen Fromm
6e4e39f285 Add back erroneously deleted get_file_content() 2012-07-19 23:50:12 -07:00
Stephen Fromm
f7cf2b5301 Adjustments to behavior of Facts and subclass behavior
The Facts class and subclasses no longer take a dict argument for
instantiation.  populate() now returns self.facts.
Other changes:
- Facts.__init__() takes over most of the work from populate() so that
  subclasses can benefit from its knowledge.
- Drop setting unknown facts to 'NA' in __init__() in various
  subclasses.
- Check for presence of facts in get_virtual_facts()
- Update ansible_facts() to use facts.update(<classname>().populate())
2012-07-19 23:50:12 -07:00
Stephen Fromm
582d31cde6 Update setup module for facts derived from classes
This changes and organizes facts into a base class Facts and several
sub classes that implement the necessary functionality.  The classes
are:
- Facts: base class.  Implements basic facts that should be common to a
  number of platforms.  It is also where SSH keys and SELinux facts are
  set.
- Hardware: A subclass of Facts that should be further
  subclassed per platform for CPU, memory, and related facts.
  - LinuxHardware: subclass of Hardware for Linux platforms
  - SunOSHardware: subclass of Hardware for SunOS platforms
  - FreeBSDHardware: subclass of Hardware for FreeBSD
- Network: A subclass of Facts that that should be further
  subclassed per platform for IP, both IPv4 and IPv6, information.
  - LinuxNetwork: Currently only implementation for determining network
    facts.
- Virtual: A subclass of Facts that that should be further
  subclassed per platform to determine virtual environment facts.
  - LinuxVirtual: Currently only implementation for determining virtual
    facts.

If facts are needed for additional platforms, one of the above classes
(eg Network) can be further subclassed and implement the necessary
functionality.

In addition, it fixes get_network_facts() to work on Fedora17.  That
broke due to changes to ifconfig output.
2012-07-19 23:50:12 -07:00
Michael DeHaan
830821bf2c Common module code upgrades 2012-07-17 23:09:57 -04:00
Michael DeHaan
73d9fbfc9e Added code to allow insertion of boilerplate into modules to make them able to share lots of code, the result
should be a huge reduction of total ansible source, at a slight cost of difficulty in original module development.

We need to apply this now to all modules, but may need to have some exemptions to things like command, which should
subclass this module.
2012-07-17 22:34:52 -04:00
Peter Sankauskas
cb6acfc1dc Pass through error message when repo not found 2012-07-19 15:48:13 -07:00
John Kleint
7933c3faed Service module outputting extra data.
The service module was printing stuff to stderr, returning two
JSON dicts, not using consistent 'failed' values, had dead code
and unused variables.  Added detection for the case when service
status returns 'xxx is dead and pid file exists' and made the
code a bit easier to read.
2012-07-19 13:15:09 -04:00
Michael DeHaan
72aefdb609 add noninteractive to debian module per #602 2012-07-16 20:18:58 -04:00
Seth Vidal
5916bb97bc Squashed commit of the following:
commit ea14bbfb52587bf5b97b5577c0439b01cb0b4836
Merge: 82819a9 285aaf8
Author: Michael DeHaan <michael.dehaan@gmail.com>
Date:   Sun Jul 15 14:38:28 2012 -0400

    Merge branch 'devel' of https://github.com/skvidal/ansible into skvidal_mount

commit 285aaf836c
Merge: 634c117 32b6879
Author: Seth Vidal <skvidal@fedoraproject.org>
Date:   Mon Jul 16 12:42:21 2012 -0400

    Merge remote-tracking branch 'upstream/devel' into devel

    * upstream/devel: (52 commits)
      format fixes to make fetch more usable
      ...

commit 634c11748e
Author: Seth Vidal <skvidal@fedoraproject.org>
Date:   Thu Jul 12 01:16:00 2012 -0400

    fix a bunch of small bugs in mount module - test with bind and local mounts

commit fcfd73de71
Author: Seth Vidal <skvidal@fedoraproject.org>
Date:   Wed Jul 11 20:46:14 2012 -0400

    fix some obvious bugs pointed out by #ansible

commit 13c3080383
Author: Seth Vidal <skvidal@fedoraproject.org>
Date:   Wed Jul 11 19:35:34 2012 -0400

    mount/fstab editor
2012-07-15 14:38:40 -04:00
Michael DeHaan
3d4efc0504 Change the way we do with_items to make them happen next to each other in runner, which eliminates the problem of with_items and vars_files sometimes not playing nice with each other.
(Also a fix for the user module error handling when the user
is not present at the time of the return.  This can only really be caused by multiple ansible executions).
2012-07-14 19:18:33 -04:00
Michael DeHaan
31d9111857 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.
2012-07-14 11:59:12 -04:00
Mark Theunissen
887d3993c4 The MySQL modules 2012-07-13 17:07:23 -05:00
Jeremy Smitherman
5107b8354a Removed unused recurse option in file module. 2012-07-12 02:04:51 -04:00
Michael DeHaan
ddca634fed Merge pull request #578 from jeremysmitherman/boolean_parameters
Removed boolean parameter setting from user module.
2012-07-11 10:58:09 -07:00
Michael DeHaan
3b035b9fe1 Merge pull request #572 from goozbach/devel
fixes #569 apt module problems on old versions of apt-python
2012-07-11 10:53:29 -07:00
Jeremy Smitherman
53459e5609 Added yes/no to user options instead of False comparison for force and remove options for user module 2012-07-11 12:16:40 -04:00
Michael DeHaan
4a8a60b656 Merge pull request #575 from jeremysmitherman/apt-force
Added cmd modifications to use a force-yes option for apt module
2012-07-11 07:16:40 -07:00
Michael DeHaan
d3765c891a Merge pull request #571 from sfromm/group
Group module fixes
2012-07-11 05:27:56 -07:00
Jeremy Smitherman
501fb5a423 Added cmd modifications to use a force-yes option for apt module 2012-07-10 22:22:52 -04:00
Derek Carter
9a6bcb9481 added filter for future warning 2012-07-10 19:50:08 -04:00
Stephen Fromm
50039260e2 Minor fix to user module to further streamline setting 'changed' flag 2012-07-10 16:37:07 -07:00
Derek Carter
f4414c0511 fixes #569 apt module problems on old versions of apt-python (namely debian 5.0) 2012-07-10 19:28:14 -04:00
Stephen Fromm
2f6c086227 Fixes to group module for better error handling
Takes a lot of the fixes to the user module and applies them to the
group module: provide stdout/stderr in result if available and call
fail_json() if the attempted action fails.
2012-07-10 16:18:53 -07:00
Michael DeHaan
a1f93baa68 Merge pull request #568 from sfromm/user
User modules fixes
2012-07-10 16:04:17 -07:00
Michael DeHaan
3097065b4d Merge pull request #566 from jeremysmitherman/service-no-pid
Added additional output to service status checker
2012-07-10 16:03:51 -07:00
Stephen Fromm
5adbe2453c Fixes to user module for better error handling
The user module now returns the output, both stdout and stderr, from
useradd, usermod, and userdel.  This should help debug cases why one of
those commands fail.  In addition, the user module will now call
fail_json() when the attempted command failed so as to properly
communicate a failure in a playbook.
2012-07-10 15:55:39 -07:00
Seth Vidal
bbd42fcf36 modify user module so that password is NEVER logged before the command runs 2012-07-10 17:13:51 -04:00
Jeremy Smitherman
290cc1c006 Added additional output to service status checker 2012-07-10 16:13:39 -04:00
John Kleint
b11f23750f Use iterative MD5 hashing. 2012-07-09 13:27:47 -04:00
Michael DeHaan
b1b0e45413 Merge branch 'change_to_using_hashlib_or_md5' of https://github.com/davehatton/ansible into devel
Conflicts:
	lib/ansible/utils.py
2012-07-07 11:51:30 -04:00
Dave Hatton
7293cce498 switch to hashlib.md5 or md5 instead of OS md5 commands 2012-07-09 08:52:00 +01:00
Michael DeHaan
2449381da9 Revert "switch to using hashlib.md5 or md5 (if python 2.4) instead of a os call"
This reverts commit 865796c368.

(Superseeded by next commit)
2012-07-07 11:48:32 -04:00
Dave Hatton
c39259ded7 switch to using hashlib.md5 or md5 (if python 2.4) instead of a os call 2012-07-08 18:41:04 +01:00
Peter Sankauskas
186e438991 Assigning to boolean first 2012-07-06 18:05:15 -07:00
Peter Sankauskas
3965e268ed Getting the apt module to accept and understand a 'install-recommends' parameter which allows running apt with --no-install-recommends 2012-07-06 12:12:04 -07:00
Dave Hatton
c588b03810 copy always returned change=true 2012-07-06 13:43:19 +01:00
Dave Hatton
2454c6c12d switch to shutil.copy rather than os.system(cp) 2012-07-04 12:26:25 +01:00
Dave Hatton
8b15c93355 md5 allow copy if file is missing 2012-07-03 20:07:08 +01:00
Jeremy Smitherman
77944949fe Added IndexError catch for copy module, IndexError is thrown if a destination file doesn't exist 2012-07-03 14:12:19 -04:00
Dave Hatton
b725b972ad improve error trapping for md5 2012-07-03 12:44:37 +01:00
Brad Olson
9e13c1eab1 Fixes ansible/ansible#522, no longer creates comment in ~/.ssh/authorized_keys, does not create directory or file if state==absent. 2012-07-02 19:16:57 +00:00
Brad Olson
ae5b1191f4 Fixes ansible/ansible#523. Removed 'with:' blocks so module works with Python 2.4 for CentOS 5 support, courtesy of mcodd/ansible@29af24b732. 2012-07-02 17:57:38 +00:00
Derek Carter
031af2c0a9 remove UID/GID from output 2012-07-01 17:38:17 -04:00
Derek Carter
11a853377e removed print from debug code of file module 2012-06-29 21:38:31 -04:00
Derek Carter
5119b16c47 file when UID or GID doesn't exist 2012-06-29 20:05:23 -04:00
Michael DeHaan
bdc452c620 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.
2012-06-19 21:57:43 -04:00