summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNoah Kantrowitz <noah@coderanger.net>2017-03-14 12:11:47 -0700
committerNoah Kantrowitz <noah@coderanger.net>2017-03-14 12:11:47 -0700
commit264a07e15cd6ef83a2872cabcba2eced21d0f93d (patch)
treee2352e59d60c2a6ae63cd0d79256a6e7c3dcfd80 /lib
parent6b3401f9c4ca8b2ea3df997f1814f0427c196907 (diff)
downloadchef-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.rb135
-rw-r--r--lib/chef/providers.rb1
-rw-r--r--lib/chef/resource/easy_install_package.rb32
-rw-r--r--lib/chef/resources.rb1
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"