Class: Azure::CloudServiceManagement::CloudServiceManagementService

Inherits:
BaseManagement::BaseManagementService show all
Includes:
Azure::Core::Utility
Defined in:
lib/azure/cloud_service_management/cloud_service_management_service.rb

Instance Method Summary collapse

Methods included from Azure::Core::Utility

#enable_winrm?, #export_der, #export_fingerprint, #get_certificate, #initialize_external_logger, #locate_file, #random_string, #xml_content

Methods inherited from BaseManagement::BaseManagementService

#create_affinity_group, #delete_affinity_group, #get_affinity_group, #list_affinity_groups, #list_locations, #list_role_sizes, #update_affinity_group, #validate_configuration

Constructor Details

#initializeCloudServiceManagementService

Returns a new instance of CloudServiceManagementService.



22
23
24
# File 'lib/azure/cloud_service_management/cloud_service_management_service.rb', line 22

def initialize
  super()
end

Instance Method Details

#create_cloud_service(name, options = {}) ⇒ Object

Public: Creates a new cloud service in Microsoft Azure.

Attributes

  • name - String. The name of the cloud service.

  • options - Hash. Optional parameters.

Options

Accepted key/value pairs in options parameter are:

  • :label -String. The label for this cloud service.

  • :description - String. A description for the hosted service. (optional)

  • :location - String. The regional data center location where the

cloud service will be created. Required if affinity group not specified (optional)

  • +:affinity_group_name - String. Name of the affinity group with

which to assocate the cloud service. Required if location not specified (optional)

  • :extended_properties - Hash. Key/Value pairs of extended

properties to add to the cloud service. The key is used as the property name and the value as its value. (optional)

See msdn.microsoft.com/en-us/library/azure/gg441304.aspx

Returns None



51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/azure/cloud_service_management/cloud_service_management_service.rb', line 51

def create_cloud_service(name, options = {})
  Azure::Loggerx.error_with_exit 'Cloud service name is not valid ' unless name
  if get_cloud_service(name)
    Azure::Loggerx.warn "Cloud service #{name} already exists. Skipped..."
  else
    Azure::Loggerx.info "Creating cloud service #{name}."
    request_path = '/services/hostedservices'
    body = Serialization.cloud_services_to_xml(name, options)
    request = BaseManagement::ManagementHttpRequest.new(:post, request_path, body)
    request.call
  end
end

#delete_cloud_service(cloud_service_name) ⇒ Object

Public: Deletes the specified cloud service of given subscription id from Microsoft Azure.

Attributes

  • name - String. Cloud service name.

Returns: None



101
102
103
104
105
106
# File 'lib/azure/cloud_service_management/cloud_service_management_service.rb', line 101

def delete_cloud_service(cloud_service_name)
  request_path= "/services/hostedservices/#{cloud_service_name}"
  request = BaseManagement::ManagementHttpRequest.new(:delete, request_path)
  Azure::Loggerx.info "Deleting cloud service #{cloud_service_name}. \n"
  request.call
end

#delete_cloud_service_deployment(cloud_service_name, slot = 'production') ⇒ Object

Public: Deletes the specified deployment.

Attributes

  • cloud_service_name - String. Cloud service name.

  • slot - String. ‘production’ or ‘staging’. Optional parameters.

    Default if not specified is 'production'
    

See msdn.microsoft.com/en-us/library/azure/ee460815.aspx

Returns NONE



119
120
121
122
123
124
125
# File 'lib/azure/cloud_service_management/cloud_service_management_service.rb', line 119

def delete_cloud_service_deployment(cloud_service_name, slot='production')
  slot = 'production' unless slot
  request_path= "/services/hostedservices/#{cloud_service_name}/deploymentslots/#{slot}"
  request = BaseManagement::ManagementHttpRequest.new(:delete, request_path)
  Azure::Loggerx.info "Deleting deployment of cloud service \"#{cloud_service_name}\" ..."
  request.call
end

#get_cloud_service(name) ⇒ Object

Public: Checks to see if the specified hosted service is available

Attributes

  • name - String. Cloud service name.

Returns: A boolean value indicating whether the cloud service exists. If true, the cloud service is available. If false, the cloud service does not exist.



83
84
85
# File 'lib/azure/cloud_service_management/cloud_service_management_service.rb', line 83

def get_cloud_service(name)
  list_cloud_services.select { |x| x.name.casecmp(name) == 0 }.first
end

#get_cloud_service_properties(name) ⇒ Object



87
88
89
90
91
92
# File 'lib/azure/cloud_service_management/cloud_service_management_service.rb', line 87

def get_cloud_service_properties(name)
  request_path = "/services/hostedservices/#{name}?embed-detail=true"
  request = BaseManagement::ManagementHttpRequest.new(:get, request_path)
  response = request.call
  Serialization.cloud_services_from_xml(response).first
end

#list_cloud_servicesObject

Public: Gets a list of hosted services available under the current subscription.

Returns an array of Azure::CloudServiceManagement::CloudService objects



67
68
69
70
71
72
# File 'lib/azure/cloud_service_management/cloud_service_management_service.rb', line 67

def list_cloud_services
  request_path = '/services/hostedservices'
  request = BaseManagement::ManagementHttpRequest.new(:get, request_path, nil)
  response = request.call
  Serialization.cloud_services_from_xml(response)
end

#upload_certificate(cloud_service_name, ssh) ⇒ Object



127
128
129
130
131
132
133
134
# File 'lib/azure/cloud_service_management/cloud_service_management_service.rb', line 127

def upload_certificate(cloud_service_name, ssh)
  data = export_der(ssh[:cert], ssh[:key])
  request_path= "/services/hostedservices/#{cloud_service_name}/certificates"
  body = Serialization.add_certificate_to_xml(data)
  Azure::Loggerx.info "Uploading certificate to cloud service #{cloud_service_name}..."
  request = BaseManagement::ManagementHttpRequest.new(:post, request_path, body)
  request.call
end