ansible/test/integration/targets/azure_rm_cosmosdbaccount/tasks/main.yml
2019-04-03 23:03:47 +08:00

249 lines
8.1 KiB
YAML

- name: Prepare random number
set_fact:
dbname: "cosmos{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
vnname: "vn{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
subnetname: "subnet{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}"
run_once: yes
- name: Create virtual network
azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ vnname }}"
address_prefixes_cidr:
- 10.1.0.0/16
- 172.100.0.0/16
dns_servers:
- 127.0.0.1
- 127.0.0.3
- name: Add subnet
azure_rm_subnet:
name: "{{ subnetname }}"
virtual_network_name: "{{ vnname }}"
resource_group: "{{ resource_group }}"
address_prefix_cidr: "10.1.0.0/24"
- name: Create instance of Database Account -- check mode
azure_rm_cosmosdbaccount:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
location: eastus
geo_rep_locations:
- name: eastus
failover_priority: 0
database_account_offer_type: Standard
check_mode: yes
register: output
- name: Assert the resource instance is well created
assert:
that:
- output.changed
- name: Create instance of Database Account
azure_rm_cosmosdbaccount:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
location: eastus
kind: global_document_db
geo_rep_locations:
- name: eastus
failover_priority: 0
- name: westus
failover_priority: 1
database_account_offer_type: Standard
is_virtual_network_filter_enabled: yes
virtual_network_rules:
- subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ vnname }}"
subnet_name: "{{ subnetname }}"
ignore_missing_vnet_service_endpoint: yes
register: output
- name: Assert the resource instance is well created
assert:
that:
- output.changed
- name: Create again instance of Database Account
azure_rm_cosmosdbaccount:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
location: eastus
kind: global_document_db
geo_rep_locations:
- name: eastus
failover_priority: 0
- name: westus
failover_priority: 1
database_account_offer_type: Standard
is_virtual_network_filter_enabled: yes
virtual_network_rules:
- subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ vnname }}"
subnet_name: "{{ subnetname }}"
ignore_missing_vnet_service_endpoint: yes
register: output
- name: Assert the state has not changed
assert:
that:
- output.changed == false
- name: Create again instance of Database Account -- change something
azure_rm_cosmosdbaccount:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
location: eastus
kind: global_document_db
geo_rep_locations:
- name: eastus
failover_priority: 0
- name: westus
failover_priority: 1
database_account_offer_type: Standard
is_virtual_network_filter_enabled: yes
virtual_network_rules:
- subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ vnname }}"
subnet_name: "{{ subnetname }}"
ignore_missing_vnet_service_endpoint: yes
enable_automatic_failover: yes
register: output
- name: Assert the state has not changed
assert:
that:
- output.changed
- name: Get facts of single account
azure_rm_cosmosdbaccount_facts:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
register: output
- name: Assert that facts are returned
assert:
that:
- output.changed == False
- output.accounts[0]['id'] != None
- output.accounts[0]['resource_group'] != None
- output.accounts[0]['name'] != None
- output.accounts[0]['location'] != None
- output.accounts[0]['kind'] != None
- output.accounts[0]['consistency_policy'] != None
- output.accounts[0]['failover_policies'] != None
- output.accounts[0]['read_locations'] != None
- output.accounts[0]['write_locations'] != None
- output.accounts[0]['database_account_offer_type'] != None
- output.accounts[0]['ip_range_filter'] != None
- output.accounts[0]['is_virtual_network_filter_enabled'] != None
- output.accounts[0]['enable_automatic_failover'] != None
- output.accounts[0]['enable_cassandra'] != None
- output.accounts[0]['enable_table'] != None
- output.accounts[0]['enable_gremlin'] != None
- output.accounts[0]['virtual_network_rules'] != None
- output.accounts[0]['enable_multiple_write_locations'] != None
- output.accounts[0]['document_endpoint'] != None
- output.accounts[0]['provisioning_state'] != None
- output.accounts[0]['tags'] != None
- name: Get facts with keys
azure_rm_cosmosdbaccount_facts:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
retrieve_keys: all
register: output
- name: Assert that facts are returned
assert:
that:
- output.changed == False
- output.accounts[0]['primary_master_key'] != None
- output.accounts[0]['secondary_master_key'] != None
- output.accounts[0]['primary_readonly_master_key'] != None
- output.accounts[0]['secondary_readonly_master_key'] != None
- name: Get facts with readonly keys
azure_rm_cosmosdbaccount_facts:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
retrieve_keys: readonly
retrieve_connection_strings: yes
register: output
- name: Assert that facts are returned
assert:
that:
- output.changed == False
- "'primary_master_key' not in output.accounts[0]"
- "'secondary_master_key' not in output.accounts[0]"
- output.accounts[0]['primary_readonly_master_key'] != None
- output.accounts[0]['secondary_readonly_master_key'] != None
- output.accounts[0]['connection_strings'] | length > 0
- name: List acounts by resource group
azure_rm_cosmosdbaccount_facts:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
register: output
- name: Assert that facts are returned
assert:
that:
- output.changed == False
- output.accounts[0]['id'] != None
- output.accounts[0]['resource_group'] != None
- output.accounts[0]['name'] != None
- output.accounts[0]['location'] != None
- output.accounts[0]['kind'] != None
- output.accounts[0]['consistency_policy'] != None
- output.accounts[0]['failover_policies'] != None
- output.accounts[0]['read_locations'] != None
- output.accounts[0]['write_locations'] != None
- output.accounts[0]['database_account_offer_type'] != None
- output.accounts[0]['ip_range_filter'] != None
- output.accounts[0]['is_virtual_network_filter_enabled'] != None
- output.accounts[0]['enable_automatic_failover'] != None
- output.accounts[0]['enable_cassandra'] != None
- output.accounts[0]['enable_table'] != None
- output.accounts[0]['enable_gremlin'] != None
- output.accounts[0]['virtual_network_rules'] != None
- output.accounts[0]['enable_multiple_write_locations'] != None
- output.accounts[0]['document_endpoint'] != None
- output.accounts[0]['provisioning_state'] != None
- output.accounts[0]['tags'] != None
- name: Delete instance of Database Account -- check mode
azure_rm_cosmosdbaccount:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
state: absent
check_mode: yes
register: output
- name: Assert the state has changed
assert:
that:
- output.changed
- name: Delete instance of Database Account
azure_rm_cosmosdbaccount:
resource_group: "{{ resource_group }}"
name: "{{ dbname }}"
state: absent
register: output
- name: Assert the state has changed
assert:
that:
- output.changed
# currently disabled as there's a bug in SDK / Service
#- name: Delete unexisting instance of Database Account
# azure_rm_cosmosdbaccount:
# resource_group: "{{ resource_group }}"
# name: "{{ dbname }}"
# state: absent
# register: output
#- name: Assert the state has changed
# assert:
# that:
# - output.changed == false