Commit graph

3669 commits

Author SHA1 Message Date
Mark Theunissen
812711d530 Woops, missed the rest of them 2012-07-26 11:13:10 -05:00
Mark Theunissen
b51d6d9fca Making the passwd parameter consistent 2012-07-26 11:10:22 -05:00
Mark Theunissen
894e4ff78a Changing to read from a file pointer instead so that an exception is thrown if the file doesn't exist 2012-07-26 08:58:21 -05:00
Nikhil Singh
8d283f8194 Code review changes
1. Passing the module to the various functions so that they can use module.fail_json and module.exit_json methods inside.
2. Because of point 1, install and remove methods do not return anything. Instead, they use the module functions itself.
3. Move the import statement (for apt and apt_pkg) inside main function so on import error, we can use module.fail_json to print the error.
2012-07-26 17:29:15 +05:30
Nikhil Singh
4d6b3713a7 Adding dict() for json.dumps 2012-07-26 16:24:10 +05:30
Nikhil Singh
096022acb2 Standardizing the apt module 2012-07-26 16:21:49 +05:30
Stephen Fromm
1165866ecb Update git module to handle branches better
This drops the branch option.  The version option is overloaded
to mean either a sha1, branch, or tag.  This also adds the option
'remote' which defaults to 'origin'.
clone() was simplified by removing the checkout operation.  That
happens later when switch_version() is called.

Added the methods get_branches(), is_remote_branch(), and
is_local_branch().  get_branches() returns an array listing all
of the branches for the git repository.  is_remote_branch() checks
whether the arguments supplied correspond to a remote branch.
Similarly, is_local_branch() checks for a local branch.

The pull() method now checks to see if it is on the desired branch.
If not, it checks out the requested branch and then does a pull.
This should keep issue #604 still fixed.

switch_version(), formerly switchver(), looks to see if it is
checking out a branch.  If a branch, it checks it out with the --track
option.  This type of checkout was in pull() before.

Updated pull, clone, and switch_version to return (rc, out, err).
2012-07-26 00:22:30 -07:00
Michael DeHaan
1fe021f7bb Further standardize the yum module 2012-07-25 20:14:15 -04:00
Michael DeHaan
3e8ee7cbf0 Merge pull request #684 from nix85/fix_yum_mod
Standardizing the yum module
2012-07-25 17:33:55 -07:00
Mark Theunissen
5ab81692d7 Change modules to use credentials in my.cnf if they are available 2012-07-25 16:31:12 -05:00
Stephen Fromm
6b6fb383a1 More cleanup in assemble module for module magic (tm) 2012-07-25 09:24:10 -07:00
Nikhil Singh
f483d1c3f3 Standardizing the yum module 2012-07-25 19:45:41 +05:30
Michael DeHaan
99ff761d3e shorten up the assemble module 2012-07-24 19:44:53 -04:00
Michael DeHaan
2553219131 Merge pull request #675 from jpmens/assemble1
convert sfromm's assemble to module-magic
2012-07-24 16:41:25 -07:00
Michael DeHaan
aae41c0d46 Port async_status to use the new common code. 2012-07-24 19:03:18 -04:00
Michael DeHaan
aa20ae5c02 Port command module over to new common code. Notice that this has to subclass AnsibleModule -- this should be the only
one that has to do that.
2012-07-24 18:52:52 -04:00
Michael DeHaan
72465c6fe1 Merge pull request #674 from nix85/fix_facter_mod
Standardizing the module
2012-07-24 11:54:50 -07:00
Jan-Piet Mens
52ab221c92 convert assemble to module-magic 2012-07-24 18:35:06 +02:00
Nikhil Singh
e10d52defa Standardizing the module 2012-07-24 21:08:56 +05:30
Mark Theunissen
b7b44fbf93 Undefined variable error 2012-07-24 09:26:45 -05:00
Nikhil Singh
54db17f462 Standardizing the mount module 2012-07-24 17:00:08 +05:30
Michael DeHaan
8ea6e84efb Merge pull request #664 from jpmens/a1
Fix file module to support = in args; remove superflous call in get_url
2012-07-24 03:39:30 -07:00
Christoph Seitz
fa8ca9a819 Fixes locale problem with ifconfig in setup module 2012-07-24 11:10:11 +02:00
Jan-Piet Mens
62393ccc7c Fix file module to support = in args; remove superflous call in get_url 2012-07-24 06:40:34 +02:00
Michael DeHaan
4ac5fcf3a3 Save the transfer of the module file for new style modules, because we can inject the arguments into the modules.
Module consumers using the API don't have to know how this works.  base64 stuff is only there
because escaping a docstring inside a docstring was a bit of a challenge :)
2012-07-23 19:18:45 -04:00
Stephen Fromm
47cd5de2cc Update user module to use new shared module code 2012-07-23 11:29:59 -07:00
Mark Theunissen
b279f1aea2 Upgrading MySQL user module to new format 2012-07-22 12:11:39 -05:00
Michael DeHaan
2437ee5236 Tweaking daisychain internals to allow get_url to modify the path destination when downloading to a directory.
Minor module refactoring.
2012-07-22 11:08:16 -04:00
Michael DeHaan
d0f20668a2 Merge branch 'get_url3' of https://github.com/jpmens/ansible into devel 2012-07-22 10:08:27 -04:00
Stephen Fromm
aeed872aee Update group module to use new shared module code 2012-07-21 22:30:13 -07:00
Mark Theunissen
0bad1e7de2 Upgrading to new shared module code 2012-07-21 18:02:34 -05:00
Michael DeHaan
30d10bb485 imports not needed 2012-07-21 17:25:47 -04:00
Michael DeHaan
7b54388393 Port the copy module over to the new "common module" logic. 2012-07-21 17:07:42 -04:00
Jan-Piet Mens
b4d4811077 new module: get_url
get module (with new module-magic-code!)
	Usage: ansible -m get -a "url=http://xxxxxxx  dest=fileordirctory"
	all cleanups as per @mpdehaan's suggestions
	add daisychain
	added example playbook (get_url.yml) with URLencode example
2012-07-21 13:34:42 +02:00
Stephen Fromm
2d6babbd63 Skip get_ipv6_facts if socket.has_ipv6 is false 2012-07-20 17:19:26 -07:00
Stephen Fromm
566f115a4f Fix for issue 604
Do not switch to master branch in pull()
Add --track to git checkout, when checking out a remote branch to track.
2012-07-20 10:43:26 -07:00
Michael DeHaan
fc6ee63fba Merge pull request #637 from goozbach/git-mkdir
git mkdir causes problems with older git (can't c/o to existing directory)
2012-07-20 06:54:20 -07:00
Derek Carter
69ef933a1e git mkdir causes problems with older git (can't checkout to existing directory) 2012-07-20 09:48:18 -04:00
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