diff options
author | Hai Cao <imcaohai@gmail.com> | 2018-08-30 00:18:53 -0400 |
---|---|---|
committer | Jordan Borean <jborean93@gmail.com> | 2018-08-30 14:18:53 +1000 |
commit | ccb7909cc565c28633e03ba55821c4d5300d054d (patch) | |
tree | cb24c1ac9e0900c9f83244f78d99423798763826 /test/integration/targets/azure_rm_trafficmanagerprofile | |
parent | fbcdf8ba5bf922f7004aeb8179e6732c4e6da389 (diff) | |
download | ansible-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')
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" |