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 |
# File 'lib/azure/base_management/base_management_service.rb', line 32 def initialize validate_configuration cert_file = File.read(Azure.config.management_certificate) begin if Azure.config.management_certificate =~ /(pem)$/ certificate_key = OpenSSL::X509::Certificate.new(cert_file) private_key = OpenSSL::PKey::RSA.new(cert_file) else # Parse pfx content cert_content = OpenSSL::PKCS12.new(Base64.decode64(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
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/azure/base_management/base_management_service.rb', line 116 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
177 178 179 180 181 182 183 184 |
# File 'lib/azure/base_management/base_management_service.rb', line 177 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
196 197 198 199 200 201 202 203 |
# File 'lib/azure/base_management/base_management_service.rb', line 196 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
90 91 92 93 94 95 |
# File 'lib/azure/base_management/base_management_service.rb', line 90 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
78 79 80 81 82 |
# File 'lib/azure/base_management/base_management_service.rb', line 78 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
157 158 159 160 161 162 163 164 165 166 |
# File 'lib/azure/base_management/base_management_service.rb', line 157 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
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/azure/base_management/base_management_service.rb', line 57 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 |