Sha256: c856e7396d2ff28bffa2e1c12d4fa7147cf52aee630e6cc0eb02a5f2c39146d9

Contents?: true

Size: 1.57 KB

Versions: 1

Compression:

Stored size: 1.57 KB

Contents

module Fog
  module Network
    class AzureRM
      class VirtualNetwork < Fog::Model
        identity :name
        attribute :id
        attribute :location
        attribute :resource_group
        attribute :dns_list
        attribute :subnet_address_list
        attribute :network_address_list

        def self.parse(vnet)
          hash = {}
          hash['id'] = vnet['id']
          hash['name'] = vnet['name']
          hash['resource_group'] = vnet['id'].split('/')[4]
          hash['location'] = vnet['location']
          hash['dns_list'] = vnet['properties']['dhcpOptions']['dnsServers'].join(',') unless vnet['properties']['dhcpOptions'].nil?
          hash['network_address_list'] = vnet['properties']['addressSpace']['addressPrefixes'].join(',') unless vnet['properties']['addressSpace']['addressPrefixes'].nil?
          subnet_address_list = []
          vnet['properties']['subnets'].each do |subnet|
            subnet_address_list << subnet['properties']['addressPrefix']
          end
          hash['subnet_address_list'] = subnet_address_list.join(',')
          hash
        end

        def save
          requires :name
          requires :location
          requires :resource_group
          vnet = service.create_virtual_network(resource_group, name, location, dns_list, subnet_address_list, network_address_list)
          merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(vnet))
        end

        def destroy
          service.delete_virtual_network(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/network/virtual_network.rb