def test_add_firewall_rule(self, manager): Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') responses.add_callback( responses.POST, Mock.base_url + '/server/00798b85-efdc-41ca-8021-f6ef457b8531/firewall_rule', content_type='application/json', callback=firewall_rule_callback ) returned_firewall = server.add_firewall_rule(FirewallRule( position='1', direction='in', family='IPv4', protocol='tcp', source_address_start='192.168.1.1', source_address_end='192.168.1.255', destination_port_start='22', destination_port_end='22', action='accept' )) # everything should run without errors, returned created object assert returned_firewall.position == '1' assert returned_firewall.direction == 'in' assert returned_firewall.source_address_end == '192.168.1.255'
def test_storage_update(self, manager): Mock.mock_put("storage/01d4fcd4-e446-433b-8a9c-551a1284952e") storage = manager.modify_storage("01d4fcd4-e446-433b-8a9c-551a1284952e", title="my bigger data collection", size=15) assert type(storage).__name__ == "Storage" assert storage.size == 15 assert storage.title == "my bigger data collection"
def test_attach_and_detach_storage(self, manager): data = Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') assert len(server.storage_devices) == 1 assert server.storage_devices[0].title == 'Storage for server1.example.com' data = Mock.mock_get('storage/01d4fcd4-e446-433b-8a9c-551a1284952e') storage = manager.get_storage('01d4fcd4-e446-433b-8a9c-551a1284952e') responses.add( responses.POST, Mock.base_url + '/server/00798b85-efdc-41ca-8021-f6ef457b8531/storage/attach', body = Mock.read_from_file('storage_attach.json'), status = 200, content_type='application/json' ) server.add_storage(storage) assert len(server.storage_devices) == 2 assert server.storage_devices[0].title == 'Storage for server1.example.com' assert server.storage_devices[1].title == 'Operating system disk' responses.add( responses.POST, Mock.base_url + '/server/00798b85-efdc-41ca-8021-f6ef457b8531/storage/detach', body = Mock.read_from_file('storage_attach.json'), status = 200, content_type='application/json' ) server.remove_storage(server.storage_devices[1]) assert len(server.storage_devices) == 1 assert server.storage_devices[0].title == 'Storage for server1.example.com'
def test_add_firewall_rule(self, manager): Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') responses.add_callback( responses.POST, Mock.base_url + '/server/00798b85-efdc-41ca-8021-f6ef457b8531/firewall_rule', content_type='application/json', callback=firewall_rule_callback) returned_firewall = server.add_firewall_rule( FirewallRule(position='1', direction='in', family='IPv4', protocol='tcp', source_address_start='192.168.1.1', source_address_end='192.168.1.255', destination_port_start='22', destination_port_end='22', action='accept')) # everything should run without errors, returned created object assert returned_firewall.position == '1' assert returned_firewall.direction == 'in' assert returned_firewall.source_address_end == '192.168.1.255'
def test_get_tag(self, manager): Mock.mock_get('tag/TheTestTag') tag = manager.get_tag('TheTestTag') assert tag.name == 'TheTestTag' assert tag.description == 'Description of TheTestTag' assert len(tag.servers) == 2 assert tag.servers[0].uuid == '0057e20a-6878-43a7-b2b3-530c4a4bdc55'
def test_get_populated_servers(self, manager): data = Mock.mock_get('server') data = Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') data = Mock.mock_get('server/009d64ef-31d1-4684-a26b-c86c955cbf46') servers = manager.get_servers(populate=True) for server in servers: assert type(server).__name__ == 'Server'
def test_storage_update_oop(self, manager): data = Mock.mock_get("storage/01d4fcd4-e446-433b-8a9c-551a1284952e") storage = manager.get_storage("01d4fcd4-e446-433b-8a9c-551a1284952e") Mock.mock_put("storage/01d4fcd4-e446-433b-8a9c-551a1284952e") storage.update(title="my bigger data collection", size=15) assert storage.title == "my bigger data collection" assert storage.size == 15
def test_storage_create(self, manager): Mock.mock_post("storage") storage = manager.create_storage(666, "maxiops", "My data collection", "fi-hel1") assert type(storage).__name__ == "Storage" assert storage.size == 666 assert storage.tier == "maxiops" assert storage.title == "My data collection" assert storage.zone == "fi-hel1"
def test_get_tags(self, manager): Mock.mock_get('tag') tags = manager.get_tags() assert len(tags) == 2 assert tags[0].name == 'TheTestTag1' assert tags[1].name == 'TheTestTag2' assert tags[0].servers[0].uuid == '0057e20a-6878-43a7-b2b3-530c4a4bdc55'
def test_templatize_storage(self, manager): data = Mock.mock_get("storage/01d4fcd4-e446-433b-8a9c-551a1284952e") storage = manager.get_storage("01d4fcd4-e446-433b-8a9c-551a1284952e") data = Mock.mock_post( "storage/01d4fcd4-e446-433b-8a9c-551a1284952e/templatize") storage_template = storage.templatize("my server template") assert storage_template.title == "my server template" assert storage_template.type == "template"
def test_list_and_get_firewall_rules(self, manager): Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') target = 'server/00798b85-efdc-41ca-8021-f6ef457b8531/firewall_rule' Mock.mock_get(target, 'firewall_rules.json') firewall_rules = server.get_firewall_rules() assert firewall_rules[0].position == '1'
def test_create_storage_backup(self, manager): data = Mock.mock_get("storage/01d4fcd4-e446-433b-8a9c-551a1284952e") storage = manager.get_storage("01d4fcd4-e446-433b-8a9c-551a1284952e") data = Mock.mock_post( "storage/01d4fcd4-e446-433b-8a9c-551a1284952e/backup") storage_backup = storage.create_backup("test-backup") assert storage_backup.title == "test-backup" assert storage_backup.size == 666 assert storage_backup.zone == "fi-hel1"
def test_restart_server(self, manager): data = Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') assert server.state == 'started' data = Mock.mock_server_operation('server/00798b85-efdc-41ca-8021-f6ef457b8531/restart') server.restart() assert server.state == 'maintenance'
def test_restore_storage_backup(self, manager): data = Mock.mock_get("storage/01350eec-6ebf-4418-abe4-e8bb1d5c9643") storage_backup = manager.get_storage( "01350eec-6ebf-4418-abe4-e8bb1d5c9643") data = Mock.mock_post( "storage/01350eec-6ebf-4418-abe4-e8bb1d5c9643/restore", empty_content=True) res = storage_backup.restore_backup() assert res == {}
def test_start_server(self, manager): data = Mock.mock_get('server/009d64ef-31d1-4684-a26b-c86c955cbf46') server = manager.get_server('009d64ef-31d1-4684-a26b-c86c955cbf46') assert server.state == 'stopped' data = Mock.mock_server_operation('server/009d64ef-31d1-4684-a26b-c86c955cbf46/start') server.start() assert server.state == 'started'
def test_start_server(self, manager): data = Mock.mock_get("server/009d64ef-31d1-4684-a26b-c86c955cbf46") server = manager.get_server("009d64ef-31d1-4684-a26b-c86c955cbf46") assert server.state == "stopped" data = Mock.mock_server_operation("server/009d64ef-31d1-4684-a26b-c86c955cbf46/start") server.start() assert server.state == "started"
def test_restart_server(self, manager): data = Mock.mock_get("server/00798b85-efdc-41ca-8021-f6ef457b8531") server = manager.get_server("00798b85-efdc-41ca-8021-f6ef457b8531") assert server.state == "started" data = Mock.mock_server_operation("server/00798b85-efdc-41ca-8021-f6ef457b8531/restart") server.restart() assert server.state == "maintenance"
def test_clone_storage(self, manager): data = Mock.mock_get("storage/01d4fcd4-e446-433b-8a9c-551a1284952e") storage = manager.get_storage("01d4fcd4-e446-433b-8a9c-551a1284952e") Mock.mock_post("storage/01d4fcd4-e446-433b-8a9c-551a1284952e/clone") cloned_storage = storage.clone('cloned-storage-test', 'fi-hel1') assert type(cloned_storage).__name__ == "Storage" assert cloned_storage.size == 666 assert cloned_storage.tier == "maxiops" assert cloned_storage.title == "cloned-storage-test" assert cloned_storage.zone == "fi-hel1"
def test_restart_server(self, manager): data = Mock.mock_get("server/00798b85-efdc-41ca-8021-f6ef457b8531") server = manager.get_server("00798b85-efdc-41ca-8021-f6ef457b8531") assert server.state == "started" data = Mock.mock_server_operation( "server/00798b85-efdc-41ca-8021-f6ef457b8531/restart") server.restart() assert server.state == "maintenance"
def test_start_server(self, manager): data = Mock.mock_get("server/009d64ef-31d1-4684-a26b-c86c955cbf46") server = manager.get_server("009d64ef-31d1-4684-a26b-c86c955cbf46") assert server.state == "stopped" data = Mock.mock_server_operation( "server/009d64ef-31d1-4684-a26b-c86c955cbf46/start") server.start() assert server.state == "started"
def test_modify_ip_oop(self, manager): # get ip data = Mock.mock_get("ip_address/10.1.0.101") ip_addr = manager.get_IP("10.1.0.101") # put ip data = Mock.mock_put("ip_address/10.1.0.101") ip_addr.ptr = "my.ptr.record" ip_addr.save() assert ip_addr.ptr == "my.ptr.record"
def test_modify_ip_oop(self, manager): # get ip data = Mock.mock_get('ip_address/10.1.0.101') ip_addr = manager.get_IP('10.1.0.101') # put ip data = Mock.mock_put('ip_address/10.1.0.101') ip_addr.ptr = 'my.ptr.record' ip_addr.save() assert ip_addr.ptr == 'my.ptr.record'
def test_attach_and_detach_IP(self, manager): data = Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') assert len(server.ip_addresses) == 2 data = Mock.mock_post('ip_address') server.add_IP() assert len(server.ip_addresses) == 3 Mock.mock_delete('ip_address/'+server.ip_addresses[2].address) server.remove_IP(server.ip_addresses[2]) assert len(server.ip_addresses) == 2
def test_cancel_clone_storage(self, manager): data = Mock.mock_get("storage/01d4fcd4-e446-433b-8a9c-551a1284952e") storage = manager.get_storage("01d4fcd4-e446-433b-8a9c-551a1284952e") Mock.mock_post("storage/01d4fcd4-e446-433b-8a9c-551a1284952e/clone") cloned_storage = manager.clone_storage(storage, 'cloned-storage-test', 'fi-hel1') Mock.mock_post("storage/01d3e9ad-8ff5-4a52-9fa2-48938e488e78/cancel", empty_content=True) res = cloned_storage.cancel_cloning() assert res == {}
def test_update_server_oop(self, manager): data = Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') server.core_number = 6 server.memory_amount = 1024 server.title = 'Updated server' data = Mock.mock_put('server/00798b85-efdc-41ca-8021-f6ef457b8531') server.save() assert server.core_number == 6 assert server.memory_amount == 1024 assert server.title == 'Updated server'
def test_get_ip(self, manager): data = Mock.mock_get("ip_address/10.1.0.101") ip_addr = manager.get_IP("10.1.0.101") assert type(ip_addr).__name__ == "IP_address" assert ip_addr.address == "10.1.0.101" assert ip_addr.ptr == "a.ptr.record"
def test_get_account(self, manager): data = Mock.mock_get("account") res = manager.authenticate() assert json.loads(data) == res res = manager.get_account() assert json.loads(data) == res
def test_get_ip(self, manager): data = Mock.mock_get('ip_address/10.1.0.101') ip_addr = manager.get_IP('10.1.0.101') assert type(ip_addr).__name__ == 'IP_address' assert ip_addr.address == '10.1.0.101' assert ip_addr.ptr == 'a.ptr.record'
def test_get_storage_import_details(self, manager): data = Mock.mock_get( "storage/01d4fcd4-e446-433b-8a9c-551a1284952e/import") storage_import = manager.get_storage_import_details( "01d4fcd4-e446-433b-8a9c-551a1284952e") assert storage_import.state == "pending" assert storage_import.uuid == "07a6c9a3-300e-4d0e-b935-624f3dbdff3f"
def test_update_server_non_updateable_fields(self, manager): data = Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') with pytest.raises(Exception) as excinfo: server.state = 'rekt' assert "'state' is a readonly field" in str(excinfo.value)
def test_create_server_with_dict(self, manager): responses.add( responses.POST, Mock.base_url + '/server', body=Mock.read_from_file('server_create.json'), status=202, content_type='application/json' ) server1 = { 'core_number': 2, 'memory_amount': 1024, 'hostname': 'my.example.com', 'zone': 'us-chi1', 'storage_devices': [ {'os': '01000000-0000-4000-8000-000030200200', 'size': 10}, {'size': 100, 'title': 'storage disk 1'}, ] } server1 = manager.create_server(server1) # assert correct values in response assert type(server1).__name__ == 'Server' assert server1.core_number == '2' assert server1.memory_amount == '1024' # assert ips and storages have correct types assert type(server1.storage_devices[0]).__name__ == 'Storage' assert type(server1.ip_addresses[0]).__name__ == 'IPAddress' # assert new data was populated assert server1.video_model == 'cirrus' assert server1.vnc == 'off' assert server1.vnc_password == 'aabbccdd'
def test_create_server(self, manager): responses.add(responses.POST, Mock.base_url + '/server', body=Mock.read_from_file('server_create.json'), status=202, content_type='application/json') server1 = Server(core_number=2, memory_amount=1024, hostname='my.example.com', zone=ZONE.Chicago, storage_devices=[ Storage(os='Ubuntu 20.04', size=10), Storage(size=100, title='storage disk 1') ]) manager.create_server(server1) # assert correct values in response assert type(server1).__name__ == 'Server' assert server1.core_number == '2' assert server1.memory_amount == '1024' # assert ips and storages have correct types assert type(server1.storage_devices[0]).__name__ == 'Storage' assert type(server1.ip_addresses[0]).__name__ == 'IPAddress' # assert new data was populated assert server1.video_model == 'cirrus' assert server1.vnc == 'off' assert server1.vnc_password == 'aabbccdd'
def test_create_server(self, manager): responses.add( responses.POST, Mock.base_url + "/server", body = Mock.read_from_file("server_create.json"), status = 202, content_type='application/json' ) server1 = Server(core_number=2, memory_amount=1024, hostname="my.example.com",zone=ZONE.Chicago, storage_devices=[ Storage(os="Ubuntu 14.04", size=10), Storage(size=100, title="storage disk 1") ]) manager.create_server(server1) # assert correct values in response assert type(server1).__name__ == "Server" assert server1.core_number == "2" assert server1.memory_amount == "1024" # assert new data was populated assert server1.video_model == "cirrus" assert server1.vnc == "off" assert server1.vnc_password == "aabbccdd"
def test_delete_object_storage(self, manager): data = Mock.mock_delete( 'object-storage/0608edc4-d4a3-4b01-abe4-e147bd7ffe45') res = manager.delete_object_storage( '0608edc4-d4a3-4b01-abe4-e147bd7ffe45') assert res == {}
def test_create_server_with_dict(self, manager): responses.add( responses.POST, Mock.base_url + '/server', body=Mock.read_from_file('server_create.json'), status=202, content_type='application/json' ) server1 = { 'core_number': 2, 'memory_amount': 1024, 'hostname': 'my.example.com', 'zone': ZONE.Chicago, 'storage_devices': [ {'os': 'Ubuntu 14.04', 'size': 10}, {'size': 100, 'title': 'storage disk 1'}, ] } server1 = manager.create_server(server1) # assert correct values in response assert type(server1).__name__ == 'Server' assert server1.core_number == '2' assert server1.memory_amount == '1024' # assert ips and storages have correct types assert type(server1.storage_devices[0]).__name__ == 'Storage' assert type(server1.ip_addresses[0]).__name__ == 'IP_address' # assert new data was populated assert server1.video_model == 'cirrus' assert server1.vnc == 'off' assert server1.vnc_password == 'aabbccdd'
def test_create_server(self, manager): responses.add(responses.POST, Mock.base_url + "/server", body=Mock.read_from_file("server_create.json"), status=202, content_type='application/json') server1 = Server(core_number=2, memory_amount=1024, hostname="my.example.com", zone=ZONE.Chicago, storage_devices=[ Storage(os="Ubuntu 14.04", size=10), Storage(size=100, title="storage disk 1") ]) manager.create_server(server1) # assert correct values in response assert type(server1).__name__ == "Server" assert server1.core_number == "2" assert server1.memory_amount == "1024" # assert new data was populated assert server1.video_model == "cirrus" assert server1.vnc == "off" assert server1.vnc_password == "aabbccdd"
def test_edit_tag(self, manager): Mock.mock_get('tag/TheTestTag') tag = manager.get_tag('TheTestTag') responses.add_callback( responses.PUT, Mock.base_url + '/tag/TheTestTag', content_type='application/json', callback=tag_post_callback ) tag.name = 'AnotherTestTag' assert tag._api_name == 'TheTestTag' tag.save() assert tag.name == 'AnotherTestTag' assert tag._api_name == 'AnotherTestTag'
def test_remove_firewall_rule(self, manager): Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') target = 'server/00798b85-efdc-41ca-8021-f6ef457b8531/firewall_rule' Mock.mock_get(target, 'firewall_rules.json') firewall_rules = server.get_firewall_rules() Mock.mock_delete('server/00798b85-efdc-41ca-8021-f6ef457b8531/firewall_rule/1') res = firewall_rules[0].destroy() Mock.mock_delete('server/00798b85-efdc-41ca-8021-f6ef457b8531/firewall_rule/1') res = server.remove_firewall_rule(firewall_rules[0]) assert res == {}
def test_assign_tags_to_server(self, manager): data = Mock.mock_get('server/00798b85-efdc-41ca-8021-f6ef457b8531') server = manager.get_server('00798b85-efdc-41ca-8021-f6ef457b8531') responses.add( responses.POST, Mock.base_url + '/server/00798b85-efdc-41ca-8021-f6ef457b8531/tag/tag1,tag2', body=json.dumps({'foo': 'bar'}), content_type='application/json', status=200 ) server.add_tags(['tag1', Tag('tag2')]) for tag in ['web1', 'tag1', 'tag2']: assert tag in server.tags
def test_create_server(self, manager): responses.add( responses.POST, Mock.base_url + '/server', body=Mock.read_from_file('server_create.json'), status=202, content_type='application/json' ) server1 = Server( core_number=2, memory_amount=1024, hostname='my.example.com', zone=ZONE.Chicago, storage_devices=[ Storage(os='Ubuntu 14.04', size=10), Storage(size=100, title='storage disk 1') ] ) manager.create_server(server1) # assert correct values in response assert type(server1).__name__ == 'Server' assert server1.core_number == '2' assert server1.memory_amount == '1024' # assert ips and storages have correct types assert type(server1.storage_devices[0]).__name__ == 'Storage' assert type(server1.ip_addresses[0]).__name__ == 'IP_address' # assert new data was populated assert server1.video_model == 'cirrus' assert server1.vnc == 'off' assert server1.vnc_password == 'aabbccdd'
def test_get_ips(self, manager): data = Mock.mock_get('ip_address') ip_addrs = manager.get_IPs() for ip_addr in ip_addrs: assert type(ip_addr).__name__ == 'IP_address'
def test_modify_ip(self, manager): data = Mock.mock_put('ip_address/10.1.0.101') ip_addr = manager.modify_IP('10.1.0.101', ptr_record='my.ptr.record') assert ip_addr.ptr == 'my.ptr.record'
def test_ip_delete(self, manager): Mock.mock_delete('ip_address/10.1.0.101') res = manager.release_IP('10.1.0.101') assert res == {}