Commit graph

550 commits

Author SHA1 Message Date
Matthias Frey
68a3c6ece4 assemble: add file validation support. 2015-07-15 16:35:45 +02:00
Brian Coca
e916b04e91 Also document in example that unarchive download was added in 2.0 2015-07-14 10:19:17 -04:00
Mitchell Ludwig
9e11f5fd15 Improved stat documentation 2015-07-13 17:51:32 -06:00
Brian Coca
e33f093075 added ignore hidden to assemble 2015-07-09 00:28:10 -04:00
Jérémie Astori
ae1126c217 Add recursive support for ACL module (fix #5053, fix #5550, fix #7276) 2015-07-04 22:44:10 +02:00
Mike Putnam
6c0e264806 Add missing GPLv3 License header
Fixes #1643
2015-07-03 22:57:53 -05:00
Brian Coca
37506141a3 Merge pull request #1613 from verm666/issue-1575
unarchive: fix work with 0 bytes archives
2015-07-03 22:08:52 -04:00
Brian Coca
ed179fe379 now captures any exceptions when trying to create directories 2015-07-01 10:39:50 -04:00
Matthew Gilliard
910728f6c3 Handle race condition in directory creation.
If we try to make a directory, but someone else creates the directory
at the same time as us, we don't need to raise that error to the user.
They asked for the directory to exist, and now it does. This fixes
the race condition which was causing that error to be raised, and
closes #1648.
2015-07-01 15:22:45 +01:00
verm666
8deee99fcc unarchive: fix @bcoca's remarks, issue #1575 2015-06-30 08:14:30 -07:00
Brian Coca
433ca93c42 Merge pull request #1605 from vladimirmartsul/patch-1
Add "force" description
2015-06-30 07:54:48 -04:00
Brian Coca
13116d8ac0 Merge pull request #839 from gimoh/patch-1
Do not insert extra newline if line already contains it
2015-06-30 00:09:42 -04:00
verm666
725a7b2f59 unarchive: fix work with 0 bytes archives
This change is in response to issue #1575
2015-06-26 05:49:59 -07:00
Toshio Kuratomi
a5bba2488f Update version_added to 2.0 for the partial option 2015-06-25 12:44:20 -07:00
Vladimir Martsul
2206477b73 Add "force" description
Add "force" option description
2015-06-26 01:40:58 +06:00
Juan Picca
892212b9c4 synchronize module: add partial option 2015-06-25 14:18:49 -03:00
Toshio Kuratomi
c5324f54e6 Bump amount of file to download in a chunk to 64k. 2015-06-24 06:48:57 -07:00
Toshio Kuratomi
daa1472ccf Merge pull request #1448 from Jmainguy/unarchive_http
add download ability to unarchive module
2015-06-24 06:44:58 -07:00
Jonathan Mainguy
58ef71fc84 add download ability to unarchive module 2015-06-23 22:14:25 -04:00
Ritesh Khadgaray
81528e6834 Add the ability to grep for content 2015-06-18 20:38:19 +05:30
Markus Juenemann
0db3206cae Removed check whether destination directory is writable from files/unarchive.py.
This check will prevent extraction of an archive if the archive does not
actually write to the destination directory but only writes to any writable
sub-directories of it. The underlying tar command will report errors
should it try to write to read-only directories.
2015-06-16 10:37:38 +10:00
Greg DeKoenigsberg
2a5f0bde87 Proper author info for all remaining modules 2015-06-15 15:53:30 -04:00
Tristan Fisher
fa9d2f56df removes bool type from validate. 2015-06-01 15:59:25 -07:00
Tristan Fisher
98061a8f33 standardizes bools in argument_spec 2015-06-01 15:57:59 -07:00
jaypei
823adbbe36 use the right way to unescape line string
Reference https://github.com/ansible/ansible/issues/10864
2015-06-01 15:53:45 -07:00
Brian Coca
898f47e557 stat doc fix
fixes #1371
2015-05-26 15:22:56 -04:00
Greg Taylor
f38bf24c8a Adding directory creation example to file module. 2015-05-19 11:45:00 -07:00
Brian Coca
37532628c0 minor docfix 2015-05-19 10:44:17 -04:00
Brian Coca
e08eb7d7bc Merge pull request #1341 from tfishersp/devel
standardizes bools in argument_spec
2015-05-19 08:43:29 -04:00
Tristan Fisher
90b34e2b67 removes bool type from validate. 2015-05-18 18:44:31 -04:00
Toshio Kuratomi
81b476cd02 Update module "imports" to new style
Fixes #1351
2015-05-18 11:59:20 -07:00
Toshio Kuratomi
4b44aa4799 Fix use of codecs.escape_decode() 2015-05-17 09:28:14 -07:00
Toshio Kuratomi
142760658f Slightly more future-proof version of the lineinfile fix 2015-05-17 09:15:57 -07:00
Toshio Kuratomi
2eafbdd63a Merge branch 'fix-lineinfile' of https://github.com/jaypei/ansible-modules-core into jaypei-fix-lineinfile 2015-05-17 09:14:00 -07:00
Toshio Kuratomi
493144e06c Correct lineinfile documentation about double quoting... Hasn't been the case for years. 2015-05-15 14:13:27 -07:00
Tristan Fisher
db292e08b9 standardizes bools in argument_spec 2015-05-15 17:09:54 -04:00
Jason Paige
72e5e3a17a update flat description
default behavior is to append the `hostname/path/to/file`, not prepend as currently stated by the flat arg docs
2015-05-12 12:56:37 +01:00
Brian Coca
9a2e64b76d generic fix for Exceptions that heppen when trying to set permissions on extracted files
fixes ansible/ansible#10934 which is really a corner case
2015-05-11 13:18:05 -04:00
Ryan Hartkopf
06e2dcc108 synchronize: don't add ssh_args to ssh_opts when false or null 2015-05-04 08:58:05 -06:00
jaypei
fb34842a05 use the right way to unescape line string
Reference https://github.com/ansible/ansible/issues/10864
2015-04-29 19:59:55 +08:00
Brian Coca
c323ef9233 Merge pull request #1073 from sivel/sync-ssh-args
Add ability to specify using ssh_args in synchronize
2015-04-24 17:02:34 -04:00
Brian Coca
724b848c61 Merge pull request #1025 from bcoca/find
1st draft find module
2015-04-20 10:49:17 -04:00
Toshio Kuratomi
a19fa6ba48 Implement feature to return list of files in the archive 2015-04-15 09:25:23 -07:00
Brian Coca
a597992592 updated content description to discourage using as a tempalte module 2015-04-15 10:02:30 -04:00
Toshio Kuratomi
761fc8d277 Tar --diff only sends output to stderr if a file is missing. Handle that case
Fixes #1064
2015-04-15 05:05:41 -07:00
Brian Coca
1e026cb8ac find module
updated to be able to get checksums and stat data, also now it only stats a file once so it should be quite faster on large file sets
2015-04-13 21:54:20 -04:00
Matt Martz
ba7ad8e7f5 Add version_added for the use_ssh_args option 2015-04-03 10:27:33 -05:00
Matt Martz
f431b4817b Add ability to specify using ssh_args in synchronize 2015-04-03 09:42:23 -05:00
Brian Coca
de4c7f8ba6 switched to use python's built in os.separator vs using / 2015-04-03 09:06:58 -04:00
Toshio Kuratomi
515cd6666d Fix stat code to return name of group owning the file rather than name of group that the file's owner belongs to.
Followup to #17
2015-03-25 08:33:19 -07:00
Isaac Simmons
1f358721ff Handle ini file properties that contain interpolation errors in the initial values 2015-03-23 11:46:59 -04:00
Brian Coca
7683f36613 fix to return vals docs 2015-03-20 17:00:55 -04:00
James Bowes
1e36b6b7f6 Fix C() formatting typo in file module 2015-03-10 21:43:45 -03:00
Brian Coca
3da0aa9f08 Merge pull request #7 from Ernest0x/patch-1
synchronize: use a single -F instead of -FF
2015-03-06 15:13:37 -05:00
Toshio Kuratomi
559af8d88d Clarify the documented behaviour of insertbefore slightly. 2015-03-03 11:38:08 -08:00
Toshio Kuratomi
8ec43e5bbc Merge pull request #411 from p-tr0/devel
Fix behavior when insert* doesn't match anything
2015-03-03 11:32:18 -08:00
Brian Coca
0cc15866c2 Merge pull request #855 from bcoca/file_rellink_fixes
fixed file module to use realpath when following links,
2015-02-26 21:07:35 -05:00
James Cammarata
4646fdccd9 Merge branch 'feature/ini_file_change_mode_support' of https://github.com/blxd/ansible-modules-core into blxd-feature/ini_file_change_mode_support 2015-02-26 10:03:35 -06:00
Brian Coca
62fa77fbf9 fixed file module to use realpath when following links,
readlink could be relative and fail in corner cases as per #852
2015-02-26 08:43:24 -05:00
gimoh
d9f8fa56d8 Do not insert extra newline if line already contains it
When using YAML multi-line strings, e.g.:

- lineinfile:
    dest: /tmp/foo
    line: >
      foo
      bar

the line already ends with a newline.  If an extra newline is appended unconditionally it will lead to inserting an extra newline on each run.
2015-02-23 14:14:00 +00:00
blxd
2c520f31b3 Added check mode support to the ini_file module 2015-02-23 11:14:38 +00:00
Brian Coca
dbd8ea1e7d fixed typo on isgid 2015-02-20 09:57:39 -05:00
Brian Coca
6e654f2442 fixed issues with stats return docs as per feedback 2015-02-20 09:57:39 -05:00
Brian Coca
13cdadcc4d removed always for success, as data wont show on fail 2015-02-20 09:57:39 -05:00
Brian Coca
cbf42c95b2 draft for documenting module returns 2015-02-20 09:57:39 -05:00
mrsheepuk
410862d631 Doc change - make clearer usage for existing remote file
Having read the doc for this module several times and completely missing that it can be used for existing remote archives, I propose this update to the wording to make clear from the top the two ways in which this module can be used.
2015-02-17 13:48:59 +00:00
Gauvain Pocentek
6c1f40fea7 fetch: fix the flat parameter description
ansible-doc expects the value of the description field to be a list,
otherwise the output is not correct. This patch updates the flat
description to be a list.
2015-02-17 09:06:26 +01:00
Toshio Kuratomi
9e0959d600 Fix for recursion traceback in copy with relative paths
This is a further fix for: https://github.com/ansible/ansible/issues/9092

when the relative path contains a subdirectory.  Like:

ansible localhost -m copy -a 'src=/etc/group dest=foo/bar/'
2015-02-16 15:36:54 -08:00
Toshio Kuratomi
32e8595abf Merge pull request #790 from rhlmhrtr/file_documentation
Fixed Documentation issue concerning file mode
2015-02-16 13:21:13 -08:00
Rahul Mehrotra
98f869f345 Fixed Documentation issue concerning file mode when specified using numberical value 2015-02-16 10:04:32 -08:00
Toshio Kuratomi
aa6c73f11b When recursing subdirectories, honor the follow parameter for setting file attributes.
One half of the fix for
https://github.com/ansible/ansible-modules-core/issues/778
The other half is in basic.py
2015-02-16 07:13:15 -08:00
Brian Coca
f4dbcea30c Merge pull request #295 from techtonik/patch-3
acl: Fix X support in ACL permissions
2015-01-29 11:04:41 -05:00
Toshio Kuratomi
99a8caf409 Prefer gtar to tar
Fixes #702
2015-01-26 09:46:53 -08:00
sysadmin75
80a5500a23 Fix #10059 - replace module does not obey follow=yes 2015-01-23 18:10:00 -05:00
Toshio Kuratomi
9f333afb6a Standardize class names on Archive suffix.
This also removes the collision between the stdlib ZipFile class and the
module's ZipFile class

Fixes #681
2015-01-21 16:15:42 -08:00
Toshio Kuratomi
e3759bd0d3 Add detection of uid,gid,mode changes when deciding whether an archive
needs to be unarchived again.
2015-01-14 19:20:07 -08:00
Toshio Kuratomi
6159b5c423 Implement user,group,mode,selinux settings for unarchive.
This is a partial fix for #234.  Still have to figure out how to
make change reporting work as we can no longer rely on tar's --compare
option
2015-01-14 13:11:33 -08:00
Brian Coca
78cacd0c22 fix for allowing permissions on hard links and soft links + follow=yes 2015-01-07 13:16:53 -05:00
Toshio Kuratomi
022e5274e6 Merge pull request #460 from jbinto/file_allow_touch_hardlink
Files module: Allow touch on hardlinks
2015-01-07 09:04:01 -08:00
Brian Coca
6237dab4cf fix for when state=directory, follow=yes and target is symlink to directory 2015-01-06 10:06:50 -05:00
Toshio Kuratomi
c5f7fc93b2 Merge pull request #514 from jbradberry/issue9546
Fix breakage in lineinfile check mode when target file does not exist.
2014-12-16 23:13:34 -08:00
Jeff Bradberry
28375aae7f Fix breakage in lineinfile check mode when target file does not exist.
Similarly to https://github.com/ansible/ansible/issues/6182, checking of the file attributes should be avoided in check mode when the file didn't originally exist.

Also, avoid creating parent directories in check mode.

Fixes https://github.com/ansible/ansible/issues/9546
2014-12-14 20:48:36 -05:00
sysadmin75
0fee1132ad Fixes #9518 - "file state=directory" silently skips if it's currently a file 2014-12-13 15:14:32 -05:00
Brian Coca
242a1562c3 Merge pull request #36 from mscherer/fix_old_9092
Fix old ticket #9092 where a playbook can enter in recursion
2014-12-11 20:54:54 -05:00
Toshio Kuratomi
467ad65f73 Fix documentation formatting 2014-12-10 11:17:16 -08:00
Jesse Buchanan
2d5d7ff542 Files module: Allow touch on hardlinks 2014-12-07 13:35:24 -05:00
Piotr Gosławski
a5b1a599e2 update docs for insertbefore/insertafter 2014-12-04 17:07:03 +01:00
follower
5c38ea8374 Note that rsync must be installed on both local & remote machine
In particular, if `rsync` is not installed on the remote machine the following error message will be encountered:

    "rsync error: remote command not found"
2014-12-05 01:17:10 +13:00
Brian Coca
4035d24313 Merge pull request #17 from cooniur/devel
Added support of returning owner's group name in stat module
2014-12-01 12:02:46 -05:00
Brian Coca
e04ac864a5 Merge pull request #10 from techtonik/patch-1
files.stat: Expose path in returned result
2014-12-01 11:59:23 -05:00
Piotr Gosławski
3c8b4bd4b9 Fix behavior when insert* doesn't match anything
If insertbefore/insertafter didn't match anything, lineinfile module was doing nothing, instead of adding the line at end of fille as it's supposed to.
2014-11-30 12:32:08 +01:00
Eric
87dd3afc91 Fix lineinfile documentation typo 2014-11-29 22:41:24 -06:00
Toshio Kuratomi
19b328c4df Cannot readlink() on a hard link 2014-11-19 13:04:44 -08:00
Brian Coca
ee39fd8df0 Merge pull request #124 from jonhadfield/remove-unused-creates
Remove redundant check for creates argument.
2014-11-18 14:59:11 -05:00
Brian Coca
4bc1e46de2 Merge pull request #24 from sysadmind/devel
Added note to files/synchronize module about synchronizing two directori...
2014-11-13 19:44:24 -05:00
Jeff Geerling
b9471c9cd5 Add mention of fetch module to the copy module docs. 2014-11-11 12:22:27 -06:00
anatoly techtonik
4f2b99c1e0 acl: Fix X support in ACL permissions
If you try to set rwX permissions, ACL fails to set them at all.

Expected:

    $ sudo setfacl -m 'group::rwX' www
    ...
    drwxrwxr-x  2 root root  4096 Nov 10 17:09 www

With Ansible:

    acl: name=/var/www permissions=rwX etype=group state=present
    ...
    drwxrw-r-x  2 root root  4096 Nov 10 17:30 www

x for group is erased. =/
2014-11-10 20:32:05 +03:00
Toshio Kuratomi
6317d3a988 Move from md5 to sha1 to work on FIPS-140 enabled systems 2014-11-06 21:25:55 -08:00
Toshio Kuratomi
88b73afcbe Use original_basename to set the dest path even if src is not set 2014-10-20 22:25:18 -04:00
Ted Timmons
fd68b77d37 fix spelling 2014-10-11 21:11:30 -06:00
Jon Hadfield
9e0565e58f Remove redundant check for creates argument. 2014-10-03 13:00:11 +01:00
Tadej Janež
661b452fe3 Simplified condition in a stat module example testing if path is a directory. 2014-10-02 18:17:27 +02:00
James Cammarata
cb69744bce Adding file doc fragment to those modules in files/ missing it 2014-10-01 20:55:50 -05:00
Michael DeHaan
1c2995d71f Merge pull request #77 from major/suggest-selinux-enforcing
Updating SELinux example doc in lininefile module
2014-10-01 11:53:24 -04:00
Eric Hanchrow
cc0a38d268 Tweak docs to mention replace 2014-09-30 10:52:03 -07:00
Major Hayden
6d697780f9 Updating SELinux example doc in lininefile module
Encouraging users to use this Ansible module to enable SELinux seems
like a better idea. It also warms Dan Walsh's heart.

Signed-off-by: Major Hayden <major@mhtx.net>
2014-09-30 07:12:23 -05:00
Michael Scherer
9cbd4d0fad Fix old ticket #9092 where a playbook can enter in recursion
This can be tested with this command :

    ansible -c local -m copy -a 'src=/etc/group dest=foo/' all

This is a corner case of the algorithm used to find how we should
copy recursively a folder, and this commit detect it and avoid it.

Check https://github.com/ansible/ansible/issues/9092 for the story
2014-09-29 18:02:42 -04:00
Joe Adams
2206d4b1e0 Added note to files/synchronize module about synchronizing two directories on the same host 2014-09-29 17:02:08 -04:00
Tongliang Liu
e26cbb6ace Added support of returning owner's group name in stat module 2014-09-29 13:25:46 -07:00
anatoly techtonik
7f9305b24e files.stat: Expose path in returned result
This is needed to apply subsequent operation on tested path
2014-09-29 17:59:23 +03:00
Petros Moisiadis
f7c498d059 synchronize: use a single -F instead of -FF
This small change corrects behavior when one uses an .rsync-filter file to exclude some paths from both being transferred and being deleted, so that these excluded paths can be handled separately with different tasks (e.g. in order to deploy the excluded paths independently from the rest paths and notify handlers appropriately). The problem with the double -FF option is that it excludes the .rsync-filter file from being transferred to the receiver. However, deletions are done on the side of the receiver, so it is absolutely necessary the .rsync-filter file to be transferred to the receiver, so that the receiver knows what files to delete and what not to delete.
2014-09-28 13:24:47 +03:00
Michael DeHaan
385a037cd6 package files 2014-09-26 11:05:47 -04:00
Michael DeHaan
c8e1a2077e file extensions! 2014-09-26 10:37:56 -04:00
Michael DeHaan
417309a626 Restructuring. 2014-09-26 10:13:26 -04:00
Michael DeHaan
73123b69fa Move modules into subdirectory. 2014-09-26 09:23:50 -04:00
James Cammarata
dea00c767b Merge branch 'dmage-devel' into devel 2014-09-22 15:42:38 -05:00
James Cammarata
bb8bac490a Merge branch 'devel' of https://github.com/dmage/ansible into dmage-devel 2014-09-22 15:40:06 -05:00
Michael Scherer
d15931f15a Make file module work on python 2.4, fix #9080
Python 2.4 do not support "except ... as ..." construct, so
revert back to the older syntax.
2014-09-21 01:50:58 +02:00
James Cammarata
d98d76aeae Adding "follow" param for file/copy options
Also modifies the template action plugin to use this new param
when executing the file/copy modules for templating so that links
are preserved correctly.

Fixes #8998
2014-09-16 12:05:55 -05:00
Toshio Kuratomi
17665d962b Do not keep a new file if we fail to set its attributes. 2014-09-15 12:36:52 -07:00
James Cammarata
ab5e8201f4 Fix quoting issues in lineinfile for individual single-quotes
Fixes #8806
2014-09-11 16:27:48 -05:00
Oleg Bulatov
583cfa45e5 Fix #7711
Fix relative symlinks creation in file module

Signed-off-by: Oleg Bulatov <oleg@bulatov.me>
2014-09-01 23:23:36 +04:00
James Cammarata
311c10c8e5 Docs updates to add examples for symbolic modes
Also fixes missing doc fragments missing in template and assemble
2014-08-26 09:09:08 -05:00
Brian Coca
8f3bb4ff20 now acl expands tildes 2014-08-24 19:16:15 -04:00
Michael DeHaan
ef10c2dd9b Merge pull request #8441 from willthames/unarchive_dest_fix
Unarchive should work when parent directory is not writable
2014-08-22 15:05:42 -04:00
James Cammarata
005ca0e5ec Merge branch 'relative-path-fix' of https://github.com/major/ansible into major-relative-path-fix 2014-08-21 15:32:51 -05:00
Major Hayden
97d6807ec5 File module cannot create relative paths
When trying to create a directory relative to the current working
directory, a directory is created at the root of the filesystem
instead.  This patch ensures that directories specified with relative
paths will be created in the current working directory.  Fully
qualified paths aren't affected

Signed-off-by: Major Hayden <major@mhtx.net>
2014-08-21 15:31:06 -05:00
James Cammarata
0b35433654 Fix check mode issues with copy module
Fixes #8639
2014-08-18 16:02:45 -05:00
James Cammarata
989b14de80 Add option to disable ControlPath to ssh options during rsync
Fixes #8473
2014-08-18 12:59:00 -05:00
James Cammarata
6d4b429488 Update docs for copy directory_mode param per #8572 2014-08-12 12:19:13 -05:00
Michael DeHaan
ed0751984c Copy recursion works when source is a parameter, there is no parameter 'recurse' here. 2014-08-11 16:22:13 -04:00
James Cammarata
3f052ead3a Make sure we only use unquote on quoted lines in lineinfile when needed 2014-08-11 11:23:52 -05:00
James Cammarata
6c9371ea90 Unquote lines that were quoted for safety during eval in lineinfile
Fixes #8535
2014-08-11 11:01:23 -05:00
Piffey Parlance
c987dbcb67 Issue 8502: Fixed bug where failed when permissions weren't specified. 2014-08-09 12:02:24 -05:00
Michael DeHaan
60ce2d3853 Fix documentation builds. 2014-08-08 15:12:10 -04:00
Michael DeHaan
185d5a6221 Merge branch 'spelling' of git://github.com/cgar/ansible into devel
Conflicts:
	docsite/rst/guide_rax.rst
	plugins/callbacks/mail.py
2014-08-08 13:28:45 -04:00
Michael DeHaan
0591d3dfbf Merge pull request #7312 from bcoca/unarchive_docs
reworded copy option docs
2014-08-08 11:47:16 -04:00
Will Thames
de16785b8c Unarchive should work when parent directory is not writable
Correct unarchive so that the checks for writeability are
sensible.

Added a test for when parent directory is not writable
2014-08-07 16:11:02 +10:00
Michael DeHaan
f0ae6204e4 Merge pull request #8455 from nicocesar/version_check
if python >=2.7  use the option allow_no_value=True for ini_file.
2014-08-05 21:00:37 -04:00
Michael DeHaan
f228e0bff4 Some stray doc tweaks with file modules. 2014-08-05 20:45:16 -04:00
Michael DeHaan
d78e16ff36 Move doc fragments back into file module. 2014-08-05 20:45:16 -04:00
Nico Cesar
31b34906d0 if python >=2.7 use the option allow_no_value=True for ini_file. 2014-08-05 10:56:20 -04:00
Michael DeHaan
04568cd767 Revert ""allow_no_value=True" for ini_file module so /etc/my.cnf can be read without a problem"
This reverts commit cbdc9f1153.

Code needs to make allowances for particular python versions and try/except
around this block.
2014-08-04 11:49:55 -04:00
Michael DeHaan
c05a5eba58 Add version_added attribute for regexp parameter. 2014-08-04 07:51:29 -04:00
Nico Cesar
eeabda4831 "allow_no_value=True" for ini_file module so /etc/my.cnf can be read without a problem 2014-08-01 16:04:35 -04:00
RomanDolejsi
7cd6d6fb89 file: prevent replace failure when overwriting empty directory with hard/link (force=yes) 2014-07-29 10:46:32 +02:00
Michael DeHaan
03c46f016a Update unarchive example. 2014-07-28 12:07:31 -04:00
Michael DeHaan
0697bbd6dd Merge pull request #8200 from geetotes/devel
[Docs] Added another example to demonstrate unarchive module working entirely on a remote machine
2014-07-28 12:04:33 -04:00
Michael DeHaan
0221727050 Merge pull request #7968 from bcoca/acl_fix_compare
acl module: now compares permissions correctly
2014-07-28 10:47:38 -04:00
Lee Gillentine
7cdeddb740 Pushing up correct example :( 2014-07-25 14:19:02 -05:00