def metadata_writers(kind)
      return @metadata_writers[kind] if @metadata_writers && @metadata_writers[kind]
      @metadata_writers ||= {}
      @metadata_writers[kind] ||= []
  
      options = @options.dup
      options[:kind] = kind
      if kind == :user_metadata
        options[:formatted_path_prefix] = "RS_"
        options[:output_dir_path] ||= RightScale::AgentConfig.cloud_state_dir
        options[:file_name_prefix] = "user-data"
        options[:generation_command] = nil
      elsif kind == :cloud_metadata
        options[:formatted_path_prefix] = "#{abbreviation.upcase}_"
        options[:output_dir_path] ||= RightScale::AgentConfig.cloud_state_dir
        options[:file_name_prefix] = "meta-data" 
        options[:generation_command] = cloud_metadata_generation_command if generates_metadata_cache?
      end

      begin
        writers_dir_path = File.join(File.dirname(__FILE__), 'metadata_writers')

        # dynamically register all clouds using the script name as cloud name.
        pattern = File.join(writers_dir_path, '*.rb')
        Dir[pattern].each do |writer_script_path|
          writer_name = File.basename(writer_script_path, '.rb')
          require writer_script_path
          writer_class_name = writer_name.split(/[_ ]/).map {|w| w.capitalize}.join
          writer_class = eval("RightScale::MetadataWriters::#{writer_class_name}")
          @metadata_writers[kind] << writer_class.new(options)
        end
      end
      @metadata_writers[kind]
    end
def metadata_writers(kind)
      return @metadata_writers[kind] if @metadata_writers && @metadata_writers[kind]
      @metadata_writers ||= {}
      @metadata_writers[kind] ||= []
  
      options = @options.dup
      options[:kind] = kind
      if kind == :user_metadata
        options[:formatted_path_prefix] = "RS_"
        options[:output_dir_path] ||= RightScale::AgentConfig.cloud_state_dir
        options[:file_name_prefix] = "user-data"
        options[:generation_command] = nil
      elsif kind == :cloud_metadata
        options[:formatted_path_prefix] = "#{abbreviation.upcase}_"
        options[:output_dir_path] ||= RightScale::AgentConfig.cloud_state_dir
        options[:file_name_prefix] = "meta-data" 
        options[:generation_command] = cloud_metadata_generation_command if generates_metadata_cache?
      end

      begin
        writers_dir_path = File.join(File.dirname(__FILE__), 'metadata_writers')

        # dynamically register all clouds using the script name as cloud name.
        pattern = File.join(writers_dir_path, '*.rb')
        Dir[pattern].each do |writer_script_path|
          writer_name = File.basename(writer_script_path, '.rb')
          require writer_script_path
          writer_class_name = writer_name.split(/[_ ]/).map {|w| w.capitalize}.join
          writer_class = eval("RightScale::MetadataWriters::#{writer_class_name}")
          @metadata_writers[kind] << writer_class.new(options)
        end
      end
      @metadata_writers[kind]
    end
Gets the option given by path, if it exists.

 === Parameters
 kind(Symbol):: :user_metadata or :cloud_metadata
 === Return
 result(Array(MetadataWriter)):: responds to write