def extract_filters(h)

      r = {}
      r[:consumed] = h['consumed']
      r[:point] = Flor.h_fetch_a(h, 'points', 'point', nil)
      r[:nid] = Flor.h_fetch_a(h, 'nids', 'nid', nil)
      r[:heap] = Flor.h_fetch_a(h, 'heaps', 'heap', nil)
      r[:heat] = Flor.h_fetch_a(h, 'heats', 'heat', nil)
      #opts[:name] = data['names']

      r
    end
def extract_filters(h)

      r = {}
      r[:consumed] = h['consumed']
      r[:point] = Flor.h_fetch_a(h, 'points', 'point', nil)
      r[:nid] = Flor.h_fetch_a(h, 'nids', 'nid', nil)
      r[:heap] = Flor.h_fetch_a(h, 'heaps', 'heap', nil)
      r[:heat] = Flor.h_fetch_a(h, 'heats', 'heat', nil)
      #opts[:name] = data['names']

      r
    end
Avoid the proc/cancel problem upstreams in ConfExecutor, by ignoring
 non-core procedures, keeping this around for now

    protected

    def correct_points(opts)

      pts = opts[:point]; return unless pts

      opts[:point] =
        Flor.is_tree?(pts) ?
        correct_point(pts) :
        pts.collect { |pt| correct_point(pt) }
    end

    def correct_point(point)

      return point[1]['proc'] if point.is_a?(Array) && point[0] == '_proc'
      point
    end