Commit graph

17 commits

Author SHA1 Message Date
René Moser
1ed3bd9168
vultr: fix for unreliable API behavior (#45712) 2018-09-19 00:01:53 +02: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
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
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
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
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
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
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
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
Yanis Guenane
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 Guenane
08acc74056 vultr.py: fix env var handling (#42659) 2018-07-16 15:00:08 +02:00
René Moser
4b6b2d4206
vultr: fix py3 compat (#37171)
* vr_server: fix base64 encoding with py3

* vultr: fix AttributeError with py3
2018-03-08 16:46:06 +01:00
René Moser
698d5a524c
vultr: add api_endpoint param (#34850)
* vultr: add new param api_endpoint

* vultr: improve error handling for values read from ini file
2018-01-14 16:31:28 +01:00
René Moser
5a7a5b88c9
vultr: fix config ini params ignored (#34848)
* vultr: fix config ini params ignored

* vutlr: align docs with configs
2018-01-14 14:20:26 +01:00
René Moser
476030a49c
vr_server: implement startup_script (#34565)
* simplify

* vr_server: implement startup_script
2018-01-11 22:26:39 +01:00
René Moser
adbb2f7016
vultr: new module vr_user (#34521)
* vultr: new module vr_user

* add missing doc of arg force

* make password less required

* optimize error msg

* update docs
2018-01-11 18:58:02 +01:00
René Moser
c098c42ab9
vultr: new module utils and common docs (#30868)
* vultr: new module utils and common docs

* vultr: minor fixes after review
2017-11-01 20:16:59 +01:00