[PR #9394/912065ad backport][stable-10] h*.py: normalize docs (#9417)

h*.py: normalize docs (#9394)

* h*.py: normalize docs

* Apply suggestions from code review

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 912065ad0e)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
pull/9426/head
patchback[bot] 2024-12-26 22:44:08 +01:00 committed by GitHub
parent f66bd1035d
commit 0e99b006a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
26 changed files with 2272 additions and 2513 deletions

View File

@ -8,23 +8,21 @@
from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = r'''
---
DOCUMENTATION = r"""
module: haproxy
short_description: Enable, disable, and set weights for HAProxy backend servers using socket commands
author:
- Ravi Bhure (@ravibhure)
- Ravi Bhure (@ravibhure)
description:
- Enable, disable, drain and set weights for HAProxy backend servers using socket commands.
- Enable, disable, drain and set weights for HAProxy backend servers using socket commands.
notes:
- Enable, disable and drain commands are restricted and can only be issued on
sockets configured for level 'admin'. For example, you can add the line
'stats socket /var/run/haproxy.sock level admin' to the general section of
haproxy.cfg. See U(http://haproxy.1wt.eu/download/1.5/doc/configuration.txt).
- Depends on netcat (C(nc)) being available; you need to install the appropriate
package for your operating system before this module can be used.
- Enable, disable and drain commands are restricted and can only be issued on sockets configured for level C(admin). For
example, you can add the line C(stats socket /var/run/haproxy.sock level admin) to the general section of C(haproxy.cfg).
See U(http://haproxy.1wt.eu/download/1.5/doc/configuration.txt).
- Depends on netcat (C(nc)) being available; you need to install the appropriate package for your operating system before
this module can be used.
extends_documentation_fragment:
- community.general.attributes
- community.general.attributes
attributes:
check_mode:
support: none
@ -38,8 +36,8 @@ options:
type: str
drain:
description:
- Wait until the server has no active connections or until the timeout
determined by wait_interval and wait_retries is reached.
- Wait until the server has no active connections or until the timeout determined by O(wait_interval) and O(wait_retries)
is reached.
- Continue only after the status changes to C(MAINT).
- This overrides the shutdown_sessions option.
type: bool
@ -51,10 +49,9 @@ options:
required: true
shutdown_sessions:
description:
- When disabling a server, immediately terminate all the sessions attached
to the specified server.
- This can be used to terminate long-running sessions after a server is put
into maintenance mode. Overridden by the drain option.
- When disabling a server, immediately terminate all the sessions attached to the specified server.
- This can be used to terminate long-running sessions after a server is put into maintenance mode. Overridden by the
drain option.
type: bool
default: false
socket:
@ -65,11 +62,11 @@ options:
state:
description:
- Desired state of the provided backend host.
- Note that V(drain) state is supported only by HAProxy version 1.5 or later.
When used on versions < 1.5, it will be ignored.
- Note that V(drain) state is supported only by HAProxy version 1.5 or later. When used on versions < 1.5, it will be
ignored.
type: str
required: true
choices: [ disabled, drain, enabled ]
choices: [disabled, drain, enabled]
agent:
description:
- Disable/enable agent checks (depending on O(state) value).
@ -89,8 +86,8 @@ options:
default: false
wait:
description:
- Wait until the server reports a status of C(UP) when O(state=enabled),
status of C(MAINT) when O(state=disabled) or status of C(DRAIN) when O(state=drain).
- Wait until the server reports a status of C(UP) when O(state=enabled), status of C(MAINT) when O(state=disabled) or
status of C(DRAIN) when O(state=drain).
type: bool
default: false
wait_interval:
@ -106,14 +103,12 @@ options:
weight:
description:
- The value passed in argument.
- If the value ends with the V(%) sign, then the new weight will be
relative to the initially configured weight.
- Relative weights are only permitted between 0 and 100% and absolute
weights are permitted between 0 and 256.
- If the value ends with the V(%) sign, then the new weight will be relative to the initially configured weight.
- Relative weights are only permitted between 0 and 100% and absolute weights are permitted between 0 and 256.
type: str
'''
"""
EXAMPLES = r'''
EXAMPLES = r"""
- name: Disable server in 'www' backend pool
community.general.haproxy:
state: disabled
@ -168,7 +163,8 @@ EXAMPLES = r'''
socket: /var/run/haproxy.sock
shutdown_sessions: true
- name: Disable server without backend pool name (apply to all available backend pool) but fail when the backend host is not found
- name: Disable server without backend pool name (apply to all available backend pool) but fail when the backend host is
not found
community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
@ -187,7 +183,8 @@ EXAMPLES = r'''
backend: www
wait: true
- name: Enable server in 'www' backend pool wait until healthy. Retry 10 times with intervals of 5 seconds to retrieve the health
- name: Enable server in 'www' backend pool wait until healthy. Retry 10 times with intervals of 5 seconds to retrieve the
health
community.general.haproxy:
state: enabled
host: '{{ inventory_hostname }}'
@ -210,7 +207,7 @@ EXAMPLES = r'''
host: '{{ inventory_hostname }}'
socket: /var/run/haproxy.sock
backend: www
'''
"""
import csv
import socket

View File

@ -8,8 +8,7 @@
from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: heroku_collaborator
short_description: Add or delete app collaborators on Heroku
description:
@ -32,35 +31,35 @@ options:
api_key:
type: str
description:
- Heroku API key
- Heroku API key.
apps:
type: list
elements: str
description:
- List of Heroku App names
- List of Heroku App names.
required: true
suppress_invitation:
description:
- Suppress email invitation when creating collaborator
- Suppress email invitation when creating collaborator.
type: bool
default: false
user:
type: str
description:
- User ID or e-mail
- User ID or e-mail.
required: true
state:
type: str
description:
- Create or remove the heroku collaborator
- Create or remove the heroku collaborator.
choices: ["present", "absent"]
default: "present"
notes:
- E(HEROKU_API_KEY) and E(TF_VAR_HEROKU_API_KEY) environment variables can be used instead setting O(api_key).
- If you use C(check_mode), you can also pass the C(-v) flag to see affected apps in C(msg), e.g. ["heroku-example-app"].
'''
- If you use C(check_mode), you can also pass the C(-v) flag to see affected apps in C(msg), for example C(["heroku-example-app"]).
"""
EXAMPLES = '''
EXAMPLES = r"""
- name: Create a heroku collaborator
community.general.heroku_collaborator:
api_key: YOUR_API_KEY
@ -76,12 +75,12 @@ EXAMPLES = '''
suppress_invitation: '{{ item.suppress_invitation | default(suppress_invitation) }}'
state: '{{ item.state | default("present") }}'
with_items:
- { user: 'a.b@example.com' }
- { state: 'absent', user: 'b.c@example.com', suppress_invitation: false }
- { user: 'x.y@example.com', apps: ["heroku-example-app"] }
'''
- {user: 'a.b@example.com'}
- {state: 'absent', user: 'b.c@example.com', suppress_invitation: false}
- {user: 'x.y@example.com', apps: ["heroku-example-app"]}
"""
RETURN = ''' # '''
RETURN = """ # """
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils.heroku import HerokuHelper

View File

@ -9,75 +9,71 @@
from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hg
short_description: Manages Mercurial (hg) repositories
description:
- Manages Mercurial (hg) repositories. Supports SSH, HTTP/S and local address.
- Manages Mercurial (hg) repositories. Supports SSH, HTTP/S and local address.
author: "Yeukhon Wong (@yeukhon)"
extends_documentation_fragment:
- community.general.attributes
- community.general.attributes
attributes:
check_mode:
support: none
diff_mode:
support: none
check_mode:
support: none
diff_mode:
support: none
options:
repo:
description:
- The repository address.
required: true
aliases: [ name ]
type: str
dest:
description:
- Absolute path of where the repository should be cloned to.
This parameter is required, unless clone and update are set to no
type: path
revision:
description:
- Equivalent C(-r) option in hg command which could be the changeset, revision number,
branch name or even tag.
aliases: [ version ]
type: str
force:
description:
- Discards uncommitted changes. Runs C(hg update -C).
type: bool
default: false
purge:
description:
- Deletes untracked files. Runs C(hg purge).
type: bool
default: false
update:
description:
- If V(false), do not retrieve new revisions from the origin repository
type: bool
default: true
clone:
description:
- If V(false), do not clone the repository if it does not exist locally.
type: bool
default: true
executable:
description:
- Path to hg executable to use. If not supplied,
the normal mechanism for resolving binary paths will be used.
type: str
repo:
description:
- The repository address.
required: true
aliases: [name]
type: str
dest:
description:
- Absolute path of where the repository should be cloned to. This parameter is required, unless clone and update are
set to no.
type: path
revision:
description:
- Equivalent C(-r) option in hg command which could be the changeset, revision number, branch name or even tag.
aliases: [version]
type: str
force:
description:
- Discards uncommitted changes. Runs C(hg update -C).
type: bool
default: false
purge:
description:
- Deletes untracked files. Runs C(hg purge).
type: bool
default: false
update:
description:
- If V(false), do not retrieve new revisions from the origin repository.
type: bool
default: true
clone:
description:
- If V(false), do not clone the repository if it does not exist locally.
type: bool
default: true
executable:
description:
- Path to hg executable to use. If not supplied, the normal mechanism for resolving binary paths will be used.
type: str
notes:
- This module does not support push capability. See U(https://github.com/ansible/ansible/issues/31156).
- "If the task seems to be hanging, first verify remote host is in C(known_hosts).
SSH will prompt user to authorize the first contact with a remote host. To avoid this prompt,
one solution is to add the remote host public key in C(/etc/ssh/ssh_known_hosts) before calling
the hg module, with the following command: ssh-keyscan remote_host.com >> /etc/ssh/ssh_known_hosts."
- As per 01 Dec 2018, Bitbucket has dropped support for TLSv1 and TLSv1.1 connections. As such,
if the underlying system still uses a Python version below 2.7.9, you will have issues checking out
bitbucket repositories. See U(https://bitbucket.org/blog/deprecating-tlsv1-tlsv1-1-2018-12-01).
'''
- This module does not support push capability. See U(https://github.com/ansible/ansible/issues/31156).
- 'If the task seems to be hanging, first verify remote host is in C(known_hosts). SSH will prompt user to authorize the
first contact with a remote host. To avoid this prompt, one solution is to add the remote host public key in C(/etc/ssh/ssh_known_hosts)
before calling the hg module, with the following command: C(ssh-keyscan remote_host.com >> /etc/ssh/ssh_known_hosts).'
- As per 01 Dec 2018, Bitbucket has dropped support for TLSv1 and TLSv1.1 connections. As such, if the underlying system
still uses a Python version below 2.7.9, you will have issues checking out bitbucket repositories.
See U(https://bitbucket.org/blog/deprecating-tlsv1-tlsv1-1-2018-12-01).
"""
EXAMPLES = '''
EXAMPLES = r"""
- name: Ensure the current working copy is inside the stable branch and deletes untracked files if any.
community.general.hg:
repo: https://bitbucket.org/user/repo1
@ -91,7 +87,7 @@ EXAMPLES = '''
dest: /srv/checkout
clone: false
update: false
'''
"""
import os

View File

@ -9,12 +9,11 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hipchat
short_description: Send a message to Hipchat
description:
- Send a message to a Hipchat room, with options to control the formatting.
- Send a message to a Hipchat room, with options to control the formatting.
extends_documentation_fragment:
- community.general.attributes
deprecated:
@ -40,8 +39,7 @@ options:
msg_from:
type: str
description:
- Name the message will appear to be sent from. Max length is 15
characters - above this it will be truncated.
- Name the message will appear to be sent from. Max length is 15 characters - above this it will be truncated.
default: Ansible
aliases: [from]
msg:
@ -54,13 +52,13 @@ options:
description:
- Background color for the message.
default: yellow
choices: [ "yellow", "red", "green", "purple", "gray", "random" ]
choices: ["yellow", "red", "green", "purple", "gray", "random"]
msg_format:
type: str
description:
- Message format.
default: text
choices: [ "text", "html" ]
choices: ["text", "html"]
notify:
description:
- If true, a notification will be triggered for users in the room.
@ -68,23 +66,23 @@ options:
default: true
validate_certs:
description:
- If V(false), SSL certificates will not be validated. This should only be used
on personally controlled sites using self-signed certificates.
- If V(false), SSL certificates will not be validated. This should only be used on personally controlled sites using
self-signed certificates.
type: bool
default: true
api:
type: str
description:
- API url if using a self-hosted hipchat server. For Hipchat API version
2 use the default URI with C(/v2) instead of C(/v1).
- API url if using a self-hosted hipchat server. For Hipchat API version 2 use the default URI with C(/v2) instead of
C(/v1).
default: 'https://api.hipchat.com/v1'
author:
- Shirou Wakayama (@shirou)
- Paul Bourdel (@pb8226)
'''
- Shirou Wakayama (@shirou)
- Paul Bourdel (@pb8226)
"""
EXAMPLES = '''
EXAMPLES = r"""
- name: Send a message to a Hipchat room
community.general.hipchat:
room: notif
@ -96,7 +94,7 @@ EXAMPLES = '''
token: OAUTH2_TOKEN
room: notify
msg: Ansible task finished
'''
"""
# ===========================================
# HipChat module specific support methods.

View File

@ -14,81 +14,80 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: homebrew
author:
- "Indrajit Raychaudhuri (@indrajitr)"
- "Daniel Jaouen (@danieljaouen)"
- "Andrew Dunham (@andrew-d)"
- "Indrajit Raychaudhuri (@indrajitr)"
- "Daniel Jaouen (@danieljaouen)"
- "Andrew Dunham (@andrew-d)"
requirements:
- homebrew must already be installed on the target system
- homebrew must already be installed on the target system
short_description: Package manager for Homebrew
description:
- Manages Homebrew packages
- Manages Homebrew packages.
extends_documentation_fragment:
- community.general.attributes
- community.general.attributes
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
name:
description:
- A list of names of packages to install/remove.
aliases: [ 'formula', 'package', 'pkg' ]
type: list
elements: str
path:
description:
- "A V(:) separated list of paths to search for C(brew) executable.
Since a package (I(formula) in homebrew parlance) location is prefixed relative to the actual path of C(brew) command,
providing an alternative C(brew) path enables managing different set of packages in an alternative location in the system."
default: '/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin'
type: path
state:
description:
- state of the package.
choices: [ 'absent', 'head', 'installed', 'latest', 'linked', 'present', 'removed', 'uninstalled', 'unlinked', 'upgraded' ]
default: present
type: str
update_homebrew:
description:
- update homebrew itself first.
type: bool
default: false
upgrade_all:
description:
- upgrade all homebrew packages.
type: bool
default: false
aliases: ['upgrade']
install_options:
description:
- options flags to install a package.
aliases: ['options']
type: list
elements: str
upgrade_options:
description:
- Option flags to upgrade.
type: list
elements: str
version_added: '0.2.0'
force_formula:
description:
- Force the package(s) to be treated as a formula (equivalent to C(brew --formula)).
- To install a cask, use the M(community.general.homebrew_cask) module.
type: bool
default: false
version_added: 9.0.0
name:
description:
- A list of names of packages to install/remove.
aliases: ['formula', 'package', 'pkg']
type: list
elements: str
path:
description:
- A V(:) separated list of paths to search for C(brew) executable. Since a package (I(formula) in homebrew parlance)
location is prefixed relative to the actual path of C(brew) command, providing an alternative C(brew) path enables
managing different set of packages in an alternative location in the system.
default: '/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin'
type: path
state:
description:
- State of the package.
choices: ['absent', 'head', 'installed', 'latest', 'linked', 'present', 'removed', 'uninstalled', 'unlinked', 'upgraded']
default: present
type: str
update_homebrew:
description:
- Update homebrew itself first.
type: bool
default: false
upgrade_all:
description:
- Upgrade all homebrew packages.
type: bool
default: false
aliases: ['upgrade']
install_options:
description:
- Options flags to install a package.
aliases: ['options']
type: list
elements: str
upgrade_options:
description:
- Option flags to upgrade.
type: list
elements: str
version_added: '0.2.0'
force_formula:
description:
- Force the package(s) to be treated as a formula (equivalent to C(brew --formula)).
- To install a cask, use the M(community.general.homebrew_cask) module.
type: bool
default: false
version_added: 9.0.0
notes:
- When used with a C(loop:) each package will be processed individually,
it is much more efficient to pass the list directly to the O(name) option.
'''
- When used with a C(loop:) each package will be processed individually, it is much more efficient to pass the list directly
to the O(name) option.
"""
EXAMPLES = '''
EXAMPLES = r"""
# Install formula foo with 'brew' in default path
- community.general.homebrew:
name: foo
@ -154,29 +153,29 @@ EXAMPLES = '''
name: ambiguous_formula
state: present
force_formula: true
'''
"""
RETURN = '''
RETURN = r"""
msg:
description: if the cache was updated or not
returned: always
type: str
sample: "Changed: 0, Unchanged: 2"
description: If the cache was updated or not.
returned: always
type: str
sample: "Changed: 0, Unchanged: 2"
unchanged_pkgs:
description:
- List of package names which are unchanged after module run
returned: success
type: list
sample: ["awscli", "ag"]
version_added: '0.2.0'
description:
- List of package names which are unchanged after module run.
returned: success
type: list
sample: ["awscli", "ag"]
version_added: '0.2.0'
changed_pkgs:
description:
- List of package names which are changed after module run
returned: success
type: list
sample: ['git', 'git-cola']
version_added: '0.2.0'
'''
description:
- List of package names which are changed after module run.
returned: success
type: list
sample: ['git', 'git-cola']
version_added: '0.2.0'
"""
import json
import re

View File

@ -11,8 +11,7 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: homebrew_cask
author:
- "Indrajit Raychaudhuri (@indrajitr)"
@ -31,60 +30,59 @@ attributes:
options:
name:
description:
- Name of cask to install or remove.
aliases: [ 'cask', 'package', 'pkg' ]
- Name of cask to install or remove.
aliases: ['cask', 'package', 'pkg']
type: list
elements: str
path:
description:
- "':' separated list of paths to search for 'brew' executable."
- "':' separated list of paths to search for 'brew' executable."
default: '/usr/local/bin:/opt/homebrew/bin'
type: path
state:
description:
- State of the cask.
choices: [ 'absent', 'installed', 'latest', 'present', 'removed', 'uninstalled', 'upgraded' ]
- State of the cask.
choices: ['absent', 'installed', 'latest', 'present', 'removed', 'uninstalled', 'upgraded']
default: present
type: str
sudo_password:
description:
- The sudo password to be passed to SUDO_ASKPASS.
- The sudo password to be passed to E(SUDO_ASKPASS).
required: false
type: str
update_homebrew:
description:
- Update homebrew itself first.
- Note that C(brew cask update) is a synonym for C(brew update).
- Update homebrew itself first.
- Note that C(brew cask update) is a synonym for C(brew update).
type: bool
default: false
install_options:
description:
- Options flags to install a package.
aliases: [ 'options' ]
- Options flags to install a package.
aliases: ['options']
type: list
elements: str
accept_external_apps:
description:
- Allow external apps.
- Allow external apps.
type: bool
default: false
upgrade_all:
description:
- Upgrade all casks.
- Mutually exclusive with C(upgraded) state.
- Upgrade all casks.
- Mutually exclusive with C(upgraded) state.
type: bool
default: false
aliases: [ 'upgrade' ]
aliases: ['upgrade']
greedy:
description:
- Upgrade casks that auto update.
- Passes C(--greedy) to C(brew outdated --cask) when checking
if an installed cask has a newer version available,
or to C(brew upgrade --cask) when upgrading all casks.
- Upgrade casks that auto update.
- Passes C(--greedy) to C(brew outdated --cask) when checking if an installed cask has a newer version available, or
to C(brew upgrade --cask) when upgrading all casks.
type: bool
default: false
'''
EXAMPLES = '''
"""
EXAMPLES = r"""
- name: Install cask
community.general.homebrew_cask:
name: alfred
@ -151,7 +149,7 @@ EXAMPLES = '''
name: wireshark
state: present
sudo_password: "{{ ansible_become_pass }}"
'''
"""
import os
import re

View File

@ -14,47 +14,46 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = """
---
DOCUMENTATION = r"""
module: homebrew_services
author:
- "Kit Ham (@kitizz)"
- "Kit Ham (@kitizz)"
requirements:
- homebrew must already be installed on the target system
- homebrew must already be installed on the target system
short_description: Services manager for Homebrew
version_added: 9.3.0
description:
- Manages daemons and services via Homebrew.
- Manages daemons and services using Homebrew.
extends_documentation_fragment:
- community.general.attributes
- community.general.attributes
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
name:
description:
- An installed homebrew package whose service is to be updated.
aliases: [ 'formula' ]
type: str
required: true
path:
description:
- "A V(:) separated list of paths to search for C(brew) executable.
Since a package (I(formula) in homebrew parlance) location is prefixed relative to the actual path of C(brew) command,
providing an alternative C(brew) path enables managing different set of packages in an alternative location in the system."
default: '/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin'
type: path
state:
description:
- State of the package's service.
choices: [ 'present', 'absent', 'restarted' ]
default: present
type: str
name:
description:
- An installed homebrew package whose service is to be updated.
aliases: ['formula']
type: str
required: true
path:
description:
- A V(:) separated list of paths to search for C(brew) executable. Since a package (I(formula) in homebrew parlance)
location is prefixed relative to the actual path of C(brew) command, providing an alternative C(brew) path enables
managing different set of packages in an alternative location in the system.
default: '/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin'
type: path
state:
description:
- State of the package's service.
choices: ['present', 'absent', 'restarted']
default: present
type: str
"""
EXAMPLES = """
EXAMPLES = r"""
- name: Install foo package
community.general.homebrew:
name: foo
@ -76,19 +75,19 @@ EXAMPLES = """
service_state: absent
"""
RETURN = """
RETURN = r"""
pid:
description:
- If the service is now running, this is the PID of the service, otherwise -1.
returned: success
type: int
sample: 1234
description:
- If the service is now running, this is the PID of the service, otherwise -1.
returned: success
type: int
sample: 1234
running:
description:
- Whether the service is running after running this command.
returned: success
type: bool
sample: true
description:
- Whether the service is running after running this command.
returned: success
type: bool
sample: true
"""
import json

View File

@ -13,56 +13,53 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = r'''
---
DOCUMENTATION = r"""
module: homebrew_tap
author:
- "Indrajit Raychaudhuri (@indrajitr)"
- "Daniel Jaouen (@danieljaouen)"
- "Indrajit Raychaudhuri (@indrajitr)"
- "Daniel Jaouen (@danieljaouen)"
short_description: Tap a Homebrew repository
description:
- Tap external Homebrew repositories.
- Tap external Homebrew repositories.
extends_documentation_fragment:
- community.general.attributes
- community.general.attributes
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
name:
description:
- The GitHub user/organization repository to tap.
required: true
aliases: ['tap']
type: list
elements: str
url:
description:
- The optional git URL of the repository to tap. The URL is not
assumed to be on GitHub, and the protocol doesn't have to be HTTP.
Any location and protocol that git can handle is fine.
- O(name) option may not be a list of multiple taps (but a single
tap instead) when this option is provided.
required: false
type: str
state:
description:
- state of the repository.
choices: [ 'present', 'absent' ]
required: false
default: 'present'
type: str
path:
description:
- "A V(:) separated list of paths to search for C(brew) executable."
default: '/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin'
type: path
version_added: '2.1.0'
requirements: [ homebrew ]
'''
name:
description:
- The GitHub user/organization repository to tap.
required: true
aliases: ['tap']
type: list
elements: str
url:
description:
- The optional git URL of the repository to tap. The URL is not assumed to be on GitHub, and the protocol does not have
to be HTTP. Any location and protocol that git can handle is fine.
- O(name) option may not be a list of multiple taps (but a single tap instead) when this option is provided.
required: false
type: str
state:
description:
- State of the repository.
choices: ['present', 'absent']
required: false
default: 'present'
type: str
path:
description:
- A V(:) separated list of paths to search for C(brew) executable.
default: '/usr/local/bin:/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin'
type: path
version_added: '2.1.0'
requirements: [homebrew]
"""
EXAMPLES = r'''
EXAMPLES = r"""
- name: Tap a Homebrew repository, state present
community.general.homebrew_tap:
name: homebrew/dupes
@ -81,7 +78,7 @@ EXAMPLES = r'''
community.general.homebrew_tap:
name: telemachus/brew
url: 'https://bitbucket.org/telemachus/brew'
'''
"""
import re

View File

@ -8,186 +8,185 @@
from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: homectl
author:
- "James Livulpi (@jameslivulpi)"
- "James Livulpi (@jameslivulpi)"
short_description: Manage user accounts with systemd-homed
version_added: 4.4.0
description:
- Manages a user's home directory managed by systemd-homed.
- Manages a user's home directory managed by systemd-homed.
notes:
- This module requires the deprecated L(crypt Python module,
https://docs.python.org/3.12/library/crypt.html) library which was removed from Python 3.13.
For Python 3.13 or newer, you need to install L(legacycrypt, https://pypi.org/project/legacycrypt/).
- This module requires the deprecated L(crypt Python module, https://docs.python.org/3.12/library/crypt.html) library which
was removed from Python 3.13. For Python 3.13 or newer, you need to install L(legacycrypt, https://pypi.org/project/legacycrypt/).
requirements:
- legacycrypt (on Python 3.13 or newer)
- legacycrypt (on Python 3.13 or newer)
extends_documentation_fragment:
- community.general.attributes
- community.general.attributes
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
name:
description:
- The user name to create, remove, or update.
required: true
aliases: [ 'user', 'username' ]
type: str
password:
description:
- Set the user's password to this.
- Homed requires this value to be in cleartext on user creation and updating a user.
- The module takes the password and generates a password hash in SHA-512 with 10000 rounds of salt generation using crypt.
- See U(https://systemd.io/USER_RECORD/).
- This is required for O(state=present). When an existing user is updated this is checked against the stored hash in homed.
type: str
state:
description:
- The operation to take on the user.
choices: [ 'absent', 'present' ]
default: present
type: str
storage:
description:
- Indicates the storage mechanism for the user's home directory.
- If the storage type is not specified, ``homed.conf(5)`` defines which default storage to use.
- Only used when a user is first created.
choices: [ 'classic', 'luks', 'directory', 'subvolume', 'fscrypt', 'cifs' ]
type: str
disksize:
description:
- The intended home directory disk space.
- Human readable value such as V(10G), V(10M), or V(10B).
type: str
resize:
description:
- When used with O(disksize) this will attempt to resize the home directory immediately.
default: false
type: bool
realname:
description:
- The user's real ('human') name.
- This can also be used to add a comment to maintain compatibility with C(useradd).
aliases: [ 'comment' ]
type: str
realm:
description:
- The 'realm' a user is defined in.
type: str
email:
description:
- The email address of the user.
type: str
location:
description:
- A free-form location string describing the location of the user.
type: str
iconname:
description:
- The name of an icon picked by the user, for example for the purpose of an avatar.
- Should follow the semantics defined in the Icon Naming Specification.
- See U(https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html) for specifics.
type: str
homedir:
description:
- Path to use as home directory for the user.
- This is the directory the user's home directory is mounted to while the user is logged in.
- This is not where the user's data is actually stored, see O(imagepath) for that.
- Only used when a user is first created.
type: path
imagepath:
description:
- Path to place the user's home directory.
- See U(https://www.freedesktop.org/software/systemd/man/homectl.html#--image-path=PATH) for more information.
- Only used when a user is first created.
type: path
uid:
description:
- Sets the UID of the user.
- If using O(gid) homed requires the value to be the same.
- Only used when a user is first created.
type: int
gid:
description:
- Sets the gid of the user.
- If using O(uid) homed requires the value to be the same.
- Only used when a user is first created.
type: int
mountopts:
description:
- String separated by comma each indicating mount options for a users home directory.
- Valid options are V(nosuid), V(nodev) or V(noexec).
- Homed by default uses V(nodev) and V(nosuid) while V(noexec) is off.
type: str
umask:
description:
- Sets the umask for the user's login sessions
- Value from V(0000) to V(0777).
type: int
memberof:
description:
- String separated by comma each indicating a UNIX group this user shall be a member of.
- Groups the user should be a member of should be supplied as comma separated list.
aliases: [ 'groups' ]
type: str
skeleton:
description:
- The absolute path to the skeleton directory to populate a new home directory from.
- This is only used when a home directory is first created.
- If not specified homed by default uses V(/etc/skel).
aliases: [ 'skel' ]
type: path
shell:
description:
- Shell binary to use for terminal logins of given user.
- If not specified homed by default uses V(/bin/bash).
type: str
environment:
description:
- String separated by comma each containing an environment variable and its value to
set for the user's login session, in a format compatible with ``putenv()``.
- Any environment variable listed here is automatically set by pam_systemd for all
login sessions of the user.
aliases: [ 'setenv' ]
type: str
timezone:
description:
- Preferred timezone to use for the user.
- Should be a tzdata compatible location string such as V(America/New_York).
type: str
locked:
description:
- Whether the user account should be locked or not.
type: bool
language:
description:
- The preferred language/locale for the user.
- This should be in a format compatible with the E(LANG) environment variable.
type: str
passwordhint:
description:
- Password hint for the given user.
type: str
sshkeys:
description:
- String separated by comma each listing a SSH public key that is authorized to access the account.
- The keys should follow the same format as the lines in a traditional C(~/.ssh/authorized_key) file.
type: str
notbefore:
description:
- A time since the UNIX epoch before which the record should be considered invalid for the purpose of logging in.
type: int
notafter:
description:
- A time since the UNIX epoch after which the record should be considered invalid for the purpose of logging in.
type: int
'''
name:
description:
- The user name to create, remove, or update.
required: true
aliases: ['user', 'username']
type: str
password:
description:
- Set the user's password to this.
- Homed requires this value to be in cleartext on user creation and updating a user.
- The module takes the password and generates a password hash in SHA-512 with 10000 rounds of salt generation using
crypt.
- See U(https://systemd.io/USER_RECORD/).
- This is required for O(state=present). When an existing user is updated this is checked against the stored hash in
homed.
type: str
state:
description:
- The operation to take on the user.
choices: ['absent', 'present']
default: present
type: str
storage:
description:
- Indicates the storage mechanism for the user's home directory.
- If the storage type is not specified, C(homed.conf(5\)) defines which default storage to use.
- Only used when a user is first created.
choices: ['classic', 'luks', 'directory', 'subvolume', 'fscrypt', 'cifs']
type: str
disksize:
description:
- The intended home directory disk space.
- Human readable value such as V(10G), V(10M), or V(10B).
type: str
resize:
description:
- When used with O(disksize) this will attempt to resize the home directory immediately.
default: false
type: bool
realname:
description:
- The user's real ('human') name.
- This can also be used to add a comment to maintain compatibility with C(useradd).
aliases: ['comment']
type: str
realm:
description:
- The 'realm' a user is defined in.
type: str
email:
description:
- The email address of the user.
type: str
location:
description:
- A free-form location string describing the location of the user.
type: str
iconname:
description:
- The name of an icon picked by the user, for example for the purpose of an avatar.
- Should follow the semantics defined in the Icon Naming Specification.
- See U(https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html) for specifics.
type: str
homedir:
description:
- Path to use as home directory for the user.
- This is the directory the user's home directory is mounted to while the user is logged in.
- This is not where the user's data is actually stored, see O(imagepath) for that.
- Only used when a user is first created.
type: path
imagepath:
description:
- Path to place the user's home directory.
- See U(https://www.freedesktop.org/software/systemd/man/homectl.html#--image-path=PATH) for more information.
- Only used when a user is first created.
type: path
uid:
description:
- Sets the UID of the user.
- If using O(gid) homed requires the value to be the same.
- Only used when a user is first created.
type: int
gid:
description:
- Sets the gid of the user.
- If using O(uid) homed requires the value to be the same.
- Only used when a user is first created.
type: int
mountopts:
description:
- String separated by comma each indicating mount options for a users home directory.
- Valid options are V(nosuid), V(nodev) or V(noexec).
- Homed by default uses V(nodev) and V(nosuid) while V(noexec) is off.
type: str
umask:
description:
- Sets the umask for the user's login sessions.
- Value from V(0000) to V(0777).
type: int
memberof:
description:
- String separated by comma each indicating a UNIX group this user shall be a member of.
- Groups the user should be a member of should be supplied as comma separated list.
aliases: ['groups']
type: str
skeleton:
description:
- The absolute path to the skeleton directory to populate a new home directory from.
- This is only used when a home directory is first created.
- If not specified homed by default uses V(/etc/skel).
aliases: ['skel']
type: path
shell:
description:
- Shell binary to use for terminal logins of given user.
- If not specified homed by default uses V(/bin/bash).
type: str
environment:
description:
- String separated by comma each containing an environment variable and its value to set for the user's login session,
in a format compatible with C(putenv(\)).
- Any environment variable listed here is automatically set by pam_systemd for all login sessions of the user.
aliases: ['setenv']
type: str
timezone:
description:
- Preferred timezone to use for the user.
- Should be a tzdata compatible location string such as V(America/New_York).
type: str
locked:
description:
- Whether the user account should be locked or not.
type: bool
language:
description:
- The preferred language/locale for the user.
- This should be in a format compatible with the E(LANG) environment variable.
type: str
passwordhint:
description:
- Password hint for the given user.
type: str
sshkeys:
description:
- String separated by comma each listing a SSH public key that is authorized to access the account.
- The keys should follow the same format as the lines in a traditional C(~/.ssh/authorized_key) file.
type: str
notbefore:
description:
- A time since the UNIX epoch before which the record should be considered invalid for the purpose of logging in.
type: int
notafter:
description:
- A time since the UNIX epoch after which the record should be considered invalid for the purpose of logging in.
type: int
"""
EXAMPLES = '''
EXAMPLES = r"""
- name: Add the user 'james'
community.general.homectl:
name: johnd
@ -215,9 +214,9 @@ EXAMPLES = '''
community.general.homectl:
name: janet
state: absent
'''
"""
RETURN = '''
RETURN = r"""
data:
description: A json dictionary returned from C(homectl inspect -j).
returned: success
@ -267,7 +266,7 @@ data:
"userName": "james",
}
}
'''
"""
import json
import traceback

View File

@ -8,8 +8,7 @@
from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: honeybadger_deployment
author: "Benjamin Curtis (@stympy)"
short_description: Notify Honeybadger.io about app deployments
@ -31,20 +30,20 @@ options:
environment:
type: str
description:
- The environment name, typically 'production', 'staging', etc.
- The environment name, typically V(production), V(staging), and so on.
required: true
user:
type: str
description:
- The username of the person doing the deployment
- The username of the person doing the deployment.
repo:
type: str
description:
- URL of the project repository
- URL of the project repository.
revision:
type: str
description:
- A hash, number, tag, or other identifier showing what revision was deployed
- A hash, number, tag, or other identifier showing what revision was deployed.
url:
type: str
description:
@ -52,14 +51,13 @@ options:
default: "https://api.honeybadger.io/v1/deploys"
validate_certs:
description:
- If V(false), SSL certificates for the target url will not be validated. This should only be used
on personally controlled sites using self-signed certificates.
- If V(false), SSL certificates for the target url will not be validated. This should only be used on personally controlled
sites using self-signed certificates.
type: bool
default: true
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
- name: Notify Honeybadger.io about an app deployment
community.general.honeybadger_deployment:
token: AAAAAA
@ -67,9 +65,9 @@ EXAMPLES = '''
user: ansible
revision: b6826b8
repo: 'git@github.com:user/repo.git'
'''
"""
RETURN = '''# '''
RETURN = """# """
import traceback

View File

@ -9,14 +9,13 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hpilo_boot
author: Dag Wieers (@dagwieers)
short_description: Boot system using specific media through HP iLO interface
description:
- "This module boots a system through its HP iLO interface. The boot media
can be one of: cdrom, floppy, hdd, network or usb."
- 'This module boots a system through its HP iLO interface. The boot media can be one of: V(cdrom), V(floppy), V(hdd),
V(network), or V(usb).'
- This module requires the hpilo python module.
extends_documentation_fragment:
- community.general.attributes
@ -43,33 +42,32 @@ options:
type: str
media:
description:
- The boot media to boot the system from
choices: [ "cdrom", "floppy", "rbsu", "hdd", "network", "normal", "usb" ]
- The boot media to boot the system from.
choices: ["cdrom", "floppy", "rbsu", "hdd", "network", "normal", "usb"]
type: str
image:
description:
- The URL of a cdrom, floppy or usb boot media image.
protocol://username:password@hostname:port/filename
- protocol is either 'http' or 'https'
- username:password is optional
- port is optional
- The URL of a cdrom, floppy or usb boot media image in the form V(protocol://username:password@hostname:port/filename).
- V(protocol) is either V(http) or V(https).
- V(username:password) is optional.
- V(port) is optional.
type: str
state:
description:
- The state of the boot media.
- "no_boot: Do not boot from the device"
- "boot_once: Boot from the device once and then notthereafter"
- "boot_always: Boot from the device each time the server is rebooted"
- "connect: Connect the virtual media device and set to boot_always"
- "disconnect: Disconnects the virtual media device and set to no_boot"
- "poweroff: Power off the server"
- "V(no_boot): Do not boot from the device"
- "V(boot_once): Boot from the device once and then notthereafter"
- "V(boot_always): Boot from the device each time the server is rebooted"
- "V(connect): Connect the virtual media device and set to boot_always"
- "V(disconnect): Disconnects the virtual media device and set to no_boot"
- "V(poweroff): Power off the server"
default: boot_once
type: str
choices: [ "boot_always", "boot_once", "connect", "disconnect", "no_boot", "poweroff" ]
choices: ["boot_always", "boot_once", "connect", "disconnect", "no_boot", "poweroff"]
force:
description:
- Whether to force a reboot (even when the system is already booted).
- As a safeguard, without force, hpilo_boot will refuse to reboot a server that is already running.
- Whether to force a reboot (even when the system is already booted).
- As a safeguard, without force, hpilo_boot will refuse to reboot a server that is already running.
default: false
type: bool
ssl_version:
@ -77,16 +75,16 @@ options:
- Change the ssl_version used.
default: TLSv1
type: str
choices: [ "SSLv3", "SSLv23", "TLSv1", "TLSv1_1", "TLSv1_2" ]
choices: ["SSLv3", "SSLv23", "TLSv1", "TLSv1_1", "TLSv1_2"]
requirements:
- python-hpilo
- python-hpilo
notes:
- To use a USB key image you need to specify floppy as boot media.
- This module ought to be run from a system that can access the HP iLO
interface directly, either by using C(local_action) or using C(delegate_to).
'''
- To use a USB key image you need to specify floppy as boot media.
- This module ought to be run from a system that can access the HP iLO interface directly, either by using C(local_action)
or using C(delegate_to).
"""
EXAMPLES = r'''
EXAMPLES = r"""
- name: Task to boot a system using an ISO from an HP iLO interface only if the system is an HP server
community.general.hpilo_boot:
host: YOUR_ILO_ADDRESS
@ -104,11 +102,11 @@ EXAMPLES = r'''
password: YOUR_ILO_PASSWORD
state: poweroff
delegate_to: localhost
'''
"""
RETURN = '''
RETURN = r"""
# Default return values
'''
"""
import time
import traceback

View File

@ -9,23 +9,21 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = r'''
---
DOCUMENTATION = r"""
module: hpilo_info
author: Dag Wieers (@dagwieers)
short_description: Gather information through an HP iLO interface
description:
- This module gathers information on a specific system using its HP iLO interface.
These information includes hardware and network related information useful
for provisioning (e.g. macaddress, uuid).
- This module requires the C(hpilo) python module.
- This module gathers information on a specific system using its HP iLO interface. These information includes hardware and
network related information useful for provisioning (for example macaddress, uuid).
- This module requires the C(hpilo) python module.
extends_documentation_fragment:
- community.general.attributes
- community.general.attributes.info_module
- community.general.attributes
- community.general.attributes.info_module
options:
host:
description:
- The HP iLO hostname/address that is linked to the physical system.
- The HP iLO hostname/address that is linked to the physical system.
type: str
required: true
login:
@ -43,15 +41,15 @@ options:
- Change the ssl_version used.
default: TLSv1
type: str
choices: [ "SSLv3", "SSLv23", "TLSv1", "TLSv1_1", "TLSv1_2" ]
choices: ["SSLv3", "SSLv23", "TLSv1", "TLSv1_1", "TLSv1_2"]
requirements:
- hpilo
- hpilo
notes:
- This module ought to be run from a system that can access the HP iLO
interface directly, either by using C(local_action) or using C(delegate_to).
'''
- This module ought to be run from a system that can access the HP iLO interface directly, either by using C(local_action)
or using C(delegate_to).
"""
EXAMPLES = r'''
EXAMPLES = r"""
- name: Gather facts from a HP iLO interface only if the system is an HP server
community.general.hpilo_info:
host: YOUR_ILO_ADDRESS
@ -64,71 +62,71 @@ EXAMPLES = r'''
- ansible.builtin.fail:
msg: 'CMDB serial ({{ cmdb_serialno }}) does not match hardware serial ({{ results.hw_system_serial }}) !'
when: cmdb_serialno != results.hw_system_serial
'''
"""
RETURN = r'''
RETURN = r"""
# Typical output of HP iLO_info for a physical system
hw_bios_date:
description: BIOS date
returned: always
type: str
sample: 05/05/2011
description: BIOS date.
returned: always
type: str
sample: 05/05/2011
hw_bios_version:
description: BIOS version
returned: always
type: str
sample: P68
description: BIOS version.
returned: always
type: str
sample: P68
hw_ethX:
description: Interface information (for each interface)
returned: always
type: dict
sample:
- macaddress: 00:11:22:33:44:55
macaddress_dash: 00-11-22-33-44-55
description: Interface information (for each interface).
returned: always
type: dict
sample:
- macaddress: 00:11:22:33:44:55
macaddress_dash: 00-11-22-33-44-55
hw_eth_ilo:
description: Interface information (for the iLO network interface)
returned: always
type: dict
sample:
- macaddress: 00:11:22:33:44:BA
- macaddress_dash: 00-11-22-33-44-BA
description: Interface information (for the iLO network interface).
returned: always
type: dict
sample:
- macaddress: 00:11:22:33:44:BA
- macaddress_dash: 00-11-22-33-44-BA
hw_product_name:
description: Product name
returned: always
type: str
sample: ProLiant DL360 G7
description: Product name.
returned: always
type: str
sample: ProLiant DL360 G7
hw_product_uuid:
description: Product UUID
returned: always
type: str
sample: ef50bac8-2845-40ff-81d9-675315501dac
description: Product UUID.
returned: always
type: str
sample: ef50bac8-2845-40ff-81d9-675315501dac
hw_system_serial:
description: System serial number
returned: always
type: str
sample: ABC12345D6
description: System serial number.
returned: always
type: str
sample: ABC12345D6
hw_uuid:
description: Hardware UUID
returned: always
type: str
sample: 123456ABC78901D2
description: Hardware UUID.
returned: always
type: str
sample: 123456ABC78901D2
host_power_status:
description:
- Power status of host.
- Will be one of V(ON), V(OFF) and V(UNKNOWN).
returned: always
type: str
sample: "ON"
version_added: 3.5.0
'''
description:
- Power status of host.
- Will be one of V(ON), V(OFF) and V(UNKNOWN).
returned: always
type: str
sample: "ON"
version_added: 3.5.0
"""
import re
import traceback

View File

@ -9,13 +9,12 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = r'''
---
DOCUMENTATION = r"""
module: hponcfg
author: Dag Wieers (@dagwieers)
short_description: Configure HP iLO interface using hponcfg
short_description: Configure HP iLO interface using C(hponcfg)
description:
- This modules configures the HP iLO interface using hponcfg.
- This modules configures the HP iLO interface using C(hponcfg).
extends_documentation_fragment:
- community.general.attributes
attributes:
@ -26,32 +25,32 @@ attributes:
options:
path:
description:
- The XML file as accepted by hponcfg.
- The XML file as accepted by C(hponcfg).
required: true
aliases: ['src']
type: path
minfw:
description:
- The minimum firmware level needed.
- The minimum firmware level needed.
required: false
type: str
executable:
description:
- Path to the hponcfg executable (C(hponcfg) which uses $PATH).
- Path to the hponcfg executable (C(hponcfg) which uses E(PATH)).
default: hponcfg
type: str
verbose:
description:
- Run hponcfg in verbose mode (-v).
- Run C(hponcfg) in verbose mode (-v).
default: false
type: bool
requirements:
- hponcfg tool
- hponcfg tool
notes:
- You need a working hponcfg on the target system.
'''
- You need a working C(hponcfg) on the target system.
"""
EXAMPLES = r'''
EXAMPLES = r"""
- name: Example hponcfg configuration XML
ansible.builtin.copy:
content: |
@ -78,7 +77,7 @@ EXAMPLES = r'''
community.general.hponcfg:
src: /tmp/enable-ssh.xml
executable: /opt/hp/tools/hponcfg
'''
"""
from ansible_collections.community.general.plugins.module_utils.cmd_runner import CmdRunner, cmd_runner_fmt
from ansible_collections.community.general.plugins.module_utils.module_helper import ModuleHelper

View File

@ -9,7 +9,7 @@ from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
DOCUMENTATION = r"""
module: htpasswd
short_description: Manage user files for basic authentication
description:
@ -24,13 +24,13 @@ options:
path:
type: path
required: true
aliases: [ dest, destfile ]
aliases: [dest, destfile]
description:
- Path to the file that contains the usernames and passwords.
name:
type: str
required: true
aliases: [ username ]
aliases: [username]
description:
- User name to add or remove.
password:
@ -44,19 +44,17 @@ options:
required: false
default: "apr_md5_crypt"
description:
- Hashing scheme to be used. As well as the four choices listed
here, you can also use any other hash supported by passlib, such as
V(portable_apache22) and V(host_apache24); or V(md5_crypt) and V(sha256_crypt),
which are Linux passwd hashes. Only some schemes in addition to
the four choices below will be compatible with Apache or Nginx, and
supported schemes depend on passlib version and its dependencies.
- Hashing scheme to be used. As well as the four choices listed here, you can also use any other hash supported by passlib,
such as V(portable_apache22) and V(host_apache24); or V(md5_crypt) and V(sha256_crypt), which are Linux passwd hashes.
Only some schemes in addition to the four choices below will be compatible with Apache or Nginx, and supported schemes
depend on passlib version and its dependencies.
- See U(https://passlib.readthedocs.io/en/stable/lib/passlib.apache.html#passlib.apache.HtpasswdFile) parameter C(default_scheme).
- 'Some of the available choices might be: V(apr_md5_crypt), V(des_crypt), V(ldap_sha1), V(plaintext).'
aliases: [crypt_scheme]
state:
type: str
required: false
choices: [ present, absent ]
choices: [present, absent]
default: "present"
description:
- Whether the user entry should be present or not.
@ -65,22 +63,21 @@ options:
type: bool
default: true
description:
- Used with O(state=present). If V(true), the file will be created
if it does not exist. Conversely, if set to V(false) and the file
does not exist it will fail.
- Used with O(state=present). If V(true), the file will be created if it does not exist. Conversely, if set to V(false)
and the file does not exist it will fail.
notes:
- "This module depends on the C(passlib) Python library, which needs to be installed on all target systems."
- "On Debian < 11, Ubuntu <= 20.04, or Fedora: install C(python-passlib)."
- "On Debian, Ubuntu: install C(python3-passlib)."
- "On RHEL or CentOS: Enable EPEL, then install C(python-passlib)."
requirements: [ passlib>=1.6 ]
- This module depends on the C(passlib) Python library, which needs to be installed on all target systems.
- 'On Debian < 11, Ubuntu <= 20.04, or Fedora: install C(python-passlib).'
- 'On Debian, Ubuntu: install C(python3-passlib).'
- 'On RHEL or CentOS: Enable EPEL, then install C(python-passlib).'
requirements: [passlib>=1.6]
author: "Ansible Core Team"
extends_documentation_fragment:
- files
- community.general.attributes
'''
"""
EXAMPLES = """
EXAMPLES = r"""
- name: Add a user to a password file and ensure permissions are set
community.general.htpasswd:
path: /etc/nginx/passwdfile

View File

@ -12,230 +12,207 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_ecs_instance
description:
- instance management.
- Instance management.
short_description: Creates a resource of Ecs/Instance in Huawei Cloud
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- The timeouts for create operation.
type: str
default: '30m'
update:
description:
- The timeouts for update operation.
type: str
default: '30m'
delete:
description:
- The timeouts for delete operation.
type: str
default: '30m'
availability_zone:
description:
- Specifies the name of the AZ where the ECS is located.
type: str
required: true
flavor_name:
description:
- Specifies the name of the system flavor.
type: str
required: true
image_id:
description:
- Specifies the ID of the system image.
type: str
required: true
name:
description:
- Specifies the ECS name. Value requirements consists of 1 to 64
characters, including letters, digits, underscores (V(_)), hyphens
(V(-)), periods (V(.)).
type: str
required: true
nics:
description:
- Specifies the NIC information of the ECS. Constraints the
network of the NIC must belong to the VPC specified by vpc_id. A
maximum of 12 NICs can be attached to an ECS.
type: list
elements: dict
required: true
suboptions:
ip_address:
description:
- Specifies the IP address of the NIC. The value is an IPv4
address. Its value must be an unused IP
address in the network segment of the subnet.
type: str
required: true
subnet_id:
description:
- Specifies the ID of subnet.
type: str
required: true
root_volume:
description:
- Specifies the configuration of the ECS's system disks.
type: dict
required: true
suboptions:
volume_type:
description:
- Specifies the ECS system disk type.
- SATA is common I/O disk type.
- SAS is high I/O disk type.
- SSD is ultra-high I/O disk type.
- co-p1 is high I/O (performance-optimized I) disk type.
- uh-l1 is ultra-high I/O (latency-optimized) disk type.
- NOTE is For HANA, HL1, and HL2 ECSs, use co-p1 and uh-l1
disks. For other ECSs, do not use co-p1 or uh-l1 disks.
type: str
required: true
size:
description:
- Specifies the system disk size, in GB. The value range is
1 to 1024. The system disk size must be
greater than or equal to the minimum system disk size
supported by the image (min_disk attribute of the image).
If this parameter is not specified or is set to 0, the
default system disk size is the minimum value of the
system disk in the image (min_disk attribute of the
image).
type: int
required: false
snapshot_id:
description:
- Specifies the snapshot ID or ID of the original data disk
contained in the full-ECS image.
type: str
required: false
vpc_id:
description:
- Specifies the ID of the VPC to which the ECS belongs.
type: str
required: true
admin_pass:
description:
- Specifies the initial login password of the administrator account
for logging in to an ECS using password authentication. The Linux
administrator is root, and the Windows administrator is
Administrator. Password complexity requirements, consists of 8 to
26 characters. The password must contain at least three of the
following character types 'uppercase letters, lowercase letters,
digits, and special characters (!@$%^-_=+[{}]:,./?)'. The password
cannot contain the username or the username in reverse. The
Windows ECS password cannot contain the username, the username in
reverse, or more than two consecutive characters in the username.
type: str
required: false
data_volumes:
description:
- Specifies the data disks of ECS instance.
type: list
elements: dict
required: false
suboptions:
volume_id:
description:
- Specifies the disk ID.
type: str
required: true
device:
description:
- Specifies the disk device name.
type: str
required: false
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- Specifies the description of an ECS, which is a null string by
default. Can contain a maximum of 85 characters. Cannot contain
special characters, such as < and >.
- The timeouts for create operation.
type: str
default: '30m'
update:
description:
- The timeouts for update operation.
type: str
default: '30m'
delete:
description:
- The timeouts for delete operation.
type: str
default: '30m'
availability_zone:
description:
- Specifies the name of the AZ where the ECS is located.
type: str
required: true
flavor_name:
description:
- Specifies the name of the system flavor.
type: str
required: true
image_id:
description:
- Specifies the ID of the system image.
type: str
required: true
name:
description:
- Specifies the ECS name. Value requirements consists of 1 to 64 characters, including letters, digits, underscores
(V(_)), hyphens (V(-)), periods (V(.)).
type: str
required: true
nics:
description:
- Specifies the NIC information of the ECS. Constraints the network of the NIC must belong to the VPC specified by vpc_id.
A maximum of 12 NICs can be attached to an ECS.
type: list
elements: dict
required: true
suboptions:
ip_address:
description:
- Specifies the IP address of the NIC. The value is an IPv4 address. Its value must be an unused IP address in the
network segment of the subnet.
type: str
required: true
subnet_id:
description:
- Specifies the ID of subnet.
type: str
required: true
root_volume:
description:
- Specifies the configuration of the ECS's system disks.
type: dict
required: true
suboptions:
volume_type:
description:
- Specifies the ECS system disk type.
- SATA is common I/O disk type.
- SAS is high I/O disk type.
- SSD is ultra-high I/O disk type.
- Co-p1 is high I/O (performance-optimized I) disk type.
- Uh-l1 is ultra-high I/O (latency-optimized) disk type.
- NOTE is For HANA, HL1, and HL2 ECSs, use co-p1 and uh-l1 disks. For other ECSs, do not use co-p1 or uh-l1 disks.
type: str
required: true
size:
description:
- Specifies the system disk size, in GB. The value range is 1 to 1024. The system disk size must be greater than
or equal to the minimum system disk size supported by the image (min_disk attribute of the image). If this parameter
is not specified or is set to 0, the default system disk size is the minimum value of the system disk in the image
(min_disk attribute of the image).
type: int
required: false
snapshot_id:
description:
- Specifies the snapshot ID or ID of the original data disk contained in the full-ECS image.
type: str
required: false
eip_id:
vpc_id:
description:
- Specifies the ID of the VPC to which the ECS belongs.
type: str
required: true
admin_pass:
description:
- Specifies the initial login password of the administrator account for logging in to an ECS using password authentication.
The Linux administrator is root, and the Windows administrator is Administrator. Password complexity requirements,
consists of 8 to 26 characters. The password must contain at least three of the following character types 'uppercase
letters, lowercase letters, digits, and special characters (V(!@$%^-_=+[{}]:,./?))'. The password cannot contain the
username or the username in reverse. The Windows ECS password cannot contain the username, the username in reverse,
or more than two consecutive characters in the username.
type: str
required: false
data_volumes:
description:
- Specifies the data disks of ECS instance.
type: list
elements: dict
required: false
suboptions:
volume_id:
description:
- Specifies the ID of the elastic IP address assigned to the ECS.
Only elastic IP addresses in the DOWN state can be
assigned.
type: str
required: false
enable_auto_recovery:
description:
- Specifies whether automatic recovery is enabled on the ECS.
type: bool
required: false
enterprise_project_id:
description:
- Specifies the ID of the enterprise project to which the ECS
belongs.
type: str
required: false
security_groups:
description:
- Specifies the security groups of the ECS. If this
parameter is left blank, the default security group is bound to
the ECS by default.
type: list
elements: str
required: false
server_metadata:
description:
- Specifies the metadata of ECS to be created.
type: dict
required: false
server_tags:
description:
- Specifies the tags of an ECS. When you create ECSs, one ECS
supports up to 10 tags.
type: dict
required: false
ssh_key_name:
description:
- Specifies the name of the SSH key used for logging in to the ECS.
type: str
required: false
user_data:
description:
- Specifies the user data to be injected during the ECS creation
process. Text, text files, and gzip files can be injected.
The content to be injected must be encoded with
base64. The maximum size of the content to be injected (before
encoding) is 32 KB. For Linux ECSs, this parameter does not take
effect when adminPass is used.
- Specifies the disk ID.
type: str
required: true
device:
description:
- Specifies the disk device name.
type: str
required: false
description:
description:
- Specifies the description of an ECS, which is a null string by default. Can contain a maximum of 85 characters. Cannot
contain special characters, such as V(<) and V(>).
type: str
required: false
eip_id:
description:
- Specifies the ID of the elastic IP address assigned to the ECS. Only elastic IP addresses in the DOWN state can be
assigned.
type: str
required: false
enable_auto_recovery:
description:
- Specifies whether automatic recovery is enabled on the ECS.
type: bool
required: false
enterprise_project_id:
description:
- Specifies the ID of the enterprise project to which the ECS belongs.
type: str
required: false
security_groups:
description:
- Specifies the security groups of the ECS. If this parameter is left blank, the default security group is bound to
the ECS by default.
type: list
elements: str
required: false
server_metadata:
description:
- Specifies the metadata of ECS to be created.
type: dict
required: false
server_tags:
description:
- Specifies the tags of an ECS. When you create ECSs, one ECS supports up to 10 tags.
type: dict
required: false
ssh_key_name:
description:
- Specifies the name of the SSH key used for logging in to the ECS.
type: str
required: false
user_data:
description:
- Specifies the user data to be injected during the ECS creation process. Text, text files, and gzip files can be injected.
The content to be injected must be encoded with base64. The maximum size of the content to be injected (before encoding)
is 32 KB. For Linux ECSs, this parameter does not take effect when adminPass is used.
type: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# create an ecs instance
- name: Create a vpc
hwc_network_vpc:
@ -285,238 +262,216 @@ EXAMPLES = '''
vpc_id: "{{ vpc.id }}"
root_volume:
volume_type: "SAS"
'''
"""
RETURN = '''
availability_zone:
description:
- Specifies the name of the AZ where the ECS is located.
type: str
returned: success
flavor_name:
description:
- Specifies the name of the system flavor.
type: str
returned: success
image_id:
description:
- Specifies the ID of the system image.
type: str
returned: success
name:
description:
- Specifies the ECS name. Value requirements "Consists of 1 to 64
characters, including letters, digits, underscores (V(_)), hyphens
(V(-)), periods (V(.)).".
type: str
returned: success
nics:
description:
- Specifies the NIC information of the ECS. The
network of the NIC must belong to the VPC specified by vpc_id. A
maximum of 12 NICs can be attached to an ECS.
type: list
returned: success
contains:
ip_address:
description:
- Specifies the IP address of the NIC. The value is an IPv4
address. Its value must be an unused IP
address in the network segment of the subnet.
type: str
returned: success
subnet_id:
description:
- Specifies the ID of subnet.
type: str
returned: success
port_id:
description:
- Specifies the port ID corresponding to the IP address.
type: str
returned: success
root_volume:
description:
- Specifies the configuration of the ECS's system disks.
type: dict
returned: success
contains:
volume_type:
description:
- Specifies the ECS system disk type.
- SATA is common I/O disk type.
- SAS is high I/O disk type.
- SSD is ultra-high I/O disk type.
- co-p1 is high I/O (performance-optimized I) disk type.
- uh-l1 is ultra-high I/O (latency-optimized) disk type.
- NOTE is For HANA, HL1, and HL2 ECSs, use co-p1 and uh-l1
disks. For other ECSs, do not use co-p1 or uh-l1 disks.
type: str
returned: success
size:
description:
- Specifies the system disk size, in GB. The value range is
1 to 1024. The system disk size must be
greater than or equal to the minimum system disk size
supported by the image (min_disk attribute of the image).
If this parameter is not specified or is set to 0, the
default system disk size is the minimum value of the
system disk in the image (min_disk attribute of the
image).
type: int
returned: success
snapshot_id:
description:
- Specifies the snapshot ID or ID of the original data disk
contained in the full-ECS image.
type: str
returned: success
device:
description:
- Specifies the disk device name.
type: str
returned: success
volume_id:
description:
- Specifies the disk ID.
type: str
returned: success
vpc_id:
description:
- Specifies the ID of the VPC to which the ECS belongs.
type: str
returned: success
admin_pass:
description:
- Specifies the initial login password of the administrator account
for logging in to an ECS using password authentication. The Linux
administrator is root, and the Windows administrator is
Administrator. Password complexity requirements consists of 8 to
26 characters. The password must contain at least three of the
following character types "uppercase letters, lowercase letters,
digits, and special characters (!@$%^-_=+[{}]:,./?)". The password
cannot contain the username or the username in reverse. The
Windows ECS password cannot contain the username, the username in
reverse, or more than two consecutive characters in the username.
type: str
returned: success
data_volumes:
description:
- Specifies the data disks of ECS instance.
type: list
returned: success
contains:
volume_id:
description:
- Specifies the disk ID.
type: str
returned: success
device:
description:
- Specifies the disk device name.
type: str
returned: success
description:
description:
- Specifies the description of an ECS, which is a null string by
default. Can contain a maximum of 85 characters. Cannot contain
special characters, such as < and >.
type: str
returned: success
eip_id:
description:
- Specifies the ID of the elastic IP address assigned to the ECS.
Only elastic IP addresses in the DOWN state can be assigned.
type: str
returned: success
enable_auto_recovery:
description:
- Specifies whether automatic recovery is enabled on the ECS.
type: bool
returned: success
enterprise_project_id:
description:
- Specifies the ID of the enterprise project to which the ECS
belongs.
type: str
returned: success
security_groups:
description:
- Specifies the security groups of the ECS. If this parameter is left
blank, the default security group is bound to the ECS by default.
type: list
returned: success
server_metadata:
description:
- Specifies the metadata of ECS to be created.
type: dict
returned: success
server_tags:
description:
- Specifies the tags of an ECS. When you create ECSs, one ECS
supports up to 10 tags.
type: dict
returned: success
ssh_key_name:
description:
- Specifies the name of the SSH key used for logging in to the ECS.
type: str
returned: success
user_data:
description:
- Specifies the user data to be injected during the ECS creation
process. Text, text files, and gzip files can be injected.
The content to be injected must be encoded with base64. The maximum
size of the content to be injected (before encoding) is 32 KB. For
Linux ECSs, this parameter does not take effect when adminPass is
used.
type: str
returned: success
config_drive:
description:
- Specifies the configuration driver.
type: str
returned: success
created:
description:
- Specifies the time when an ECS was created.
type: str
returned: success
disk_config_type:
description:
- Specifies the disk configuration type. MANUAL is The image
space is not expanded. AUTO is the image space of the system disk
will be expanded to be as same as the flavor.
type: str
returned: success
host_name:
description:
- Specifies the host name of the ECS.
type: str
returned: success
image_name:
description:
- Specifies the image name of the ECS.
type: str
returned: success
power_state:
description:
- Specifies the power status of the ECS.
type: int
returned: success
server_alias:
description:
- Specifies the ECS alias.
type: str
returned: success
status:
description:
- Specifies the ECS status. Options are ACTIVE, REBOOT, HARD_REBOOT,
REBUILD, MIGRATING, BUILD, SHUTOFF, RESIZE, VERIFY_RESIZE, ERROR,
and DELETED.
type: str
returned: success
'''
RETURN = r"""
availability_zone:
description:
- Specifies the name of the AZ where the ECS is located.
type: str
returned: success
flavor_name:
description:
- Specifies the name of the system flavor.
type: str
returned: success
image_id:
description:
- Specifies the ID of the system image.
type: str
returned: success
name:
description:
- Specifies the ECS name. Value requirements "Consists of 1 to 64 characters, including letters, digits, underscores (V(_)),
hyphens (V(-)), periods (V(.)).".
type: str
returned: success
nics:
description:
- Specifies the NIC information of the ECS. The network of the NIC must belong to the VPC specified by vpc_id. A maximum
of 12 NICs can be attached to an ECS.
type: list
returned: success
contains:
ip_address:
description:
- Specifies the IP address of the NIC. The value is an IPv4 address. Its value must be an unused IP address in the
network segment of the subnet.
type: str
returned: success
subnet_id:
description:
- Specifies the ID of subnet.
type: str
returned: success
port_id:
description:
- Specifies the port ID corresponding to the IP address.
type: str
returned: success
root_volume:
description:
- Specifies the configuration of the ECS's system disks.
type: dict
returned: success
contains:
volume_type:
description:
- Specifies the ECS system disk type.
- SATA is common I/O disk type.
- SAS is high I/O disk type.
- SSD is ultra-high I/O disk type.
- Co-p1 is high I/O (performance-optimized I) disk type.
- Uh-l1 is ultra-high I/O (latency-optimized) disk type.
- NOTE is For HANA, HL1, and HL2 ECSs, use co-p1 and uh-l1 disks. For other ECSs, do not use co-p1 or uh-l1 disks.
type: str
returned: success
size:
description:
- Specifies the system disk size, in GB. The value range is 1 to 1024. The system disk size must be greater than or
equal to the minimum system disk size supported by the image (min_disk attribute of the image). If this parameter
is not specified or is set to 0, the default system disk size is the minimum value of the system disk in the image
(min_disk attribute of the image).
type: int
returned: success
snapshot_id:
description:
- Specifies the snapshot ID or ID of the original data disk contained in the full-ECS image.
type: str
returned: success
device:
description:
- Specifies the disk device name.
type: str
returned: success
volume_id:
description:
- Specifies the disk ID.
type: str
returned: success
vpc_id:
description:
- Specifies the ID of the VPC to which the ECS belongs.
type: str
returned: success
admin_pass:
description:
- Specifies the initial login password of the administrator account for logging in to an ECS using password authentication.
The Linux administrator is root, and the Windows administrator is Administrator. Password complexity requirements consists
of 8 to 26 characters. The password must contain at least three of the following character types "uppercase letters,
lowercase letters, digits, and special characters (!@$%^-_=+[{}]:,./?)". The password cannot contain the username or
the username in reverse. The Windows ECS password cannot contain the username, the username in reverse, or more than
two consecutive characters in the username.
type: str
returned: success
data_volumes:
description:
- Specifies the data disks of ECS instance.
type: list
returned: success
contains:
volume_id:
description:
- Specifies the disk ID.
type: str
returned: success
device:
description:
- Specifies the disk device name.
type: str
returned: success
description:
description:
- Specifies the description of an ECS, which is a null string by default. Can contain a maximum of 85 characters. Cannot
contain special characters, such as < and >.
type: str
returned: success
eip_id:
description:
- Specifies the ID of the elastic IP address assigned to the ECS. Only elastic IP addresses in the DOWN state can be assigned.
type: str
returned: success
enable_auto_recovery:
description:
- Specifies whether automatic recovery is enabled on the ECS.
type: bool
returned: success
enterprise_project_id:
description:
- Specifies the ID of the enterprise project to which the ECS belongs.
type: str
returned: success
security_groups:
description:
- Specifies the security groups of the ECS. If this parameter is left blank, the default security group is bound to the
ECS by default.
type: list
returned: success
server_metadata:
description:
- Specifies the metadata of ECS to be created.
type: dict
returned: success
server_tags:
description:
- Specifies the tags of an ECS. When you create ECSs, one ECS supports up to 10 tags.
type: dict
returned: success
ssh_key_name:
description:
- Specifies the name of the SSH key used for logging in to the ECS.
type: str
returned: success
user_data:
description:
- Specifies the user data to be injected during the ECS creation process. Text, text files, and gzip files can be injected.
The content to be injected must be encoded with base64. The maximum size of the content to be injected (before encoding)
is 32 KB. For Linux ECSs, this parameter does not take effect when adminPass is used.
type: str
returned: success
config_drive:
description:
- Specifies the configuration driver.
type: str
returned: success
created:
description:
- Specifies the time when an ECS was created.
type: str
returned: success
disk_config_type:
description:
- Specifies the disk configuration type. MANUAL is The image space is not expanded. AUTO is the image space of the system
disk will be expanded to be as same as the flavor.
type: str
returned: success
host_name:
description:
- Specifies the host name of the ECS.
type: str
returned: success
image_name:
description:
- Specifies the image name of the ECS.
type: str
returned: success
power_state:
description:
- Specifies the power status of the ECS.
type: int
returned: success
server_alias:
description:
- Specifies the ECS alias.
type: str
returned: success
status:
description:
- Specifies the ECS status. Options are ACTIVE, REBOOT, HARD_REBOOT, REBUILD, MIGRATING, BUILD, SHUTOFF, RESIZE, VERIFY_RESIZE,
ERROR, and DELETED.
type: str
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcModule, are_different_dicts, build_path,

View File

@ -12,155 +12,135 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_evs_disk
description:
- block storage management.
- Block storage management.
short_description: Creates a resource of Evs/Disk in Huawei Cloud
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
description:
- Whether the given object should exist in Huaweicloud Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- The timeouts for create operation.
type: str
default: '30m'
update:
description:
- The timeouts for update operation.
type: str
default: '30m'
delete:
description:
- The timeouts for delete operation.
type: str
default: '30m'
availability_zone:
description:
- Specifies the AZ where you want to create the disk.
type: str
required: true
name:
description:
- Specifies the disk name. The value can contain a maximum of 255
bytes.
type: str
required: true
volume_type:
description:
- Specifies the disk type. Currently, the value can be SSD, SAS, or
SATA.
- SSD specifies the ultra-high I/O disk type.
- SAS specifies the high I/O disk type.
- SATA specifies the common I/O disk type.
- If the specified disk type is not available in the AZ, the
disk will fail to create. If the EVS disk is created from a
snapshot, the volume_type field must be the same as that of the
snapshot's source disk.
type: str
required: true
backup_id:
description:
- Specifies the ID of the backup that can be used to create a disk.
This parameter is mandatory when you use a backup to create the
disk.
type: str
required: false
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- Specifies the disk description. The value can contain a maximum
of 255 bytes.
- The timeouts for create operation.
type: str
required: false
enable_full_clone:
default: '30m'
update:
description:
- If the disk is created from a snapshot and linked cloning needs
to be used, set this parameter to True.
type: bool
required: false
enable_scsi:
description:
- If this parameter is set to True, the disk device type will be
SCSI, which allows ECS OSs to directly access underlying storage
media. SCSI reservation command is supported. If this parameter
is set to False, the disk device type will be VBD, which supports
only simple SCSI read/write commands.
- If parameter enable_share is set to True and this parameter
is not specified, shared SCSI disks are created. SCSI EVS disks
cannot be created from backups, which means that this parameter
cannot be True if backup_id has been specified.
type: bool
required: false
enable_share:
description:
- Specifies whether the disk is shareable. The default value is
False.
type: bool
required: false
encryption_id:
description:
- Specifies the encryption ID. The length of it fixes at 36 bytes.
- The timeouts for update operation.
type: str
required: false
enterprise_project_id:
default: '30m'
delete:
description:
- Specifies the enterprise project ID. This ID is associated with
the disk during the disk creation. If it is not specified, the
disk is bound to the default enterprise project.
- The timeouts for delete operation.
type: str
required: false
image_id:
description:
- Specifies the image ID. If this parameter is specified, the disk
is created from an image. BMS system disks cannot be
created from BMS images.
type: str
required: false
size:
description:
- Specifies the disk size, in GB. Its values are as follows, System
disk 1 GB to 1024 GB, Data disk 10 GB to 32768 GB. This
parameter is mandatory when you create an empty disk or use an
image or a snapshot to create a disk. If you use an image or a
snapshot to create a disk, the disk size must be greater than or
equal to the image or snapshot size. This parameter is optional
when you use a backup to create a disk. If this parameter is not
specified, the disk size is equal to the backup size.
type: int
required: false
snapshot_id:
description:
- Specifies the snapshot ID. If this parameter is specified, the
disk is created from a snapshot.
type: str
required: false
default: '30m'
availability_zone:
description:
- Specifies the AZ where you want to create the disk.
type: str
required: true
name:
description:
- Specifies the disk name. The value can contain a maximum of 255 bytes.
type: str
required: true
volume_type:
description:
- Specifies the disk type. Currently, the value can be SSD, SAS, or SATA.
- SSD specifies the ultra-high I/O disk type.
- SAS specifies the high I/O disk type.
- SATA specifies the common I/O disk type.
- If the specified disk type is not available in the AZ, the disk will fail to create. If the EVS disk is created from
a snapshot, the volume_type field must be the same as that of the snapshot's source disk.
type: str
required: true
backup_id:
description:
- Specifies the ID of the backup that can be used to create a disk. This parameter is mandatory when you use a backup
to create the disk.
type: str
required: false
description:
description:
- Specifies the disk description. The value can contain a maximum of 255 bytes.
type: str
required: false
enable_full_clone:
description:
- If the disk is created from a snapshot and linked cloning needs to be used, set this parameter to True.
type: bool
required: false
enable_scsi:
description:
- If this parameter is set to True, the disk device type will be SCSI, which allows ECS OSs to directly access underlying
storage media. SCSI reservation command is supported. If this parameter is set to False, the disk device type will
be VBD, which supports only simple SCSI read/write commands.
- If parameter enable_share is set to True and this parameter is not specified, shared SCSI disks are created. SCSI
EVS disks cannot be created from backups, which means that this parameter cannot be True if backup_id has been specified.
type: bool
required: false
enable_share:
description:
- Specifies whether the disk is shareable. The default value is False.
type: bool
required: false
encryption_id:
description:
- Specifies the encryption ID. The length of it fixes at 36 bytes.
type: str
required: false
enterprise_project_id:
description:
- Specifies the enterprise project ID. This ID is associated with the disk during the disk creation. If it is not specified,
the disk is bound to the default enterprise project.
type: str
required: false
image_id:
description:
- Specifies the image ID. If this parameter is specified, the disk is created from an image. BMS system disks cannot
be created from BMS images.
type: str
required: false
size:
description:
- Specifies the disk size, in GB. Its values are as follows, System disk 1 GB to 1024 GB, Data disk 10 GB to 32768 GB.
This parameter is mandatory when you create an empty disk or use an image or a snapshot to create a disk. If you use
an image or a snapshot to create a disk, the disk size must be greater than or equal to the image or snapshot size.
This parameter is optional when you use a backup to create a disk. If this parameter is not specified, the disk size
is equal to the backup size.
type: int
required: false
snapshot_id:
description:
- Specifies the snapshot ID. If this parameter is specified, the disk is created from a snapshot.
type: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# test create disk
- name: Create a disk
community.general.hwc_evs_disk:
@ -168,176 +148,153 @@ EXAMPLES = '''
name: "ansible_evs_disk_test"
volume_type: "SATA"
size: 10
'''
"""
RETURN = '''
availability_zone:
description:
- Specifies the AZ where you want to create the disk.
type: str
returned: success
name:
description:
- Specifies the disk name. The value can contain a maximum of 255
bytes.
type: str
returned: success
volume_type:
description:
- Specifies the disk type. Currently, the value can be SSD, SAS, or
SATA.
- SSD specifies the ultra-high I/O disk type.
- SAS specifies the high I/O disk type.
- SATA specifies the common I/O disk type.
- If the specified disk type is not available in the AZ, the
disk will fail to create. If the EVS disk is created from a
snapshot, the volume_type field must be the same as that of the
snapshot's source disk.
type: str
returned: success
backup_id:
description:
- Specifies the ID of the backup that can be used to create a disk.
This parameter is mandatory when you use a backup to create the
disk.
type: str
returned: success
description:
description:
- Specifies the disk description. The value can contain a maximum
of 255 bytes.
type: str
returned: success
enable_full_clone:
description:
- If the disk is created from a snapshot and linked cloning needs
to be used, set this parameter to True.
type: bool
returned: success
enable_scsi:
description:
- If this parameter is set to True, the disk device type will be
SCSI, which allows ECS OSs to directly access underlying storage
media. SCSI reservation command is supported. If this parameter
is set to False, the disk device type will be VBD, which supports
only simple SCSI read/write commands.
- If parameter enable_share is set to True and this parameter
is not specified, shared SCSI disks are created. SCSI EVS disks
cannot be created from backups, which means that this parameter
cannot be True if backup_id has been specified.
type: bool
returned: success
enable_share:
description:
- Specifies whether the disk is shareable. The default value is
False.
type: bool
returned: success
encryption_id:
description:
- Specifies the encryption ID. The length of it fixes at 36 bytes.
type: str
returned: success
enterprise_project_id:
description:
- Specifies the enterprise project ID. This ID is associated with
the disk during the disk creation. If it is not specified, the
disk is bound to the default enterprise project.
type: str
returned: success
image_id:
description:
- Specifies the image ID. If this parameter is specified, the disk
is created from an image. BMS system disks cannot be
created from BMS images.
type: str
returned: success
size:
description:
- Specifies the disk size, in GB. Its values are as follows, System
disk 1 GB to 1024 GB, Data disk 10 GB to 32768 GB. This
parameter is mandatory when you create an empty disk or use an
image or a snapshot to create a disk. If you use an image or a
snapshot to create a disk, the disk size must be greater than or
equal to the image or snapshot size. This parameter is optional
when you use a backup to create a disk. If this parameter is not
specified, the disk size is equal to the backup size.
type: int
returned: success
snapshot_id:
description:
- Specifies the snapshot ID. If this parameter is specified, the
disk is created from a snapshot.
type: str
returned: success
attachments:
description:
- Specifies the disk attachment information.
type: complex
returned: success
contains:
attached_at:
description:
- Specifies the time when the disk was attached. Time
format is 'UTC YYYY-MM-DDTHH:MM:SS'.
type: str
returned: success
attachment_id:
description:
- Specifies the ID of the attachment information.
type: str
returned: success
device:
description:
- Specifies the device name.
type: str
returned: success
server_id:
description:
- Specifies the ID of the server to which the disk is
attached.
type: str
returned: success
backup_policy_id:
description:
- Specifies the backup policy ID.
type: str
returned: success
created_at:
description:
- Specifies the time when the disk was created. Time format is 'UTC
YYYY-MM-DDTHH:MM:SS'.
type: str
returned: success
is_bootable:
description:
- Specifies whether the disk is bootable.
type: bool
returned: success
is_readonly:
description:
- Specifies whether the disk is read-only or read/write. True
indicates that the disk is read-only. False indicates that the
disk is read/write.
type: bool
returned: success
source_volume_id:
description:
- Specifies the source disk ID. This parameter has a value if the
disk is created from a source disk.
type: str
returned: success
status:
description:
- Specifies the disk status.
type: str
returned: success
tags:
description:
- Specifies the disk tags.
type: dict
returned: success
'''
RETURN = r"""
availability_zone:
description:
- Specifies the AZ where you want to create the disk.
type: str
returned: success
name:
description:
- Specifies the disk name. The value can contain a maximum of 255 bytes.
type: str
returned: success
volume_type:
description:
- Specifies the disk type. Currently, the value can be SSD, SAS, or SATA.
- SSD specifies the ultra-high I/O disk type.
- SAS specifies the high I/O disk type.
- SATA specifies the common I/O disk type.
- If the specified disk type is not available in the AZ, the disk will fail to create. If the EVS disk is created from
a snapshot, the volume_type field must be the same as that of the snapshot's source disk.
type: str
returned: success
backup_id:
description:
- Specifies the ID of the backup that can be used to create a disk. This parameter is mandatory when you use a backup
to create the disk.
type: str
returned: success
description:
description:
- Specifies the disk description. The value can contain a maximum of 255 bytes.
type: str
returned: success
enable_full_clone:
description:
- If the disk is created from a snapshot and linked cloning needs to be used, set this parameter to True.
type: bool
returned: success
enable_scsi:
description:
- If this parameter is set to True, the disk device type will be SCSI, which allows ECS OSs to directly access underlying
storage media. SCSI reservation command is supported. If this parameter is set to False, the disk device type will be
VBD, which supports only simple SCSI read/write commands.
- If parameter enable_share is set to True and this parameter is not specified, shared SCSI disks are created. SCSI EVS
disks cannot be created from backups, which means that this parameter cannot be True if backup_id has been specified.
type: bool
returned: success
enable_share:
description:
- Specifies whether the disk is shareable. The default value is False.
type: bool
returned: success
encryption_id:
description:
- Specifies the encryption ID. The length of it fixes at 36 bytes.
type: str
returned: success
enterprise_project_id:
description:
- Specifies the enterprise project ID. This ID is associated with the disk during the disk creation. If it is not specified,
the disk is bound to the default enterprise project.
type: str
returned: success
image_id:
description:
- Specifies the image ID. If this parameter is specified, the disk is created from an image. BMS system disks cannot be
created from BMS images.
type: str
returned: success
size:
description:
- Specifies the disk size, in GB. Its values are as follows, System disk 1 GB to 1024 GB, Data disk 10 GB to 32768 GB.
This parameter is mandatory when you create an empty disk or use an image or a snapshot to create a disk. If you use
an image or a snapshot to create a disk, the disk size must be greater than or equal to the image or snapshot size.
This parameter is optional when you use a backup to create a disk. If this parameter is not specified, the disk size
is equal to the backup size.
type: int
returned: success
snapshot_id:
description:
- Specifies the snapshot ID. If this parameter is specified, the disk is created from a snapshot.
type: str
returned: success
attachments:
description:
- Specifies the disk attachment information.
type: complex
returned: success
contains:
attached_at:
description:
- Specifies the time when the disk was attached. Time format is 'UTC YYYY-MM-DDTHH:MM:SS'.
type: str
returned: success
attachment_id:
description:
- Specifies the ID of the attachment information.
type: str
returned: success
device:
description:
- Specifies the device name.
type: str
returned: success
server_id:
description:
- Specifies the ID of the server to which the disk is attached.
type: str
returned: success
backup_policy_id:
description:
- Specifies the backup policy ID.
type: str
returned: success
created_at:
description:
- Specifies the time when the disk was created. Time format is 'UTC YYYY-MM-DDTHH:MM:SS'.
type: str
returned: success
is_bootable:
description:
- Specifies whether the disk is bootable.
type: bool
returned: success
is_readonly:
description:
- Specifies whether the disk is read-only or read/write. True indicates that the disk is read-only. False indicates that
the disk is read/write.
type: bool
returned: success
source_volume_id:
description:
- Specifies the source disk ID. This parameter has a value if the disk is created from a source disk.
type: str
returned: success
status:
description:
- Specifies the disk status.
type: str
returned: success
tags:
description:
- Specifies the disk tags.
type: dict
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcModule, are_different_dicts, build_path,

View File

@ -12,123 +12,120 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_network_vpc
description:
- Represents an vpc resource.
- Represents an vpc resource.
short_description: Creates a Huawei Cloud VPC
author: Huawei Inc. (@huaweicloud)
requirements:
- requests >= 2.18.4
- keystoneauth1 >= 3.6.0
- requests >= 2.18.4
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
state:
description:
- Whether the given object should exist in VPC.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- Whether the given object should exist in vpc.
- The timeout for create operation.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
default: '15m'
update:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- The timeout for create operation.
type: str
default: '15m'
update:
description:
- The timeout for update operation.
type: str
default: '15m'
delete:
description:
- The timeout for delete operation.
type: str
default: '15m'
name:
description:
- The name of vpc.
- The timeout for update operation.
type: str
required: true
cidr:
default: '15m'
delete:
description:
- The range of available subnets in the vpc.
- The timeout for delete operation.
type: str
required: true
default: '15m'
name:
description:
- The name of vpc.
type: str
required: true
cidr:
description:
- The range of available subnets in the VPC.
type: str
required: true
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
- name: Create a vpc
community.general.hwc_network_vpc:
identity_endpoint: "{{ identity_endpoint }}"
user: "{{ user }}"
password: "{{ password }}"
domain: "{{ domain }}"
project: "{{ project }}"
region: "{{ region }}"
name: "vpc_1"
cidr: "192.168.100.0/24"
state: present
'''
identity_endpoint: "{{ identity_endpoint }}"
user: "{{ user }}"
password: "{{ password }}"
domain: "{{ domain }}"
project: "{{ project }}"
region: "{{ region }}"
name: "vpc_1"
cidr: "192.168.100.0/24"
state: present
"""
RETURN = '''
id:
description:
- the id of vpc.
type: str
returned: success
name:
description:
- the name of vpc.
type: str
returned: success
cidr:
description:
- the range of available subnets in the vpc.
type: str
returned: success
status:
description:
- the status of vpc.
type: str
returned: success
routes:
description:
- the route information.
type: complex
returned: success
contains:
destination:
description:
- the destination network segment of a route.
type: str
returned: success
next_hop:
description:
- the next hop of a route. If the route type is peering,
it will provide VPC peering connection ID.
type: str
returned: success
enable_shared_snat:
description:
- show whether the shared snat is enabled.
type: bool
returned: success
'''
RETURN = r"""
id:
description:
- The id of vpc.
type: str
returned: success
name:
description:
- The name of vpc.
type: str
returned: success
cidr:
description:
- The range of available subnets in the vpc.
type: str
returned: success
status:
description:
- The status of vpc.
type: str
returned: success
routes:
description:
- The route information.
type: complex
returned: success
contains:
destination:
description:
- The destination network segment of a route.
type: str
returned: success
next_hop:
description:
- The next hop of a route. If the route type is peering, it will provide VPC peering connection ID.
type: str
returned: success
enable_shared_snat:
description:
- Show whether the shared snat is enabled.
type: bool
returned: success
"""
###############################################################################
# Imports

View File

@ -12,101 +12,92 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_smn_topic
description:
- Represents a SMN notification topic resource.
short_description: Creates a resource of SMNTopic in Huaweicloud Cloud
- Represents a SMN notification topic resource.
short_description: Creates a resource of SMNTopic in Huawei Cloud
author: Huawei Inc. (@huaweicloud)
requirements:
- requests >= 2.18.4
- keystoneauth1 >= 3.6.0
- requests >= 2.18.4
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
description:
- Whether the given object should exist in Huaweicloud Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
display_name:
description:
- Topic display name, which is presented as the name of the email
sender in an email message. The topic display name contains a
maximum of 192 bytes.
type: str
required: false
name:
description:
- Name of the topic to be created. The topic name is a string of 1
to 256 characters. It must contain upper- or lower-case letters,
digits, hyphens (V(-)), and underscores (V(_)), and must start with a
letter or digit.
type: str
required: true
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
display_name:
description:
- Topic display name, which is presented as the name of the email sender in an email message. The topic display name
contains a maximum of 192 bytes.
type: str
required: false
name:
description:
- Name of the topic to be created. The topic name is a string of 1 to 256 characters. It must contain upper- or lower-case
letters, digits, hyphens (V(-)), and underscores (V(_)), and must start with a letter or digit.
type: str
required: true
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
- name: Create a smn topic
community.general.hwc_smn_topic:
identity_endpoint: "{{ identity_endpoint }}"
user_name: "{{ user_name }}"
password: "{{ password }}"
domain_name: "{{ domain_name }}"
project_name: "{{ project_name }}"
region: "{{ region }}"
name: "ansible_smn_topic_test"
state: present
'''
identity_endpoint: "{{ identity_endpoint }}"
user_name: "{{ user_name }}"
password: "{{ password }}"
domain_name: "{{ domain_name }}"
project_name: "{{ project_name }}"
region: "{{ region }}"
name: "ansible_smn_topic_test"
state: present
"""
RETURN = '''
RETURN = r"""
create_time:
description:
- Time when the topic was created.
returned: success
type: str
description:
- Time when the topic was created.
returned: success
type: str
display_name:
description:
- Topic display name, which is presented as the name of the email
sender in an email message. The topic display name contains a
maximum of 192 bytes.
returned: success
type: str
description:
- Topic display name, which is presented as the name of the email sender in an email message. The topic display name contains
a maximum of 192 bytes.
returned: success
type: str
name:
description:
- Name of the topic to be created. The topic name is a string of 1
to 256 characters. It must contain upper- or lower-case letters,
digits, hyphens (V(-)), and underscores (V(_)), and must start with a
letter or digit.
returned: success
type: str
description:
- Name of the topic to be created. The topic name is a string of 1 to 256 characters. It must contain upper- or lower-case
letters, digits, hyphens (V(-)), and underscores (V(_)), and must start with a letter or digit.
returned: success
type: str
push_policy:
description:
- Message pushing policy. 0 indicates that the message sending
fails and the message is cached in the queue. 1 indicates that
the failed message is discarded.
returned: success
type: int
description:
- Message pushing policy. V(0) indicates that the message sending fails and the message is cached in the queue. V(1) indicates
that the failed message is discarded.
returned: success
type: int
topic_urn:
description:
- Resource identifier of a topic, which is unique.
returned: success
type: str
description:
- Resource identifier of a topic, which is unique.
returned: success
type: str
update_time:
description:
- Time when the topic was updated.
returned: success
type: str
'''
description:
- Time when the topic was updated.
returned: success
type: str
"""
###############################################################################
# Imports

View File

@ -12,126 +12,110 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_vpc_eip
description:
- elastic ip management.
short_description: Creates a resource of Vpc/EIP in Huawei Cloud
- Elastic IP management.
short_description: Creates a resource of VPC/EIP in Huawei Cloud
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- Whether the given object should exist in Huawei Cloud.
- The timeouts for create operation.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
default: '5m'
update:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- The timeouts for create operation.
type: str
default: '5m'
update:
description:
- The timeouts for update operation.
type: str
default: '5m'
type:
- The timeouts for update operation.
type: str
default: '5m'
type:
description:
- Specifies the EIP type.
type: str
required: true
dedicated_bandwidth:
description:
- Specifies the dedicated bandwidth object.
type: dict
required: false
suboptions:
charge_mode:
description:
- Specifies the EIP type.
- Specifies whether the bandwidth is billed by traffic or by bandwidth size. The value can be bandwidth or traffic.
If this parameter is left blank or is null character string, default value bandwidth is used. For IPv6 addresses,
the default parameter value is bandwidth outside China and is traffic in China.
type: str
required: true
dedicated_bandwidth:
name:
description:
- Specifies the dedicated bandwidth object.
type: dict
required: false
suboptions:
charge_mode:
description:
- Specifies whether the bandwidth is billed by traffic or
by bandwidth size. The value can be bandwidth or traffic.
If this parameter is left blank or is null character
string, default value bandwidth is used. For IPv6
addresses, the default parameter value is bandwidth
outside China and is traffic in China.
type: str
required: true
name:
description:
- Specifies the bandwidth name. The value is a string of 1
to 64 characters that can contain letters, digits,
underscores (V(_)), hyphens (V(-)), and periods (V(.)).
type: str
required: true
size:
description:
- Specifies the bandwidth size. The value ranges from 1
Mbit/s to 2000 Mbit/s by default. (The specific range may
vary depending on the configuration in each region. You
can see the bandwidth range of each region on the
management console.) The minimum unit for bandwidth
adjustment varies depending on the bandwidth range. The
details are as follows.
- The minimum unit is 1 Mbit/s if the allowed bandwidth
size ranges from 0 to 300 Mbit/s (with 300 Mbit/s
included).
- The minimum unit is 50 Mbit/s if the allowed bandwidth
size ranges 300 Mbit/s to 1000 Mbit/s (with 1000 Mbit/s
included).
- The minimum unit is 500 Mbit/s if the allowed bandwidth
size is greater than 1000 Mbit/s.
type: int
required: true
enterprise_project_id:
description:
- Specifies the enterprise project ID.
- Specifies the bandwidth name. The value is a string of 1 to 64 characters that can contain letters, digits, underscores
(V(_)), hyphens (V(-)), and periods (V(.)).
type: str
required: false
ip_version:
required: true
size:
description:
- The value can be 4 (IPv4 address) or 6 (IPv6 address). If this
parameter is left blank, an IPv4 address will be assigned.
- Specifies the bandwidth size. The value ranges from 1 Mbit/s to 2000 Mbit/s by default. (The specific range may
vary depending on the configuration in each region. You can see the bandwidth range of each region on the management
console.) The minimum unit for bandwidth adjustment varies depending on the bandwidth range. The details are as
follows.
- The minimum unit is 1 Mbit/s if the allowed bandwidth size ranges from 0 to 300 Mbit/s (with 300 Mbit/s included).
- The minimum unit is 50 Mbit/s if the allowed bandwidth size ranges 300 Mbit/s to 1000 Mbit/s (with 1000 Mbit/s
included).
- The minimum unit is 500 Mbit/s if the allowed bandwidth size is greater than 1000 Mbit/s.
type: int
required: false
ipv4_address:
description:
- Specifies the obtained IPv4 EIP. The system automatically assigns
an EIP if you do not specify it.
type: str
required: false
port_id:
description:
- Specifies the port ID. This parameter is returned only when a
private IP address is bound with the EIP.
type: str
required: false
shared_bandwidth_id:
description:
- Specifies the ID of shared bandwidth.
type: str
required: false
required: true
enterprise_project_id:
description:
- Specifies the enterprise project ID.
type: str
required: false
ip_version:
description:
- The value can be 4 (IPv4 address) or 6 (IPv6 address). If this parameter is left blank, an IPv4 address will be assigned.
type: int
required: false
ipv4_address:
description:
- Specifies the obtained IPv4 EIP. The system automatically assigns an EIP if you do not specify it.
type: str
required: false
port_id:
description:
- Specifies the port ID. This parameter is returned only when a private IP address is bound with the EIP.
type: str
required: false
shared_bandwidth_id:
description:
- Specifies the ID of shared bandwidth.
type: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# create an eip and bind it to a port
- name: Create vpc
hwc_network_vpc:
@ -159,107 +143,91 @@ EXAMPLES = '''
name: "ansible_test_dedicated_bandwidth"
size: 1
port_id: "{{ port.id }}"
'''
"""
RETURN = '''
type:
description:
- Specifies the EIP type.
type: str
returned: success
dedicated_bandwidth:
description:
- Specifies the dedicated bandwidth object.
type: dict
returned: success
contains:
charge_mode:
description:
- Specifies whether the bandwidth is billed by traffic or
by bandwidth size. The value can be bandwidth or traffic.
If this parameter is left blank or is null character
string, default value bandwidth is used. For IPv6
addresses, the default parameter value is bandwidth
outside China and is traffic in China.
type: str
returned: success
name:
description:
- Specifies the bandwidth name. The value is a string of 1
to 64 characters that can contain letters, digits,
underscores (V(_)), hyphens (V(-)), and periods (V(.)).
type: str
returned: success
size:
description:
- Specifies the bandwidth size. The value ranges from 1
Mbit/s to 2000 Mbit/s by default. (The specific range may
vary depending on the configuration in each region. You
can see the bandwidth range of each region on the
management console.) The minimum unit for bandwidth
adjustment varies depending on the bandwidth range. The
details are as follows:.
- The minimum unit is 1 Mbit/s if the allowed bandwidth
size ranges from 0 to 300 Mbit/s (with 300 Mbit/s
included).
- The minimum unit is 50 Mbit/s if the allowed bandwidth
size ranges 300 Mbit/s to 1000 Mbit/s (with 1000 Mbit/s
included).
- The minimum unit is 500 Mbit/s if the allowed bandwidth
size is greater than 1000 Mbit/s.
type: int
returned: success
id:
description:
- Specifies the ID of dedicated bandwidth.
type: str
returned: success
enterprise_project_id:
description:
- Specifies the enterprise project ID.
type: str
returned: success
ip_version:
description:
- The value can be 4 (IPv4 address) or 6 (IPv6 address). If this
parameter is left blank, an IPv4 address will be assigned.
type: int
returned: success
ipv4_address:
description:
- Specifies the obtained IPv4 EIP. The system automatically assigns
an EIP if you do not specify it.
type: str
returned: success
port_id:
description:
- Specifies the port ID. This parameter is returned only when a
private IP address is bound with the EIP.
type: str
returned: success
shared_bandwidth_id:
description:
- Specifies the ID of shared bandwidth.
type: str
returned: success
create_time:
description:
- Specifies the time (UTC time) when the EIP was assigned.
type: str
returned: success
ipv6_address:
description:
- Specifies the obtained IPv6 EIP.
type: str
returned: success
private_ip_address:
description:
- Specifies the private IP address bound with the EIP. This
parameter is returned only when a private IP address is bound
with the EIP.
type: str
returned: success
'''
RETURN = r"""
type:
description:
- Specifies the EIP type.
type: str
returned: success
dedicated_bandwidth:
description:
- Specifies the dedicated bandwidth object.
type: dict
returned: success
contains:
charge_mode:
description:
- Specifies whether the bandwidth is billed by traffic or by bandwidth size. The value can be bandwidth or traffic.
If this parameter is left blank or is null character string, default value bandwidth is used. For IPv6 addresses,
the default parameter value is bandwidth outside China and is traffic in China.
type: str
returned: success
name:
description:
- Specifies the bandwidth name. The value is a string of 1 to 64 characters that can contain letters, digits, underscores
(V(_)), hyphens (V(-)), and periods (V(.)).
type: str
returned: success
size:
description:
- Specifies the bandwidth size. The value ranges from 1 Mbit/s to 2000 Mbit/s by default. (The specific range may
vary depending on the configuration in each region. You can see the bandwidth range of each region on the management
console.) The minimum unit for bandwidth adjustment varies depending on the bandwidth range. The details are as
follows:.
- The minimum unit is 1 Mbit/s if the allowed bandwidth size ranges from 0 to 300 Mbit/s (with 300 Mbit/s included).
- The minimum unit is 50 Mbit/s if the allowed bandwidth size ranges 300 Mbit/s to 1000 Mbit/s (with 1000 Mbit/s included).
- The minimum unit is 500 Mbit/s if the allowed bandwidth size is greater than 1000 Mbit/s.
type: int
returned: success
id:
description:
- Specifies the ID of dedicated bandwidth.
type: str
returned: success
enterprise_project_id:
description:
- Specifies the enterprise project ID.
type: str
returned: success
ip_version:
description:
- The value can be 4 (IPv4 address) or 6 (IPv6 address). If this parameter is left blank, an IPv4 address will be assigned.
type: int
returned: success
ipv4_address:
description:
- Specifies the obtained IPv4 EIP. The system automatically assigns an EIP if you do not specify it.
type: str
returned: success
port_id:
description:
- Specifies the port ID. This parameter is returned only when a private IP address is bound with the EIP.
type: str
returned: success
shared_bandwidth_id:
description:
- Specifies the ID of shared bandwidth.
type: str
returned: success
create_time:
description:
- Specifies the time (UTC time) when the EIP was assigned.
type: str
returned: success
ipv6_address:
description:
- Specifies the obtained IPv6 EIP.
type: str
returned: success
private_ip_address:
description:
- Specifies the private IP address bound with the EIP. This parameter is returned only when a private IP address is bound
with the EIP.
type: str
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcClientException404, HwcModule,

View File

@ -13,79 +13,75 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_vpc_peering_connect
description:
- vpc peering management.
short_description: Creates a resource of Vpc/PeeringConnect in Huawei Cloud
- VPC peering management.
short_description: Creates a resource of VPC/PeeringConnect in Huawei Cloud
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- The timeouts for create operation.
type: str
default: '15m'
local_vpc_id:
description:
- Specifies the ID of local VPC.
type: str
required: true
name:
description:
- Specifies the name of the VPC peering connection. The value can
contain 1 to 64 characters.
type: str
required: true
peering_vpc:
description:
- Specifies information about the peering VPC.
type: dict
required: true
suboptions:
vpc_id:
description:
- Specifies the ID of peering VPC.
type: str
required: true
project_id:
description:
- Specifies the ID of the project which the peering vpc
belongs to.
type: str
required: false
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- The description of vpc peering connection.
- The timeouts for create operation.
type: str
default: '15m'
local_vpc_id:
description:
- Specifies the ID of local VPC.
type: str
required: true
name:
description:
- Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters.
type: str
required: true
peering_vpc:
description:
- Specifies information about the peering VPC.
type: dict
required: true
suboptions:
vpc_id:
description:
- Specifies the ID of peering VPC.
type: str
required: true
project_id:
description:
- Specifies the ID of the project which the peering vpc belongs to.
type: str
required: false
description:
description:
- The description of vpc peering connection.
type: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# create a peering connect
- name: Create a local vpc
hwc_network_vpc:
@ -103,43 +99,41 @@ EXAMPLES = '''
name: "ansible_network_peering_test"
peering_vpc:
vpc_id: "{{ vpc2.id }}"
'''
"""
RETURN = '''
local_vpc_id:
description:
- Specifies the ID of local VPC.
type: str
returned: success
name:
description:
- Specifies the name of the VPC peering connection. The value can
contain 1 to 64 characters.
type: str
returned: success
peering_vpc:
description:
- Specifies information about the peering VPC.
type: dict
returned: success
contains:
vpc_id:
description:
- Specifies the ID of peering VPC.
type: str
returned: success
project_id:
description:
- Specifies the ID of the project which the peering vpc
belongs to.
type: str
returned: success
description:
description:
- The description of vpc peering connection.
type: str
returned: success
'''
RETURN = r"""
local_vpc_id:
description:
- Specifies the ID of local VPC.
type: str
returned: success
name:
description:
- Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters.
type: str
returned: success
peering_vpc:
description:
- Specifies information about the peering VPC.
type: dict
returned: success
contains:
vpc_id:
description:
- Specifies the ID of peering VPC.
type: str
returned: success
project_id:
description:
- Specifies the ID of the project which the peering vpc belongs to.
type: str
returned: success
description:
description:
- The description of vpc peering connection.
type: str
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcClientException404, HwcModule,

View File

@ -12,110 +12,105 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_vpc_port
description:
- vpc port management.
short_description: Creates a resource of Vpc/Port in Huawei Cloud
- VPC port management.
short_description: Creates a resource of VPC/Port in Huawei Cloud
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- Whether the given object should exist in Huawei Cloud.
- The timeouts for create operation.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
default: '15m'
subnet_id:
description:
- Specifies the ID of the subnet to which the port belongs.
type: str
required: true
admin_state_up:
description:
- Specifies the administrative state of the port.
type: bool
required: false
allowed_address_pairs:
description:
- Specifies a set of zero or more allowed address pairs.
required: false
type: list
elements: dict
suboptions:
ip_address:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- The timeouts for create operation.
type: str
default: '15m'
subnet_id:
description:
- Specifies the ID of the subnet to which the port belongs.
type: str
required: true
admin_state_up:
description:
- Specifies the administrative state of the port.
type: bool
required: false
allowed_address_pairs:
description:
- Specifies a set of zero or more allowed address pairs.
required: false
type: list
elements: dict
suboptions:
ip_address:
description:
- Specifies the IP address. It cannot set it to 0.0.0.0.
Configure an independent security group for the port if a
large CIDR block (subnet mask less than 24) is configured
for parameter allowed_address_pairs.
type: str
required: false
mac_address:
description:
- Specifies the MAC address.
type: str
required: false
extra_dhcp_opts:
description:
- Specifies the extended option of DHCP.
type: list
elements: dict
required: false
suboptions:
name:
description:
- Specifies the option name.
type: str
required: false
value:
description:
- Specifies the option value.
type: str
required: false
ip_address:
description:
- Specifies the port IP address.
- Specifies the IP address. It cannot set it to 0.0.0.0. Configure an independent security group for the port if
a large CIDR block (subnet mask less than 24) is configured for parameter allowed_address_pairs.
type: str
required: false
name:
mac_address:
description:
- Specifies the port name. The value can contain no more than 255
characters.
- Specifies the MAC address.
type: str
required: false
security_groups:
extra_dhcp_opts:
description:
- Specifies the extended option of DHCP.
type: list
elements: dict
required: false
suboptions:
name:
description:
- Specifies the ID of the security group.
type: list
elements: str
- Specifies the option name.
type: str
required: false
value:
description:
- Specifies the option value.
type: str
required: false
ip_address:
description:
- Specifies the port IP address.
type: str
required: false
name:
description:
- Specifies the port name. The value can contain no more than 255 characters.
type: str
required: false
security_groups:
description:
- Specifies the ID of the security group.
type: list
elements: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# create a port
- name: Create vpc
hwc_network_vpc:
@ -134,76 +129,73 @@ EXAMPLES = '''
community.general.hwc_vpc_port:
subnet_id: "{{ subnet.id }}"
ip_address: "192.168.100.33"
'''
"""
RETURN = '''
subnet_id:
description:
- Specifies the ID of the subnet to which the port belongs.
type: str
returned: success
admin_state_up:
description:
- Specifies the administrative state of the port.
type: bool
returned: success
allowed_address_pairs:
description:
- Specifies a set of zero or more allowed address pairs.
type: list
returned: success
contains:
ip_address:
description:
- Specifies the IP address. It cannot set it to 0.0.0.0.
Configure an independent security group for the port if a
large CIDR block (subnet mask less than 24) is configured
for parameter allowed_address_pairs.
type: str
returned: success
mac_address:
description:
- Specifies the MAC address.
type: str
returned: success
extra_dhcp_opts:
description:
- Specifies the extended option of DHCP.
type: list
returned: success
contains:
name:
description:
- Specifies the option name.
type: str
returned: success
value:
description:
- Specifies the option value.
type: str
returned: success
RETURN = r"""
subnet_id:
description:
- Specifies the ID of the subnet to which the port belongs.
type: str
returned: success
admin_state_up:
description:
- Specifies the administrative state of the port.
type: bool
returned: success
allowed_address_pairs:
description:
- Specifies a set of zero or more allowed address pairs.
type: list
returned: success
contains:
ip_address:
description:
- Specifies the port IP address.
type: str
returned: success
name:
description:
- Specifies the port name. The value can contain no more than 255
characters.
type: str
returned: success
security_groups:
description:
- Specifies the ID of the security group.
type: list
returned: success
description:
- Specifies the IP address. It cannot set it to 0.0.0.0. Configure an independent security group for the port if a
large CIDR block (subnet mask less than 24) is configured for parameter allowed_address_pairs.
type: str
returned: success
mac_address:
description:
- Specifies the port MAC address.
type: str
returned: success
'''
description:
- Specifies the MAC address.
type: str
returned: success
extra_dhcp_opts:
description:
- Specifies the extended option of DHCP.
type: list
returned: success
contains:
name:
description:
- Specifies the option name.
type: str
returned: success
value:
description:
- Specifies the option value.
type: str
returned: success
ip_address:
description:
- Specifies the port IP address.
type: str
returned: success
name:
description:
- Specifies the port name. The value can contain no more than 255 characters.
type: str
returned: success
security_groups:
description:
- Specifies the ID of the security group.
type: list
returned: success
mac_address:
description:
- Specifies the port MAC address.
type: str
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcClientException404, HwcModule,

View File

@ -12,54 +12,51 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_vpc_private_ip
description:
- vpc private ip management.
short_description: Creates a resource of Vpc/PrivateIP in Huawei Cloud
- VPC private IP management.
short_description: Creates a resource of VPC/PrivateIP in Huawei Cloud
notes:
- If O(id) option is provided, it takes precedence over O(subnet_id), O(ip_address) for private ip selection.
- O(subnet_id), O(ip_address) are used for private ip selection. If more than one private ip with this options exists, execution is aborted.
- No parameter support updating. If one of option is changed, the module will create a new resource.
- If O(id) option is provided, it takes precedence over O(subnet_id), O(ip_address) for private IP selection.
- O(subnet_id), O(ip_address) are used for private IP selection. If more than one private IP with this options exists, execution
is aborted.
- No parameter support updating. If one of option is changed, the module will create a new resource.
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
subnet_id:
description:
- Specifies the ID of the subnet from which IP addresses are
assigned. Cannot be changed after creating the private ip.
type: str
required: true
ip_address:
description:
- Specifies the target IP address. The value can be an available IP
address in the subnet. If it is not specified, the system
automatically assigns an IP address. Cannot be changed after
creating the private ip.
type: str
required: false
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
subnet_id:
description:
- Specifies the ID of the subnet from which IP addresses are assigned. Cannot be changed after creating the private
IP.
type: str
required: true
ip_address:
description:
- Specifies the target IP address. The value can be an available IP address in the subnet. If it is not specified, the
system automatically assigns an IP address. Cannot be changed after creating the private IP.
type: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
# create a private ip
EXAMPLES = r"""
# create a private IP
- name: Create vpc
hwc_network_vpc:
cidr: "192.168.100.0/24"
@ -73,27 +70,25 @@ EXAMPLES = '''
vpc_id: "{{ vpc.id }}"
cidr: "192.168.100.0/26"
register: subnet
- name: Create a private ip
- name: Create a private IP
community.general.hwc_vpc_private_ip:
subnet_id: "{{ subnet.id }}"
ip_address: "192.168.100.33"
'''
"""
RETURN = '''
subnet_id:
description:
- Specifies the ID of the subnet from which IP addresses are
assigned.
type: str
returned: success
ip_address:
description:
- Specifies the target IP address. The value can be an available IP
address in the subnet. If it is not specified, the system
automatically assigns an IP address.
type: str
returned: success
'''
RETURN = r"""
subnet_id:
description:
- Specifies the ID of the subnet from which IP addresses are assigned.
type: str
returned: success
ip_address:
description:
- Specifies the target IP address. The value can be an available IP address in the subnet. If it is not specified, the
system automatically assigns an IP address.
type: str
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcModule, are_different_dicts, build_path,

View File

@ -12,60 +12,59 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_vpc_route
description:
- vpc route management.
short_description: Creates a resource of Vpc/Route in Huawei Cloud
- VPC route management.
short_description: Creates a resource of VPC/Route in Huawei Cloud
notes:
- If O(id) option is provided, it takes precedence over O(destination), O(vpc_id), O(type), and O(next_hop) for route selection.
- O(destination), O(vpc_id), O(type) and O(next_hop) are used for route selection. If more than one route with this options exists, execution is aborted.
- No parameter support updating. If one of option is changed, the module will create a new resource.
- If O(id) option is provided, it takes precedence over O(destination), O(vpc_id), O(type), and O(next_hop) for route selection.
- O(destination), O(vpc_id), O(type) and O(next_hop) are used for route selection. If more than one route with this options
exists, execution is aborted.
- No parameter support updating. If one of option is changed, the module will create a new resource.
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
destination:
description:
- Specifies the destination IP address or CIDR block.
type: str
required: true
next_hop:
description:
- Specifies the next hop. The value is VPC peering connection ID.
type: str
required: true
vpc_id:
description:
- Specifies the VPC ID to which route is added.
type: str
required: true
type:
description:
- Specifies the type of route.
type: str
required: false
default: 'peering'
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
destination:
description:
- Specifies the destination IP address or CIDR block.
type: str
required: true
next_hop:
description:
- Specifies the next hop. The value is VPC peering connection ID.
type: str
required: true
vpc_id:
description:
- Specifies the VPC ID to which route is added.
type: str
required: true
type:
description:
- Specifies the type of route.
type: str
required: false
default: 'peering'
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# create a peering connect
- name: Create a local vpc
hwc_network_vpc:
@ -91,35 +90,35 @@ EXAMPLES = '''
vpc_id: "{{ vpc1.id }}"
destination: "192.168.0.0/16"
next_hop: "{{ connect.id }}"
'''
"""
RETURN = '''
id:
description:
- UUID of the route.
type: str
returned: success
destination:
description:
- Specifies the destination IP address or CIDR block.
type: str
returned: success
next_hop:
description:
- Specifies the next hop. The value is VPC peering connection ID.
type: str
returned: success
vpc_id:
description:
- Specifies the VPC ID to which route is added.
type: str
returned: success
type:
description:
- Specifies the type of route.
type: str
returned: success
'''
RETURN = r"""
id:
description:
- UUID of the route.
type: str
returned: success
destination:
description:
- Specifies the destination IP address or CIDR block.
type: str
returned: success
next_hop:
description:
- Specifies the next hop. The value is VPC peering connection ID.
type: str
returned: success
vpc_id:
description:
- Specifies the VPC ID to which route is added.
type: str
returned: success
type:
description:
- Specifies the type of route.
type: str
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcModule, are_different_dicts, build_path,

View File

@ -12,162 +12,141 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_vpc_security_group
description:
- vpc security group management.
short_description: Creates a resource of Vpc/SecurityGroup in Huawei Cloud
- VPC security group management.
short_description: Creates a resource of VPC/SecurityGroup in Huawei Cloud
notes:
- If O(id) option is provided, it takes precedence over O(name),
O(enterprise_project_id), and O(vpc_id) for security group selection.
- O(name), O(enterprise_project_id) and O(vpc_id) are used for security
group selection. If more than one security group with this options exists,
execution is aborted.
- No parameter support updating. If one of option is changed, the module
will create a new resource.
- If O(id) option is provided, it takes precedence over O(name), O(enterprise_project_id), and O(vpc_id) for security group
selection.
- O(name), O(enterprise_project_id) and O(vpc_id) are used for security group selection. If more than one security group
with this options exists, execution is aborted.
- No parameter support updating. If one of option is changed, the module will create a new resource.
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
name:
description:
- Specifies the security group name. The value is a string of 1 to
64 characters that can contain letters, digits, underscores (V(_)),
hyphens (V(-)), and periods (V(.)).
type: str
required: true
enterprise_project_id:
description:
- Specifies the enterprise project ID. When creating a security
group, associate the enterprise project ID with the security
group.s
type: str
required: false
vpc_id:
description:
- Specifies the resource ID of the VPC to which the security group
belongs.
type: str
required: false
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
name:
description:
- Specifies the security group name. The value is a string of 1 to 64 characters that can contain letters, digits, underscores
(V(_)), hyphens (V(-)), and periods (V(.)).
type: str
required: true
enterprise_project_id:
description:
- Specifies the enterprise project ID. When creating a security group, associate the enterprise project ID with the
security group.s.
type: str
required: false
vpc_id:
description:
- Specifies the resource ID of the VPC to which the security group belongs.
type: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# create a security group
- name: Create a security group
community.general.hwc_vpc_security_group:
name: "ansible_network_security_group_test"
'''
"""
RETURN = '''
name:
description:
- Specifies the security group name. The value is a string of 1 to
64 characters that can contain letters, digits, underscores (V(_)),
hyphens (V(-)), and periods (V(.)).
type: str
returned: success
enterprise_project_id:
description:
- Specifies the enterprise project ID. When creating a security
group, associate the enterprise project ID with the security
group.
type: str
returned: success
vpc_id:
description:
- Specifies the resource ID of the VPC to which the security group
belongs.
type: str
returned: success
rules:
description:
- Specifies the security group rule, which ensures that resources
in the security group can communicate with one another.
type: complex
returned: success
contains:
description:
description:
- Provides supplementary information about the security
group rule.
type: str
returned: success
direction:
description:
- Specifies the direction of access control. The value can
be egress or ingress.
type: str
returned: success
ethertype:
description:
- Specifies the IP protocol version. The value can be IPv4
or IPv6.
type: str
returned: success
id:
description:
- Specifies the security group rule ID.
type: str
returned: success
port_range_max:
description:
- Specifies the end port number. The value ranges from 1 to
65535. If the protocol is not icmp, the value cannot be
smaller than the port_range_min value. An empty value
indicates all ports.
type: int
returned: success
port_range_min:
description:
- Specifies the start port number. The value ranges from 1
to 65535. The value cannot be greater than the
port_range_max value. An empty value indicates all ports.
type: int
returned: success
protocol:
description:
- Specifies the protocol type. The value can be icmp, tcp,
udp, or others. If the parameter is left blank, the
security group supports all protocols.
type: str
returned: success
remote_address_group_id:
description:
- Specifies the ID of remote IP address group.
type: str
returned: success
remote_group_id:
description:
- Specifies the ID of the peer security group.
type: str
returned: success
remote_ip_prefix:
description:
- Specifies the remote IP address. If the access control
direction is set to egress, the parameter specifies the
source IP address. If the access control direction is set
to ingress, the parameter specifies the destination IP
address.
type: str
returned: success
'''
RETURN = r"""
name:
description:
- Specifies the security group name. The value is a string of 1 to 64 characters that can contain letters, digits, underscores
(V(_)), hyphens (V(-)), and periods (V(.)).
type: str
returned: success
enterprise_project_id:
description:
- Specifies the enterprise project ID. When creating a security group, associate the enterprise project ID with the security
group.
type: str
returned: success
vpc_id:
description:
- Specifies the resource ID of the VPC to which the security group belongs.
type: str
returned: success
rules:
description:
- Specifies the security group rule, which ensures that resources in the security group can communicate with one another.
type: complex
returned: success
contains:
description:
description:
- Provides supplementary information about the security group rule.
type: str
returned: success
direction:
description:
- Specifies the direction of access control. The value can be egress or ingress.
type: str
returned: success
ethertype:
description:
- Specifies the IP protocol version. The value can be IPv4 or IPv6.
type: str
returned: success
id:
description:
- Specifies the security group rule ID.
type: str
returned: success
port_range_max:
description:
- Specifies the end port number. The value ranges from 1 to 65535. If the protocol is not icmp, the value cannot be
smaller than the port_range_min value. An empty value indicates all ports.
type: int
returned: success
port_range_min:
description:
- Specifies the start port number. The value ranges from 1 to 65535. The value cannot be greater than the port_range_max
value. An empty value indicates all ports.
type: int
returned: success
protocol:
description:
- Specifies the protocol type. The value can be icmp, tcp, udp, or others. If the parameter is left blank, the security
group supports all protocols.
type: str
returned: success
remote_address_group_id:
description:
- Specifies the ID of remote IP address group.
type: str
returned: success
remote_group_id:
description:
- Specifies the ID of the peer security group.
type: str
returned: success
remote_ip_prefix:
description:
- Specifies the remote IP address. If the access control direction is set to egress, the parameter specifies the source
IP address. If the access control direction is set to ingress, the parameter specifies the destination IP address.
type: str
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcModule, are_different_dicts, build_path,

View File

@ -12,105 +12,90 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_vpc_security_group_rule
description:
- vpc security group management.
short_description: Creates a resource of Vpc/SecurityGroupRule in Huawei Cloud
- VPC security group management.
short_description: Creates a resource of VPC/SecurityGroupRule in Huawei Cloud
notes:
- If O(id) option is provided, it takes precedence over
O(security_group_id) for security group rule selection.
- O(security_group_id) is used for security group rule selection. If more
than one security group rule with this options exists, execution is
aborted.
- No parameter support updating. If one of option is changed, the module
will create a new resource.
- If O(id) option is provided, it takes precedence over O(security_group_id) for security group rule selection.
- O(security_group_id) is used for security group rule selection. If more than one security group rule with this options
exists, execution is aborted.
- No parameter support updating. If one of option is changed, the module will create a new resource.
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
direction:
description:
- Specifies the direction of access control. The value can be
egress or ingress.
type: str
required: true
security_group_id:
description:
- Specifies the security group rule ID, which uniquely identifies
the security group rule.
type: str
required: true
state:
description:
description:
- Provides supplementary information about the security group rule.
The value is a string of no more than 255 characters that can
contain letters and digits.
type: str
required: false
ethertype:
description:
- Specifies the IP protocol version. The value can be IPv4 or IPv6.
If you do not set this parameter, IPv4 is used by default.
type: str
required: false
port_range_max:
description:
- Specifies the end port number. The value ranges from 1 to 65535.
If the protocol is not icmp, the value cannot be smaller than the
port_range_min value. An empty value indicates all ports.
type: int
required: false
port_range_min:
description:
- Specifies the start port number. The value ranges from 1 to
65535. The value cannot be greater than the port_range_max value.
An empty value indicates all ports.
type: int
required: false
protocol:
description:
- Specifies the protocol type. The value can be icmp, tcp, or udp.
If the parameter is left blank, the security group supports all
protocols.
type: str
required: false
remote_group_id:
description:
- Specifies the ID of the peer security group. The value is
exclusive with parameter remote_ip_prefix.
type: str
required: false
remote_ip_prefix:
description:
- Specifies the remote IP address. If the access control direction
is set to egress, the parameter specifies the source IP address.
If the access control direction is set to ingress, the parameter
specifies the destination IP address. The value can be in the
CIDR format or IP addresses. The parameter is exclusive with
parameter remote_group_id.
type: str
required: false
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
direction:
description:
- Specifies the direction of access control. The value can be egress or ingress.
type: str
required: true
security_group_id:
description:
- Specifies the security group rule ID, which uniquely identifies the security group rule.
type: str
required: true
description:
description:
- Provides supplementary information about the security group rule. The value is a string of no more than 255 characters
that can contain letters and digits.
type: str
required: false
ethertype:
description:
- Specifies the IP protocol version. The value can be IPv4 or IPv6. If you do not set this parameter, IPv4 is used by
default.
type: str
required: false
port_range_max:
description:
- Specifies the end port number. The value ranges from 1 to 65535. If the protocol is not icmp, the value cannot be
smaller than the port_range_min value. An empty value indicates all ports.
type: int
required: false
port_range_min:
description:
- Specifies the start port number. The value ranges from 1 to 65535. The value cannot be greater than the port_range_max
value. An empty value indicates all ports.
type: int
required: false
protocol:
description:
- Specifies the protocol type. The value can be icmp, tcp, or udp. If the parameter is left blank, the security group
supports all protocols.
type: str
required: false
remote_group_id:
description:
- Specifies the ID of the peer security group. The value is exclusive with parameter remote_ip_prefix.
type: str
required: false
remote_ip_prefix:
description:
- Specifies the remote IP address. If the access control direction is set to egress, the parameter specifies the source
IP address. If the access control direction is set to ingress, the parameter specifies the destination IP address.
The value can be in the CIDR format or IP addresses. The parameter is exclusive with parameter remote_group_id.
type: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# create a security group rule
- name: Create a security group
hwc_vpc_security_group:
@ -125,72 +110,62 @@ EXAMPLES = '''
security_group_id: "{{ sg.id }}"
port_range_min: 22
remote_ip_prefix: "0.0.0.0/0"
'''
"""
RETURN = '''
direction:
description:
- Specifies the direction of access control. The value can be
egress or ingress.
type: str
returned: success
security_group_id:
description:
- Specifies the security group rule ID, which uniquely identifies
the security group rule.
type: str
returned: success
description:
description:
- Provides supplementary information about the security group rule.
The value is a string of no more than 255 characters that can
contain letters and digits.
type: str
returned: success
ethertype:
description:
- Specifies the IP protocol version. The value can be IPv4 or IPv6.
If you do not set this parameter, IPv4 is used by default.
type: str
returned: success
port_range_max:
description:
- Specifies the end port number. The value ranges from 1 to 65535.
If the protocol is not icmp, the value cannot be smaller than the
port_range_min value. An empty value indicates all ports.
type: int
returned: success
port_range_min:
description:
- Specifies the start port number. The value ranges from 1 to
65535. The value cannot be greater than the port_range_max value.
An empty value indicates all ports.
type: int
returned: success
protocol:
description:
- Specifies the protocol type. The value can be icmp, tcp, or udp.
If the parameter is left blank, the security group supports all
protocols.
type: str
returned: success
remote_group_id:
description:
- Specifies the ID of the peer security group. The value is
exclusive with parameter remote_ip_prefix.
type: str
returned: success
remote_ip_prefix:
description:
- Specifies the remote IP address. If the access control direction
is set to egress, the parameter specifies the source IP address.
If the access control direction is set to ingress, the parameter
specifies the destination IP address. The value can be in the
CIDR format or IP addresses. The parameter is exclusive with
parameter remote_group_id.
type: str
returned: success
'''
RETURN = r"""
direction:
description:
- Specifies the direction of access control. The value can be egress or ingress.
type: str
returned: success
security_group_id:
description:
- Specifies the security group rule ID, which uniquely identifies the security group rule.
type: str
returned: success
description:
description:
- Provides supplementary information about the security group rule. The value is a string of no more than 255 characters
that can contain letters and digits.
type: str
returned: success
ethertype:
description:
- Specifies the IP protocol version. The value can be IPv4 or IPv6. If you do not set this parameter, IPv4 is used by
default.
type: str
returned: success
port_range_max:
description:
- Specifies the end port number. The value ranges from 1 to 65535. If the protocol is not icmp, the value cannot be smaller
than the port_range_min value. An empty value indicates all ports.
type: int
returned: success
port_range_min:
description:
- Specifies the start port number. The value ranges from 1 to 65535. The value cannot be greater than the port_range_max
value. An empty value indicates all ports.
type: int
returned: success
protocol:
description:
- Specifies the protocol type. The value can be icmp, tcp, or udp. If the parameter is left blank, the security group
supports all protocols.
type: str
returned: success
remote_group_id:
description:
- Specifies the ID of the peer security group. The value is exclusive with parameter remote_ip_prefix.
type: str
returned: success
remote_ip_prefix:
description:
- Specifies the remote IP address. If the access control direction is set to egress, the parameter specifies the source
IP address. If the access control direction is set to ingress, the parameter specifies the destination IP address. The
value can be in the CIDR format or IP addresses. The parameter is exclusive with parameter remote_group_id.
type: str
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcModule, are_different_dicts, build_path,

View File

@ -12,99 +12,90 @@ __metaclass__ = type
# Documentation
###############################################################################
DOCUMENTATION = '''
---
DOCUMENTATION = r"""
module: hwc_vpc_subnet
description:
- subnet management.
short_description: Creates a resource of Vpc/Subnet in Huawei Cloud
- Subnet management.
short_description: Creates a resource of VPC/Subnet in Huawei Cloud
version_added: '0.2.0'
author: Huawei Inc. (@huaweicloud)
requirements:
- keystoneauth1 >= 3.6.0
- keystoneauth1 >= 3.6.0
attributes:
check_mode:
support: full
diff_mode:
support: none
check_mode:
support: full
diff_mode:
support: none
options:
state:
state:
description:
- Whether the given object should exist in Huawei Cloud.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- Whether the given object should exist in Huawei Cloud.
- The timeouts for create operation.
type: str
choices: ['present', 'absent']
default: 'present'
timeouts:
default: '15m'
update:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:
- The timeouts for create operation.
type: str
default: '15m'
update:
description:
- The timeouts for update operation.
type: str
default: '15m'
cidr:
description:
- Specifies the subnet CIDR block. The value must be within the VPC
CIDR block and be in CIDR format. The subnet mask cannot be
greater than 28. Cannot be changed after creating the subnet.
- The timeouts for update operation.
type: str
required: true
gateway_ip:
description:
- Specifies the gateway of the subnet. The value must be an IP
address in the subnet. Cannot be changed after creating the subnet.
type: str
required: true
name:
description:
- Specifies the subnet name. The value is a string of 1 to 64
characters that can contain letters, digits, underscores (V(_)),
hyphens (V(-)), and periods (V(.)).
type: str
required: true
vpc_id:
description:
- Specifies the ID of the VPC to which the subnet belongs. Cannot
be changed after creating the subnet.
type: str
required: true
availability_zone:
description:
- Specifies the AZ to which the subnet belongs. Cannot be changed
after creating the subnet.
type: str
required: false
dhcp_enable:
description:
- Specifies whether DHCP is enabled for the subnet. The value can
be true (enabled) or false(disabled), and default value is true.
If this parameter is set to false, newly created ECSs cannot
obtain IP addresses, and usernames and passwords cannot be
injected using Cloud-init.
type: bool
required: false
dns_address:
description:
- Specifies the DNS server addresses for subnet. The address
in the head will be used first.
type: list
elements: str
required: false
default: '15m'
cidr:
description:
- Specifies the subnet CIDR block. The value must be within the VPC CIDR block and be in CIDR format. The subnet mask
cannot be greater than 28. Cannot be changed after creating the subnet.
type: str
required: true
gateway_ip:
description:
- Specifies the gateway of the subnet. The value must be an IP address in the subnet. Cannot be changed after creating
the subnet.
type: str
required: true
name:
description:
- Specifies the subnet name. The value is a string of 1 to 64 characters that can contain letters, digits, underscores
(V(_)), hyphens (V(-)), and periods (V(.)).
type: str
required: true
vpc_id:
description:
- Specifies the ID of the VPC to which the subnet belongs. Cannot be changed after creating the subnet.
type: str
required: true
availability_zone:
description:
- Specifies the AZ to which the subnet belongs. Cannot be changed after creating the subnet.
type: str
required: false
dhcp_enable:
description:
- Specifies whether DHCP is enabled for the subnet. The value can be true (enabled) or false(disabled), and default
value is true. If this parameter is set to false, newly created ECSs cannot obtain IP addresses, and usernames and
passwords cannot be injected using Cloud-init.
type: bool
required: false
dns_address:
description:
- Specifies the DNS server addresses for subnet. The address in the head will be used first.
type: list
elements: str
required: false
extends_documentation_fragment:
- community.general.hwc
- community.general.attributes
"""
'''
EXAMPLES = '''
EXAMPLES = r"""
# create subnet
- name: Create vpc
hwc_network_vpc:
@ -118,55 +109,49 @@ EXAMPLES = '''
gateway_ip: "192.168.100.32"
name: "ansible_network_subnet_test"
dhcp_enable: true
'''
"""
RETURN = '''
cidr:
description:
- Specifies the subnet CIDR block. The value must be within the VPC
CIDR block and be in CIDR format. The subnet mask cannot be
greater than 28.
type: str
returned: success
gateway_ip:
description:
- Specifies the gateway of the subnet. The value must be an IP
address in the subnet.
type: str
returned: success
name:
description:
- Specifies the subnet name. The value is a string of 1 to 64
characters that can contain letters, digits, underscores (V(_)),
hyphens (V(-)), and periods (V(.)).
type: str
returned: success
vpc_id:
description:
- Specifies the ID of the VPC to which the subnet belongs.
type: str
returned: success
availability_zone:
description:
- Specifies the AZ to which the subnet belongs.
type: str
returned: success
dhcp_enable:
description:
- Specifies whether DHCP is enabled for the subnet. The value can
be true (enabled) or false(disabled), and default value is true.
If this parameter is set to false, newly created ECSs cannot
obtain IP addresses, and usernames and passwords cannot be
injected using Cloud-init.
type: bool
returned: success
dns_address:
description:
- Specifies the DNS server addresses for subnet. The address
in the head will be used first.
type: list
returned: success
'''
RETURN = r"""
cidr:
description:
- Specifies the subnet CIDR block. The value must be within the VPC CIDR block and be in CIDR format. The subnet mask
cannot be greater than 28.
type: str
returned: success
gateway_ip:
description:
- Specifies the gateway of the subnet. The value must be an IP address in the subnet.
type: str
returned: success
name:
description:
- Specifies the subnet name. The value is a string of 1 to 64 characters that can contain letters, digits, underscores
(V(_)), hyphens (V(-)), and periods (V(.)).
type: str
returned: success
vpc_id:
description:
- Specifies the ID of the VPC to which the subnet belongs.
type: str
returned: success
availability_zone:
description:
- Specifies the AZ to which the subnet belongs.
type: str
returned: success
dhcp_enable:
description:
- Specifies whether DHCP is enabled for the subnet. The value can be true (enabled) or false(disabled), and default value
is true. If this parameter is set to false, newly created ECSs cannot obtain IP addresses, and usernames and passwords
cannot be injected using Cloud-init.
type: bool
returned: success
dns_address:
description:
- Specifies the DNS server addresses for subnet. The address in the head will be used first.
type: list
returned: success
"""
from ansible_collections.community.general.plugins.module_utils.hwc_utils import (
Config, HwcClientException, HwcClientException404, HwcModule,