def update_attrs(node, attrs, merge = false)
      return false unless attrs
      # keep the current tags
      attrs['tags'] = node.normal.tags || []
      original = Marshal.load(Marshal.dump(node.normal))
      node.normal = if merge
                      Chef::Mixin::DeepMerge.merge(node.normal, attrs)
                    else
                      attrs
                    end
      original != node.normal
    end
def update_attrs(node, attrs, merge = false)
      return false unless attrs
      # keep the current tags
      attrs['tags'] = node.normal.tags || []
      original = Marshal.load(Marshal.dump(node.normal))
      node.normal = if merge
                      Chef::Mixin::DeepMerge.merge(node.normal, attrs)
                    else
                      attrs
                    end
      original != node.normal
    end
Update methods all return true if an actual update is made