You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/azure_rm_trafficmanagerprofile/tasks/main.yml

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