def config_get(feature, property, *args)
      ref = @cmd_ref.lookup(feature, property)

      # If we have a default value but no getter, just return the default
      return ref.default_value if ref.default_value? && !ref.getter?

      get_args, ref = massage_structured(ref.getter(*args).clone, ref)
      data = get(command:     get_args[:command],
                 data_format: get_args[:data_format],
                 context:     get_args[:context],
                 value:       get_args[:value])
      massage(data, ref)
    end
def config_get(feature, property, *args)
      ref = @cmd_ref.lookup(feature, property)

      # If we have a default value but no getter, just return the default
      return ref.default_value if ref.default_value? && !ref.getter?

      get_args, ref = massage_structured(ref.getter(*args).clone, ref)
      data = get(command:     get_args[:command],
                 data_format: get_args[:data_format],
                 context:     get_args[:context],
                 value:       get_args[:value])
      massage(data, ref)
    end
Convenience wrapper for get()
 Uses CommandReference to look up the given show command and key
 of interest, executes that command, and returns the value corresponding
 to that key.

 @raise [IndexError] if the given (feature, name) pair is not in the
        CommandReference data or if the data doesn't have values defined
        for the 'get_command' and (optional) 'get_value' fields.
 @raise [Cisco::UnsupportedError] if the (feature, name) pair is flagged
        in the YAML as unsupported on this device.
 @raise [Cisco::RequestFailed] if the command is rejected by the device.

 @param feature [String]
 @param name [String]
 @return [String, Hash, Array]
 @example config_get("show_version", "system_image")
 @example config_get("ospf", "router_id",
                     {name: "green", vrf: "one"})