Commit Graph
56 Commits
Author SHA1 Message Date
Yanis GuenaneandToshio Kuratomi d45c2cec55 Localization: Import first set of translated files 2021-06-09 11:18:12 -07:00
Yanis GuenaneandAlicia Cozine fcec3d0600 Become plugin: Update documentation to match other plugin doc (#53266) 2019-03-04 07:13:52 -06:00
Yanis GuenaneandJohn R Barker 339658dee2 BOTMETA: Fix Spredzy's case (#52019) 2019-02-11 09:33:22 +00:00
Yanis GuenaneandAlicia Cozine a7bf505474 inventory/tower: authors -< author so Doc can pick it up (#45936) 2018-09-20 16:44:22 -05:00
Yanis Guenaneandansibot 857a553fa1 Vultr: Create the Vultr Guide (#44515) 2018-08-31 10:42:07 -04:00
Yanis GuenaneandRené Moser 9869f378fd inventory/vultr: Few minor improvements (#44622) 2018-08-24 15:35:29 +02:00
Yanis GuenaneandRené Moser 957c90934a BOTMEA: Add for lib/ansible/plugins/inventory/vultr.py (#44623) 2018-08-24 10:55:33 +02:00
Yanis GuenaneandJohn R Barker a791bd2059 BOTMETA: Create a $team_scaleway and add Spredzy in it (#44597) 2018-08-23 23:34:23 +01:00
Yanis GuenaneandRené Moser 72d4880b85 Vultr: Introduce the Vultr inventory plugin (#44400)
This commit introduce the Vultr inventory plugin.
2018-08-23 23:14:26 +02:00
Yanis GuenaneandRené Moser 0c65bcb23b Vultr: Introducing vultr_network_facts module (#43600)
This commit introduces a new module called vultr_network_facts.

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

Sample available here:

```
"vultr_network_facts": [
  {
    "date_created": "2018-08-02 11:18:49",
    "id": "net5b62e8991adfg",
    "name": "mynet",
    "region": "Amsterdam",
    "v4_subnet": "192.168.42.0",
    "v4_subnet_mask": 24
  }
]
```
2018-08-20 00:29:05 +02:00
Yanis GuenaneandRené Moser 902c4a04c6 Vultr: Introducing vultr_network module (#43598)
This commit introduces a new module called vultr_network.

It allows a user to manage networks on the Vultr cloud.
2018-08-18 21:56:50 +02:00
Yanis GuenaneandRené Moser e635dc6969 Vultr: Introducing vultr_block_storage_facts module (#43218)
This commit introduces a new module called vultr_block_storage_facts.

This module aims to return the list of block storage volume avaiable
in Vultr.
2018-08-17 19:32:13 +02:00
Yanis GuenaneandRené Moser 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
Yanis GuenaneandRené Moser 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
Yanis GuenaneandRené Moser 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
Yanis GuenaneandRené Moser 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
Yanis Guenaneandansibot 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
Yanis GuenaneandRené Moser 68e6587748 Vultr: Ensure facts works when no resource exists (#43603)
Vultr API is being inconsisten in what it returns. An empty list when no
resources exists, but a dict of dict when they do. The case needs to be
handled so the module do not fail. An extra test has been added.
2018-08-07 20:12:36 +02:00
Yanis GuenaneandSam Doran d94cc3568a CloudStack: Fix typos in the Guide (#43303) 2018-07-26 16:08:32 -04:00
Yanis GuenaneandRené Moser b1c60eaa83 Vultr: Introducing vr_startup_script_facts module (#43004)
This commit introduces a new module called vr_startup_script_facts.

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

Sample available here:

```
"vultr_startup_script_facts": [
  {
    "date_created": "2018-07-19 08:52:55",
    "date_modified": "2018-07-19 08:52:55",
    "id": 327140,
    "name": "myteststartupscript",
    "script": "#!/bin/bash\necho Hello World > /root/hello",
    "type": "boot"
  }
]
```
2018-07-20 20:32:32 +02:00
Yanis GuenaneandRené Moser 1754f533b5 Vultr: Introducing vr_firewall_group_facts module (#42997)
This commit introduces a new module called vr_firewall_group_facts.

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

Sample available here:

```
"vultr_firewall_group_facts": [
  {
    "date_created": "2018-07-17 12:22:51",
    "date_modified": "2018-07-17 12:24:47",
    "description": "ansible-firewall-group",
    "id": "fb5a0876",
    "instance_count": 0,
    "max_rule_count": 50,
    "rule_count": 1
  }
]
```
2018-07-19 11:02:25 +02:00
Yanis GuenaneandRené Moser f6ca231729 Vultr: Introducing vr_dns_domain_facts module (#42994)
This commit introduces a new module called vr_dns_domain_facts.

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

Sample available here:

```
"vultr_dns_domain_facts": [
  {
    "date_created": "2018-07-19 07:31:14",
    "domain": "ansibletest.com",
  }
]
```
2018-07-19 10:13:24 +02:00
Yanis GuenaneandRené Moser 2c4ba7a9e9 Vultr: Introducing vr_user_facts module (#42951)
This commit introduces a new module called vr_user_facts.

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

Sample available here:

```
"vultr_user_facts": [
  {
    "acls": [],
    "api_enabled": "yes",
    "email": "mytestuser@example.com",
    "id": "a235b4f45e87f",
    "name": "mytestuser"
  }
]
```
2018-07-18 21:49:02 +02:00
Yanis GuenaneandRené Moser a826ac3ea9 vultr: Add proper extension to vr_region_facts(.py) (#42944) 2018-07-18 14:49:27 +02:00
Yanis GuenaneandRené Moser 9a1185e57c Vultr: Introducing vr_plan_facts module (#42470)
This commit introduces a new module called vr_plan_facts.

This module aims to return the list of plan avaiable avaiable to use on
booted servers.

Sample available here:

```
"vultr_plan_facts": [
  {
    "available_locations": [
      1
    ],
    "bandwidth": 40.0,
    "bandwidth_gb": 40960,
    "disk": 110,
    "id": 118,
    "name": "32768 MB RAM,110 GB SSD,40.00 TB BW",
    "plan_type": "DEDICATED",
    "price_per_month": 240.0,
    "ram": 32768,
    "vcpu_count": 8,
    "windows": false
  }
]
```
2018-07-18 12:39:55 +02:00
Yanis GuenaneandRené Moser aef97c5ac4 Vultr: Introducing vr_os_facts module (#42473)
This commit introduces a new module called vr_os_facts.

This module aims to return the list of OSes avaiable avaiable to use to
boot servers.

Sample available here:

```
"vultr_os_facts": [
  {
    "arch": "i386",
    "family": "ubuntu",
    "id": 216,
    "name": "Ubuntu 16.04 i386",
    "windows": false
  }
]
```
2018-07-18 11:32:04 +02:00
Yanis GuenaneandRené Moser 11fd20b5ea Vultr: Introducing vr_region_facts module (#42471)
This commit introduces a new module called vr_region_facts.

This module aims to return the list of region avaiable avaiable to use
where boot servers.

Sample available here:

```
"vultr_region_facts": [
    {
      "block_storage": false,
      "continent": "Europe",
      "country": "FR",
      "ddos_protection": true,
      "id": 24,
      "name": "Paris",
      "regioncode": "CDG",
      "state": ""
     }
  ]
```
2018-07-18 10:42:20 +02:00
Yanis GuenaneandRené Moser 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
Yanis GuenaneandRené Moser 577427b1c2 vultr: Make get_result handle list (#42890)
Currently get_result() can only handle a dict. When requiring facts, and
when there is more than one fact, get_result() should be able to handle
a list of dicts, so the normalization process happens to all the items.
2018-07-17 16:24:21 +02:00
Yanis GuenaneandRené Moser 08acc74056 vultr.py: fix env var handling (#42659) 2018-07-16 15:00:08 +02:00
Yanis GuenaneandRené Moser 593f484d77 Fix E324 for vultr modules. (#42464) 2018-07-10 07:51:05 +02:00
Yanis Guenaneandansibot 42c2fd72ae Fix test_create_jks_success failing on SELinux machine (#42001)
Currently TestCreateJavaKeystore::test_create_jks_success is failing on
a machine with SELinux because set_context_if_different is not mocked
and hence tries to access a file that doesn't exist because it has been
mocked previously.

Also, changing path to a path that won't exist for sure.
2018-06-27 11:43:31 -04:00
Yanis GuenaneandAdam Miller 496d10f7a8 Remove support for SSLv2 in test suite when not defined. (#39183)
When running the test test/units/module_utils/urls/test_open_url.py
test_open_url_no_validate_certs, the test fails because of the SSLv2
check.

Test is run on a machine using openssl 1.1.0g. By reading the openssl
man page[1], one can see that support for SSLv2 has been removed.

> Support for SSLv2 and the corresponding SSLv2_method(),
> SSLv2_server_method() and SSLv2_client_method() functions where removed
> in OpenSSL 1.1.0.
>
> SSLv23_method(), SSLv23_server_method() and SSLv23_client_method() were
> deprecated and the preferred TLS_method(), TLS_server_method() and
> TLS_client_method() functions were introduced in OpenSSL 1.1.0.

Hence this commit remove the uses of this flag when it is not defined.

[1] https://www.openssl.org/docs/man1.1.0/ssl/SSLv23_method.html
2018-05-25 12:50:19 -05:00
Yanis GuenaneandJohn R Barker 99497ce54c openssl_certificate: Handle dump() in check_mode (#38386)
Currently, when ones run the module in check_mode it tries to retrieve
values from the actual certificate generated in the generate() function.

Since in check_mode we call dump() without calling generate(), self.cert
is None, leading to self.cert.get_notBefore(), self.cert.get_notAfter()
and self.cert.get_serial_number() raising an error.

>  NoneType' object has no attribute 'get_notBefore'

The solution is to have two way to handle dump() method, whether its run
in check_mode=True or check_mode=False leading to different way the
information is retrieved.
2018-04-09 09:26:02 +01:00
Yanis GuenaneandMichael Scherer 6633eaa2c1 crypto: Fix incorrect type for privatekey_passphrase (#36868)
Fix incorrect type for privatekey_passphrase path -> str
2018-02-28 17:19:22 +01:00
Yanis GuenaneandJohn R Barker a2b00e9b52 openssl_certificate: Ensure issuer field is set (#34982)
Ensure the Issuer field of the certificate is set when using the
selfsigned backend.

Fixes: https://github.com/ansible/ansible/issues/34963
2018-01-18 13:35:05 +00:00
Yanis GuenaneandAbhijeet Kasurde a724b8e722 openssl_certificate: Return self.cert.get_VALUES() (#33970)
Currently when we make up the return value, we take values based of the
parameters rather than the generated openssl_certificate itself.

This commits returns the actual certificate values making it all time
accurate.
2017-12-18 14:34:34 +05:30
Yanis GuenaneandAbhijeet Kasurde a773bd7ad5 openssl_publickey: Ensure format OpenSSH is idempotent (#33264)
Currently the check() method for idempotence only assumes the public
key is under the form of a PEM file when its not always the case.

The module openssl_publickey allows one to generate OpenSSH format
publickey. This leads to idempotence not being detected.
2017-11-28 14:08:47 +05:30
Yanis GuenaneandRené Moser c800048e93 Adding extends_documenation_fragment in crypto/* (#33253)
All crypto modules uses file common arguments to specify generated file
permissions. This commits aims to add the extends_documentation_fragment
in the doc so it is automatically stated.
2017-11-25 22:50:28 +01:00
Yanis GuenaneandAbhijeet Kasurde 32635577a3 openssl_publickey: Do not fail on empty existing file (#33255)
Currently during the check phase, the code considers the file to be
a public key if the file exist - which is not necessarily true.

This commits aims to ensure that the file is actually a publickey else
returns false for the check.
2017-11-25 03:29:06 +00:00
Yanis GuenaneandSam Doran 0648e339a7 openssl: remove static dict for keyUsage (#30339)
keyUsage and extendedKeyUsage are currently statically limited via a
static dict defined in modules_utils/crypto.py. If one specify a value
that isn't in there, idempotency won't work.

Instead of having static dict, we uses keyUsage and extendedKyeUsage
values OpenSSL NID and compare those rather than comparing strings.

Fixes: https://github.com/ansible/ansible/issues/30316
2017-09-14 12:03:00 -04:00
Yanis GuenaneandRené Moser 3e4a306a42 openssl_certificate: Correctly set the version (#30314)
Current openssl_certificate is mistakenly taking its derivating its
version number from the csr version number.

Thos two fields are completly unrelated and hence the version number of
the certificate should be able to be directly specified (via
selfsigned_version parameter).
2017-09-14 15:21:32 +02:00
f7f3f4b62c crypto: Add new module openssl_certificate (#28263)
This commit aims to add the openssl_certificate module.

This module allows a user to manage openssl certificates.
This module implement the notion of backend provider, making this module
extensible to anyone wish as long as a provider is coded for it.

The current three providers are the following:

  * selfsigned: Allows a user to self signed a certificate
  * acme: Allow a user to generate acme-based CA challenges certificate.
          (As of this writing this targets letsencrypt)
  * assertonly: Allow a user to assert the characteristic of her SSL
                certificate

Co-Authored-By: Markus Teufelberger <mteufelberger+ansible@mgit.at>
2017-08-22 19:40:24 +02:00
Yanis GuenaneandJohn R Barker d4e7b045b7 Extend test coverage for openssl modules (#27548)
* openssl_privatekey: Extend test coverage

Extend the coverage of the integration test for the module
openssl_privatekey.

New tests have been added:

  * passphrase
  * idempotence
  * removal

Co-Authored-By: Pierre-Louis Bonicoli <pierre-louis.bonicoli@gmx.fr>

* openssl_publickey: Extend test coverage

Extend the coverage on the integration test for the module
openssl_publickey.

New tests have been added:

  * OpenSSH format
  * passphrase
  * idempotence
  * removal
2017-08-21 12:19:41 +01:00
Yanis GuenaneandRené Moser b658ea8da2 openssl_csr: Ensure array comparison is deterministic (#28265)
When comparing expected and current value for keyUsage and
extendedKeyUsage current behavior is not deterministic.

As we compare two arrays, based on the order the value have been
specified, False might be returned when the two arrays actually matches.
In order to have a deterministic comparison we compare sets rather than
arrays.
2017-08-16 14:35:25 +02:00
Yanis Guenaneandansibot 8ed7417ff9 openssl_csr: Allow user to specify criticality of extensions (#28173)
Allow user to mark the x509v3 extensions as critical, by specifying the
$extension_critical boolean, where $extension is the name of the
extension.

Currently this module supports only 3 differents x509v3 extensions:

  * keyUsage
  * extendedKeyUsage
  * subjectAtlName

There are more to come.
2017-08-15 04:29:29 -04:00
Yanis GuenaneandJohn R Barker d1c51405da BOTMETA: Add Spredzy as maintainter of modules_utils/crypto.py (#27691) 2017-08-03 10:41:31 +01:00
Yanis GuenaneandRené Moser 9e41fd399b Removing openssl_publickey from pep8 legacy files (#27414) 2017-07-28 11:10:02 +02:00
Yanis GuenaneandJohn R Barker 8b22c45a45 Enable integration tests for the crypto/ namespace (#26684)
Crypto namespace contains the openssl modules. It has no integration
testing as of now.

This commits aims to add integration tests for the crypto namespace.
This will make it easier to spot breaking changes in the future.

This tests currently apply to:

  * openssl_privatekey
  * openssl_publickey
  * openssl_csr
2017-07-25 12:18:18 +01:00
Yanis GuenaneandSam Doran 70f52e3043 crypto: Build a base object for openssl modules (#26945)
More openssl modules are about to be made, each of them rewriting
some pieces of code that can be refactored and used via a common
library.

This commit aims to create this "base" object and the common functions
one might want to reuse in order to avoid duplication.
2017-07-21 11:54:04 -04:00
Yanis GuenaneandSam Doran bc30dddb81 openssl_publickey: Allow one to specify the output format (#27031)
Public key can be extracted extracted in different format from
the PEM formatted RSA pair.

This commit allows the user to specify the format s/he wants to generate
the public key:

  * PEM
  * OpenSSH
2017-07-19 08:48:11 -04:00
Yanis GuenaneandSam Doran 1dc608f2cf OpenSSL modules uses file_common_args (#27032)
* openssl_publickey: Allow one to specify file permission

Allow a user to specify file permissions on the generated publickey via
the file module common arguments.

* openssl: Add documentation regarding file_common_args

Add documentation for those modules to let the user know that he can
rely on file_common_args to specify file permissions.
2017-07-19 08:47:23 -04:00
Yanis Guenaneandansibot 0b1cca56f7 openssl_csr: Fix typo in the documentation (#27028)
Documentation state 'organizationUnitName' when the actual name of the
param is 'organizationalUnitName'
2017-07-19 05:17:45 -04:00
Yanis GuenaneandJohn R Barker 05477412ba Enforce the _raw_params variable with include_role (#26430)
Currently, when using this test, it fails with the following error
message:

> AttributeError: 'NoneType' object has no attribute 'rfind'

This is because there is no _raw_params value for parent_include.args
here
https://github.com/ansible/ansible/blob/devel/lib/ansible/playbook/included_file.py#L104

This commit ensure the value is specified so it can be reused and hence
not fail at this specific line.
2017-07-05 15:53:10 +01:00
Yanis GuenaneandJohn R Barker 88099e2acb openssl_privatekey: Add publickey fingerprint (#22202)
This commit adds the fingerprint of the public key in openssl_privatekey
and openssl_publickey returned values.

```
{
  "changed": false,
  "filename": "/tmp/cert.pem",
  "fingerprint": {
    "md5": "31:22:14:58:c6:b1:7b:2a:48:89:b5:02:43:0a:d7:88",
    "sha1": "ed:e5:59:ba:9b:98:5b:e1:01:ef:4b:eb:f0:d1:1d:ee:84:88:c7:78",
    "sha224": "e1:c0:a6:bd:20:30:40:5b:c0:32:14:4a:01:3c:4b:c3:8a:49:a5:1f:ed:39:75:a4:57:e6:93:87",
    "sha256": "8a:18:86:88:79:e5:57:ca:c3:3c:89:92:ae:54:7f:ac:94:12:e2:c7:aa:c2:7c:97:77:cb:e7:8b:5e:1f:af:28",
    "sha384": "7a:5d:c2:49:cc:84:f4:74:ed:76:c7:03:e5:8d:aa:3b:31:b0:ba:0e:29:d2:76:3c:0e:3c:e5:d2:fd:b4:36:b1:70:b5:a6:bb:17:f4:db:ac:d6:75:81:36:42:dd:61:0c",
    "sha512": "da:0a:14:52:c6:c0:ab:fa:52:55:2a:85:65:35:7a:f6:5d:95:1d:d3:95:ae:bd:b9:d8:e0:75:dd:4f:0c:c9:3c:59:82:64:fa:d8:50:26:4f:b7:3a:5d:e8:6f:5d:de:9a:fe:ef:c2:c8:57:9d:e3:c0:c9:dd:4a:a9:bd:7a:77:f3"
  },
  "size": 4096,
  "type": "RSA"
}
```
2017-07-03 20:46:45 +01:00
Yanis GuenaneandMichael Scherer 2705e7a8aa crypto: Add new module openssl_csr (#21004)
This new module allows one to automate the generation of OpenSSL
Certificate Signing Request. It supports SAN extension.
2017-04-06 18:09:07 +02:00