require 'fog/azurerm' require 'yaml' ######################################################################################################################## ###################### Services object required by all actions ###################### ###################### Keep it Uncommented! ###################### ######################################################################################################################## azure_credentials = YAML.load_file('credentials/azure.yml') resources = Fog::Resources::AzureRM.new( tenant_id: azure_credentials['tenant_id'], client_id: azure_credentials['client_id'], client_secret: azure_credentials['client_secret'], subscription_id: azure_credentials['subscription_id'] ) azure_sql_service = Fog::Sql::AzureRM.new( tenant_id: azure_credentials['tenant_id'], client_id: azure_credentials['client_id'], client_secret: azure_credentials['client_secret'], subscription_id: azure_credentials['subscription_id'] ) ######################################################################################################################## ###################### Prerequisites ###################### ######################################################################################################################## begin resource_group = resources.resource_groups.create( name: 'TestRG-SQL', location: LOCATION ) ######################################################################################################################## ###################### Check SQL Server Exists? ###################### ######################################################################################################################## server_name = rand(0...999_99) flag = azure_sql_service.sql_servers.check_sql_server_exists('TestRG-SQL', server_name) puts "SQL Server doesn't exist." unless flag ######################################################################################################################## ###################### Create Sql Server ###################### ######################################################################################################################## sql_server = azure_sql_service.sql_servers.create( name: server_name, resource_group: 'TestRG-SQL', location: LOCATION, version: '2.0', administrator_login: 'testserveradmin', administrator_login_password: 'db@admin=123' ) puts "Created sql server: #{sql_server.name}" ######################################################################################################################## ###################### Check SQL Database Exists? ###################### ######################################################################################################################## database_name = rand(0...999_99) flag = azure_sql_service.sql_databases.check_database_exists('TestRG-SQL', server_name, database_name) puts "SQL Database doesn't exist." unless flag ######################################################################################################################## ###################### Create Sql Database ###################### ######################################################################################################################## sql_database = azure_sql_service.sql_databases.create( resource_group: 'TestRG-SQL', location: LOCATION, server_name: server_name, name: database_name ) puts "Created sql database: #{sql_database.name}" ######################################################################################################################## ###################### Get Sql Database ###################### ######################################################################################################################## sleep 60 database = azure_sql_service.sql_databases.get('TestRG-SQL', server_name, database_name) puts "Get sql database: #{database.name}" ######################################################################################################################## ###################### List Sql Database ###################### ######################################################################################################################## databases = azure_sql_service.sql_databases(resource_group: 'TestRG-SQL', server_name: server_name) puts 'List databases:' databases.each do |a_database| puts a_database.name end ######################################################################################################################## ###################### Destroy Sql Database ###################### ######################################################################################################################## database.destroy ######################################################################################################################## ###################### Check Firewall Rule Exists? ###################### ######################################################################################################################## flag = azure_sql_service.firewall_rules.check_firewall_rule_exists('TestRG-SQL', server_name, 'test-rule-name') puts "Firewall Rule doesn't exist." unless flag ######################################################################################################################## ###################### Create Sql Firewall Rule ###################### ######################################################################################################################## firewall_rule = azure_sql_service.firewall_rules.create( resource_group: 'TestRG-SQL', server_name: server_name, name: 'test-rule-name', start_ip: '10.10.10.10', end_ip: '10.10.10.11' ) puts "Created firewall rule: #{firewall_rule.name}" ######################################################################################################################## ###################### Get Sql Firewall Rule ###################### ######################################################################################################################## firewall_rule = azure_sql_service.firewall_rules.get('TestRG-SQL', server_name, 'test-rule-name') puts "Get Firewall Rule: #{firewall_rule.name}" ######################################################################################################################## ###################### List Sql Firewall Rules ###################### ######################################################################################################################## firewall_rules = azure_sql_service.firewall_rules(resource_group: 'TestRG-SQL', server_name: server_name, name: 'test-rule-name') puts 'List firewall rules:' firewall_rules.each do |a_firewall_rule| puts a_firewall_rule.name end ######################################################################################################################## ###################### Destroy Sql Firewall Rule ###################### ######################################################################################################################## firewall_rule.destroy ######################################################################################################################## ###################### Get Sql Server ###################### ######################################################################################################################## sql_server = azure_sql_service.sql_servers.get('TestRG-SQL', server_name) puts "Get sql server: #{sql_server.name}" ######################################################################################################################## ###################### List Sql Servers ###################### ######################################################################################################################## servers = azure_sql_service.sql_servers(resource_group: 'TestRG-SQL') puts 'List sql servers:' servers.each do |a_server| puts a_server.name end ######################################################################################################################## ###################### Destroy Sql Servers ###################### ######################################################################################################################## sql_server.destroy ######################################################################################################################## ###################### CleanUp ###################### ######################################################################################################################## resource_group = resources.resource_groups.get('TestRG-SQL') resource_group.destroy rescue puts 'Integration Test for sql server is failing' resource_group.destroy unless resource_group.nil? end