diff options
author | Noah Kantrowitz <noah@coderanger.net> | 2017-03-14 12:11:47 -0700 |
---|---|---|
committer | Noah Kantrowitz <noah@coderanger.net> | 2017-03-14 12:11:47 -0700 |
commit | 264a07e15cd6ef83a2872cabcba2eced21d0f93d (patch) | |
tree | e2352e59d60c2a6ae63cd0d79256a6e7c3dcfd80 /lib | |
parent | 6b3401f9c4ca8b2ea3df997f1814f0427c196907 (diff) | |
download | chef-264a07e15cd6ef83a2872cabcba2eced21d0f93d.tar.gz |
No more easy_install resource.
Signed-off-by: Noah Kantrowitz <noah@coderanger.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/provider/package/easy_install.rb | 135 | ||||
-rw-r--r-- | lib/chef/providers.rb | 1 | ||||
-rw-r--r-- | lib/chef/resource/easy_install_package.rb | 32 | ||||
-rw-r--r-- | lib/chef/resources.rb | 1 |
4 files changed, 0 insertions, 169 deletions
diff --git a/lib/chef/provider/package/easy_install.rb b/lib/chef/provider/package/easy_install.rb deleted file mode 100644 index cc915e606c..0000000000 --- a/lib/chef/provider/package/easy_install.rb +++ /dev/null @@ -1,135 +0,0 @@ -# -# Author:: Joe Williams (<joe@joetify.com>) -# Copyright:: Copyright 2009-2016, Joe Williams -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/provider/package" -require "chef/mixin/command" -require "chef/resource/package" - -class Chef - class Provider - class Package - class EasyInstall < Chef::Provider::Package - - provides :easy_install_package - - def install_check(name) - check = false - - begin - # first check to see if we can import it - output = shell_out_compact_timeout!(python_binary_path, "-c", "import #{name}", returns: [0, 1]).stderr - if output.include? "ImportError" - # then check to see if its on the path - output = shell_out_compact_timeout!(python_binary_path, "-c", "import sys; print sys.path", returns: [0, 1]).stdout - if output.downcase.include? name.downcase.to_s - check = true - end - else - check = true - end - rescue - # it's probably not installed - end - - check - end - - def easy_install_binary_path - path = new_resource.easy_install_binary - path ? path : "easy_install" - end - - def python_binary_path - path = new_resource.python_binary - path ? path : "python" - end - - def module_name - m = new_resource.module_name - m ? m : new_resource.name - end - - def load_current_resource - @current_resource = Chef::Resource::Package.new(new_resource.name) - current_resource.package_name(new_resource.package_name) - - # get the currently installed version if installed - package_version = nil - if install_check(module_name) - begin - output = shell_out_compact_timeout!("#{python_binary_path} -c \"import #{module_name}; print #{module_name}.__version__\"").stdout - package_version = output.strip - rescue - output = shell_out_compact_timeout!("#{python_binary_path} -c \"import sys; print sys.path\"", returns: [0, 1]).stdout - - output_array = output.gsub(/[\[\]]/, "").split(/\s*,\s*/) - package_path = "" - - output_array.each do |entry| - if entry.downcase.include?(new_resource.package_name) - package_path = entry - end - end - - package_path[/\S\S(.*)\/(.*)-(.*)-py(.*).egg\S/] - package_version = $3 - end - end - - if package_version == new_resource.version - Chef::Log.debug("#{new_resource} at version #{new_resource.version}") - current_resource.version(new_resource.version) - else - Chef::Log.debug("#{new_resource} at version #{package_version}") - current_resource.version(package_version) - end - - current_resource - end - - def candidate_version - return @candidate_version if @candidate_version - - # do a dry run to get the latest version - result = shell_out_compact_timeout!("#{easy_install_binary_path} -n #{new_resource.package_name}", returns: [0, 1]) - @candidate_version = result.stdout[/(.*)Best match: (.*) (.*)$/, 3] - @candidate_version - end - - def install_package(name, version) - Chef.deprecated(:easy_install, "The easy_install package provider is deprecated and will be removed in Chef 13.") - shell_out_compact_timeout!(easy_install_binary_path, options, "#{name}==#{version}") - end - - def upgrade_package(name, version) - install_package(name, version) - end - - def remove_package(name, version) - Chef.deprecated(:easy_install, "The easy_install package provider is deprecated and will be removed in Chef 13.") - shell_out_compact_timeout!(easy_install_binary_path, options, "-m", name) - end - - def purge_package(name, version) - remove_package(name, version) - end - - end - end - end -end diff --git a/lib/chef/providers.rb b/lib/chef/providers.rb index 35722840e6..0f19f56a8f 100644 --- a/lib/chef/providers.rb +++ b/lib/chef/providers.rb @@ -66,7 +66,6 @@ require "chef/provider/package/apt" require "chef/provider/package/chocolatey" require "chef/provider/package/dpkg" require "chef/provider/package/dnf" -require "chef/provider/package/easy_install" require "chef/provider/package/freebsd/port" require "chef/provider/package/freebsd/pkg" require "chef/provider/package/freebsd/pkgng" diff --git a/lib/chef/resource/easy_install_package.rb b/lib/chef/resource/easy_install_package.rb deleted file mode 100644 index dc5073a6f7..0000000000 --- a/lib/chef/resource/easy_install_package.rb +++ /dev/null @@ -1,32 +0,0 @@ -# -# Author:: Joe Williams (<joe@joetify.com>) -# Copyright:: Copyright 2009-2016, Joe Williams -# License:: Apache License, Version 2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -require "chef/resource/package" - -class Chef - class Resource - class EasyInstallPackage < Chef::Resource::Package - resource_name :easy_install_package - - property :easy_install_binary, String, desired_state: false - property :python_binary, String, desired_state: false - property :module_name, String, desired_state: false - - end - end -end diff --git a/lib/chef/resources.rb b/lib/chef/resources.rb index ab89ce66e0..a254fa601f 100644 --- a/lib/chef/resources.rb +++ b/lib/chef/resources.rb @@ -34,7 +34,6 @@ require "chef/resource/dpkg_package" require "chef/resource/dnf_package" require "chef/resource/dsc_script" require "chef/resource/dsc_resource" -require "chef/resource/easy_install_package" require "chef/resource/env" require "chef/resource/erl_call" require "chef/resource/execute" |