- name: Prepare random number set_fact: rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}" run_once: yes - name: Create instance of MySQL Server -- check mode azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }} sku: name: B_Gen5_1 tier: Basic location: westus2 storage_mb: 51200 version: 5.6 enforce_ssl: True admin_username: zimxyz admin_password: Testpasswordxyz12! check_mode: yes register: output - name: Assert the resource instance is well created assert: that: - output.changed - name: Create instance of MySQL Server azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }} sku: name: B_Gen5_1 tier: Basic location: westus2 storage_mb: 51200 version: 5.6 enforce_ssl: True admin_username: zimxyz admin_password: Testpasswordxyz12! register: output - name: Assert the resource instance is well created assert: that: - output.changed - output.state == 'Ready' - name: Create again instance of MySQL Server azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }} sku: name: B_Gen5_1 tier: Basic location: westus2 storage_mb: 51200 version: 5.6 enforce_ssl: True admin_username: zimxyz admin_password: Testpasswordxyz12! register: output - name: Assert the state has not changed assert: that: - output.changed == false - output.state == 'Ready' - name: Update instance of MySQL Server, change storage size azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }} sku: name: B_Gen5_1 tier: Basic location: westus2 storage_mb: 128000 version: 5.6 enforce_ssl: True admin_username: zimxyz admin_password: Testpasswordxyz12! register: output - name: Assert the state has not changed assert: that: - output.changed - output.state == 'Ready' - debug: var: output - name: Gather facts MySQL Server azure_rm_mysqlserver_facts: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }} register: output - name: Assert that storage size is correct assert: that: - output.servers[0]['storage_mb'] == 128000 - name: Create second instance of MySQL Server azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }}second sku: name: B_Gen5_1 tier: Basic location: westus2 storage_mb: 51200 version: 5.6 enforce_ssl: True admin_username: zimxyz admin_password: Testpasswordxyz12! tags: aaa: bbb - name: Create second instance of MySQL Server azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }}second sku: name: B_Gen5_1 tier: Basic location: westus2 storage_mb: 51200 version: 5.6 enforce_ssl: True admin_username: zimxyz admin_password: Testpasswordxyz12! tags: ccc: ddd - name: Gather facts MySQL Server azure_rm_mysqlserver_facts: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }}second register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.servers[0]['id'] != None - output.servers[0]['name'] != None - output.servers[0]['location'] != None - output.servers[0]['sku']['name'] != None - output.servers[0]['sku']['tier'] != None - output.servers[0]['sku']['capacity'] != None - output.servers[0]['version'] != None - output.servers[0]['user_visible_state'] != None - output.servers[0]['fully_qualified_domain_name'] != None - output.servers[0]['tags']['aaa'] == 'bbb' - output.servers[0]['tags']['ccc'] == 'ddd' - name: Gather facts MySQL Server azure_rm_mysqlserver_facts: resource_group: "{{ resource_group }}" register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.servers[0]['id'] != None - output.servers[0]['name'] != None - output.servers[0]['location'] != None - output.servers[0]['sku']['name'] != None - output.servers[0]['sku']['tier'] != None - output.servers[0]['sku']['capacity'] != None - output.servers[0]['version'] != None - output.servers[0]['user_visible_state'] != None - output.servers[0]['fully_qualified_domain_name'] != None - output.servers[1]['id'] != None - output.servers[1]['name'] != None - output.servers[1]['location'] != None - output.servers[1]['sku']['name'] != None - output.servers[1]['sku']['tier'] != None - output.servers[1]['sku']['capacity'] != None - output.servers[1]['version'] != None - output.servers[1]['user_visible_state'] != None - output.servers[1]['fully_qualified_domain_name'] != None # # azure_rm_mysqldatabase tests below # - name: Create instance of MySQL Database -- check mode azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase check_mode: yes register: output - name: Assert the resource instance is well created assert: that: - output.changed - name: Create instance of MySQL Database azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase collation: latin1_swedish_ci charset: latin1 register: output - name: Assert the resource instance is well created assert: that: - output.changed - output.name == 'testdatabase' - name: Create again instance of MySQL Database azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase collation: latin1_swedish_ci charset: latin1 register: output - name: Assert the state has not changed assert: that: - output.changed == false - output.name == 'testdatabase' - name: Try to update database without force_update azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase collation: latin1_czech_ci charset: latin1 ignore_errors: yes register: output - name: Assert that nothing has changed assert: that: - output.changed == False - name: Update instance of database using force_update azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase collation: latin1_czech_ci charset: latin1 force_update: yes register: output - name: Assert the state has changed assert: that: - output.changed - output.name == 'testdatabase' - name: Create second instance of MySQL Database azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase2 - name: Gather facts MySQL Database azure_rm_mysqldatabase_facts: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.databases[0]['server_name'] != None - output.databases[0]['name'] != None - output.databases[0]['charset'] != None - output.databases[0]['collation'] != None - name: Gather facts MySQL Database azure_rm_mysqldatabase_facts: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.databases[0]['server_name'] != None - output.databases[0]['name'] != None - output.databases[0]['charset'] != None - output.databases[0]['collation'] != None - output.databases[1]['server_name'] != None - output.databases[1]['name'] != None - output.databases[1]['charset'] != None - output.databases[1]['collation'] != None - name: Delete instance of MySQL Database -- check mode azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase state: absent check_mode: yes register: output - name: Assert the state has changed assert: that: - output.changed - name: Delete instance of MySQL Database azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase state: absent register: output - name: Assert the state has changed assert: that: - output.changed - name: Delete unexisting instance of MySQL Database azure_rm_mysqldatabase: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: testdatabase state: absent register: output - name: Assert the state has changed assert: that: - output.changed == false # # azure_rm_firewallrule tests below # - name: Create instance of Firewall Rule -- check mode azure_rm_mysqlfirewallrule: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }} start_ip_address: 172.28.10.136 end_ip_address: 172.28.10.138 check_mode: yes register: output - name: Assert the resource instance is well created assert: that: - output.changed - name: Create instance of Firewall Rule azure_rm_mysqlfirewallrule: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }} start_ip_address: 172.28.10.136 end_ip_address: 172.28.10.138 register: output - name: Assert the resource instance is well created assert: that: - output.changed - name: Create again instance of Firewall Rule azure_rm_mysqlfirewallrule: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }} start_ip_address: 172.28.10.136 end_ip_address: 172.28.10.138 register: output - name: Assert the state has not changed assert: that: - output.changed == false - name: Delete instance of Firewall Rule -- check mode azure_rm_mysqlfirewallrule: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }} state: absent check_mode: yes register: output - name: Assert the state has changed assert: that: - output.changed - name: Create instance of Firewall Rule -- second azure_rm_mysqlfirewallrule: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }}second start_ip_address: 172.28.10.136 end_ip_address: 172.28.10.138 register: output - name: Assert the state has changed assert: that: - output.changed - name: Gather facts MySQL Firewall Rule azure_rm_mysqlfirewallrule_facts: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }} register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.rules[0].id != None - output.rules[0].server_name != None - output.rules[0].name != None - output.rules[0].start_ip_address != None - output.rules[0].end_ip_address != None - "output.rules | length == 1" - name: Gather facts MySQL Firewall Rule azure_rm_mysqlfirewallrule_facts: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.rules[0].id != None - output.rules[0].server_name != None - output.rules[0].name != None - output.rules[0].start_ip_address != None - output.rules[0].end_ip_address != None - output.rules[1].id != None - output.rules[1].name != None - output.rules[1].start_ip_address != None - output.rules[1].end_ip_address != None - "output.rules | length == 2" - name: Delete instance of Firewall Rule azure_rm_mysqlfirewallrule: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }} state: absent register: output - name: Assert the state has changed assert: that: - output.changed - name: Delete unexisting instance of Firewall Rule azure_rm_mysqlfirewallrule: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }} state: absent register: output - name: Assert the state has changed assert: that: - output.changed == false - name: Delete instance of Firewall Rule - second azure_rm_mysqlfirewallrule: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }}second state: absent - name: Gather facts MySQL Firewall Rule azure_rm_mysqlfirewallrule_facts: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: firewallrule{{ rpfx }} register: output - name: Assert that empty list was returned assert: that: - output.changed == False - "output.rules | length == 0" # # configuration # - name: Create instance of Configuration -- check mode azure_rm_mysqlconfiguration: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: event_scheduler value: "ON" check_mode: yes register: output - name: Assert that change was registered assert: that: - output.changed - name: Try to delete default configuraion azure_rm_mysqlconfiguration_facts: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: event_scheduler register: output - name: Get facts of event_scheduler debug: var: output - name: Try to delete default configuraion azure_rm_mysqlconfiguration: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: event_scheduler state: absent register: output - name: Assert that change was registered assert: that: - not output.changed - name: Try to change default configuraion azure_rm_mysqlconfiguration: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: event_scheduler value: "ON" register: output - name: Assert that change was registered assert: that: - output.changed - name: Try to change default configuration -- idempotent azure_rm_mysqlconfiguration: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: event_scheduler value: "ON" register: output - name: Assert that change was registered assert: that: - not output.changed - name: Try to reset configuration azure_rm_mysqlconfiguration: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: event_scheduler state: absent register: output - name: Assert that change was registered assert: that: - output.changed - name: Try to reset configuration -- idempotent azure_rm_mysqlconfiguration: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: event_scheduler state: absent register: output - name: Assert that change was registered assert: that: - not output.changed - name: Gather facts MySQL Configuration azure_rm_mysqlconfiguration_facts: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} name: event_scheduler register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.settings[0].id != None - output.settings[0].name != None - output.settings[0].value != None - output.settings[0].description != None - output.settings[0].source != None - output.settings | length == 1 - name: Gather facts MySQL Configuration azure_rm_mysqlconfiguration_facts: resource_group: "{{ resource_group }}" server_name: mysqlsrv{{ rpfx }} register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.settings[0].id != None - output.settings[0].name != None - output.settings[0].value != None - output.settings[0].description != None - output.settings[0].source != None - output.settings | length > 1 # # clean up azure_rm_mysqlserver test # - name: Delete instance of MySQL Server -- check mode azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }} state: absent check_mode: yes register: output - name: Assert the state has changed assert: that: - output.changed - name: Delete instance of MySQL Server azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }} state: absent register: output - name: Assert the state has changed assert: that: - output.changed - name: Delete unexisting instance of MySQL Server azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }} state: absent register: output - name: Assert the state has changed assert: that: - output.changed == false - name: Delete second instance of MySQL Server azure_rm_mysqlserver: resource_group: "{{ resource_group }}" name: mysqlsrv{{ rpfx }}second state: absent async: 400 poll: 0