Sha256: 720515a544f12b57b6e5829f9e72dfcc047eda2db525a8ad3695483ebbe16b17

Contents?: true

Size: 788 Bytes

Versions: 1

Compression:

Stored size: 788 Bytes

Contents

module KnifeDraw
  class DrawRoles < Chef::Knife
    include VerboseOutput

    deps do
      require 'graphviz'
    end

    banner "knife draw roles [FILENAME]"

    def run
      filename = name_args.size > 0 ? name_args.first : "output.png"
      graph = ChefGraph.new
      source = ChefServerSource.new
      source.roles.each do |role_name, role|
        verbose_out "name: #{role_name}"
        role_box = graph.draw_role(role_name)
        source.runlist_for_role(role_name).each do |run_list|
          runlist_box = graph.draw_runlist run_list.to_s
          graph.connect(role_box, runlist_box)
          verbose_out "\t\trunlist: #{run_list}"
        end
      end
      graph.draw! filename
    end
  end

  class RoleDraw < DrawRoles
    banner "knife role draw"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
knife-draw-1.0.0 lib/knife_draw/draw_roles.rb