1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
Commit graph

1105 commits

Author SHA1 Message Date
Alicia Cozine
228fee4f3a lineinfile note belongs in changelog for 2.6, not 2.7 (#45517) 2018-09-11 22:00:40 +01:00
Brian Coca
e9c2695ce7 updated fbsd install instructions (#45309) 2018-09-11 15:55:21 -05:00
tterranigma
f68cd1acc6 Update implicit_localhost.rst (#45455)
Adds a clarification about `inventory_dir/file` magic variables when using implicit localhost as per #45385 . +label: docsite_pr
2018-09-11 15:17:50 -05:00
Artem Goncharov
8ae14bebda update porting guides (#40784)
* update porting guides

With PR #40532 `shade` library was retired and replaced with direct use
of `openstacksdk`. Porting guides and doc about dynamic inventory were
not updated.
2018-09-11 18:14:26 +01:00
Alicia Cozine
4264be2b18 Remove more docs build errors (#45364)
* orphans testing pages to avoid not-in-toctree errors

* orphans various pages pending reorg

* adds module_utils and special_vars to main TOC

* uses a glob for scenario_guide TOC

* normalize and Sentence-case headings on community pages, typos

* re-orgs community TOC, adds all pages to toctree

* removes scenario guides index page

* adds style guide to community index

* basic update to style guide

* fix typo that created a new error

* removes not-in-toctree from ignore errors list

* leave removing files for future cleanup task
2018-09-11 17:51:47 +01:00
Sam Doran
5d6f844eba Add docs on how to write changelog fragments (#42428)
* Add docs on how to write changelog fragments

* Make recommended changes

* Restore lines and make recommended changes

* Add link to new style changelog

Remove redundant mention of old style changelog
2018-09-11 12:23:22 -04:00
Jordan Borean
01398f61d5
Win deprecate 2.8 (#45473)
* Remove deprecated/expired functionality

* win:_msi: Remove the win_msi module

* removed some missed deprecated return options and added porting guide reference

Co-authored-by: dagwieers <dagwieers@users.noreply.github.com>
2018-09-11 14:23:48 +10:00
Jordan Borean
ec6d82435f
win_scheduled_task: add deprecation warning for repetition format (#45468)
* win_scheduled_task: add deprecation warning for repetition format

* fixed up sanity issues
2018-09-11 14:22:57 +10:00
Kevin Breit
ec3ce1f39c Meraki scenario guide (#41827)
* Initial commit for the Meraki scenario guide

* Added Meraki guide to indexes, fixed an error

* Added common parameters to scenario guide

* Add additional information for first draft
- Added very common parameters everyone uses.
- Documented common format for returned data from Meraki.
- High level explanation of error handling.

* Fix .rst formatting error

* Added section about handling returned data. More to come.

* Small formatting changes
2018-09-10 14:59:23 +02:00
Meecr0b
2f6b8591b1 tower_credential: expect ssh_key_data to be a string instead of path (#45158)
* expect ssh_key_data to be a string instead of path

ssh_key_data should be a string filled with the private key
the old behavior can be archived with a lookup

Fixes #45119

* clarifies ssh_key_data description, adds newline
2018-09-07 13:41:09 -04:00
Alicia Cozine
9a76441c02
rewrite of the developer guide, part 1 (#45179)
* rewrite of the developer guide, part 1
2018-09-07 08:57:36 -05:00
Brian Coca
44510448b0 prefer ansible_facts namespace and dict notation (#44980)
* prefer ansible_facts namespace and dict notation

* fixed mistranslation
2018-09-06 10:26:58 -05:00
Markus Suonto
0d81386144 Add single quotes around package name (#45152)
<!--- Your description here -->
`pip install ansible[azure]` results in `zsh: no matches found: ansible[azure]` at least in my computer (zsh on Ubuntu). I don't know if it is the case with all shells, but at least for me it is. Since square brackets `[]` are special characters in bash, I propose adding single quotes to make sure that package name is always interpreted as literal. The same error is also resolvable by setting noglob.
2018-09-06 10:09:40 -05:00
Ian Wienand
6be42a2a0e docs: Clarify include_task v import_tasks with conditionals (#43856)
Correct and clarify "set_fact" example, expanding on what is happening
in the easy-to-get-wrong import mode. Add some additional links to "group_by" documentation and the main import/include discussion.

Closes: #31596
2018-09-05 14:06:02 -05:00
Brian Coca
70f3f084ac fixed chlog path 2018-09-05 10:41:49 -04:00
Sandra McCann
fe119c18ef fixed formatting (#45164)
(cherry picked from commit 58ca82fa1c59d3a62509db99c4bbff6eb08829ab)
2018-09-04 09:33:01 -05:00
Matt Martz
f89d873698
Stub out modules scheduled for 2.8 removal (#44985)
* Remove modules scheduled for 2.8

* Add changelog and porting guide

* Skip docs test on removed modules

* Don't link to removed modules
2018-08-31 16:27:32 -05:00
Sam Doran
d257095976 Change Mac OSX to macOS in installation docs (#44971)
* Change Mac OSX to macOS in docs

* Lowercase via
2018-08-31 11:12:12 -05:00
Yanis Guenane
857a553fa1 Vultr: Create the Vultr Guide (#44515) 2018-08-31 10:42:07 -04:00
Brian Coca
cbd54a4b2c added more reasons to avoid dot notation (#43724) 2018-08-31 09:32:36 -05:00
James Polley
7988266bb7 Improve clarity of precedence when command-line parameters are used. (#39059)
* Improve clarity of precedence when command-line parameters are used.

* Add command-line values into the precedence list.
* Several sample config snippets were included without any explanation
  of how those snippets would be processed. Added descriptions so that
  the reader can understand what each snippet will (or won't) accomplish.

* Don't focus on inventory as much

Expand on the fact that it's the fact that a variable is set that
matters, not the source of the variable.
2018-08-31 09:56:58 -04:00
Sandra McCann
cccf5e6e77 fixed grammar and spelling issues (#44931)
* fixed grammar and spelling issues

* fixed autocorrect mistake and sanity test errors
2018-08-31 08:44:31 -05:00
Brian Coca
3f657ca28f clarify priority setting (#44865)
* clarify priority setting

* updated as per fb
2018-08-31 09:20:26 -04:00
Dag Wieers
ac3781d40b Fix broken CI (#44937)
* Fix document structure

* Fix broken CI
2018-08-30 16:46:29 -07:00
Dag Wieers
32fc6746d8
Fix document structure (#44935) 2018-08-31 00:16:36 +02:00
Christopher Torgalson
2dfff57f57 Extends 'which notation should I use' section in FAQ (#43729)
* Extends 'which notation should I use' section in FAQ
2018-08-30 15:47:39 -05:00
Ritesh Puj
ff654ccfe8 replaced 'ansible_os_platform' to 'ansible_os_family' (#44676)
replaced 'ansible_os_platform' to 'ansible_os_family' as 'ansible_os_platform' variable is no longer available.
2018-08-30 15:02:39 -05:00
Felix Fontein
376dcb9f84 docker scenario guide: docker-py -> docker (#44856)
* Don't install docker-py by default, but the more modern docker library.

* Addressing the review comments.
2018-08-30 14:38:03 -05:00
Abhijeet Kasurde
6059da245b VMware: Concept documentation (#43927)
* VMware: Concept documentation

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>

* update docs

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-08-30 12:49:37 -04:00
Sloane Hertel
33e9d67801
Add some inventory plugin documentation (#44727)
* Add some additional documentation about getting inventory plugins working using YAML inventory configuration files
2018-08-30 09:35:56 -04:00
pierremahot
d11e078366 adding an option for the filter ipsubnet and testing (#40670)
* adding an option for the filter ipsubnet
2018-08-30 13:21:22 +01:00
Jordan Borean
533656694e
win_disk_image: return all mount paths in return value (#44799) 2018-08-30 16:25:45 +10:00
Chris Archibald
7cded31ec9 Depreciate elementsw modules (#44792)
* rename deprecated files
2018-08-29 17:51:52 +01:00
John R Barker
da59a8a678 Use updated pygments (#44846)
Before this PR we were not using _static/ now we do
Remove all old files so we don't replace 2018 versions with 2011
2018-08-29 11:51:40 -05:00
Greg Chavez
a5b02d6c7c "encountered" is an adj. here, need vb. "are" (#44833)
<!--- Your description here -->

+label: docsite_pr
2018-08-29 09:14:09 -05:00
Sloane Hertel
aa51072981 Update AWS pull request links (#44777) 2018-08-29 09:03:27 -05:00
Sandra McCann
1c42198f1e fixed network automation index issues (#44732)
* fixed network automation index issues

* replace :doc: with :ref:

* fixed anchor misspelling

* fix toc/nav issue -do not put toctree under a subheader
2018-08-29 15:37:00 +02:00
Brian Coca
86037bc840
improved block docs (#43611)
* improved block docs

 - broke down examples per keyword
 - clarified which errors are handled
 - clarified forcing error in rescue
2018-08-28 13:40:12 -04:00
Brian Coca
893d59fabe
updated guides to avoid connection: local (#44227)
- want they really need is `delegate_to: localhost`
 - also reduced 'local_action' usage in favor of same
2018-08-28 13:27:21 -04:00
Yuma Inaura (稲浦悠馬)
2655fd2cbd Update playbooks_conditionals.rst (#43055)
+label: docsite_pr
2018-08-27 18:33:49 -05:00
Brian Coca
93f5c10714 vars list (#43171)
* vars list

(cherry picked from commit 463b85cf0bcf7a557b857d1ebd3e8bf1b693fa4c)

* updated as per fb
2018-08-27 14:57:32 -05:00
Matthias Fuchs
7871027c9d Share the implementation of hashing for both vars_prompt and password_hash (#21215)
* Share the implementation of hashing for both vars_prompt and password_hash.
* vars_prompt with encrypt does not require passlib for the algorithms
  supported by crypt.
* Additional checks ensure that there is always a result.
  This works around issues in the crypt.crypt python function that returns
  None for algorithms it does not know.
  Some modules (like user module) interprets None as no password at all,
  which is misleading.
* The password_hash filter supports all parameters of passlib.
  This allows users to provide a rounds parameter, fixing #15326.
* password_hash is not restricted to the subset provided by crypt.crypt,
  fixing one half of #17266.
* Updated documentation fixes other half of #17266.
* password_hash does not hard-code the salt-length, which fixes bcrypt
  in connection with passlib.
  bcrypt requires a salt with length 22, which fixes #25347
* Salts are only generated by ansible when using crypt.crypt.
  Otherwise passlib generates them.
* Avoids deprecated functionality of passlib with newer library versions.
* When no rounds are specified for sha256/sha256_crypt and sha512/sha512_crypt
  always uses the default values used by crypt, i.e. 5000 rounds.
  Before when installed passlibs' defaults were used.
  passlib changes its defaults with newer library versions, leading to non
  idempotent behavior.

  NOTE: This will lead to the recalculation of existing hashes generated
        with passlib and without a rounds parameter.
        Yet henceforth the hashes will remain the same.
        No matter the installed passlib version.
        Making these hashes idempotent.

Fixes #15326
Fixes #17266
Fixes #25347 except bcrypt still uses 2a, instead of the suggested 2b.

* random_salt is solely handled by encrypt.py.
  There is no _random_salt function there anymore.
  Also the test moved to test_encrypt.py.
* Uses pytest.skip when passlib is not available, instead of a silent return.
* More checks are executed when passlib is not available.

* Moves tests that require passlib into their own test-function.

* Uses the six library to reraise the exception.

* Fixes integration test.

When no rounds are provided the defaults of crypt are used.
In that case the rounds are not part of the resulting MCF output.
2018-08-27 08:40:41 -07:00
Donghyun Kang
5fecf8baab doc: fixed typo (#44685) 2018-08-26 21:36:11 +02:00
Toshio Kuratomi
68c60ad307 Change validate-modules for removed modules
Removed modules now don't have documentation.  Need to account for that
when checking them in validte-modules
2018-08-24 15:37:13 -07:00
Toshio Kuratomi
ee891c2b16 Fix refs broken by removal of old module docs 2018-08-24 15:37:13 -07:00
akira6592
62ec0409e5 fix variable names in vars file example (#44643) 2018-08-24 12:06:06 -04:00
Ihor Dvoretskyi
5d5782ce9d Fixed links to the CLI clients (#35792)
CLI clients link is incorrect, fixed.
2018-08-24 08:40:53 -05:00
Toshio Kuratomi
8ed7e80fc8
Remove from roadmap, thing that aren't going to make it for 2.7 (#44481)
* Remove from roadmap, thing that aren't going to make it for 2.7
* Added actual Windows roadmap deliverables
2018-08-23 19:32:27 -07:00
Dag Wieers
cc2164f92a
ACI: Add specific info about running locally (#43903)
Since the ACI modules (like most network-related modules) run on the
local controller, this PR adds the necessary details so users are aware
of this particular feature.
2018-08-24 01:28:39 +02:00
sirkubax
07375be490 Fix docs errors (#33704) 2018-08-23 16:11:07 -05:00
Ganesh Nalawade
d8e362e701
Update 2.7 network roadmap done items (#44575) 2018-08-23 21:50:20 +05:30
Dag Wieers
47711d0cec docs: Use GitHub syntax highlighting styles (#44449)
This PR changes the CSS stylesheet so the documentation (and module)
examples look more like how they look on GitHub.
2018-08-23 11:13:22 -05:00
jctanner
653d9c0f87 New keyword: ignore_unreachable (#43857) 2018-08-23 11:41:02 -04:00
skylerbunny
d4e15d40e8 Update tags documentation to explain newer tags behavior (#44274) 2018-08-23 09:46:54 -04:00
Trishna Guha
6ddd034906
mark cli_config as done on roadmap (#44567)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-23 18:57:43 +05:30
Ryan Brown
4c8808ec9d
Extend module_defaults by adding default groups for cloud modules (#44127)
Extends `module_defaults` by adding a prefix to defaults `group/` which denotes a builtin list of modules. Initial groups are: `group/aws`, `group/azure`, and `group/gcp`
2018-08-22 21:33:27 -04:00
Pilou
af786cb9d7 Fix a typo in docs: s/patent/parent/ (#44529) 2018-08-22 23:05:42 +02:00
♫ Christian Krause ♫
d779eb1f15 doc: fixes the the repetitions (#43937)
Wow, this does not seem to be an uncommon misspelling. Might be there
are some left that span over two lines. I noticed the one in the git
module and then used `grep -rw 'the the'` to find some more.
2018-08-22 21:53:30 +02:00
pcahyna
8dc31a88e8 Describe subset and superset as "set theory tests" (#43926)
subset and superset do not belong to group theory but to set theory.

+label: docsite_pr
2018-08-22 15:22:10 -04:00
flawaetz
1682ce5263 Update playbooks_blocks.rst (#40951)
Blocks currently don't support loops such as with_items or sequence.  It would be helpful to make this clear in the docs otherwise it's a bit of a gotcha.

+label: docsite_pr
2018-08-22 14:07:24 -05:00
muxator
a34d8a5e47 doc: minor language corrections to loop docs (#42854)
"described more" -> "better described"
"more simple" -> "simpler"

+label: docsite_pr
2018-08-22 15:00:25 -04:00
Chris Archibald
66ae8efbd3 Bug Fixes for ontap_net_vlan.py (#44209)
* Bug Fixes for ontap_net_vlan.py

* Make documentation changes
2018-08-22 09:00:49 -07:00
Brian Coca
57293b3c64 correct vault example (#44507)
* correct vault example

fixes #43897

* corrected text and code blocks
2018-08-22 10:25:33 -04:00
Toshio Kuratomi
0e7b470a01 Remove deprecated tags config option (#44479)
* Remove deprecated tags config option

* wordsmith porting guide entry

acozine via github
2018-08-21 14:57:06 -05:00
Ganesh Nalawade
ce541454e9
Update netconf_config module (#44379)
Fixes #40650
Fixes #40245
Fixes #41541

*  Refactor netconf_config module as per proposal #104
*  Update netconf_config module metadata to core network supported
*  Refactor local connection to use persistent connection framework
   for backward compatibility
*  Update netconf connection plugin configuration varaibles (Fixes #40245)
*  Add support for optional lock feature to Fixes #41541
*  Add integration test for netconf_config module
*  Documentation update
* Move deprecated options in netconf_config module
2018-08-21 20:41:18 +05:30
Tina
0186449e7b Update index.rst (#43490)
Update mention of 'current released version'

+label: docsite_pr
2018-08-16 18:53:47 -04:00
Lucid One
4c62722675 Fixed opensearch double slash issue (#44137)
http://www.sphinx-doc.org/en/stable/config.html#confval-html_use_opensearch
"(without trailing slash)"
2018-08-16 16:28:58 -05:00
Matt Davis
6b81c36533
restore task arg splatting (#43798)
* restore task arg splatting

* reverts #41804
* supersedes #41295
* fixes #42192
* after lots of discussion amongst the core team, we decided to preserve this feature, clarify the runtime warnings/docs, and prioritize a path toward fixing the underlying behavior that causes this feature to be insecure (un-namespaced facts).

* update faq text

note that warning is disabled when inject_facts_as_vars is

* wordsmithing FAQ entry
2018-08-14 12:58:00 -07:00
akira6592
9a39b49ebc fix typo of nos_command module example (#44125)
Thanks for the fix!
2018-08-14 13:26:57 -04:00
Chris Archibald
9dceca8a88 Deprecated Old NetApp Cdot Modules (#43781)
* MVP2 Post ElementSW OSRB sync

* Revert "MVP2 Post ElementSW OSRB sync"

This reverts commit c13db2ad962cd56bffce052c2891c558a2240c72.

Undoing bad push

* move deprecated files

* add documentation

* add new line

* Fix version issue

* fix issue with ignore file, hopefully

* Add ontap modules to porting guide

* fix refs

* add _module to ref
2018-08-14 09:39:52 -07:00
Matt Clay
26a1c534be Fix rst link. 2018-08-13 13:41:37 -07:00
Andreas Olsson
00e5123e4c Update documentation based on 301 permanent redirects (#43675) 2018-08-13 14:54:14 -05:00
Ian Wienand
e5dcebaa8e docs: remove "make viewdocs" reference (#43860)
The "viewdocs" target was removed in
0381bc170c681b6ea8a94467c62e0694e3d9029d; running "make webdocs" gets
you the output for initial testing purposes.
2018-08-13 10:39:09 -04:00
Toshio Kuratomi
a0e6ab09d1 Add note to the porting guide about why we're dropping python-2.6 controller support 2018-08-13 07:38:38 -07:00
Toshio Kuratomi
da26ba3760 Documentatin fixes 2018-08-13 07:38:38 -07:00
Toshio Kuratomi
c4951cce0b Exorcise Python-2.6 2018-08-13 07:38:38 -07:00
Matt Martz
c1c229c6d4
Remove use of simplejson throughout code base (#43548)
* Remove use of simplejson throughout code base. Fixes #42761

* Address failing tests

* Remove simplejson from contrib and other outlying files

* Add changelog fragment for simplejson removal
2018-08-10 11:13:29 -05:00
Lindsay Hill
898d1c8d81 added platform guides for NOS and VOSS (#43854) 2018-08-09 16:54:22 -04:00
Pilou
32eab149b6 [doc] import_role: mention version from which behavior changed and fix some typos (#43843)
* [doc] fix some typos

* [doc] import_role: mention version from which behavior changed
2018-08-09 09:00:59 -05:00
Etienne Deneuve
379fb87b44 add group_by_os_family in azure dynamic inventory (#40702) 2018-08-09 17:00:17 +08:00
Andreas Olsson
4a0b32083c Fix link description typo in tools documentation (#43828) 2018-08-08 16:03:50 -07:00
Will Smith
2de692348f change raising errors example to raise error (#43664)
Example instantiates an AnsibleError which derives from Exception but doesn't actually raise it like intended. This is misleading as it's not clear without examining the code for AnsibleError to know that it's not some function which would raise the exception automatically.
2018-08-06 14:57:55 +05:30
Andreas Olsson
1a11cecaef Prefer https:// links in the docs site
All the changed urls are availible by way of https://. Most of them
already redirect.
2018-08-01 08:20:40 -07:00
Matt Davis
f24054121a
add RMs to current roadmaps (#43511) 2018-07-31 14:52:41 -07:00
Felix Fontein
e7e63ec1e8 Improving syntax highlighting in HTML docs (#42472)
* Adding improved YAML lexer for HTML docs.

* Fixing (some of) the warnings.

* Fixing more warnings.

* Removing ansible- prefix from lexer names.

* Rename extensions -> _extensions.

* Removing superfluous module search path extension.
2018-07-31 15:28:16 -05:00
Matt Martz
01c0446cb5
Add AnsibleModule signature schema, and fix associated issues (#43512) 2018-07-31 15:04:22 -05:00
John R Barker
321081c3b4 atom & yamllint (#43498)
* atom & yamllint
2018-07-31 14:22:38 -05:00
Lindsay Hill
2e873be9b5 Networking Docs - Added platform guides for EXOS and SLX-OS (#43116)
* Added platform guides for EXOS and SLX-OS

* Fixed RST formatting
2018-07-31 14:43:15 -04:00
Jordan Borean
ccb2e9d32f Updated release and maintenance page (#42613) 2018-07-31 09:43:24 -05:00
Ajay Chenampara
d79027b77f Update with Emacs info (#43450)
* Update other_tools_and_programs with Emacs info
2018-07-30 16:23:33 -05:00
Alicia Cozine
5fa8747af3 fixes broken link (#43458) 2018-07-30 14:12:36 -07:00
Abhijeet Kasurde
e2e3bf4073 VMware: documentation update (#42451)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-07-30 13:12:08 -05:00
Brian Coca
c809500c79 document rescue vars (#43101) 2018-07-30 13:05:16 -05:00
Abhijeet Kasurde
9e221da44a VMware: vmware_guest_find scenario guide (#42450)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-07-30 12:53:33 -05:00
Ganesh Nalawade
89676c801f Update troubleshooting doc for command timeout (#43292)
* Update troubleshooting doc for command timeout

* Update timeout document to reflect the new way to set
  command timeout per task basis for network_cli and netconf
  connection type as per PR #42847

* Fix CI failure

* Fix review comment

* Fix typo in doc
2018-07-30 13:29:35 -04:00
Abhijeet Kasurde
d1c0b7a597 VMware: restructure docs (#43065)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-07-30 11:00:00 -05:00
Egor Zaitsev
249a6aae22 New module: routeros — manage MikroTik RouterOS (#41155)
* Implement initial RouterOS support

* Correct matchers for license prompts

* Documentation updates & mild refactor

* Remove one last Cisco function

* Sanity test fixes

* Move imports to the beginning

* Remove authorize property

* Handle ANSI codes

* Revert to_lines function

* CR fixes

* test(routeros): add unit tests

* Added another test (with ANSI colors and banner in fixture).

* Ignore CRLF line endings in system_package_print file

* fix: review by ganeshrn
2018-07-30 10:28:03 +05:30
Lindsay Hill
4a98802b52 Ironware: Deprecate provider, support network_cli (#43285) 2018-07-27 12:51:45 +05:30
Toshio Kuratomi
52449cc01a AnsiballZ improvements
Now that we don't need to worry about python-2.4 and 2.5, we can make
some improvements to the way AnsiballZ handles modules.

* Change AnsiballZ wrapper to use import to invoke the module
  We need the module to think of itself as a script because it could be
  coded as:

      main()

  or as:

      if __name__ == '__main__':
          main()

  Or even as:

      if __name__ == '__main__':
          random_function_name()

  A script will invoke all of those.  Prior to this change, we invoked
  a second Python interpreter on the module so that it really was
  a script.  However, this means that we have to run python twice (once
  for the AnsiballZ wrapper and once for the module).  This change makes
  the module think that it is a script (because __name__ in the module ==
  '__main__') but it's actually being invoked by us importing the module
  code.

  There's three ways we've come up to do this.
  * The most elegant is to use zipimporter and tell the import mechanism
    that the module being loaded is __main__:
    * 5959f11c9d/lib/ansible/executor/module_common.py (L175)
    * zipimporter is nice because we do not have to extract the module from
      the zip file and save it to the disk when we do that.  The import
      machinery does it all for us.
    * The drawback is that modules do not have a __file__ which points
      to a real file when they do this.  Modules could be using __file__
      to for a variety of reasons, most of those probably have
      replacements (the most common one is to find a writable directory
      for temporary files.  AnsibleModule.tmpdir should be used instead)
      We can monkeypatch __file__ in fom AnsibleModule initialization
      but that's kind of gross.  There's no way I can see to do this
      from the wrapper.

  * Next, there's imp.load_module():
    * https://github.com/abadger/ansible/blob/340edf7489/lib/ansible/executor/module_common.py#L151
    * imp has the nice property of allowing us to set __name__ to
      __main__ without changing the name of the file itself
    * We also don't have to do anything special to set __file__ for
      backwards compatibility (although the reason for that is the
      drawback):
    * Its drawback is that it requires the file to exist on disk so we
      have to explicitly extract it from the zipfile and save it to
      a temporary file

  * The last choice is to use exec to execute the module:
    * https://github.com/abadger/ansible/blob/f47a4ccc76/lib/ansible/executor/module_common.py#L175
    * The code we would have to maintain for this looks pretty clean.
      In the wrapper we create a ModuleType, set __file__ on it, read
      the module's contents in from the zip file and then exec it.
    * Drawbacks: We still have to explicitly extract the file's contents
      from the zip archive instead of letting python's import mechanism
      handle it.
    * Exec also has hidden performance issues and breaks certain
      assumptions that modules could be making about their own code:
      http://lucumr.pocoo.org/2011/2/1/exec-in-python/

  Our plan is to use imp.load_module() for now, deprecate the use of
  __file__ in modules, and switch to zipimport once the deprecation
  period for __file__ is over (without monkeypatching a fake __file__ in
  via AnsibleModule).

* Rename the name of the AnsiBallZ wrapped module
  This makes it obvious that the wrapped module isn't the module file that
  we distribute.  It's part of trying to mitigate the fact that the module
  is now named __main)).py in tracebacks.

* Shield all wrapper symbols inside of a function
  With the new import code, all symbols in the wrapper become visible in
  the module.  To mitigate the chance of collisions, move most symbols
  into a toplevel function.  The only symbols left in the global namespace
  are now _ANSIBALLZ_WRAPPER and _ansiballz_main.

revised porting guide entry

Integrate code coverage collection into AnsiballZ.

ci_coverage
ci_complete
2018-07-26 20:07:25 -07:00
John R Barker
3ab9030f05 Document more tools (#43053)
* Document more tools
2018-07-26 17:23:00 -05:00