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

New azure_rm_privatednszone module with tests #122

Merged
merged 14 commits into from
Jul 1, 2020
Merged

New azure_rm_privatednszone module with tests #122

merged 14 commits into from
Jul 1, 2020

Conversation

imjoseangel
Copy link
Contributor

@imjoseangel imjoseangel commented May 16, 2020

SUMMARY

New azure_rm_privatednszone module.
Fixes #87

ISSUE TYPE
  • New Module Pull Request
COMPONENT NAME

azure_rm_privatednszone

ADDITIONAL INFORMATION

Creates Private DNS Zone in Azure with the brand new privatedns Python module from Azure SDK

    - name: Create a private DNS zone (check mode)
      azure_rm_privatednszone:
        resource_group: "{{ resource_group }}"
        name: "{{ domain_name }}.com"
      register: results
      check_mode: true

Note: The Azure SDK is still on development. We will add new functionality to the module as soon as it is coming. A new azure_rm_privatednszone_info module will be released as soon as this is approved.

@Fred-sun
Copy link
Collaborator

@imjoseangel Thank you for your contribution to ansible-collection, can you add azure_rm_privatednszone_info module to privatenszone? Thank you very much!

@imjoseangel
Copy link
Contributor Author

Hi @Fred-sun Do you mean both modules in the same PR?

Thank you!

@Fred-sun
Copy link
Collaborator

@imjoseangel Yes. Can be in the same PR, because they share "integration/targets/azure_rm_privatednszone/tasks/main.yml".

@Fred-sun
Copy link
Collaborator

@haiyuazhang ready_for_review

@imjoseangel
Copy link
Contributor Author

imjoseangel commented Jun 27, 2020

@Fred-sun Is this module going to be merged or there is anything else to implement?

Thank you

@Fred-sun
Copy link
Collaborator

@imjoseangel I'm sorry that this PR does not Merge yet, because there are many things happening recently, developers are busy with the launch of other modules, and they ignore this PR. I will push PR Merge as soon as possible. Thank you very much!

@Fred-sun
Copy link
Collaborator

@imjoseangel The document format needs to be changed. Can you Fix the document changes according to the following prompt? Thank you very much!

ERROR: plugins/modules/azure_rm_privatednszone.py:1:1: expected module shebang "b'#!/usr/bin/python'" but found: b'#!/usr/bin/env python'
ERROR: plugins/modules/azure_rm_privatednszone_info.py:1:1: expected module shebang "b'#!/usr/bin/python'" but found: b'#!/usr/bin/env python'
ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: missing-python-interpreter: Interpreter line is not "#!/usr/bin/python"
ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: parameter-type-not-in-doc: Argument 'name' in argument_spec defines type as 'str' but documentation doesn't define type
ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: parameter-type-not-in-doc: Argument 'resource_group' in argument_spec defines type as 'str' but documentation doesn't define type
ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: parameter-type-not-in-doc: Argument 'state' in argument_spec defines type as 'str' but documentation doesn't define type
ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: doc-type-does-not-match-spec: Argument 'tags' in argument_spec defines type as 'list' but documentation defines type as 'dict'
ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: missing-python-interpreter: Interpreter line is not "#!/usr/bin/python"
ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: parameter-type-not-in-doc: Argument 'name' in argument_spec defines type as 'str' but documentation doesn't define type
ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: parameter-type-not-in-doc: Argument 'resource_group' in argument_spec defines type as 'str' but documentation doesn't define type

@imjoseangel
Copy link
Contributor Author

imjoseangel commented Jun 28, 2020

@Fred-sun Changed and tested with ansible-test sanity -v --docker --python 2.7

Thank you!

@Fred-sun
Copy link
Collaborator

