Sha256: d1f4ce3134065e8b3587f6bb4cb16ae5daff4919a4e349e7b33aec33906e8a8e

Contents?: true

Size: 1.4 KB

Versions: 1

Compression:

Stored size: 1.4 KB

Contents

module Helpers
  module Apache
    require 'chef/mixin/shell_out'
    include Chef::Mixin::ShellOut
    include MiniTest::Chef::Assertions
    include MiniTest::Chef::Context
    include MiniTest::Chef::Resources

    def apache_config_parses?
      acp = shell_out("#{node['apache']['binary']} -t")
      acp.exitstatus == 0
    end

    def apache_configured_ports
      port_config = File.read("#{node['apache']['dir']}/ports.conf")
      port_config.scan(/^Listen ([0-9]+)/).flatten.map{|p| p.to_i}
    end

    def apache_enabled_modules
      apache_modules = shell_out("#{node['apache']['binary']} -M")
      apache_modules.send(
        if node['platform_family'] == 'rhel' && node['platform_version'].to_f < 6.0
          :stderr
        else
          :stdout
        end
        ).split.select! {|i| i =~ /_module$/}
    end

    def apache_service
      service(case node['platform']
              when "debian","ubuntu" then "apache2"
              when "freebsd" then "apache22"
              else "httpd"
              end)
    end

    def config
      file(case node['platform']
           when "debian","ubuntu" then "#{node['apache']['dir']}/apache2.conf"
           when "freebsd" then "#{node['apache']['dir']}/httpd.conf"
           else "#{node['apache']['dir']}/conf/httpd.conf"
           end)
    end

    def ran_recipe?(recipe)
      node.run_state[:seen_recipes].keys.include?(recipe)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vagrant-managed-servers-0.1.0 cookbooks/apache2/files/default/tests/minitest/support/helpers.rb