[GCP] New module GCP DNS Resource Record Set (#35920)

This commit is contained in:
Alex Stephen 2018-04-12 04:31:43 -07:00 committed by Ryan Brown
commit 9de9633cac
7 changed files with 895 additions and 4 deletions

View file

@ -0,0 +1 @@
cloud/gcp

View file

@ -0,0 +1,3 @@
---
# defaults file
resource_name: '{{resource_prefix}}'

View file

@ -0,0 +1,144 @@
---
# ----------------------------------------------------------------------------
#
# *** AUTO GENERATED CODE *** AUTO GENERATED CODE ***
#
# ----------------------------------------------------------------------------
#
# This file is automatically generated by Magic Modules and manual
# changes will be clobbered when the file is regenerated.
#
# Please read more about how to change this file at
# https://www.github.com/GoogleCloudPlatform/magic-modules
#
# ----------------------------------------------------------------------------
# Pre-test setup
- name: create a managed zone
gcp_dns_managed_zone:
name: 'managedzone-rrs'
dns_name: 'testzone-4.com.'
description: 'test zone'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/ndev.clouddns.readwrite
state: present
register: managed_zone
- name: delete a resource record set
gcp_dns_resource_record_set:
name: 'www.testzone-4.com.'
managed_zone: "{{ managed_zone }}"
type: 'A'
ttl: 600
target:
- 10.1.2.3
- 40.5.6.7
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/ndev.clouddns.readwrite
state: absent
#----------------------------------------------------------
- name: create a resource record set
gcp_dns_resource_record_set:
name: 'www.testzone-4.com.'
managed_zone: "{{ managed_zone }}"
type: 'A'
ttl: 600
target:
- 10.1.2.3
- 40.5.6.7
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/ndev.clouddns.readwrite
state: present
register: result
- name: assert changed is true
assert:
that:
- result.changed == true
- "result.kind == 'dns#resourceRecordSet'"
# ----------------------------------------------------------------------------
- name: create a resource record set that already exists
gcp_dns_resource_record_set:
name: 'www.testzone-4.com.'
managed_zone: "{{ managed_zone }}"
type: 'A'
ttl: 600
target:
- 10.1.2.3
- 40.5.6.7
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/ndev.clouddns.readwrite
state: present
register: result
- name: assert changed is false
assert:
that:
- result.changed == false
- "result.kind == 'dns#resourceRecordSet'"
#----------------------------------------------------------
- name: delete a resource record set
gcp_dns_resource_record_set:
name: 'www.testzone-4.com.'
managed_zone: "{{ managed_zone }}"
type: 'A'
ttl: 600
target:
- 10.1.2.3
- 40.5.6.7
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/ndev.clouddns.readwrite
state: absent
register: result
- name: assert changed is true
assert:
that:
- result.changed == true
- result.has_key('kind') == False
# ----------------------------------------------------------------------------
- name: delete a resource record set that does not exist
gcp_dns_resource_record_set:
name: 'www.testzone-4.com.'
managed_zone: "{{ managed_zone }}"
type: 'A'
ttl: 600
target:
- 10.1.2.3
- 40.5.6.7
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/ndev.clouddns.readwrite
state: absent
register: result
- name: assert changed is false
assert:
that:
- result.changed == false
- result.has_key('kind') == False
#---------------------------------------------------------
# Post-test teardown
- name: delete a managed zone
gcp_dns_managed_zone:
name: 'managedzone-rrs'
dns_name: 'testzone-4.com.'
description: 'test zone'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/ndev.clouddns.readwrite
state: absent
register: managed_zone

View file

@ -0,0 +1,176 @@
# -*- coding: utf-8 -*-
# (c) 2016, Tom Melendez <tom@supertom.com>
#
# This file is part of Ansible
#
# Ansible is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Ansible is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
import os
import sys
from ansible.compat.tests import mock, unittest
from ansible.module_utils.gcp_utils import GcpRequest
class GCPRequestDifferenceTestCase(unittest.TestCase):
def test_simple_no_difference(self):
value1 = {
'foo': 'bar',
'test': 'original'
}
request = GcpRequest(value1)
self.assertEquals(request == request, True)
def test_simple_different(self):
value1 = {
'foo': 'bar',
'test': 'original'
}
value2 = {
'foo': 'bar',
'test': 'different'
}
difference = {
'test': 'original'
}
request1 = GcpRequest(value1)
request2 = GcpRequest(value2)
self.assertEquals(request1 == request2, False)
self.assertEquals(request1.difference(request2), difference)
def test_nested_dictionaries_no_difference(self):
value1 = {
'foo': {
'quiet': {
'tree': 'test'
},
'bar': 'baz'
},
'test': 'original'
}
request = GcpRequest(value1)
self.assertEquals(request == request, True)
def test_nested_dictionaries_with_difference(self):
value1 = {
'foo': {
'quiet': {
'tree': 'test'
},
'bar': 'baz'
},
'test': 'original'
}
value2 = {
'foo': {
'quiet': {
'tree': 'baz'
},
'bar': 'hello'
},
'test': 'original'
}
difference = {
'foo': {
'quiet': {
'tree': 'test'
},
'bar': 'baz'
}
}
request1 = GcpRequest(value1)
request2 = GcpRequest(value2)
self.assertEquals(request1 == request2, False)
self.assertEquals(request1.difference(request2), difference)
def test_arrays_strings_no_difference(self):
value1 = {
'foo': [
'baz',
'bar'
]
}
request = GcpRequest(value1)
self.assertEquals(request == request, True)
def test_arrays_strings_with_difference(self):
value1 = {
'foo': [
'baz',
'bar',
]
}
value2 = {
'foo': [
'baz',
'hello'
]
}
difference = {
'foo': [
'bar',
]
}
request1 = GcpRequest(value1)
request2 = GcpRequest(value2)
self.assertEquals(request1 == request2, False)
self.assertEquals(request1.difference(request2), difference)
def test_arrays_dicts_with_no_difference(self):
value1 = {
'foo': [
{
'test': 'value',
'foo': 'bar'
},
{
'different': 'dict'
}
]
}
request = GcpRequest(value1)
self.assertEquals(request == request, True)
def test_arrays_dicts_with_difference(self):
value1 = {
'foo': [
{
'test': 'value',
'foo': 'bar'
},
{
'different': 'dict'
}
]
}
value2 = {
'foo': [
{
'test': 'value2',
'foo': 'bar2'
},
]
}
difference = {
'foo': [
{
'test': 'value',
'foo': 'bar'
}
]
}
request1 = GcpRequest(value1)
request2 = GcpRequest(value2)
self.assertEquals(request1 == request2, False)
self.assertEquals(request1.difference(request2), difference)