Commit Graph

55 Commits (300531507b9a261ed1707b4b1da6dabac0112b88)

Author SHA1 Message Date
Patrik Lundin d4af9e4c5c Use shlex for rc.conf parsing.
This makes the line parsing a lot more robust (and easier to read).
Code supplied by @dhozac, thanks!

Remove re import because this is not used anywhere.
12 years ago
Patrik Lundin fde00327b0 Rework "enabled" implementation for FreeBSD.
When trying to perform enabled=yes followed by enabled=no
against FreeBSD the module would die with the following error:
TypeError: sub() takes at most 4 arguments (5 given)

The target FreeBSD client (8.2) is running python 2.6.6. It seems the
extra 'flags' argument was added to re.sub() in 2.7.

In fixing this issue I have attempted to create a general atomic method
for modifying a rc.conf file. Hopefully this will make it easier to add
other rc based platorms. The strip/split magic was inspired by the user
module.
12 years ago
Daniel Hokka Zakrisson 4679d8d6e5 Remove references to non-existant variable rc 12 years ago
Dag Wieers 18b797f096 The vars stop/start were intended as strings
This is a typo that was reported on IRC, because of this people got: "NameError: global name 'stop' is not defined".
12 years ago
Patrik Lundin 5b7aa494b2 Refactor module to use subclasses like user module.
* Basically the moving parts from the original service module arranged in
  subclasses.
* General structure and helper methods comes from the user module.
* Less forgiving to unsupported platforms: it requires a subclass per platform.
  (This makes it easier to work on one platform without having to think about.
  what other platform might be affected in unexpected ways).
* Now has basic OpenBSD support.
* Solaris support needs to be added.

Thanks to @dhozac for general advice and Linux testing.
Thanks to @bcoca for clearing up some FreeBSD questions.
12 years ago
Jan-Piet Mens caf003c813 DOCUMENTATION strings 12 years ago
Dag Wieers 118ccc68c9 Make the default an empty string
Seems a bit strange I have to set a default in two locations.
12 years ago
Michael DeHaan 663a8fef3f chmod -x for all module files in source checkout 12 years ago
Dag Wieers 3852b9918a Allow adding additional arguments to service module
Some services allow additional arguments to be provided on the command line. This patch makes it possible.
12 years ago
Michael DeHaan d639844923 Merge branch 'service_bsd' of git://github.com/bcoca/ansible into devel 12 years ago
Daniel Hokka Zakrisson 20775c0b73 Fix service module for varnish initscript in EPEL
It outputs 'dead but pid file exists'.
12 years ago
Brian Coca 13f75e5a8e Now can handle rc.conf and init.d/rc.d based systems
Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
12 years ago
Jan-Piet Mens feab57e270 Reformat code: examples consistently
- added terse syntax to modules.rst
 - added description of special variables to template module
