Class: Fog::Sql::AzureRM::Real

Inherits:
Object
  • Object
show all
Defined in:
lib/fog/azurerm/sql.rb,
lib/fog/azurerm/requests/sql/get_database.rb,
lib/fog/azurerm/requests/sql/get_sql_server.rb,
lib/fog/azurerm/requests/sql/list_databases.rb,
lib/fog/azurerm/requests/sql/delete_database.rb,
lib/fog/azurerm/requests/sql/list_sql_servers.rb,
lib/fog/azurerm/requests/sql/delete_sql_server.rb,
lib/fog/azurerm/requests/sql/get_firewall_rule.rb,
lib/fog/azurerm/requests/sql/list_firewall_rules.rb,
lib/fog/azurerm/requests/sql/delete_firewall_rule.rb,
lib/fog/azurerm/requests/sql/create_or_update_database.rb,
lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb,
lib/fog/azurerm/requests/sql/create_or_update_firewall_rule.rb

Overview

Real class for Firewall Rule Request

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Real

Returns a new instance of Real.



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/fog/azurerm/sql.rb', line 38

def initialize(options)
  @tenant_id = options[:tenant_id]
  @client_id = options[:client_id]
  @client_secret = options[:client_secret]
  @subscription_id = options[:subscription_id]
  @resources = Fog::Resources::AzureRM.new(
    tenant_id: options[:tenant_id],
    client_id: options[:client_id],
    client_secret: options[:client_secret],
    subscription_id: options[:subscription_id]
  )
end

Instance Method Details

#create_or_update_database(database_hash) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/azurerm/requests/sql/create_or_update_database.rb', line 6

def create_or_update_database(database_hash)
  msg = "Creating SQL Database: #{database_hash[:name]}."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{database_hash[:resource_group]}/providers/Microsoft.Sql/servers/#{database_hash[:server_name]}/databases/#{database_hash[:name]}?api-version=2014-04-01-preview"
  request_parameters = get_database_parameters(database_hash[:location], database_hash[:create_mode], database_hash[:edition], database_hash[:source_database_id], database_hash[:collation], database_hash[:max_size_bytes], database_hash[:requested_service_objective_name], database_hash[:restore_point_in_time], database_hash[:source_database_deletion_date], database_hash[:elastic_pool_name], database_hash[:requested_service_objective_id])
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.put(
      resource_url,
      request_parameters.to_json,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "SQL Database: #{database_hash[:name]} created successfully."
  Fog::JSON.decode(response)
end

#create_or_update_firewall_rule(firewall_hash) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fog/azurerm/requests/sql/create_or_update_firewall_rule.rb', line 6

def create_or_update_firewall_rule(firewall_hash)
  msg = "Creating SQL Firewall Rule : #{firewall_hash[:name]}."
  Fog::Logger.debug msg

  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{firewall_hash[:resource_group]}/providers/Microsoft.Sql/servers/#{firewall_hash[:server_name]}/firewallRules/#{firewall_hash[:name]}?api-version=2014-04-01-preview"
  request_parameters = get_server_firewall_parameters(firewall_hash[:start_ip], firewall_hash[:end_ip])
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.put(
      resource_url,
      request_parameters.to_json,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "SQL Firewall Rule : #{firewall_hash[:name]} created successfully."
  Fog::JSON.decode(response)
end

#create_or_update_sql_server(server_hash) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb', line 6

def create_or_update_sql_server(server_hash)
  msg = "Creating SQL Server: #{server_hash[:name]}."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{server_hash[:resource_group]}/providers/Microsoft.Sql/servers/#{server_hash[:name]}?api-version=2014-04-01-preview"
  request_parameters = get_server_parameters(server_hash[:location], server_hash[:version], server_hash[:administrator_login], server_hash[:administrator_login_password])
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.put(
      resource_url,
      request_parameters.to_json,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "SQL Server: #{server_hash[:name]} created successfully."
  Fog::JSON.decode(response)
end

#delete_database(resource_group, server_name, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/sql/delete_database.rb', line 6

def delete_database(resource_group, server_name, name)
  msg = "Deleting SQL Database: #{name}."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers/#{server_name}/databases/#{name}?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    RestClient.delete(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "SQL Database: #{name} deleted successfully."
  true
end

#delete_firewall_rule(resource_group, server_name, rule_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/fog/azurerm/requests/sql/delete_firewall_rule.rb', line 6

def delete_firewall_rule(resource_group, server_name, rule_name)
  msg = "Deleting SQL Firewall Rule: #{rule_name}."
  Fog::Logger.debug msg

  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers/#{server_name}/firewallRules/#{rule_name}?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    RestClient.delete(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "SQL Firewall Rule: #{rule_name} deleted successfully."
  true
end

#delete_sql_server(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/sql/delete_sql_server.rb', line 6

def delete_sql_server(resource_group, name)
  msg = "Deleting SQL Server: #{name}."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers/#{name}?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    RestClient.delete(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "SQL Server: #{name} deleted successfully."
  true
end

#get_database(resource_group, server_name, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/sql/get_database.rb', line 6

def get_database(resource_group, server_name, name)
  msg = "Getting Sql Database: #{name} in Resource Group: #{resource_group}."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers/#{server_name}/databases/#{name}?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.get(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Sql Database fetched successfully in Resource Group: #{resource_group}"
  Fog::JSON.decode(response)
end

#get_firewall_rule(resource_group, server_name, rule_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/sql/get_firewall_rule.rb', line 6

def get_firewall_rule(resource_group, server_name, rule_name)
  msg = "Getting Sql Server Firewall Rule: #{rule_name} from SQL Server: #{server_name} in Resource Group: #{resource_group}..."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers/#{server_name}/firewallRules/#{rule_name}?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.get(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Sql Server Firewall Rule fetched successfully from Server: #{server_name}, Resource Group: #{resource_group}"
  Fog::JSON.decode(response)
end

#get_sql_server(resource_group, server_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/sql/get_sql_server.rb', line 6

def get_sql_server(resource_group, server_name)
  msg = "Getting Sql Server: #{server_name} in Resource Group: #{resource_group}..."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers/#{server_name}?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.get(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Sql Server fetched successfully in Resource Group: #{resource_group}"
  Fog::JSON.decode(response)
end

#list_databases(resource_group, server_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/sql/list_databases.rb', line 6

def list_databases(resource_group, server_name)
  msg = "Listing Sql Databases in Resource Group: #{resource_group}."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers/#{server_name}/databases?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.get(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Sql Databases listed successfully in Resource Group: #{resource_group}"
  Fog::JSON.decode(response)['value']
end

#list_firewall_rules(resource_group, server_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/sql/list_firewall_rules.rb', line 6

def list_firewall_rules(resource_group, server_name)
  msg = "Listing Sql Server Firewall rules on server: #{server_name} in Resource Group: #{resource_group}."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers/#{server_name}/firewallRules/?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.get(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Sql Server Firewall Rules listed successfully on server: #{server_name} in Resource Group: #{resource_group}"
  Fog::JSON.decode(response)['value']
end

#list_sql_servers(resource_group) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/sql/list_sql_servers.rb', line 6

def list_sql_servers(resource_group)
  msg = "Listing Sql Servers in Resource Group: #{resource_group}."
  Fog::Logger.debug msg
  resource_url = "#{resource_manager_endpoint_url}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Sql/servers?api-version=2014-04-01-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.get(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
  rescue RestClient::Exception => e
    raise_azure_exception(e, msg)
  end
  Fog::Logger.debug "Sql Servers listed successfully in Resource Group: #{resource_group}"
  Fog::JSON.decode(response)['value']
end