Sha256: f007b79e11f3517c79e155f0caab5db2e73640dca650c647a87c152f15827e61

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

# rubocop:disable MethodLength
# rubocop:disable AbcSize
module Fog
  module Compute
    class AzureRM
      # This class is giving implementation of create/save and
      # delete/destroy for Availability Set.
      class AvailabilitySet < Fog::Model
        attribute :id
        identity  :name
        attribute :type
        attribute :location
        attribute :resource_group
        attribute :platform_update_domain_count
        attribute :platform_fault_domain_count

        def self.parse(as)
          hash = {}
          hash['id'] = as['id']
          hash['name'] = as['name']
          hash['type'] = as['type']
          hash['location'] = as['location']
          hash['resource_group'] = as['id'].split('/')[4]
          hash['platform_update_domain_count'] = as['properties']['platformUpdateDomainCount']
          hash['platform_fault_domain_count'] = as['properties']['platformFaultDomainCount']
          hash
        end

        def save
          requires :name
          requires :location
          requires :resource_group
          # need to create the availability set
          as = service.create_availability_set(resource_group, name, location)
          hash = Fog::Compute::AzureRM::AvailabilitySet.parse(as)
          merge_attributes(hash)
        end

        def destroy
          service.delete_availability_set(resource_group, name)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fog-azure-rm-0.0.2 lib/fog/azurerm/models/compute/availability_set.rb