@imjoseangel There are some other document errors that need your help to fix, please refer to the error tips below. Thank you very much!
Link: https://dev.azure.com/mseng/VSOSS/_build/results?buildId=12471813&view=logs&j=76c949d7-ae3c-5dab-f3c6-f88fb1d3b538&t=8d517798-7997-54bb-f3b0-245ccd1cc734


ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.adfs_authority_url: version_added ('2.6') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.6' for dictionary value @ data['options']['adfs_authority_url']. Got AnsibleMapping([('description', ['Azure AD authority url. Use when authenticating with Username/password, and has your own ADFS authority.']), ('type', 'str'), ('version_added', '2.6'), ('version_added_collection', 'azure.azcollection')])

ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.api_profile: version_added ('2.5') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.5' for dictionary value @ data['options']['api_profile']. Got AnsibleMapping([('description', ['Selects an API profile to use when communicating with Azure services. Default value of C(latest) is appropriate for public clouds; future values will allow use with Azure Stack.']), ('type', 'str'), ('default', 'latest'), ('version_added', '2.5'), ('version_added_collection', 'azure.azcollection')])

ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.auth_source: version_added ('2.5') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.5' for dictionary value @ data['options']['auth_source']. Got AnsibleMapping([('description', ['Controls the source of the credentials to use for authentication.', 'If not specified, ANSIBLE_AZURE_AUTH_SOURCE environment variable will be used and default to C(auto) if variable is not defined.', 'C(auto) will follow the default precedence of module parameters -> environment variables -> default profile in credential file C(~/.azure/credentials).', 'When set to C(cli), the credentials will be sources from the default Azure CLI profile.', 'Can also be set ...

ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.cert_validation_mode: version_added ('2.5') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.5' for dictionary value @ data['options']['cert_validation_mode']. Got AnsibleMapping([('description', ['Controls the certificate validation behavior for Azure endpoints. By default, all modules will validate the server certificate, but when an HTTPS proxy is in use, or against Azure Stack, it may be necessary to disable this behavior by passing C(ignore). Can also be set via credential file profile or the C(AZURE_CERT_VALIDATION) environment variable.']), ('type', 'str'), ('choices', ['ignore', 'validate']), ('version_added', '2.5'), ('version_added_collection'...

ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.cloud_environment: version_added ('2.4') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.4' for dictionary value @ data['options']['cloud_environment']. Got AnsibleMapping([('description', ['For cloud environments other than the US public cloud, the environment name (as defined by Azure Python SDK, eg, C(AzureChinaCloud), C(AzureUSGovernment)), or a metadata discovery endpoint URL (required for Azure Stack). Can also be set via credential file profile or the C(AZURE_CLOUD_ENVIRONMENT) environment variable.']), ('type', 'str'), ('default', 'AzureCloud'), ('version_added', '2.4'), ('version_added_collection', 'azure.azcollection')])

ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: required_if-requirements-unknown: required_if contains terms in requirements which are not part of argument_spec: log_path