12 years ago
Michael DeHaan 29d49d415f fix mentioning of redundant aliases in module docs, remove was removed anyway 12 years ago
Tim Bielawa 1e35ac7603 Fix typo in service module docs 12 years ago
Jan-Piet Mens e620fed755 Jumbo DOCUMENTATION patch 12 years ago
Stephen Fromm be19e21126 Add module documentation for git, group, service, and user 12 years ago
Stephen Fromm 19c0202aaf Ignore failure of stop command if start succeeds with state=restarted
In some cases (see issue #1067) with state=restarted, a failure to stop
the service (which wasn't running) would appear to the module to be a
failure to restart the service even though it successfully started the
service.  This changes the behavior of the service module to focus
on the return code of the start command.  If the rc of stop is not
0 and the rc of start does equal 0, it considers the service
successfully restarted.  It then ignores the rc, stdout, and stderr
from the unsuccessful stop command.
12 years ago
Dave Coutu 9bb83067bc Added cases for 'dead but subsys locked' status 12 years ago
Stephen Fromm e5a635672c Migrate remaining modules to use get_bin_path in module_common.py
* Migraed easy_install, pip, service, setup, and user.
* Updated fail_json message in apt_repository
* Fixed easy_install to not hardcode location of virtualenv in
  /usr/local/bin/.
* Made handling of virtualenv more consistent between easy_install and
  pip.
12 years ago
Florian Diebold 886fed5ae7 Remove ternary operator to fix python 2.4 compatibility. 12 years ago
Florian Diebold af17bab373 Support systemd in the service module.
Most of it worked already, except for the enable parameter, because it
tried to use chkconfig which only sees SysV services. First look for
systemctl and use that if it exists.
12 years ago
Michael DeHaan 8eda23f856 tweak service module pattern= logic so ./hacking/test-module does not give false positives 12 years ago
Stephen Fromm 18f0302de8 Add pattern option to service module
Adds ability to check service status based on pattern.  The pattern
is a simple string.  If a pattern is provided, the output of ps is
checked first.
12 years ago
Michael DeHaan 477ca2ed1a Make pep8 tests run against the library directory as well, and associated tweaks (mostly to indentation) in the library
directory.
12 years ago
Michael DeHaan faed4b5a33 whitespace + remove deprecated YAML parser (migration script lives in examples/scripts and warning was added
in 0.6 release)
12 years ago
Michael DeHaan 7e9e29011e Add encoding lines to python modules such that they can take unicode options if they are fed them, since the
AnsibleModule stuff no longer base64 encodes for simplicity and speed reasons.
12 years ago
Ingo Gottwald 25b52109b4 Fixed a Bug in the service module state changed recognition 12 years ago
Stephen Fromm abe8d8d4d6 Return extra information from service module
If _do_enable() is run and returns rc == 0, set changed=True
Add enabled and state to result if they are supplied when the module is
run.
12 years ago
Stephen Fromm 42ad1c879f Fix service module for issue 755 and another bug
Allow use of service module with just enable parameter, per issue #755.
Also fixed two other issues:
- fixed parameter to be 'enabled' per docs, not 'enable'.
- fixed if block that checks whether to run _do_enable() to check
  whether the parameter is set, not the value of the enable value which
  may be None or False.  If enabled=no, the service would never be
  disabled.
12 years ago
Michael DeHaan ff82f0a168 Further service module tweaks 12 years ago
Michael DeHaan e9c4eb36d1 Service tweaks WIP 12 years ago
Nikhil Singh aca860df9c Standardizing the module 12 years ago
John Kleint ae665c15b3 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.
13 years ago
Jeremy Smitherman 7af3bdc89e Added additional output to service status checker 13 years ago
Ingo Gottwald abe33a5881 Enhanced the service state recognition in the service module:
- Added Upstart support
- Added an initial unknown state
- Prevented state changes when the current state is not recognized
- Changed the keyword recognition to a safer method
13 years ago
cocoy 25f808de8f Add state=reloaded 13 years ago
Michael DeHaan eb41bfd3c8 Allow service 'enable' parameter be 'enabled', which is what I'd personally try to use. 13 years ago
Stephen Fromm aea022b002 Apply logging of arguments to modules (issue #122)
The ohai and facter modules use /usr/bin/logger to log the fact that
they have been invoked.  I added 'import os' to the ping module
so that it could have the same syslog statements as the other modules.
I separated the condensed:
    shlex.split(open(argfile, 'r').read())
into two separate statements similar to the other modules.
13 years ago
Seth Vidal 81418afbbb fix up service module to make it start processes that are listed to be
running and to report errors from starting them
13 years ago
Michel Blanc a7e4da92db Fixes _find_binaries not using globals
_find_binaries now sets the right globals
Binaries are now properly populated (reverse path/binary for loops)
13 years ago
Michel Blanc 572868c9e1 Adds support for Ubuntu style update-rc.d
Checks if update-rc.d (Ubuntu) or chkconfig (RHEL) should be used.
Adds basic bin path search for those binaries
Adds 'enable' and 'disable' options for 'enable' command since it's the
arguments that update-rc.d uses (this might be somewhat confusing to
have a command line with 'enable=enable', but probably mkes sense for
Ubuntu users).
Allows use of mixed case for 'list' and 'state' commands.
13 years ago
Seth Vidal dc30b01c87 new service module handles enable=on/off for chkconfigging it on 13 years ago
Michael DeHaan b56efa7809 Fix handling of list=status such that it will actually work in absense of the state command, to
make it useful from /usr/bin/ansible and the API.  Also some minor style fixes.
13 years ago
John Kleint c6db4e8fa3 Get service module working with sudo, add list=status, better error messages.
When running the service module via sudo, `$PATH` didn't contain `/sbin`,
so the service binary couldn't be found.  This just runs `/sbin/service`
directly.  Output is spewed to stderr on error.

Added `list=status` to include the output of `service <cmd> status`.
13 years ago
jkleint 30ce430363 Service module crashes if args has no "=". 13 years ago
Michael DeHaan d86dad76ba Be more flexible about where the service binary lives for better cross platform support. 13 years ago
Michael DeHaan 81e3496037 Added preliminary support for --sudo to ansible, playbook support and further testing pending. 13 years ago
Christopher Johnston 509c330f53 add support for running and started - both will do the same thing 13 years ago
Michael DeHaan a735dd2b17 Added the 'test-module' script, useful for testing modules without running them in Ansible. 13 years ago