Exception: Vagrant::Errors::VagrantError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/vagrant/errors.rb

Overview

Main superclass of any errors in Vagrant. This provides some convenience methods for setting the status code and error key. The status code is used by the vagrant executable as the error code, and the error key is used as a default message from I18n.

Direct Known Subclasses

ActiveMachineWithDifferentProvider, BaseVMNotFound, BoxAlreadyExists, BoxDownloadUnknownType, BoxNotFound, BoxNotSpecified, BoxProviderDoesntMatch, BoxSpecifiedDoesntExist, BoxUnpackageFailure, BoxUpgradeRequired, BoxVerificationFailed, CLIInvalidOptions, CLIInvalidUsage, ConfigValidationFailed, DeprecationError, DestroyRequiresForce, DotfileIsDirectory, DotfileUpgradeJSONError, DownloaderFileDoesntExist, DownloaderHTTPConnectReset, DownloaderHTTPConnectTimeout, DownloaderHTTPSocketError, DownloaderHTTPStatusError, EnvironmentLockedError, EnvironmentNonExistentCWD, ForwardPortAutolistEmpty, ForwardPortCollision, ForwardPortCollisionResume, GemCommandInBundler, HomeDirectoryMigrationFailed, HomeDirectoryNotAccessible, LocalDataDirectoryNotAccessible, MachineGuestNotReady, MachineNotFound, MultiVMEnvironmentRequired, MultiVMTargetRequired, NFSHostRequired, NFSNoHostNetwork, NFSNotSupported, NetworkAdapterCollision, NetworkCollision, NetworkDHCPAlreadyAttached, NetworkNoAdapters, NetworkNotFound, NoEnvironmentError, PackageIncludeMissing, PackageOutputDirectory, PackageOutputExists, PackageRequiresDirectory, PersistDotfileExists, PluginLoadError, ProviderNotFound, SCPPermissionDenied, SCPUnavailable, SSHAuthenticationFailed, SSHConnectionRefused, SSHConnectionTimeout, SSHDisconnected, SSHHostDown, SSHKeyBadPermissions, SSHKeyTypeNotSupported, SSHNotReady, SSHPortNotDetected, SSHUnavailable, SSHUnavailableWindows, SharedFolderCreateFailed, UIExpectsTTY, UnimplementedProviderAction, VBoxManageError, VMBaseMacNotSpecified, VMCustomizationFailed, VMFailedToBoot, VMFailedToRun, VMGuestError, VMImportFailure, VMInaccessible, VMNoMatchError, VMNotCreatedError, VMNotFoundError, VMNotRunningError, VMPowerOffToPackage, VagrantInterrupt, VagrantfileExistsError, VagrantfileSyntaxError, VirtualBoxInstallIncomplete, VirtualBoxInvalidVersion, VirtualBoxKernelModuleNotLoaded, VirtualBoxNoRoomForHighLevelNetwork, VirtualBoxNotDetected, Plugin::V1::Guest::BaseError, Plugin::V2::Guest::BaseError

Constant Summary

@@used_codes =
[]

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (VagrantError) initialize(message = nil, *args)

Returns a new instance of VagrantError



66
67
68
69
70
71
72
# File 'lib/vagrant/errors.rb', line 66

def initialize(message=nil, *args)
  message = { :_key => message } if message && !message.is_a?(Hash)
  message = { :_key => error_key, :_namespace => error_namespace }.merge(message || {})
  message = translate_error(message)

  super
end

Class Method Details

+ (Object) error_key(key = nil, namespace = nil)



57
58
59
60
# File 'lib/vagrant/errors.rb', line 57

def self.error_key(key=nil, namespace=nil)
  define_method(:error_key) { key }
  error_namespace(namespace) if namespace
end

+ (Object) error_namespace(namespace)



62
63
64
# File 'lib/vagrant/errors.rb', line 62

def self.error_namespace(namespace)
  define_method(:error_namespace) { namespace }
end

+ (Object) status_code(code = nil)



48
49
50
51
52
53
54
55
# File 'lib/vagrant/errors.rb', line 48

def self.status_code(code = nil)
  if code
    raise "Status code already in use: #{code}"  if @@used_codes.include?(code)
    @@used_codes << code
  end

  define_method(:status_code) { code }
end

Instance Method Details

- (Object) error_key

The key for the error message. This should be set using the error_key method but can be overridden here if needed.



81
# File 'lib/vagrant/errors.rb', line 81

def error_key; nil; end

- (Object) error_namespace

The default error namespace which is used for the error key. This can be overridden here or by calling the "error_namespace" class method.



77
# File 'lib/vagrant/errors.rb', line 77

def error_namespace; "vagrant.errors"; end