ERROR: plugins/modules/azure_rm_privatednszone.py:0:0: required_if-unknown-key: required_if must have its key log_mode in argument_spec

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.adfs_authority_url: version_added ('2.6') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.6' for dictionary value @ data['options']['adfs_authority_url']. Got AnsibleMapping([('description', ['Azure AD authority url. Use when authenticating with Username/password, and has your own ADFS authority.']), ('type', 'str'), ('version_added', '2.6'), ('version_added_collection', 'azure.azcollection')])

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.api_profile: version_added ('2.5') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.5' for dictionary value @ data['options']['api_profile']. Got AnsibleMapping([('description', ['Selects an API profile to use when communicating with Azure services. Default value of C(latest) is appropriate for public clouds; future values will allow use with Azure Stack.']), ('type', 'str'), ('default', 'latest'), ('version_added', '2.5'), ('version_added_collection', 'azure.azcollection')])

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.auth_source: version_added ('2.5') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.5' for dictionary value @ data['options']['auth_source']. Got AnsibleMapping([('description', ['Controls the source of the credentials to use for authentication.', 'If not specified, ANSIBLE_AZURE_AUTH_SOURCE environment variable will be used and default to C(auto) if variable is not defined.', 'C(auto) will follow the default precedence of module parameters -> environment variables -> default profile in credential file C(~/.azure/credentials).', 'When set to C(cli), the credentials will be sources from the default Azure CLI profile.', 'Can also be set ...

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.cert_validation_mode: version_added ('2.5') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.5' for dictionary value @ data['options']['cert_validation_mode']. Got AnsibleMapping([('description', ['Controls the certificate validation behavior for Azure endpoints. By default, all modules will validate the server certificate, but when an HTTPS proxy is in use, or against Azure Stack, it may be necessary to disable this behavior by passing C(ignore). Can also be set via credential file profile or the C(AZURE_CERT_VALIDATION) environment variable.']), ('type', 'str'), ('choices', ['ignore', 'validate']), ('version_added', '2.5'), ('version_added_collection'...

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: deprecation-either-date-or-version: DOCUMENTATION.options.cloud_environment: version_added ('2.4') is not a valid collection version (see specification at https://semver.org/): invalid semantic version '2.4' for dictionary value @ data['options']['cloud_environment']. Got AnsibleMapping([('description', ['For cloud environments other than the US public cloud, the environment name (as defined by Azure Python SDK, eg, C(AzureChinaCloud), C(AzureUSGovernment)), or a metadata discovery endpoint URL (required for Azure Stack). Can also be set via credential file profile or the C(AZURE_CLOUD_ENVIRONMENT) environment variable.']), ('type', 'str'), ('default', 'AzureCloud'), ('version_added', '2.4'), ('version_added_collection', 'azure.azcollection')])

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: parameter-list-no-elements: Argument 'tags' in argument_spec defines type as list but elements is not defined

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: required_if-requirements-unknown: required_if contains terms in requirements which are not part of argument_spec: log_path

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: required_if-unknown-key: required_if must have its key log_mode in argument_spec

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: return-syntax-error: RETURN.privatednszones.contains.id.type: required key not provided @ data['privatednszones']['contains']['id']['type']. Got None

ERROR: plugins/modules/azure_rm_privatednszone_info.py:0:0: return-syntax-error: RETURN.privatednszones.contains.name.type: required key not provided @ data['privatednszones']['contains']['name']['type']. Got None

See documentation for help: https://docs.ansible.com/ansible/devel/dev_guide/testing/sanity/validate-modules.html

if is_old_facts:
self.module.deprecate(
"The 'azure_rm_privatednszone_facts' module has been renamed to 'azure_rm_privatednszone_info'",
version='2.13')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
version='2.13')
version=(2.9, ))

@imjoseangel
Copy link
Contributor Author

Thank you @Fred-sun Is it possible checking those flags locally or getting access to the online resource?

Regards

@Fred-sun
Copy link
Collaborator

Thank you @Fred-sun Is it possible checking those flags locally or getting access to the online resource?
Regards

@imjoseangel Sorry, I don't know, because I'm always debugging these errors online. Thank you very much!

@Fred-sun
Copy link
Collaborator

@imjoseangel I made some changes to the devel version test fail. Can you merge the changes I submitted into your PR? Thank you!
Link: https://github.com/imjoseangel/azure/pull/1

@haiyuazhang haiyuazhang merged commit b915dae into ansible-collections:dev Jul 1, 2020
@imjoseangel imjoseangel deleted the feature/newprivatednsmodule branch July 1, 2020 18:04
Fred-sun added a commit to Fred-sun/ansible_collections_azure that referenced this pull request Sep 2, 2020
add new test--01

remove unuse file

