Sorry, I hadn't noticed that you have a boolean property. The vsphere API will return true or false, but puppet properties can't deal with (real) false, so we have to use :true or :false. This means you need to 'munge' the API's values, or insync? won't work.

You need something like this:

    define_method(prop) do
      case value = host.config.network.dnsConfig[prop_sym]
      when TrueClass  then :true
      when FalseClass then :false
      else value
      end 
    end