class PoiseLanguages::Scl::Provider

The default provider for `poise_languages_scl`.

@api private @since 1.0 @see Resource @provides poise_languages_scl

Public Instance Methods

action_install() click to toggle source

The `install` action for the `poise_languages_scl` resource.

@return [void]

# File lib/poise_languages/scl/resource.rb, line 70
def action_install
  notifying_block do
    install_scl_repo
    flush_yum_cache
    install_scl_package(:install)
    install_scl_devel_package(:install) if new_resource.dev_package
  end
end
action_uninstall() click to toggle source

The `uninstall` action for the `poise_languages_scl` resource.

@return [void]

# File lib/poise_languages/scl/resource.rb, line 94
def action_uninstall
  notifying_block do
    uninstall_scl_devel_package if new_resource.dev_package
    uninstall_scl_package
  end
end
action_upgrade() click to toggle source

The `upgrade` action for the `poise_languages_scl` resource.

@return [void]

# File lib/poise_languages/scl/resource.rb, line 82
def action_upgrade
  notifying_block do
    install_scl_repo
    flush_yum_cache
    install_scl_package(:upgrade)
    install_scl_devel_package(:upgrade) if new_resource.dev_package
  end
end

Private Instance Methods

flush_yum_cache() click to toggle source
# File lib/poise_languages/scl/resource.rb, line 124
def flush_yum_cache
  ruby_block 'flush_yum_cache' do
    block do
      # Equivalent to flush_cache after: true
      Chef::Provider::Package::Yum::YumCache.instance.reload
    end
  end
end
install_scl_devel_package(action) click to toggle source
# File lib/poise_languages/scl/resource.rb, line 141
def install_scl_devel_package(action)
  package new_resource.dev_package do
    action action
    retries 5
    version new_resource.version
  end
end
install_scl_package(action) click to toggle source
# File lib/poise_languages/scl/resource.rb, line 133
def install_scl_package(action)
  package new_resource.package_name do
    action action
    retries 5
    version new_resource.version
  end
end
install_scl_repo() click to toggle source
# File lib/poise_languages/scl/resource.rb, line 103
def install_scl_repo
  if node.platform?('redhat')
    # Set up the real RHSCL subscription.
    # NOTE: THIS IS NOT TESTED BECAUSE REDHAT DOESN'T OFFER ANY WAY TO DO
    # AUTOMATED TESTING. IF YOU USE REDHAT AND THIS BREAKS, PLEASE LET ME
    # KNOW BY FILING A GITHUB ISSUE AT http://github.com/poise/poise-languages/issues/new.
    repo_name = "rhel-server-rhscl-#{node['platform_version'][0]}-rpms"
    execute "subscription-manager repos --enable #{repo_name}" do
      not_if { shell_out!('subscription-manager repos --list-enabled').stdout.include?(repo_name) }
    end
  else
    package 'centos-release-scl-rh' do
      # Using upgrade here because changes very very rare and always
      # important when they happen. If this breaks your prod infra, I'm
      # sorry :-(
      action :upgrade
      retries 5
    end
  end
end
uninstall_scl_devel_package() click to toggle source
# File lib/poise_languages/scl/resource.rb, line 153
def uninstall_scl_devel_package
  install_scl_devel_package(:remove)
end
uninstall_scl_package() click to toggle source
# File lib/poise_languages/scl/resource.rb, line 149
def uninstall_scl_package
  install_scl_package(:remove)
end