class Azure::Armrest::Insights::DiagnosticService

Base class for managing diagnostics

Public Class Methods

new(armrest_configuration, options = {}) click to toggle source
Calls superclass method Azure::Armrest::ArmrestService::new
# File lib/azure/armrest/insights/diagnostic_service.rb, line 6
def initialize(armrest_configuration, options = {})
  super(armrest_configuration, 'diagnosticSettings', 'Microsoft.Insights', options)
end

Public Instance Methods

create(resource_id, options = {}) click to toggle source

Create or update a diagnostic setting for the given resource_id.

Example:

# Update network security group log settings ids = Azure::Armrest::Insights::DiagnosticService.new(config) sas = Azure::Armrest::StorageAccountService.new(config) nsg = Azure::Armrest::Network::NetworkSecurityGroupService.new(config)

acct = sas.get(your_storage, your_resource_group) sgrp = nsg.get(your_network_security_group, your_resource_group)

options = {

:properties => {
  :storageAccountId => acct.id,
  :logs => [
    {
      :category => "NetworkSecurityGroupEvent",
      :enabled  => true,
      :retentionPolicy => {
        :enabled => true,
        :days    => 3
      }
    },
    {
      :category => "NetworkSecurityGroupRuleCounter",
      :enabled  => true,
      :retentionPolicy => {
        :enabled => true,
        :days    => 3
      }
    }
  ]
}

}

ids.set(sgrp.id, options)

# File lib/azure/armrest/insights/diagnostic_service.rb, line 65
def create(resource_id, options = {})
  url = build_url(resource_id)
  body = options.merge(:id => resource_id).to_json
  response = rest_put(url, body)

  headers = Azure::Armrest::ResponseHeaders.new(response.headers)
  headers.response_code = response.code

  headers
end
Also aliased as: update, set
get(resource_id) click to toggle source

Get diagnostic information for the given resource_id. Note that this information is only available for a limited subset of resources.

Example:

ids = Azure::Armrest::Insights::DiagnosticService.new(config) nsg = Azure::Armrest::Network::NetworkSecurityGroupService.new(config)

sgrp = nsg.get(your_security_group, your_resource_group) p ids.get(sgrp.id)

# File lib/azure/armrest/insights/diagnostic_service.rb, line 21
def get(resource_id)
  url = build_url(resource_id)
  response = rest_get(url)
  Diagnostic.new(JSON.parse(response))
end
set(resource_id, options = {})
Alias for: create
update(resource_id, options = {})
Alias for: create

Private Instance Methods

build_url(resource_id) click to toggle source
# File lib/azure/armrest/insights/diagnostic_service.rb, line 81
def build_url(resource_id)
  url = File.join(
    configuration.environment.resource_url,
    resource_id,
    'providers',
    provider,
    'diagnosticSettings',
    'service'
  )

  url + "?api-version=#{api_version}"
end