~ubuntu-branches/ubuntu/quantal/puppet/quantal

« back to all changes in this revision

Viewing changes to lib/puppet/module_tool/errors/upgrader.rb

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-07-14 01:56:30 UTC
  • mfrom: (1.1.29) (3.1.43 sid)
  • Revision ID: package-import@ubuntu.com-20120714015630-ntj41rkvkq4zph4y
Tags: 2.7.18-1ubuntu1
* Resynchronise with Debian. (LP: #1023931) Remaining changes:
  - debian/puppetmaster-passenger.postinst: Make sure we error if puppet
    config print doesn't work
  - debian/puppetmaster-passenger.postinst: Ensure upgrades from
    <= 2.7.11-1 fixup passenger apache configuration.
* Dropped upstreamed patches:
  - debian/patches/CVE-2012-1906_CVE-2012-1986_to_CVE-2012-1989.patch
  - debian/patches/puppet-12844
  - debian/patches/2.7.17-Puppet-July-2012-CVE-fixes.patch
* Drop Build-Depends on ruby-rspec (in universe):
  - debian/control: remove ruby-rspec from Build-Depends
  - debian/patches/no-rspec.patch: make Rakefile work anyway if rspec
    isn't installed so we can use it in debian/rules.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
module Puppet::ModuleTool::Errors
 
2
 
 
3
  class UpgradeError < ModuleToolError
 
4
    def initialize(msg)
 
5
      @action = :upgrade
 
6
      super
 
7
    end
 
8
  end
 
9
 
 
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"
 
18
    end
 
19
 
 
20
    def multiline
 
21
      message = []
 
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"
 
25
      else
 
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])})"
 
29
        end
 
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])})"
 
32
        end
 
33
      end
 
34
      message << "    Use `puppet module install --force` to re-install this module"
 
35
      message.join("\n")
 
36
    end
 
37
  end
 
38
 
 
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}"
 
46
    end
 
47
 
 
48
    def multiline
 
49
      message = []
 
50
      message << "Could not upgrade module '#{@module_name}' (#{vstring})"
 
51
      message << "  Module '#{@module_name}' does not exist on #{@repository}"
 
52
      message.join("\n")
 
53
    end
 
54
  end
 
55
 
 
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}"
 
63
    end
 
64
 
 
65
    def multiline
 
66
      message = []
 
67
      message << "Could not upgrade module '#{@module_name}' (#{vstring})"
 
68
      message << "  No version matching '#{@requested_version || ">= 0.0.0"}' exists on #{@repository}"
 
69
      message.join("\n")
 
70
    end
 
71
  end
 
72
end