From 02883a460bfd3f250cd31af6b69667efb602fb2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20=C3=85ke=20Fransson?= Date: Thu, 26 Mar 2015 09:57:35 +0100 Subject: [PATCH] Make digital_ocean ssh command use API v2 --- .../cloud/digital_ocean/digital_ocean.py | 162 +++++++++--------- 1 file changed, 79 insertions(+), 83 deletions(-) diff --git a/lib/ansible/modules/cloud/digital_ocean/digital_ocean.py b/lib/ansible/modules/cloud/digital_ocean/digital_ocean.py index f570f1cdd74..ea2c28fd25c 100644 --- a/lib/ansible/modules/cloud/digital_ocean/digital_ocean.py +++ b/lib/ansible/modules/cloud/digital_ocean/digital_ocean.py @@ -20,89 +20,88 @@ DOCUMENTATION = ''' module: digital_ocean short_description: Create/delete a droplet/SSH_key in DigitalOcean description: - - Create/delete a droplet in DigitalOcean and optionally wait for it to be 'running', or deploy an SSH key. + - Create/delete a droplet in DigitalOcean and optionally wait for it to be 'running', or deploy an SSH key. version_added: "1.3" options: - command: - description: - - Which target you want to operate on. - default: droplet - choices: ['droplet', 'ssh'] - state: - description: - - Indicate desired state of the target. - default: present - choices: ['present', 'active', 'absent', 'deleted'] - client_id: - description: - - DigitalOcean manager id. - api_key: - description: - - DigitalOcean api key. - id: - description: - - Numeric, the droplet id you want to operate on. - name: - description: - - String, this is the name of the droplet - must be formatted by hostname rules, or the name of a SSH key. - unique_name: - description: - - Bool, require unique hostnames. By default, DigitalOcean allows multiple hosts with the same name. Setting this to "yes" allows only one host per name. Useful for idempotence. - version_added: "1.4" - default: "no" - choices: [ "yes", "no" ] - size_id: - description: - - This is the slug of the size you would like the droplet created with. - image_id: - description: - - This is the slug of the image you would like the droplet created with. - region_id: - description: - - This is the slug of the region you would like your server to be created in. - ssh_key_ids: - description: - - Optional, array of of ssh_key_ids that you would like to be added to the server. - virtio: - description: - - "Bool, turn on virtio driver in droplet for improved network and storage I/O." - version_added: "1.4" - default: "yes" - choices: [ "yes", "no" ] - private_networking: - description: - - "Bool, add an additional, private network interface to droplet for inter-droplet communication." - version_added: "1.4" - default: "no" - choices: [ "yes", "no" ] - backups_enabled: - description: - - Optional, Boolean, enables backups for your droplet. - version_added: "1.6" - default: "no" - choices: [ "yes", "no" ] - user_data: - description: - - opaque blob of data which is made available to the droplet - version_added: "1.10" - required: false - default: None - wait: - description: - - Wait for the droplet to be in state 'running' before returning. If wait is "no" an ip_address may not be returned. - default: "yes" - choices: [ "yes", "no" ] - wait_timeout: - description: - - How long before wait gives up, in seconds. - default: 300 - ssh_pub_key: - description: - - The public SSH key you want to add to your account. +command: +description: + - Which target you want to operate on. +default: droplet +choices: ['droplet', 'ssh'] +state: +description: + - Indicate desired state of the target. +default: present +choices: ['present', 'active', 'absent', 'deleted'] +client_id: + description: + - DigitalOcean manager id. +api_key: +description: + - DigitalOcean api key. +id: +description: + - Numeric, the droplet id you want to operate on. +name: +description: + - String, this is the name of the droplet - must be formatted by hostname rules, or the name of a SSH key. +unique_name: +description: + - Bool, require unique hostnames. By default, DigitalOcean allows multiple hosts with the same name. Setting this to "yes" allows only one host per name. Useful for idempotence. +version_added: "1.4" +default: "no" +choices: [ "yes", "no" ] +size_id: +description: + - This is the slug of the size you would like the droplet created with. +image_id: +description: + - This is the slug of the image you would like the droplet created with. +region_id: +description: + - This is the slug of the region you would like your server to be created in. +ssh_key_ids: +description: + - Optional, array of of ssh_key_ids that you would like to be added to the server. +virtio: +description: + - "Bool, turn on virtio driver in droplet for improved network and storage I/O." +version_added: "1.4" +default: "yes" +choices: [ "yes", "no" ] +private_networking: +description: + - "Bool, add an additional, private network interface to droplet for inter-droplet communication." +version_added: "1.4" +default: "no" +choices: [ "yes", "no" ] +backups_enabled: +description: + - Optional, Boolean, enables backups for your droplet. +version_added: "1.6" +default: "no" +choices: [ "yes", "no" ] +user_data: +description: + - opaque blob of data which is made available to the droplet +version_added: "1.10" +required: false +default: None +wait: +description: + - Wait for the droplet to be in state 'running' before returning. If wait is "no" an ip_address may not be returned. +default: "yes" +choices: [ "yes", "no" ] +wait_timeout: +description: + - How long before wait gives up, in seconds. +default: 300 +ssh_pub_key: +description: + - The public SSH key you want to add to your account. notes: - - Two environment variables can be used, DO_CLIENT_ID and DO_API_KEY. - - Version 1 of DigitalOcean API is used. + - Two environment variables can be used, DO_API_KEY and DO_API_TOKEN. They both refer to the v2 token. requirements: [ dopy ] ''' @@ -117,7 +116,6 @@ EXAMPLES = ''' command=ssh name=my_ssh_key ssh_pub_key='ssh-rsa AAAA...' - client_id=XXX api_key=XXX # Create a new Droplet @@ -145,7 +143,6 @@ EXAMPLES = ''' command=droplet id=123 name=mydroplet - client_id=XXX api_key=XXX size_id=2gb region_id=ams2 @@ -161,7 +158,6 @@ EXAMPLES = ''' state=present ssh_key_ids=[id1,id2] name=mydroplet - client_id=XXX api_key=XXX size_id=2gb region_id=ams2 @@ -285,7 +281,7 @@ class SSH(JsonfyMixIn): @classmethod def setup(cls, client_id, api_key): - cls.manager = DoManager(client_id, api_key) + cls.manager = DoManager(client_id, api_key, api_version=2) @classmethod def find(cls, name):