    # File lib/chef/node/attribute.rb, line 186
          def fetch(key, default_value=nil, &block)
            if get_keys.include? key
              determine_value(
                get_value(automatic, key),
                get_value(override, key),
                get_value(normal, key),
                get_value(default, key)
              )
            elsif default_value
              default_value
            elsif block_given?
              block.call(key)
            else
              raise IndexError, "Key #{key} does not exist"
            end
          end