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

640 lines
17 KiB
YAML

- 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