Class: Azure::BaseManagement::BaseManagementService
- Inherits:
-
Object
- Object
- Azure::BaseManagement::BaseManagementService
- Defined in:
- lib/azure/base_management/base_management_service.rb
Instance Method Summary collapse
-
#create_affinity_group(name, location, label, options = {}) ⇒ Object
Public: Creates a new affinity group for the specified subscription.
-
#delete_affinity_group(name) ⇒ Object
Public: Deletes an affinity group in the specified subscription.
-
#get_affinity_group(name) ⇒ Object
Public: returns the system properties associated with the specified affinity group.
-
#initialize ⇒ BaseManagementService
constructor
A new instance of BaseManagementService.
-
#list_affinity_groups ⇒ Object
Public: Gets a lists the affinity groups associated with the specified subscription.
-
#list_locations ⇒ Object
Public: Gets a list of regional data center locations from the server.
-
#update_affinity_group(name, label, options = {}) ⇒ Object
Public: updates the label and/or the description for an affinity group for the specified subscription.
- #validate_configuration ⇒ Object
Constructor Details
#initialize ⇒ BaseManagementService
Returns a new instance of BaseManagementService.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/azure/base_management/base_management_service.rb', line 32 def initialize validate_configuration cert_file = nil begin if Azure.config.management_certificate =~ /(pem)$/ cert_file = File.read(Azure.config.management_certificate) certificate_key = OpenSSL::X509::Certificate.new(cert_file) private_key = OpenSSL::PKey::RSA.new(cert_file) else # Parse pfx content File.open(Azure.config.management_certificate, "rb") do |f| cert_file = f.read end cert_content = OpenSSL::PKCS12.new(cert_file) certificate_key = OpenSSL::X509::Certificate.new( cert_content.certificate.to_pem ) private_key = OpenSSL::PKey::RSA.new(cert_content.key.to_pem) end rescue Exception => e raise "Management certificate not valid. Error: #{e.}" end Azure.configure do |config| config.http_certificate_key = certificate_key config.http_private_key = private_key end end |
Instance Method Details
#create_affinity_group(name, location, label, options = {}) ⇒ Object
Public: Creates a new affinity group for the specified subscription.
Attributes
-
name
- String. Affinity Group name. -
location
- String. The location where the affinity group will
be created.
-
label
- String. Name for the affinity specified as a
base-64 encoded string.
Options
Accepted key/value pairs are:
-
:description
- String. A description for the affinity group.
(optional)
See msdn.microsoft.com/en-us/library/windowsazure/gg715317.aspx
Returns: None
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/azure/base_management/base_management_service.rb', line 120 def create_affinity_group(name, location, label, = {}) if name.nil? || name.strip.empty? raise 'Affinity Group name cannot be empty' elsif list_affinity_groups.map(&:name).include?(name) raise Azure::Error::Error.new( 'ConflictError', 409, "An affinity group #{name}"\ " already exists in the current subscription." ) else validate_location(location) body = Serialization.affinity_group_to_xml(name, location, label, ) request_path = '/affinitygroups' request = ManagementHttpRequest.new(:post, request_path, body) request.call Loggerx.info "Affinity Group #{name} is created." end end |
#delete_affinity_group(name) ⇒ Object
Public: Deletes an affinity group in the specified subscription
Attributes
-
name
- String. Affinity Group name.
See msdn.microsoft.com/en-us/library/windowsazure/gg715314.aspx
Returns: None
181 182 183 184 185 186 187 188 |
# File 'lib/azure/base_management/base_management_service.rb', line 181 def delete_affinity_group(name) if affinity_group(name) request_path = "/affinitygroups/#{name}" request = ManagementHttpRequest.new(:delete, request_path) request.call Loggerx.info "Deleted affinity group #{name}." end end |
#get_affinity_group(name) ⇒ Object
Public: returns the system properties associated with the specified affinity group.
Attributes
-
name
- String. Affinity Group name.
See msdn.microsoft.com/en-us/library/windowsazure/ee460789.aspx
Returns: Azure::BaseManagement::AffinityGroup object
200 201 202 203 204 205 206 207 |
# File 'lib/azure/base_management/base_management_service.rb', line 200 def get_affinity_group(name) if affinity_group(name) request_path = "/affinitygroups/#{name}" request = ManagementHttpRequest.new(:get, request_path) response = request.call Serialization.affinity_group_from_xml(response) end end |
#list_affinity_groups ⇒ Object
Public: Gets a lists the affinity groups associated with the specified subscription.
See msdn.microsoft.com/en-us/library/windowsazure/ee460797.aspx
Returns an array of Azure::BaseManagement::AffinityGroup objects
94 95 96 97 98 99 |
# File 'lib/azure/base_management/base_management_service.rb', line 94 def list_affinity_groups request_path = '/affinitygroups' request = ManagementHttpRequest.new(:get, request_path, nil) response = request.call Serialization.affinity_groups_from_xml(response) end |
#list_locations ⇒ Object
Public: Gets a list of regional data center locations from the server
Returns an array of Azure::BaseManagement::Location objects
82 83 84 85 86 |
# File 'lib/azure/base_management/base_management_service.rb', line 82 def list_locations request = ManagementHttpRequest.new(:get, '/locations') response = request.call Serialization.locations_from_xml(response) end |
#update_affinity_group(name, label, options = {}) ⇒ Object
Public: updates the label and/or the description for an affinity group for the specified subscription.
Attributes
-
name
- String. Affinity Group name. -
label
- String. Name for the affinity specified as a
base-64 encoded string.
Options
Accepted key/value pairs are:
-
:description
- String. A description for the affinity group.
(optional)
See msdn.microsoft.com/en-us/library/windowsazure/gg715316.aspx
Returns: None
161 162 163 164 165 166 167 168 169 170 |
# File 'lib/azure/base_management/base_management_service.rb', line 161 def update_affinity_group(name, label, = {}) raise 'Label name cannot be empty' if label.nil? || label.empty? if affinity_group(name) body = Serialization.resource_to_xml(label, ) request_path = "/affinitygroups/#{name}" request = ManagementHttpRequest.new(:put, request_path, body) request.call Loggerx.info "Affinity Group #{name} is updated." end end |
#validate_configuration ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/azure/base_management/base_management_service.rb', line 61 def validate_configuration subs_id = Azure.config.subscription_id = 'Subscription ID not valid.' raise if subs_id.nil? || subs_id.empty? m_ep = Azure.config.management_endpoint = 'Management endpoint not valid.' raise if m_ep.nil? || m_ep.empty? m_cert = Azure.config.management_certificate = "Could not read from file '#{m_cert}'." raise unless test('r', m_cert) m_cert = Azure.config.management_certificate = 'Management certificate expects a .pem or .pfx file.' raise unless m_cert =~ /(pem|pfx)$/ end |