ansible/test/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml
Hai Cao ccb7909cc5 [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
2018-08-30 14:18:53 +10:00

289 lines
7.1 KiB
YAML

- 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"