Sha256: 357a922a0ed53dcfe2969fd4c1379e53a8bae7addbade9cc057bd6a3bd042532

Contents?: true

Size: 1.18 KB

Versions: 3

Compression:

Stored size: 1.18 KB

Contents

require 'net/http'
class NSXDfw < Oxidized::Model
  using Refinements

  cmd "/policy/api/v1/infra/domains/" do |cfg|
    domains = JSON.parse(cfg.encode('UTF-8', { invalid: :replace, undef: :replace, replace: '?' }))["results"]
    domain_config = {}
    domains.each do |domain|
      domain_config[domain['id']] = {}
      policies_data = cmd "/policy/api/v1/infra/domains/#{domain['id']}/security-policies/"
      policies = JSON.parse(policies_data.encode('UTF-8', { invalid: :replace, undef: :replace, replace: '?' }))["results"]
      policies_config = {}
      policies.each do |policy|
        rules_data = cmd "/policy/api/v1/infra/domains/#{domain['id']}/security-policies/#{policy['id']}/rules"
        rules = JSON.parse(rules_data.encode('UTF-8', { invalid: :replace, undef: :replace, replace: '?' }))["results"]
        policies_config[policy['id']] = rules
      end
      domain_config[domain['id']] = policies_config
    end
    JSON.pretty_generate(domain_config)
  end

  cfg :http do
    @username = @node.auth[:username]
    @password = @node.auth[:password]
    @headers['Content-Type'] = 'application/json'
    @headers['Accept'] = 'application/json'
    @secure = true
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
oxidized-0.32.1 lib/oxidized/model/nsxdfw.rb
oxidized-0.32.0 lib/oxidized/model/nsxdfw.rb
oxidized-0.31.0 lib/oxidized/model/nsxdfw.rb