Commit Graph

2642 Commits (cc477ec920b6b91fa4502f1194ee29cf7ff87197)

Author SHA1 Message Date
Abhijeet Kasurde 70d7513542
IPA: Add option to specify timeout (#44572)
This fix allows user to specify idle timeout for fetch_url used
internally in IPA connection and post_json call.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-08-26 23:18:46 +05:30
Toshio Kuratomi b2932a41b0 Fixup removed and deprecated modules
* Removed modules no longer have documentation
  Decided this was causing people to think that modules were supported
  even after being removed.  This change is a new strategy to have the
  error message trying to use a removed module point people to the older
  documentation.

* Add stubs for modules removed in 2.7
  These are freshly removed so we want people who are still using them
  when they upgrade Ansible to have a hint as to where to find information
  on how to port.

* Finish properly undeprecating include
  include was undeprecated earlier but not all of the pieces that marked
  it as deprecated were reverted.  This change fixes the remaining
  pieces
2018-08-24 15:37:13 -07:00
Tim Rupp 79153b95e5
Adds params to the profile-client-ssl module (#44656)
This patch adds new parameters to the client ssl module.
2018-08-24 15:51:24 -04:00
Rémy Léone 8f9d55529d scaleway: Refactor modules 2018-08-24 18:15:45 +02:00
Yanis Guenane 29cfebe332 scaleway: Create a base class for all the modules
Purpose of this commit is to create a base class for the upcoming
scaleway module to use.

Co-authored-by: Rémy Leone <rleone@online.net>
2018-08-24 18:15:45 +02:00
Will Thames 60e3af42d5 sns_topic boto3 port (#39292)
* Port sns_topic to boto3 and add tests
2018-08-23 21:04:18 -04:00
Sloane Hertel 79ecb4c41f
Add diff mode for ec2_group (#44533)
* Add (preview) diff mode support ec2_group

* Add diff mode to some ec2_group integration tests

* Remove unnecessary arguments and add comment to the module notes

* Add changelog
2018-08-23 19:43:18 -04:00
Yanis Guenane 72d4880b85 Vultr: Introduce the Vultr inventory plugin (#44400)
This commit introduce the Vultr inventory plugin.
2018-08-23 23:14:26 +02:00
Jordan Borean e07352b9de basic.py: catch ValueError when trying to import hash algorithms (#44551)
* basic.py: catch more Exceptions when trying to import md5 hash algorithms
2018-08-22 23:34:50 -07: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
Chris Archibald 6d2c45e447 Bug Fixes issue with netapp.py (#44283)
* Fix issue
2018-08-22 08:31:57 -07:00
Ganesh Nalawade 522dd923c8
Fix network config line diff ignore (#43924)
* If config is added in form of lines add
  capability to ignore confgiure lines given as input
  in task
2018-08-22 19:40:09 +05:30
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
René Moser 40d37a5add doc: fix maintainer's name (#44452) 2018-08-21 16:32:37 +02:00
Monty Taylor 27ac2fc67c Ensure that apt is always chosen on debian/ubuntu (#44413)
One can install alternate packages managers on debuntu machines.
However, doing so doesn't mean you want to suddenly start using them.

Add in a check similar to the fedora yum/dnf check that sets apt as the
pkg_mgr if the ansible_os_family is Debian.
2018-08-20 15:59:56 -04:00
Ryan Brown 6d52afeed6 New module cloudformation_stack_set (#41669)
* [AWS] new module cloudformation_stack_set with integration tests
2018-08-20 14:38:14 -04:00
Sumit Jaiswal 167c389270
This PR is raised to implement update of existing Nios Zone and Network objects (#44118)
* to resolve issue 43658

* removing unused variable
2018-08-20 07:14:11 +00:00
Anil Kumar Muraleedharan 31158b322e Moving method from util to module (#43923)
* Moving method from util to module

* Update cnos_portchannel.py

* To remove unwanted method from cnos.py
2018-08-17 14:17:11 -04:00
Anil Kumar Muraleedharan 6f94f8be08 Update cnos_backup.py (#44246)
* Update cnos_backup.py

* Removing unused methods in cnos.py util file.
2018-08-17 12:07:55 -04:00
Adam Miller 6d95624c22 Refactor yum and dnf, add feature parity (#43621)
* Refactor yum and dnf, add feature parity

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove unnecessary module_utils, move the classes into the module code

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove yum -> yum4, out of scope

Signed-off-by: Adam Miller <admiller@redhat.com>

* use ABCMeta

Signed-off-by: Adam Miller <admiller@redhat.com>

* re-arrange run() caller vs callee

Signed-off-by: Adam Miller <admiller@redhat.com>

* make sanity checks happy

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix yum unit tests

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove unecessary debug statements, fix typo

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix licensing and attribution in yumdnf module_util

Signed-off-by: Adam Miller <admiller@redhat.com>

* include fix from PR 40737

original commit 5cbda9658a
original Author: Strahinja Kustudic <kustodian@gmail.com>

yum will fail on 'No space left on device', fixes #32791 (#40737)

During the installing of packages if yum runs out of free disk space,
some post install scripts could fail (like e.g. when the kernel
package generates initramfs), but yum would still exit with a status
0.  This is bad, especially for the kernel package, because it makes
it unable to boot.  Because the yum module is usually used for
automation, which means the users cannot read every message yum
prints, it's better that the yum module fails if it detects that
there is no free space on the disk.

Signed-off-by: Adam Miller <admiller@redhat.com>

* Revert "fix licensing and attribution in yumdnf module_util"

This reverts commit 59e11de5a2a6efa17ac3f0076bb162348c02e1bd.

* move fetch_rpm_from_url out of yumdnf module_util

Signed-off-by: Adam Miller <admiller@redhat.com>

* fix the move of fetch_rpm_from_url

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-08-17 11:15:11 -04:00
Felix Fontein a99cfc1814 New acme_account_facts module. (#44301) 2018-08-17 15:32:09 +02:00
Yanis Guenane 57497a490b Vultr: Introducing vultrr_block_storage module (#43202)
This commit introduces a new module called vultr_block_storage/

It allows a user to manage block storage volumes on the Vultr cloud.
2018-08-17 10:30:57 +02:00
Felix Fontein cfba02bc3b Allowing to force account URI. (#44282) 2018-08-17 07:43:38 +02:00
George Wilson 90517f4dfa Azure RM Common - use built in module logging (#43820) 2018-08-17 10:40:25 +08:00
Yanis Guenane 2556098479 Vultr: Introducing vultr_server_facts module (#43001)
This commit introduces a new module called vultr_server_facts.

This module aims to return the list of servers avaiable avaiable in
Vultr.

Sample available here:

```
"vultr_server_facts": [
  {
    "allowed_bandwidth_gb": 1000,
    "application": null,
    "auto_backup_enabled": false,
    "cost_per_month": 5.00,
    "current_bandwidth_gb": 0,
    "date_created": "2018-07-19 08:23:03",
    "default_password": "p4ssw0rd!",
    "disk": "Virtual 25 GB",
    "firewallgroup": null,
    "id": 17241096,
    "internal_ip": "",
    "kvm_url": "https://my.vultr.com/subs/vps/novnc/api.php?data=OFB...",
    "name": "ansibletest",
    "os": "CentOS 7 x64",
    "pending_charges": 0.01,
    "plan": "1024 MB RAM,25 GB SSD,1.00 TB BW",
    "power_status": "running",
    "ram": "1024 MB",
    "region": "Amsterdam",
    "server_state": "ok",
    "status": "active",
    "tag": "",
    "v4_gateway": "105.178.158.1",
    "v4_main_ip": "105.178.158.181",
    "v4_netmask": "255.255.254.0",
    "v6_main_ip": "",
    "v6_network": "",
    "v6_network_size": "",
    "v6_networks": [],
    "vcpu_count": 1
  }
]
2018-08-16 20:29:48 +02:00
Zim Kalinowski ac895828c1 adding mysqlserver facts (#43321) 2018-08-16 17:10:07 +08:00
Sumit Jaiswal 6a395d8e24
to resolve 43705 (#44078) 2018-08-16 08:11:30 +00:00
Bjorn Hansen ff6d4e6bf4 azure_rm_common: only remove tags from new_tags if append_tags is not… (#24040) 2018-08-16 11:35:39 +08:00
Martin Nečas 9d5ce3d335 add custom_compatibility_version (#40813)
* add custom_compatibility_version

* use implemented methods get minor and major
2018-08-15 08:56:18 -04:00
tzurE 615337c3d7 Add ibm storage module to ansible (#39960)
* Initial commit for ibm_storage ansible modules
Added modules for managing IBM Spectrum Accelerate storage systems.
Separate modules to manipulate storage entities within the systems.

* sanity checks fix

* PR sanity checks fix

* updated the review to contain only one module, one utility and doc fragment, as instructed at the core meeting.

* IBM_Storage: fixed review issues.

* IBM_Storage: fix review issues

* IBM_Storage: review issues and sanity checks

* IBM_Storage: Review and sanity fixes

* IBM_Storage: pep8 fix

* IBM_Storage: review fixes

* IBM_Storage: review issues

* IBM_storage: license fix
2018-08-15 08:38:11 +02:00
Yanis Guenane 763d66ff9c Vultr: Ensure self.returns is the source of truth (#44115)
As of today, self.returns it not the source of truth. If the return
value from querying the resource contains more values than the one
listed in self.returns, those value will be returned even though not
explicitly specified in self.returns.

This commit ensures that only the values listed on self.returns are
actually returned. The other values not listed are supressed.
2018-08-14 15:43:15 +02:00
Nilashish Chakraborty b14f256d41
Fixes ios_l2_interface and ios_vlan not working on certain interface types issue (#43819)
* Fixes #43654 and #43582

* Remove q statement

* Fix shippable errors

* Fix more shippable errors

* Fix unittest
2018-08-14 11:35:09 +05:30
Trishna Guha 43ae240431
nxos_facts test lldp feature and fix nxapi check_rc (#44104)
Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-14 10:14:13 +05:30
Tim Rupp 96a6011b3f
Update f5 module_utils from downstream (#44092)
Upstreaming fixes and features for f5 module_utils as part of 2.7
dev cycle
2018-08-13 15:14:23 -07:00
Sumit Jaiswal fd4e774cec
Resolves bug where existing host_record was deleted when existing record name is used with different IP (#43235)
* resolves bug 42937

* resolves integration test failure

* resolves integration test failure

* resolves integration test failure
2018-08-13 17:27:06 +00:00
Yanis Guenane fd554e9d75 vultr.py: query_resource_by_key Handle list and dict (#43301)
The Vultr API is inconsistent in the type of the value it returns
based on the resources. While most of the time it will be a dict, for
some resources it will be a list (/v1/user/list, /v1/block/list).

query_resource_by_key() fails if the return value isn't a dict (.items()
does not exist on list). This patch aims to support both list and dict.
2018-08-13 16:59:27 +02:00
Alex Stephen 4ecdf11aaa Bug fixes for gcp_compute_address (#42704) 2018-08-13 10:50:04 -04:00
René Moser 1fb0e11b56
vultr: rename prefix vr_to vultr_ (#43994)
* vultr: rename modules

* replace string vr_ with vultr_

* add deprecation warning

* fix sanity tests

* add changelog
2018-08-13 10:21:50 +02:00
Felix Fontein aef16ee195 ACME: use Cryptography (if a new enough version is available) instead of OpenSSL (#42170)
* Collecting PEM -> DER conversions.

* Using cryptography instead of OpenSSL binary in some situations.

* Moving key-to-disk writing for key content to parse_account_key.

* Rename parse_account_key -> parse_key.

* Move OpenSSL specific code for key parsing and request signing into global functions.

* Also using cryptography for key parsing and request signing.

* Remove assert statements.

* Fixing handling of key contents for cryptography code path.

* Allow to disable the use of cryptography.

* Updating documentation.

* 1.5 seems to work as well (earlier versions don't have EC sign function). Making Python 2.x adjustments.

* Changing option to select_crypto_backend.

* Python 2.6 compatibility.

* Trying to test both backends separately for acme_account.

* Also testing both backends separately for acme_certificate and acme_certificate_revoke.

* Adding changelog entry which informs about select_crypto_backend option in case autodetect fails.

* Fixing YAML.
2018-08-12 19:12:01 +02:00
Yanis Guenane ffcdc53536 module_utils/vultr.py: Ensure comparison is accurate (#43298)
In query_resource_by_key(), there is an equal comparison that is made to
know if the object we are looking for is present. Due to type difference
this comparison doesn't always retrieve true, even when it should.

This is due to the fact that the value in r_data dict are of type
unicode, while the other can be of type int, float,... .

```
>>> a = u'1'
>>> type(a)
<type 'unicode'>
>>> b = 1
>>> type(b)
<type 'int'>
>>> a == b
False
>>> str(a) == str(b)
True
```

Hence the values, for comparison purposes, are casted into strings.
2018-08-11 04:48:44 -04:00
Lindsay Hill 5981a7489b new nos_command module (#43056) 2018-08-10 13:50:02 -07:00
Brian Coca abe68d523c
fix alt linux detection for new versions (#43723)
they dropped the Linux so now it only shows as ALT, it should still be backwards compatible
pkg_mgr detection relies on `Altlinux` string, so properly setting os_distribution should take care of it as side effect
fixes #43539
2018-08-10 15:16:33 -04:00
Alexey Sheplyakov 37361d9b0b pkg_mgr: fixed apt_rpm detection (#43769)
Instead of checking the distribution name (which apparently is tricky to find out)
check if /usr/bin/apt-get is managed by RPM.

Fixes #43539
2018-08-10 15:16:15 -04:00
Chris Archibald 479408330e Adding Common files for NetApp ElementSW release (#43727)
* MVP2 Post ElementSW OSRB sync

* Revert "MVP2 Post ElementSW OSRB sync"

This reverts commit c13db2ad962cd56bffce052c2891c558a2240c72.
2018-08-10 09:33:08 -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
Trishna Guha 96346938ee
nxos_vlan refactor to support non structured output (#43805)
* nxos_vlan refactor to support non structured output

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* unittest fix

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* minor fixes

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* use check_rc

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* address review comment

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* remove additional return statement

* address Nate's review

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
2018-08-10 21:03:56 +05:30
Nathaniel Case f221105882
Prevent data being truncated over persistent connection socket (#43885)
* Change how data is sent to the persistent connection socket.

We can't rely on readline(), so send the size of the data first. We can
then read that many bytes from the stream on the recieving end.

* Set pty to noncanonical mode before sending

* Now that we send data length, we don't need a sentinel anymore

* Copy socket changes to persistent, too

* Use os.write instead of fdopen()ing and using that.

* Follow pickle with sha1sum of pickle

* Swap order of vars and init being passed to ansible-connection
2018-08-10 09:26:58 -04:00
Ganesh Nalawade d1de1e0449
Update iosxr cliconf plugin (#43837)
* Update iosxr cliconf plugin

Fixes #39056

*  Update iosxr cliconf plugin
*  Modify iosxr module_utils code to support
   refactored cliconf plugin api's
*  Other minor changes

* Fix unit test failure

* Update ios, eos, nxos plugin for diff

* Fix review comment
2018-08-10 13:12:51 +05:30
Luca Lorenzetto cdb5140ade New module for managing EMC VNX Block storage (#42945)
* New module for managing EMC VNX Block storage

With the module emc_vnx_sg_member users can add or remove luns from
existing storage groups.

This module has been developed in couple with emc_vnx_mv_promote for
disaster recovery process automation, but can be used by itself.
2018-08-09 10:38:26 -07:00
Anil Kumar Muraleedharan ceb49bdf12 Lenovo size reduce cnos.py of util (#43823)
* Changing Lenovo Inc to Lenovo and update License file to be consistent.

* Moving code in util file to module file. This is done as per a review comment

* Update cnos_vlag.py

* Update cnos_vlan.py

* Update enos_config.py
2018-08-08 14:24:39 -04:00
Lindsay Hill 8429f777da New networking module: voss_command (#43741)
* new voss_command module

* Removed incorrect version_added line
2018-08-08 15:56:50 +02:00
Andreas Calminder 3419c75411 make lockfile destination settable and update doc (#42795)
* make sure lock file is available for others when unlocking

* add tmpdir option and updated documentation
2018-08-08 06:52:11 -07:00
Yunge Zhu 97942cf049 add azure_rm_webapp (#40005)
* add azure_rm_webapp

* fix lint error

* resolve comments

* fix lint

* fix lint

* fix lint

* fix lint

* fix test failure

* fix test

* fix test

* fix test

* refine ux

* resolve comments

* fix lint and test

* fix lint

* code cleanup

* combine windows_frameworks/linux_framework to one

* fix lint in doc

* fix l int

* fix lint

* fix bug

* fix bug

* fix bug

* fix bug

* fix syntax error

* fix lint error

* fix bug of wrong indent

* fix test issue

* update java framework parameter

* fix lint error

* resolve comments

* fix lint

* resolve comments

* fix bug

* update test

* fix lint

* fix test
2018-08-07 15:53:15 -07:00
Dag Wieers d8ba8c03f3
ACI: Make querying links and nodes possible (#43441)
This functionality was not considered when the module was written, but
there's no reason why it shouldn't be supported.

We had to rework the query string construction and object filtering.
This new functionality allows to filter on arbitrary keys and supports
None values.

This PR fixes various issues with the existing framework, including
querying specific objects using construct_url_4 (i.e.
aci_epg_to_contract and aci_static_binding_to_epg)
2018-08-07 23:54:54 +02:00
Ganesh Nalawade 35adc12c38
Update junos cliconf plugin (#43643)
* Update junos cliconf plugin

Fixes #39056

Refactor junos cliconf plugin api and other
minor changes

* Fix CI issue

* Fix CI failure
2018-08-06 10:08:05 +05:30
Anil Kumar Muraleedharan 119376a685 Refactoring to persistence connection BGP, factory, reload, save, showrun modules (#43534)
* Refactoring to persistence connection BGP, factory, reload, save, showrun modules

* Refactoring methods from Util to module file

* Removing BGP Utility methods

* Adding to errors that need to be ignored
2018-08-03 08:40:24 -04:00
Aaron Haaf 8a56aa322e Implement signed_request for sigV4 requests (#42758)
* Implement signed_request for sigV4 requests

* Correct linting errors

* More linting changes. Correct import.

* Final linting fix for inline comments

* Correct import of urllib.parse

* Update copyright and shebang line

* Remove shebang

* Put boto3 requirement. Abtract out get_aws_key_pair for module consumption.

* Dummy out unused region variable.

* Handle Boto3 ImportError

* - implement get_aws_credentials_object with willthames suggestion
- Handle session_token

* Make quote style consistant

* Chop arugment line up

* Correct indent
2018-08-03 08:31:10 +10:00
Pilou 12973e0541 Tower modules: move HAS_TOWER_CLI check in module_utils and minor improvements (#39809)
* tower_* modules: move HAS_TOWER_CLI in TowerModule

Besides this change allows to define other common parameters such as
mutually_exclusive.

* tower_*: config file can not be used with auth params

* tower module_utils: remove useless call to expanduser

'path' type: expanduser & expandvars are automatically called
2018-08-02 11:17:39 -04:00
Trishna Guha 09ae1ec308
cliconf refactor eos, nxos fix (#43596)
* cliconf refactor eos and nxos fix

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* move nxos replace check to plugins

Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>

* address review comment

* fix shippable
2018-08-02 16:34:48 +05:30
mjmayer 4549962f85 Fix comparison of priority (#43329)
The existing rule priority comes from aws as a string. It is then
compared to the new rule priority, which is defined as an int. This change
casts the new rule priority as a string making the comparison work. The
reason to cast it as a string rather than an int is used because a priority
can also be set to 'default'. When trying to case 'default' as an int, it creates
an error.
2018-08-02 17:05:20 +10:00
Ganesh Nalawade 3f3101dfe5
Raise exception if command timeout is triggered (#43078)
* Raise exception if command timeout is triggered

Fixes #43076

If persistent connection timeout is triggered, riase
exception which will be send over socket to module code
instead of silently shutting down the socket.

* Fix CI failure

* Fix review comment

* Fix CI failure

* Fix review comment

* Fix review comment
2018-08-02 12:08:37 +05:30
joren485 6d680d8281 Use socket.error instead of non-existent socket.Error (#43499) 2018-08-01 10:24:31 -04:00
Sumit Jaiswal 01fb7ea150
Allow DNS bypass for add/remove of host records with nios_host_record (#42934)
* fixes issue 42420

* fixes issue 42420

* fix shippable docs error

* shippable fix and test case add

* shippable fix and test case add

* shippable fix and test case add

* shippable fix

* removing extra assert

* shippable fix
2018-08-01 10:33:58 +05:30
Sumit Jaiswal e96f90b440
Nios integration and unit tests for all remaining nios new modules (#43399)
* new nios module support

* new nios module support

* new nios module support

* new nios module support

* new nios module support

* new nios module support

* new nios module support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* new nios module integration test support

* test/integration/targets/nios_naptr_record/tasks/nios_naptr_record_idempotence.yml

new nios module integration test support

* fix pep8 error

* fix pep8 error

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end

* adding newline at end
2018-08-01 08:54:01 +05:30
Joren Vrancken b954917761 Surround top-level function and class definitions with two blank lines. 2018-07-31 12:06:56 -07:00
Joren Vrancken d5bec06150 Fix typo of stderr 2018-07-31 13:23:05 -04:00
Brian Coca 222c907ffb
actually check we can run scm command for roles (#43315)
* actually check we can run scm command for roles
* a better error message than file not found
* more narrow exception hanlding
* refactor common functions for more extended use and further 'basic.py' separation
2018-07-31 13:04:05 -04:00
Alex 29a62038b7 module_utils_service: Fix glob path of rc.d (#43018)
Some distribtuions like SUSE has the rc%.d directories under /etc/init.d

Quote of /etc/rc.d.README on SLES11.

"Some people expect the system startup scripts in /etc/rc.d/.
We use a slightly different structure for better LSB compliance."
2018-07-31 11:56:11 -04:00
Ganesh Nalawade 857200fa7f
Update cliconf get_config api (#43472)
*  Change `filter` parameter to `flag` to be in sync
   with original naming convention
2018-07-31 02:53:29 -07:00
Jordan Borean d115794bf7 PrivilegeUtil: use native methods to get pointer offset (#43461) 2018-07-30 18:33:49 -04:00
Jordan Borean 9259f31fee Add Ansible.ModuleUtils.PrivilegeUtil and converted code to use it (#43179)
* Add Ansible.ModuleUtils.PrivilegeUtil and converted code to use it

* Changed namespace and class to be a better standard and fixed some typos

* Changes from review

* changes to avoid out of bound mem of server 2008

* changes to detect failure when setting a privileged not allowed
2018-07-30 14:48:54 -07: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
Ganesh Nalawade 21dcaa4349
Handle ConnectionError exception in network modules (#43353)
* Handle ConnectionError exception in network modules

* Catch ConnectionError expection and fail module in case
  expection is raised.

* Fix CI failure
2018-07-30 10:24:58 +05:30
Abhijeet Kasurde a44adc1dc9 f5: raise exception (#43409)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-07-29 21:10:42 -07:00
Jose Delarosa 779d273192 Add new module for Redfish APIs (#41656)
* Add new module for Redfish APIs

Communicates with Out-Of-Band Controller through Redfish APIs
Module gathers hardware information and sends back

* Removed unused library imports

* Removed token entry from headers

* Made 'command' optional and defined default value for each 'category'

* Replace 'result' with 'ansible_facts' for returned dict variable

* Removed unused variable definitions and library imports

* Renamed dicts where data is returned.

Should make it easier to sort through returned data that is placed
in one file.

* Defined dicts to specify available categories and commands in each one.

- Allows specifying default command for each category
- Allows specifying all commands for each category
- Removed Inventory category and moved commands to System category
- Renamed dicts where data is returned to allow to dump more than one in a file

* Remove choice[] since it's redundant

* Added flexibility when specifying categories

- If a category is not specified, it sets a default value
- Can handle more than one category
- Will accept value "all" for category which will set to all available
- Renamed category System to Systems to better reflect Redfish API

* Defined default category in a variable

* Made category argument a list

* Added examples

* Made command argument a list

* Replaced 'ansible_facts' with 'redfish_facts' for returned dict variable.

* Added default value for category in documentation

* Moving redfish_facts inside ansible_facts

* Updated how results dicts are constructed, where applicable

* Improved error messages

* Removed unused variables

* Undo commit 66a7dcd789726913bdb7a25e59cc3aa2125db95d due to variable 'e' oversight
2018-07-27 12:21:25 -04:00
Anil Kumar Muraleedharan f2c9a6b126 Lenovo port to persistence 1 (#43194)
* CNOS Vlag module is refactored to use persistence connection instead of paramiko.

* Changing interface and port channel modules to persistent connection and adding UT for them.

* Fixing pep8 issues

* Removing trailing new line

* Removing trailing new line

* Removing trailing new line

* Correcting indentation mistake

* Update cnos_vlag.py

* Removing commented examples

They are commented because those configurations are not meant for L2 ports
2018-07-27 10:47:02 -04:00
Zim Kalinowski 750774d768 fixing aiuth source (#42923) 2018-07-27 14:48:17 +08:00
Abhijeet Kasurde aefe963483
VMware: handle special characters in datacenter name (#42922)
This fix handles special characters in VMware objects

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-07-27 12:17:10 +05:30
Ganesh Nalawade af3f510316
nxos cliconf plugin refactor (#43203)
* nxos cliconf plugin refactor

Fixes #39056

*  Refactor nxos cliconf plugin as per new api definition
*  Minor changes in ios, eos, vyos cliconf plugin
*  Change nxos httpapi plugin edit_config method to be in sync with
   nxos cliconf edit_config

* Fix CI failure

* Fix unit test failure and review comment
2018-07-27 11:05:40 +05:30
Abhijeet Kasurde dd73bae51a VMware: handle indexError for snapshot details (#42575)
Fixes: #42539

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-07-27 00:55:21 -04:00
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
Adam Miller 66b1adfc83 fix fedora version dnf fact, default pkg_mgr detection per distro family (#43261)
* fix fedora version dnf fact, default pkg_mgr detection per distro family
* loop over possible dnf/yum paths in case there are multiple canonical sources later in life

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-07-25 16:20:07 -07:00
Dag Wieers 9bf22309b3 Clarify uncertain nature of tracebacks on Python 2 (#42513)
* Only add exception/traceback on Python 3

On Python 2 the traceback could be any exception from the stack frame
and likely unrelated to the fail_json call.

On Python 3 the traceback is cleared outside any exception frame, so the
call always returns the most inner traceback (if any), and therefor is
most likely related to the fail_json call.

* Add uncertainty to traceback on Python 2

On Python 2 the last exception in the stack frame is being returned,
this could be unrelated to the actual error, especially if fail_json()
is called outside an except: block.
2018-07-25 11:49:16 -04:00
Deepak Agrawal bf544c2200
Add support for commit label in iosxr_config (#42931)
* Add support for commit label in iosxr_config

* sanity pep8 etc fixes
2018-07-24 17:16:26 +05:30
Nathaniel Case 8a0967554f
Actually fix eos_facts feature detection (#43155) 2018-07-23 14:51:44 -04:00
Adam Miller 562ff66a98 Fix pkg_mgr_name fact finding for Fedora (#40922)
* Properly handle default package manager vs apt

For distros where apt might be installed but is not the default
package manager for the distro, properly identify the default distro
package manager during fact finding and re-use fact finding from
DistributionFactCollector and instead of reimplementing small
portions of it in PkgMgrFactCollector

Add unit test to always check the apt + Fedora combination to test
the new code.

Fixes #34014

Signed-off-by: Adam Miller <admiller@redhat.com>

* remove q debugging output I accidentally left behind

Signed-off-by: Adam Miller <admiller@redhat.com>

* add os_family to the conditional so we're only hitting that code path when needed

Signed-off-by: Adam Miller <admiller@redhat.com>

* setup for a _check* pattern for general os_family group pkg_mgr checking

Signed-off-by: Adam Miller <admiller@redhat.com>

* use Mock.patch decorator for os.path.exists in TestPkgMgrFactsAptFedora

Signed-off-by: Adam Miller <admiller@redhat.com>
2018-07-23 10:56:09 -04:00
Matt Martz 8d933928d2 Only assume GET if no data, otherwise POST (#43133)
* Only assume GET if no data, otherwise POST. Fixes #42876 #43091 #42750
2018-07-23 07:30:10 -07:00
Will Thames 0b77262288 Add merge_type parameter to k8s module (#42219)
Allows patching of custom Kubernetes resources that
don't support strategic merge patching

Check that openshift module supports content_type param
(requires version newer than 0.6.0)
2018-07-22 21:05:25 -07:00
Deepak Agrawal 20769de560
Don't close persistent connection socket on command timeout (#43071)
* Don't close persistent connection socket on command timeout

* handle exception in client of ansible-connection instead removing socket removal
2018-07-23 07:07:06 +05:30
Nathaniel Case 8c620a17d4
Let called functions use `method` keyword (#43086)
Hopefully we can live without `method_` instead
2018-07-22 15:26:44 -04:00
abirami-n 1152f86ba1 Fixes #41549 (#41551)
* Fix_module_correction
2018-07-20 09:19:20 -07:00
Thierry Bouvet 5d23406926 Fix ssl_version default value. (#42955)
* Fix ssl_version default value.

* Add changelog
2018-07-20 11:32:04 -04:00
Nathaniel Case dba975470d
Eos subnet overlap fix (#43023)
* Detect overlapping subnet & provide better errors
2018-07-20 11:02:21 -04:00
Tim Rupp 867dedc787
Updates F5 module utils (#43047)
New functions and fixes/refactorings for existing functions for
the 2.7 work
2018-07-19 18:39:12 -07:00
Brian Coca 9217fbb7dd
better error messasge (#42770)
* better error messasge
2018-07-19 12:13:09 -04:00
Samer Deeb 3ca4a35334 Add support for global IGMP configuration on onyx switches (#42164)
* Add support for global IGMP configuration on onyx switches

Signed-off-by: Samer Deeb <samerd@mellanox.com>

* Add support for global IGMP configuration on onyx switches

Signed-off-by: Samer Deeb <samerd@mellanox.com>
2018-07-18 12:20:21 -04:00
Anil Kumar Muraleedharan 0897e79bd1 Persistence connection for cnos_vlan (#42500)
* Changing Lenovo Inc to Lenovo and update License file to be consistent.

* Changing cnos_vlan from paramiko to persistence connection of Ansible. Also talking care of CLI changes in CNOS commands with backward compatibility.

* Fixing Validation issues

* Trailing lines removal

* Review comments of Gundalow are getting addressed. He mentioned only at one place for cnos.py. But I have covered the entire file.

* Changes to incorporate Review comments from Qalthos

* Removing configure terminal command from module code

* Aligning with change in run_cnos_commands method changes

* Editing cliconf for latest CNOS CLIs
2018-07-18 12:17:08 -04:00
Yanis Guenane 9b898ebc20 Vultr: Introducing vr_sshkey_facts module (#42615)
This commit introduces a new module called vr_sshkey_facts.

This module aims to return the list of SSH keys avaiable in Vultr.

Sample available here:

```
"vultr_sshkey_facts": [
   {
    "date_created": "2018-07-10 14:49:13",
    "id": "5b43c760d7d84",
    "name": "me@home",
    "ssh_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+ZFQv3MyjtL1BMpSA0o0gIkzLVVC711rthT29hBNeORdNowQ7FSvVWUdAbTq00U7Xzak1ANIYLJyn+0r7olsdG4XEiUR0dqgC99kbT/QhY5mLe5lpl7JUjW9ctn00hNmt+TswpatCKWPNwdeAJT2ERynZaqPobENgewrwerqewqIVew7qFeZygxsPVn36EUr2Cdq7Nb7U0XFXh3x1p0v0+MbL4tiJwPlMAGvFTKIMt+EaA+AsRIxiOo9CMk5ZuOl9pT8h5vNuEOcvS0qx4v44EAD2VOsCVCcrPNMcpuSzZP8dRTGU9wRREAWXngD0Zq9YJMH38VTxHiskoBw1NnPz me@home"
  }
]
```
2018-07-18 09:53:58 +02:00
Tim Rupp 290df027e3
Adds the ipaddress compat library backport from Python 3.x (#42265)
This library is a backport (to 2.x versions of Python) of the code
that is found in the mainline versions of Python 3.x. It is being
included so that networking vendors, and others, can make use of it
without needing to add a python module dependency to their own modules.

A separate dependency would add to user burden of satisfying those
dependencies before using some Ansible modules.

In a previous core meeting, this was approved. Naming of the directory
it is found in was up for debate, but "compat" was the first directory
to have some sort of concensus.
2018-07-17 11:37:23 -07:00
Fabian von Feilitzsch 9eccc96586 Special case project creation so that it is possible (#42132) 2018-07-17 13:35:21 -05:00