Sha256: 25305380fe6898f112389b8de2d386a1ec66b6e5bd046d430077aeb860319c91

Contents?: true

Size: 1.35 KB

Versions: 1

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true

require 'zt/conf'
require 'zt/importers/_base_importer'

module Zt
  module Importers
    class NetworkImporter < BaseImporter
      def import
        output = {}
        # normalise data
        normalised_networks = networks.map do |n|
          {
            network_id: n['id'],
            network_name: n['config']['name'],
            network_description: n['description'],
            network_total_members: n['totalMemberCount'],
            network_authorized_members: n['authorizedMemberCount'],
            network_pending_members:
              (n['totalMemberCount'] - n['authorizedMemberCount'])
          }
        end
        domains_conf = Zt::Conf.instance.conf.domains
        normalised_networks.each do |n|
          zone = if domains_conf.key? n[:network_id]
                   if n[:network_id].empty?
                     qualify(n[:network_id])
                   else
                     qualify(domains_conf[n[:network_id]])
                   end
                 else
                   qualify(n[:network_name])
                 end
          output[n[:network_id]] = {} unless output.key?(n[:network_id])
          output[n[:network_id]][:remote] = n
          output[n[:network_id]][:local] = {
            dns_zone: zone
          }
        end
        {
          networks: output
        }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zt-0.1.1 lib/zt/importers/network_importer.rb