class Azure::SqlDatabaseManagement::SqlDatabaseManagementService
Public Class Methods
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 21 def initialize super() end
Public Instance Methods
Public: Create a new database server in Windows Azure
.
Attributes¶ ↑
-
login
-String
. The administrator login name. -
password
-String
. The administrator login password. -
:location
-String
. The location where the database server will be created.
See msdn.microsoft.com/en-us/library/windowsazure/gg715274.aspx
Returns Azure::SqlDatabaseManagement::SqlDatabase
object
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 49 def create_server(login, password, location) body = Serialization.database_to_xml(login, password, location) request_path = '/servers' request = SqlManagementHttpRequest.new(:post, request_path, body) response = request.call sql_server = Serialization.server_name_from_xml(response, login, location) Loggerx.info "SQL database server #{sql_server.name} is created." if sql_server sql_server end
Public: Deletes the specified database server of given subscription id from Windows Azure
.
Attributes¶ ↑
-
name
-String
. Database server name.
See msdn.microsoft.com/en-us/library/windowsazure/gg715285.aspx
Returns: None
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 69 def delete_server(name) if get_sql_server(name) request_path = "/servers/#{name}" request = SqlManagementHttpRequest.new(:delete, request_path) request.call Loggerx.info "Deleted database server #{name}." end end
Public: Deletes a server-level firewall rule from a SQL Database server.
Attributes¶ ↑
-
name
-String
. SQL database server name. -
rule_name
-String
. SQL database server firewall rule name.
See msdn.microsoft.com/en-us/library/windowsazure/gg715277.aspx
Returns: None
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 170 def delete_sql_server_firewall_rule(server_name, rule_name) if !list_sql_server_firewall_rules(server_name).collect{|x| x[:rule]}.include?(rule_name) error = "The specified firewall rule #{rule_name} does not exist." raise error elsif get_sql_server(server_name) request_path = "/servers/#{server_name}/firewallrules/#{rule_name}" request = SqlManagementHttpRequest.new(:delete, request_path) request.call Loggerx.info "Deleted server-level firewall rule #{rule_name}." end end
Public: Gets a list of database servers available under the current subscription.
See msdn.microsoft.com/en-us/library/windowsazure/gg715269.aspx
Returns an array of Azure::SqlDatabaseManagement::SqlDatabase
objects
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 31 def list_servers request_path = '/servers' request = SqlManagementHttpRequest.new(:get, request_path, nil) response = request.call Serialization.databases_from_xml(response) end
Public: Gets a list of server-level firewall rules set for SQL database server.
Attributes¶ ↑
-
server_name
-String
. Database server name.
See msdn.microsoft.com/en-us/library/windowsazure/gg715278.aspx
Returns an array of firewall
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 151 def list_sql_server_firewall_rules(server_name) if get_sql_server(server_name) request_path = "/servers/#{server_name}/firewallrules" request = SqlManagementHttpRequest.new(:get, request_path) response = request.call Serialization.database_firewall_from_xml(response) end end
Public: Sets the administrative password of a SQL Database server for a subscription.
Attributes¶ ↑
See msdn.microsoft.com/en-us/library/windowsazure/gg715272.aspx
Returns: None
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 89 def reset_password(name, password) if get_sql_server(name) body = Serialization.reset_password_to_xml(password) request_path = "/servers/#{name}?op=ResetPassword" request = SqlManagementHttpRequest.new(:post, request_path, body) request.call Loggerx.info "Password for server #{name} changed successfully." end end
Public: The Set Server Firewall Rule operation for the given subscription adds a new server-level firewall or updates an existing server-level firewall rule for a SQL Database server.
Attributes¶ ↑
==== Options
Accepted key/value pairs are:
See msdn.microsoft.com/en-us/library/windowsazure/gg715280.aspx
Returns: None
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 117 def set_sql_server_firewall_rule(server_name, rule_name, options = {}) unless server_name.class == String && rule_name.class == String raise "Missing parameter server_name or rule_name." end if get_sql_server(server_name) if options[:start_ip_address] || options[:end_ip_address] body = Serialization.firewall_rule_to_xml(options) request_path = "/servers/#{server_name}/firewallrules/#{rule_name}" method = :put else request_path = "/servers/#{server_name}/firewallrules/#{rule_name}?op=AutoDetectClientIP" method = :post end request = SqlManagementHttpRequest.new(method, request_path, body) request.headers['x-ms-version'] = '1.0' request.uri = URI.parse(Azure.config.sql_database_management_endpoint + Azure.config.subscription_id + request_path) # Management certificate authentication Endpoint throws errors for this operation. Need to re-visit # this once the Azure API is working. request.call Loggerx.info "Added server-level firewall rule #{rule_name}." end end
Private Instance Methods
# File lib/azure/sql_database_management/sql_database_management_service.rb, line 184 def get_sql_server(server_name) if server_name.empty? error = Azure::Error::Error.new("DatabaseServerNotFound", 40645, "Servername cannot be empty or null.") else sql_server = list_servers.collect(&:name).include?(server_name) if sql_server return sql_server else error = Azure::Error::Error.new("DatabaseServerNotFound", 40647, "Subscription #{Azure.config.subscription_id} does not have server #{server_name}.") end end raise error if error end