317 lines
No EOL
8.4 KiB
YAML
317 lines
No EOL
8.4 KiB
YAML
- name: Fix resource prefix
|
|
set_fact:
|
|
redis_name: "redis-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}"
|
|
vnet_name: "vnet-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}"
|
|
subnet_name: "subnet-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}"
|
|
rule_name: "rule1"
|
|
run_once: yes
|
|
|
|
- name: Create a redis cache (Check Mode)
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
sku:
|
|
name: basic
|
|
size: C1
|
|
wait_for_provisioning: False
|
|
check_mode: yes
|
|
register: output
|
|
|
|
- name: Assert creating redis cache check mode
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Create a redis cache
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
sku:
|
|
name: basic
|
|
size: C1
|
|
wait_for_provisioning: False
|
|
register: output
|
|
|
|
- name: Assert creating redis cache
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
- output.id
|
|
|
|
- name: Get facts
|
|
azure_rm_rediscache_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
register: facts
|
|
|
|
- name: Assert facts
|
|
assert:
|
|
that:
|
|
- facts.rediscaches | length == 1
|
|
- facts.rediscaches[0].id != None
|
|
- facts.rediscaches[0].host_name != None
|
|
- facts.rediscaches[0].provisioning_state != None
|
|
- facts.rediscaches[0].sku.name == 'basic'
|
|
- facts.rediscaches[0].sku.size == 'C1'
|
|
|
|
- name: Update the redis cache (idempotent)
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
sku:
|
|
name: basic
|
|
size: C1
|
|
wait_for_provisioning: False
|
|
register: output
|
|
|
|
- name: assert output not changed
|
|
assert:
|
|
that:
|
|
- not output.changed
|
|
|
|
- name: long-running rediscache tests [run with `--tags long_run,untagged` to enable]
|
|
# creating redis Cache costs about 20 mins async operation,
|
|
# need to poll status from Creating to Running, then able to perform updating/deleting operation,
|
|
# otherwise, will met error:
|
|
# "The resource '<resource_id>' is busy processing a previous update request or is undergoing system maintenance.
|
|
# As such, it is currently unable to accept the update request. Please try again later."
|
|
block:
|
|
- name: Wait for Redis provisioning to complete
|
|
azure_rm_rediscache_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
register: facts
|
|
until: facts.rediscaches[0]['provisioning_state'] == 'Succeeded'
|
|
retries: 30
|
|
delay: 60
|
|
|
|
- name: (actually) update redis cache
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
sku:
|
|
name: basic
|
|
size: C1
|
|
enable_non_ssl_port: true
|
|
tags:
|
|
testing: foo
|
|
wait_for_provisioning: True
|
|
register: output
|
|
|
|
- name: assert output changed
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Update redis cache configuration
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
sku:
|
|
name: basic
|
|
size: C1
|
|
enable_non_ssl_port: True
|
|
maxmemory_policy: allkeys_lru
|
|
tags:
|
|
testing: foo
|
|
register: output
|
|
|
|
- name: assert output changed
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Scale up the redis cache
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
sku:
|
|
name: standard
|
|
size: C1
|
|
tags:
|
|
testing: foo
|
|
wait_for_provisioning: True
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Force reboot redis cache
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
reboot:
|
|
reboot_type: all
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Delete the redis cache (Check Mode)
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
state: absent
|
|
check_mode: yes
|
|
register: output
|
|
|
|
- name: assert deleting redis cache check mode
|
|
assert:
|
|
that: output.changed
|
|
|
|
- name: Delete the redis cache
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}"
|
|
state: absent
|
|
register: output
|
|
|
|
- assert:
|
|
that:
|
|
- output.changed
|
|
tags: [long_run, never]
|
|
|
|
|
|
- name: Create virtual network
|
|
azure_rm_virtualnetwork:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ vnet_name }}"
|
|
address_prefixes: "10.10.0.0/16"
|
|
|
|
- name: Add subnet
|
|
azure_rm_subnet:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ subnet_name }}"
|
|
address_prefix: "10.10.0.0/24"
|
|
virtual_network: "{{ vnet_name }}"
|
|
|
|
- name: Create redis with subnet
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}2"
|
|
sku:
|
|
name: premium
|
|
size: P1
|
|
subnet:
|
|
name: "{{ subnet_name }}"
|
|
virtual_network_name: "{{ vnet_name }}"
|
|
wait_for_provisioning: False
|
|
register: output
|
|
|
|
- name: Assert creating redis cache
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
- output.id
|
|
|
|
- name: Get facts
|
|
azure_rm_rediscache_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}2"
|
|
return_access_keys: True
|
|
register: facts
|
|
|
|
- name: Assert facts
|
|
assert:
|
|
that:
|
|
- facts.rediscaches | length == 1
|
|
- facts.rediscaches[0].subnet != None
|
|
- facts.rediscaches[0].access_keys.primary != None
|
|
|
|
- name: Create firewall rule (Check mode)
|
|
azure_rm_rediscachefirewallrule:
|
|
resource_group: "{{ resource_group }}"
|
|
cache_name: "{{ redis_name }}2"
|
|
name: "{{ rule_name }}"
|
|
start_ip_address: 192.168.1.1
|
|
end_ip_address: 192.168.1.4
|
|
check_mode: yes
|
|
register: output
|
|
|
|
- name: Assert check mode creation
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
|
|
- name: long-running rediscachefirewallrule tests [run with `--tags long_run,untagged` to enable]
|
|
# Creating firewall rule need Redis status is running, while creating redis Cache costs about 20 mins async operation,
|
|
# need to poll status from Creating to Running, then able to perform firewall rule creating,
|
|
# otherwise, will met error:
|
|
# "Error creating/updating Firewall rule of Azure Cache for Redis: Azure Error: Conflict\nMessage: The resource
|
|
# '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Cache/Redis/myRedis' is busy processing
|
|
# a previous update request or is undergoing system maintenance. As such, it is currently unable to accept the update request. Please try again later."
|
|
block:
|
|
- name: Wait for Redis provisioning to complete
|
|
azure_rm_rediscache_facts:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}2"
|
|
register: facts
|
|
until: facts.rediscaches[0]['provisioning_state'] == 'Succeeded'
|
|
retries: 30
|
|
delay: 60
|
|
|
|
- name: Create firewall rule
|
|
azure_rm_rediscachefirewallrule:
|
|
resource_group: "{{ resource_group }}"
|
|
cache_name: "{{ redis_name }}2"
|
|
name: "{{ rule_name }}"
|
|
start_ip_address: 192.168.1.1
|
|
end_ip_address: 192.168.1.4
|
|
register: output
|
|
|
|
- name: Assert creation
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
- output.id
|
|
|
|
- name: Update firewall rule idempotence
|
|
azure_rm_rediscachefirewallrule:
|
|
resource_group: "{{ resource_group }}"
|
|
cache_name: "{{ redis_name }}2"
|
|
name: "{{ rule_name }}"
|
|
start_ip_address: 192.168.1.1
|
|
end_ip_address: 192.168.1.4
|
|
register: output
|
|
|
|
- name: Assert idempotence
|
|
assert:
|
|
that:
|
|
- output.changed == False
|
|
|
|
- name: Update firewall rule
|
|
azure_rm_rediscachefirewallrule:
|
|
resource_group: "{{ resource_group }}"
|
|
cache_name: "{{ redis_name }}2"
|
|
name: "{{ rule_name }}"
|
|
end_ip_address: 192.168.1.5
|
|
register: output
|
|
|
|
- name: Assert updating
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Delete firewall rule
|
|
azure_rm_rediscachefirewallrule:
|
|
resource_group: "{{ resource_group }}"
|
|
cache_name: "{{ redis_name }}2"
|
|
name: "{{ rule_name }}"
|
|
state: absent
|
|
register: output
|
|
|
|
- name: Assert deletion
|
|
assert:
|
|
that:
|
|
- output.changed
|
|
|
|
- name: Delete the redis cache
|
|
azure_rm_rediscache:
|
|
resource_group: "{{ resource_group }}"
|
|
name: "{{ redis_name }}2"
|
|
state: absent
|
|
register: output
|
|
tags: [long_run, never] |