1
module Puppet::ModuleTool::Errors
3
class UpgradeError < ModuleToolError
10
class VersionAlreadyInstalledError < UpgradeError
11
def initialize(options)
12
@module_name = options[:module_name]
13
@requested_version = options[:requested_version]
14
@installed_version = options[:installed_version]
15
@dependency_name = options[:dependency_name]
16
@conditions = options[:conditions]
17
super "Could not upgrade '#{@module_name}'; module is not installed"
22
message << "Could not upgrade module '#{@module_name}' (#{vstring})"
23
if @conditions.length == 1 && @conditions.last[:version].nil?
24
message << " The installed version is already the latest version"
26
message << " The installed version is already the best fit for the current dependencies"
27
message += @conditions.select { |c| c[:module] == :you && c[:version] }.map do |c|
28
" You specified '#{@module_name}' (#{v(c[:version])})"
30
message += @conditions.select { |c| c[:module] != :you }.sort_by { |c| c[:module] }.map do |c|
31
" '#{c[:module]}' (#{v(c[:version])}) requires '#{@module_name}' (#{v(c[:dependency])})"
34
message << " Use `puppet module install --force` to re-install this module"
39
class UnknownModuleError < UpgradeError
40
def initialize(options)
41
@module_name = options[:module_name]
42
@installed_version = options[:installed_version]
43
@requested_version = options[:requested_version]
44
@repository = options[:repository]
45
super "Could not upgrade '#{@module_name}'; module is unknown to #{@repository}"
50
message << "Could not upgrade module '#{@module_name}' (#{vstring})"
51
message << " Module '#{@module_name}' does not exist on #{@repository}"
56
class UnknownVersionError < UpgradeError
57
def initialize(options)
58
@module_name = options[:module_name]
59
@installed_version = options[:installed_version]
60
@requested_version = options[:requested_version]
61
@repository = options[:repository]
62
super "Could not upgrade '#{@module_name}' (#{vstring}); module has no versions #{ @requested_version && "matching #{v(@requested_version)} "}published on #{@repository}"
67
message << "Could not upgrade module '#{@module_name}' (#{vstring})"
68
message << " No version matching '#{@requested_version || ">= 0.0.0"}' exists on #{@repository}"