summaryrefslogtreecommitdiff
path: root/test/integration/targets/azure_rm_trafficmanagerprofile
diff options
context:
space:
mode:
authorHai Cao <imcaohai@gmail.com>2018-08-30 00:18:53 -0400
committerJordan Borean <jborean93@gmail.com>2018-08-30 14:18:53 +1000
commitccb7909cc565c28633e03ba55821c4d5300d054d (patch)
treecb24c1ac9e0900c9f83244f78d99423798763826 /test/integration/targets/azure_rm_trafficmanagerprofile
parentfbcdf8ba5bf922f7004aeb8179e6732c4e6da389 (diff)
downloadansible-ccb7909cc565c28633e03ba55821c4d5300d054d.tar.gz
[new module] Azure Traffic Manager profile module (#43812)
* add traffic manager client and models in azure_rm_common - add traffic manager management client - import traffic manager models to 'traffic_manager_models' proprety - azure.mgmt.trafficmanager doesn't have models(), so use direct import for now * add traffic manager facts module * add traffic manager module * add integration test for two modules * fix package info in requirements * fix sanity check * fix monitor config default value * fix facts module doc * move model import into module * resolve comments except seprating endpoint * remove endpoint operation * fix test after removing endpoint operation * change module name to azure_rm_trafficmanagerprofile/facts * fix sanity test * seperate endpoint into delegate module * fix typo * fix lint * fix lint * fix test * fix test * resolve comments * fix test * fix test * fix test * fix bug in return * resolve comments * fix lint * fix lint * add sample in endpoint module
Diffstat (limited to 'test/integration/targets/azure_rm_trafficmanagerprofile')
-rw-r--r--test/integration/targets/azure_rm_trafficmanagerprofile/aliases3
-rw-r--r--test/integration/targets/azure_rm_trafficmanagerprofile/meta/main.yml2
-rw-r--r--test/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml289
3 files changed, 294 insertions, 0 deletions
diff --git a/test/integration/targets/azure_rm_trafficmanagerprofile/aliases b/test/integration/targets/azure_rm_trafficmanagerprofile/aliases
new file mode 100644
index 0000000000..239e365779
--- /dev/null
+++ b/test/integration/targets/azure_rm_trafficmanagerprofile/aliases
@@ -0,0 +1,3 @@
+cloud/azure
+shippable/azure/group4
+destructive
diff --git a/test/integration/targets/azure_rm_trafficmanagerprofile/meta/main.yml b/test/integration/targets/azure_rm_trafficmanagerprofile/meta/main.yml
new file mode 100644
index 0000000000..95e1952f98
--- /dev/null
+++ b/test/integration/targets/azure_rm_trafficmanagerprofile/meta/main.yml
@@ -0,0 +1,2 @@
+dependencies:
+ - setup_azure
diff --git a/test/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml b/test/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml
new file mode 100644
index 0000000000..dba81c0e25
--- /dev/null
+++ b/test/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml
@@ -0,0 +1,289 @@
+- name: Prepare random number
+ set_fact:
+ tmname: "tm{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ endpointname1: "ep1{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ endpointname2: "ep2{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
+ run_once: yes
+
+
+- name: Create a Traffic Manager profile(check mode)
+ azure_rm_trafficmanagerprofile:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ location: global
+ profile_status: enabled
+ routing_method: performance
+ dns_config:
+ relative_name: "{{ tmname }}"
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
+ check_mode: yes
+
+- name: Check there is no Traffic Manager profile created
+ azure_rm_trafficmanagerprofile_facts:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ register: fact
+
+- name: Check there is no Traffic Manager profile created
+ assert: { that: "{{ fact.tms | length }} == 0" }
+
+- name: Create a Traffic Manager profile
+ azure_rm_trafficmanagerprofile:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ location: global
+ profile_status: enabled
+ routing_method: performance
+ dns_config:
+ relative_name: "{{ tmname }}"
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
+ register: tm
+
+- name: Assert the Traffic Manager profile is well created
+ assert:
+ that:
+ - tm.changed
+
+- name: Gather Traffic Manager profile facts
+ azure_rm_trafficmanagerprofile_facts:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ register: fact
+
+- name: Assert fact returns the created one
+ assert:
+ that:
+ - "fact.tms | length == 1"
+ - fact.tms[0].id == tm.id
+ - fact.tms[0].endpoints | length == 0
+
+- name: Create a Traffic Manager profile (idempotent)
+ azure_rm_trafficmanagerprofile:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ location: global
+ profile_status: enabled
+ routing_method: performance
+ dns_config:
+ relative_name: "{{ tmname }}"
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
+ register: output
+
+- name: Assert idempotent
+ assert:
+ that:
+ - not output.changed
+
+- name: Update the Traffic Manager profile
+ azure_rm_trafficmanagerprofile:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ tags:
+ testing: testing
+ delete: on-exit
+ foo: bar
+ location: global
+ profile_status: disabled
+ routing_method: priority
+ dns_config:
+ relative_name: "{{ tmname }}"
+ ttl: 60
+ monitor_config:
+ protocol: HTTPS
+ port: 80
+ path: '/'
+ register: output
+
+- name: Assert the Traffic Manager profile is updated
+ assert:
+ that:
+ - output.changed
+
+- name: Create Traffic Manager endpoint(check mode)
+ azure_rm_trafficmanagerendpoint:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ name: "{{ endpointname1 }}"
+ type: external_endpoints
+ location: westus
+ priority: 2
+ weight: 1
+ target: 1.2.3.4
+ check_mode: yes
+ register: output
+
+- name: Assert check mode changed
+ assert:
+ that:
+ - output.changed
+
+- name: Get endpoint
+ azure_rm_trafficmanagerendpoint_facts:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ register: facts
+
+- name: Check no endpoint created in check mode
+ assert:
+ that:
+ - facts.endpoints | length == 0
+
+- name: Create Traffic Manager endpoint
+ azure_rm_trafficmanagerendpoint:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ name: "{{ endpointname1 }}"
+ type: external_endpoints
+ location: westus
+ priority: 2
+ weight: 1
+ target: 1.2.3.4
+ register: output
+
+- name: Assert endpoint create changed
+ assert:
+ that:
+ - output.changed
+
+- name: Get endpoint
+ azure_rm_trafficmanagerendpoint_facts:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ register: facts
+
+- name: Check endpoint created
+ assert:
+ that:
+ - facts.endpoints | length == 1
+ - facts.endpoints[0].name == "{{ endpointname1 }}"
+
+- name: Create second Traffic Manager endpoint
+ azure_rm_trafficmanagerendpoint:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ name: "{{ endpointname2 }}"
+ type: external_endpoints
+ location: westus
+ priority: 1
+ weight: 3
+ target: 4.3.2.1
+
+- name: Get endpoint
+ azure_rm_trafficmanagerendpoint_facts:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ register: facts
+
+- name: Check 2 endpoint in profile
+ assert:
+ that:
+ - facts.endpoints | length == 2
+
+- name: Create endpoint (idempotent)
+ azure_rm_trafficmanagerendpoint:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ name: "{{ endpointname2 }}"
+ type: external_endpoints
+ location: westus
+ priority: 1
+ weight: 3
+ target: 4.3.2.1
+ register: output
+
+- name: Assert endpoint creation idempotent
+ assert:
+ that:
+ - output.changed == False
+
+- name: Delete second endpoint
+ azure_rm_trafficmanagerendpoint:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ name: "{{ endpointname2 }}"
+ type: external_endpoints
+ state: absent
+ register: output
+
+- name: Assert endpoint deletion changed
+ assert:
+ that:
+ - output.changed
+
+- name: Get endpoint
+ azure_rm_trafficmanagerendpoint_facts:
+ resource_group: "{{ resource_group }}"
+ profile_name: "{{ tmname }}"
+ register: facts
+
+- name: Check 1 endpoint left in profile
+ assert:
+ that:
+ - facts.endpoints | length == 1
+
+- name: Delete the Traffic Manager profile(check mode)
+ azure_rm_trafficmanagerprofile:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ state: absent
+ check_mode: yes
+
+- name: Gather Traffic Manager profile facts
+ azure_rm_trafficmanagerprofile_facts:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ register: fact
+
+- name: Assert the traffic manager profile is still there
+ assert:
+ that:
+ - "fact.tms | length == 1"
+ - fact.tms[0].id == tm.id
+ - fact.tms[0].endpoints | length == 1
+
+- name: Delete the Traffic Manager profile
+ azure_rm_trafficmanagerprofile:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ state: absent
+ register: output
+
+- name: Assert the Traffic Manager profile is well deleted
+ assert:
+ that:
+ - output.changed
+
+- name: Get Traffic Manager profile fact
+ azure_rm_trafficmanagerprofile_facts:
+ resource_group: "{{ resource_group }}"
+ name: "{{ tmname }}"
+ register: fact
+
+- name: Assert fact returns empty
+ assert:
+ that:
+ - "fact.tms | length == 0"