components/ruby/facter/patches/facter-05-FACT-662.patch
branchs11u2-sru
changeset 3407 e5c7eb70e0b8
child 5860 afd31ba91ee9
equal deleted inserted replaced
3406:ccfa5fe625db 3407:e5c7eb70e0b8
       
     1 Patch for FACT-662 Extend ldom.rb to indicate whether ldom creation is supported
       
     2 Upstream bug: https://tickets.puppetlabs.com/browse/FACT-662
       
     3 --- facter-2.1.0/lib/facter/ldom.rb.orig	2014-08-20 10:20:46.279840866 -0600
       
     4 +++ facter-2.1.0/lib/facter/ldom.rb	2014-08-20 10:25:26.560542193 -0600
       
     5 @@ -46,4 +46,37 @@
       
     6        end
       
     7      end
       
     8    end
       
     9 +
       
    10 +
       
    11 +  #
       
    12 +  # Resolution: Provides the following logical_domain information.
       
    13 +  # current: The current environment is logical domain.
       
    14 +  # supported: The current environment is control domain which can have logical
       
    15 +  #      domain
       
    16 +  # unsupported: Logical domain is not supported on the environment
       
    17 +  #
       
    18 +  Facter.add("logical_domain") do
       
    19 +    setcode do
       
    20 +      virtinfo = %x{/sbin/virtinfo list -H -o class logical-domain 2>/dev/null}
       
    21 +      virtinfo = virtinfo.split("\n")
       
    22 +      virtinfo = virtinfo[0] # Doesn't need to check each logical-domain class
       
    23 +
       
    24 +      case virtinfo
       
    25 +      when "supported"
       
    26 +        virtinfo
       
    27 +      when "current"
       
    28 +        # Even control domain can have "logical_domain => current"
       
    29 +        # To verify, control-role property should be examined.
       
    30 +        ctrl_role = %x{virtinfo -c current get -Ho value control-role logical-domain 2> /dev/null}
       
    31 +        case ctrl_role.chomp!
       
    32 +        when "true"
       
    33 +          "supported"
       
    34 +        when "false"
       
    35 +          virtinfo
       
    36 +        end
       
    37 +      else
       
    38 +        "unsupported"
       
    39 +      end
       
    40 +    end
       
    41 +  end
       
    42  end