Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added new module avi_natpolicy #56998

Open
wants to merge 1 commit into
base: devel
from
Open
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

Added new module avi_natpolicy

  • Loading branch information...
chaitanyaavi committed May 27, 2019
commit 25178d970ad95b6f1cae7f1b2313f15b7514d0b5
@@ -0,0 +1,124 @@
#!/usr/bin/python
#
# @author: Gaurav Rastogi (grastogi@avinetworks.com)
# Eric Anderson (eanderson@avinetworks.com)
# module_check: supported
#
# Copyright: (c) 2017 Gaurav Rastogi, <grastogi@avinetworks.com>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
#

ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}

DOCUMENTATION = '''
---
module: avi_natpolicy
author: Chaitanya Deshpande (@chaitanyaavi) <chaitanya.deshpande@avinetworks.com>
short_description: Module for setup of NatPolicy Avi RESTful Object
description:
- This module is used to configure NatPolicy object
- more examples at U(https://github.com/avinetworks/devops)
requirements: [ avisdk ]
version_added: "2.9"
options:
state:
description:
- The state that should be applied on the entity.
default: present
choices: ["absent", "present"]
avi_api_update_method:
description:
- Default method for object update is HTTP PUT.
- Setting to patch will override that behavior to use HTTP PATCH.
default: put
choices: ["put", "patch"]
avi_api_patch_op:
description:
- Patch operation to use when using avi_api_update_method as patch.
choices: ["add", "replace", "delete"]
created_by:
description:
- Creator name.
- Field introduced in 18.2.3.
description:
description:
- Field introduced in 18.2.3.
name:
description:
- Name of the nat policy.
- Field introduced in 18.2.3.
rules:
description:
- Nat policy rules.
- Field introduced in 18.2.3.
tenant_ref:
description:
- It is a reference to an object of type tenant.
- Field introduced in 18.2.3.
url:
description:
- Avi controller URL of the object.
uuid:
description:
- Uuid of the nat policy.
- Field introduced in 18.2.3.
extends_documentation_fragment:
- avi
'''

EXAMPLES = """
- name: Example to create NatPolicy object
avi_natpolicy:
controller: 10.10.25.42
username: admin
password: something
state: present
name: sample_natpolicy
"""

RETURN = '''
obj:
description: NatPolicy (api/natpolicy) object
returned: success, changed
type: dict
'''

from ansible.module_utils.basic import AnsibleModule
try:
from ansible.module_utils.network.avi.avi import (
avi_common_argument_spec, avi_ansible_api, HAS_AVI)
except ImportError:
HAS_AVI = False


def main():
argument_specs = dict(
state=dict(default='present',
choices=['absent', 'present']),
avi_api_update_method=dict(default='put',
choices=['put', 'patch']),
avi_api_patch_op=dict(choices=['add', 'replace', 'delete']),
created_by=dict(type='str',),
description=dict(type='str',),
name=dict(type='str',),
rules=dict(type='list',),
tenant_ref=dict(type='str',),
url=dict(type='str',),
uuid=dict(type='str',),
)
argument_specs.update(avi_common_argument_spec())
module = AnsibleModule(
argument_spec=argument_specs, supports_check_mode=True)
if not HAS_AVI:
return module.fail_json(msg=(
'Avi python API SDK (avisdk>=17.1) or requests is not installed. '
'For more details visit https://github.com/avinetworks/sdk.'))
return avi_ansible_api(module, 'natpolicy',
set([]))


if __name__ == '__main__':
main()
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.