Add FileEndpoint to azure_rm_storageaccount_info (ansible-collections#102)

* Add FileEndpoint to azure_rm_storageaccount_info

Use hasattr instead of dir (ansible-collections#75)

Add ephemeral OS disk for azure_rm_virtualmachine (ansible-collections#124)

* Add ephemeral OS disk  support for azure_rm_virtualmachine

Add ephemeral OS disk for azure_rm_virtualmachinescaleset (ansible-collections#128)

* Add ephemeral OS disk support for azure_rm_virtualmachinescaleset

Change network_client api_version to match latest default api_version (ansible-collections#157)

* #Fixes 156
Change network_client api_version to match latest default api_version

* #Fixes 156
Update azure-mgmt-network to 10.2.0
Update 'latest' version listing and default version for Network Client to 2018-08-01

reverse change

Add ability to remove all Subnet Service Endpoints when supplying an empty list. (ansible-collections#148)

New azure_rm_privatednszone module with tests (ansible-collections#122)

* New azure_rm_privatednszone module with tests

Co-authored-by: Fred-sun <37327967+Fred-sun@users.noreply.github.com>
Co-authored-by: Fred-sun <xiuxi.sun@qq.com>

Add new azure active directory related modules (ansible-collections#179)

* add ad related modules

* release v0.2.0 preparation and minor ad module bug fixing

fixing sanity testing errors in ad related modules (ansible-collections#182)

* disable ad relate module test
* fixing sanity testing errors in ad related modules

Fixing issues in azure_rm_deployment_info.py  (ansible-collections#180)

- Fixing getting the template_link when it does not exist.
- Feature: Return the correlation_id

Co-authored-by: Steve Kieu <steve.kieu@xvt.com.au>

azure_rm_virtualmachine: Protect against no diskSizeGB (ansible-collections#185)

Disks `diskSizeGB` is not reported if the Virtual Machine is
deallocated.  Trying to fetch it is causing a `KeyError`. This guards
against that KeyError and then nulls out the key so it isn't set
incorrectly in the update call.

add new

Fix wrong module deprecate statement format (ansible-collections#176)

* fix wrong module deprecate statement format
Fred-sun pushed a commit to Fred-sun/ansible_collections_azure that referenced this pull request Sep 3, 2020
… of a Storage Account. (ansible-collections#108)

* Add support for managing the 'Firewall and virtual networks' settings of
a Storage Account.

Co-authored-by: Fred-sun <37327967+Fred-sun@users.noreply.github.com>

Update azure_rm_publicipaddress

add test sample

codebase cleanup: update format (ansible-collections#131)

* Update format

refine azure devops pipeline (ansible-collections#138)

* refine azure devops pipeline

enable single module test (ansible-collections#144)

*  enable single module test

bug fixing in azure_rm_aks module(ansible-collections#170)

* bug fixing in azure_rm_aks module

For Test( 2.9 to 2.10) (ansible-collections#140)

* adding more testing dimensions

Add FileEndpoint to azure_rm_storageaccount_info (ansible-collections#102)

* Add FileEndpoint to azure_rm_storageaccount_info

Use hasattr instead of dir (ansible-collections#75)

Add ephemeral OS disk for azure_rm_virtualmachine (ansible-collections#124)

* Add ephemeral OS disk  support for azure_rm_virtualmachine

Add ephemeral OS disk for azure_rm_virtualmachinescaleset (ansible-collections#128)

* Add ephemeral OS disk support for azure_rm_virtualmachinescaleset

Change network_client api_version to match latest default api_version (ansible-collections#157)

* #Fixes 156
Change network_client api_version to match latest default api_version

* #Fixes 156
Update azure-mgmt-network to 10.2.0
Update 'latest' version listing and default version for Network Client to 2018-08-01

Add ability to remove all Subnet Service Endpoints when supplying an empty list. (ansible-collections#148)

New azure_rm_privatednszone module with tests (ansible-collections#122)

* New azure_rm_privatednszone module with tests

Co-authored-by: Fred-sun <37327967+Fred-sun@users.noreply.github.com>
Co-authored-by: Fred-sun <xiuxi.sun@qq.com>

Add new azure active directory related modules (ansible-collections#179)

* add ad related modules

* release v0.2.0 preparation and minor ad module bug fixing

fixing sanity testing errors in ad related modules (ansible-collections#182)

* disable ad relate module test
* fixing sanity testing errors in ad related modules

Fixing issues in azure_rm_deployment_info.py  (ansible-collections#180)

- Fixing getting the template_link when it does not exist.
- Feature: Return the correlation_id

Co-authored-by: Steve Kieu <steve.kieu@xvt.com.au>

azure_rm_virtualmachine: Protect against no diskSizeGB (ansible-collections#185)

Disks `diskSizeGB` is not reported if the Virtual Machine is
deallocated.  Trying to fetch it is causing a `KeyError`. This guards
against that KeyError and then nulls out the key so it isn't set
incorrectly in the update call.

Fix wrong module deprecate statement format (ansible-collections#176)

* fix wrong module deprecate statement format

update doc

add batch upload feature in azure_rm_storageblob (ansible-collections#203)

Co-authored-by: haiyuazhang <haiyuan.zhang1982@gmaile.com>

fixing status code issue in azure_rm_deployment (ansible-collections#204)

Co-authored-by: haiyuazhang <haiyuan.zhang1982@gmaile.com>

fixing update check bug in azure_rm_adserviceprincipal (ansible-collections#205)

Bump version to v0.3.0

update doc

change service_url to service_uri (ansible-collections#212)

Storageaccount tlsversion (ansible-collections#207)

* add support for minimum_tls_version

fix(vm): fix boot diagnistics option "no" caused an error (ansible-collections#200)

Fix the issue ansible-collections#158 (ansible-collections#214)

* fix issue ansible-collections#158 and add tests

azure_rm_appgateway.py: Support Version 2 SKUs (ansible-collections#198)

fix sanity test issues (ansible-collections#223)

Bump version to v0.4.0

lift v0.4.0 to v1.0.0

update new pr-pipeline (ansible-collections#229)

Add execution environment metadata (ansible-collections#220)

Storage account allow blob public access parameter (ansible-collections#219)

* Storage account allow blob public access parameter

* Change name of test to match correct attribute.

Update azure_rm_virtualmachine boot_diagnostics resource group config… (ansible-collections#208)

* Update azure_rm_virtualmachine boot_diagnostics resource group configuration

Update azure_rm_storageaccount.py file (ansible-collections#233)

* Uneatable parameters do not need to set default values

fix the problem of disk lun self-increment (ansible-collections#237)

Fixing rule_type reference (ansible-collections#99)

Reference to ev instead of item is preventing the expected rule_type values from functioning

Co-authored-by: Fred-sun <37327967+Fred-sun@users.noreply.github.com>

add load_balancer_sku option for aks (ansible-collections#199)

* added load_balancer_sku option for aks

Co-authored-by: Fred-sun <37327967+Fred-sun@users.noreply.github.com>

Improve OS detection when VM has no osProfile (ansible-collections#197)

We have VM without OS profile (checked on https://resources.azure.com/) and they appear as "unknown" os :-/

This appear to be a known issue: https://support.microsoft.com/en-ph/help/4018140/computer-names-of-specialized-virtual-machines-are-missing-or-blank-in

Co-authored-by: Fred-sun <37327967+Fred-sun@users.noreply.github.com>
Co-authored-by: haiyuan_zhang <haiyuan.zhang1982@gmail.com>

Add IPv6 address for azure_rm_subnet (ansible-collections#240)

* Add IPv6 address for azure_rm_subnet

Get address_prefixes info from virtualnetwork (ansible-collections#239)

* Add new parameter for get subnet IPv6 info

Support azure cli credentials with multiple `subscription_id`s (ansible-collections#195)

* feat: Support azure cli credentials with multiple `subscription_id`s

If the `subscription_id` is specified as module parameter or in the
environment then try to find that subscription in either the MSI (existing) or
CLI credentials (new). This patch brings those two scenarios in line.

* docs: Improve documentation on auth_source

* refactor: Move defaults up to class

Just trying to make the `__init__` fn a bit slimmer and easier to
reason about.

* refactor: Use python kwargs instead of passing dict

This is an isomorphic change, just using python syntax to accomplish
the exact same thing.

* refactor: Use ansible builtin `env_fallback` for `auth_source`

Ansible modules have a pattern for looking up a module parameter in
the environment with precedence of explicit param -> env -> default.
Use this pattern to simplify our code here.

This shouldn't change any behavior of `auth_source`, just using
standard ansible patterns to accomplish it.

* style: Split long line

No semantic change, just wrapping a long line to be a bit more
readable.

* refactor: helper fun _get_env

Somewhat frequently there is a lookup in the environment for the key that
matches a module parameter. This simple helper just encapsulates that
to make it a bit easier elsewhere-- lookup the same key in params,
credentials, env

* fix: typo in log message

Co-authored-by: Justin Ossevoort <justin.ossevoort@tesorion.nl>

Add 10.3 version for azure_rm_mariadbserver module (ansible-collections#244)

* add new version for azure_rm_mariadbserver

Update azure_rm_storageaccount yaml (ansible-collections#226)

* update azure_rm_storageaccount test
* update pipeline file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

azure_rm_dnszone fails when using private DNS zones
3 participants