Commit Graph

2842 Commits

Author SHA1 Message Date
Mitchell Hashimoto 8fc5591b8e Machine queries state from the provider 2012-07-16 10:57:17 -07:00
Mitchell Hashimoto 353610021c Vagrant::Machine
This is the class that will represent a machine that is managed by
Vagrant. The class has a number of attributes associated with it and is
meant to be a single API for managing the machines.
2012-07-16 10:28:42 -07:00
Mitchell Hashimoto 141dccd4e7 Modify warning message to be more clear [GH-1027] 2012-07-16 09:49:04 -07:00
Mitchell Hashimoto 3519bf0372 Add the "provider" API to the V1 plugin. 2012-07-15 11:17:58 -07:00
Mitchell Hashimoto 436da57cc4 Add the #action API to the provider plugin 2012-07-14 17:04:06 -07:00
Mitchell Hashimoto 3b82f2efc4 Create the basic provider plugin interface.
Non-functional at this point.
2012-07-14 16:57:54 -07:00
Mitchell Hashimoto 45c4248d09 Merge pull request #1023 from bobmaerten/change-host-name
change_host_name should change mailname too
2012-07-14 16:30:01 -07:00
Bob Maerten 3dda019cac change_host_name should change mailname too
On Debian systems config.hostname directive should change /etc/mailname
in order to prevent problems with default mailer trying to contact
default vm's name.
2012-07-13 15:07:56 +02:00
Mitchell Hashimoto 244882bd75 Merge pull request #1019 from marklap/master
Update environment::load_plugins to fix broken modification of Gem.path on Windows
2012-07-12 12:41:19 -07:00
Mark LaPerriere 28e19d5449 Update load_plugins to be more Windows friendly. Uses File::PATH_SEPARATOR instead of hard-coded colon (':'). 2012-07-12 15:25:28 -03:00
Mitchell Hashimoto c634cbedcc Handle interrupts more gracefully on the warning message 2012-07-11 18:47:41 -07:00
Mitchell Hashimoto 690d380b77 Use the new BoxCollection API 2012-07-11 18:41:13 -07:00
Mitchell Hashimoto f20666e230 Automatically upgrade the boxes all over. 2012-07-11 18:36:23 -07:00
Mitchell Hashimoto bcd1304ef4 Remove unused middleware sequences related to repackaging 2012-07-11 18:36:23 -07:00
Mitchell Hashimoto 23dfc45df2 `box repackage` now uses new Box API 2012-07-11 18:36:22 -07:00
Mitchell Hashimoto cc076e5ee5 Box#repackage to repackage a box. 2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 798ffc93bd BoxCollection#add throws an UpgradeRequired exception if a V1 box
already exists
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 1d197d84c3 BoxCollection#add transparently upgrades V1 boxes to V2
This means that V1 boxes can be added to a V2 box collection without
issue.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 8026715619 Remove the box_remove builtin middleware sequence. 2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 6bb621026f `vagrant box add` uses the new API.
This assumes VirtualBox boxes for now, which is fine.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 5b18a6525d `vagrant box remove` uses new API 2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 623ecb3e3d Environment attempts to upgrade box on config load.
If a V1 box is encountered when Vagrant loads the configuration, then it
will be upgraded on the fly.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 7595f0078e BoxCollection#add provider argument is optional
In the case that not provider is given then whatever provider the box
represents will be added to the system. Ideally, a provider will be
given, but if not, Vagrant still does a "best effort" to install the
box.
2012-07-11 18:36:22 -07:00
Mitchell Hashimoto 6386ec2b79 `vagrant box list` uses the new collection stuff 2012-07-11 18:36:22 -07:00
Mitchell Hashimoto da15105a8f Make Box2 the new Box
This involved defaulting all box searching at the moment to VirtualBox.
Additionally, box upgrading is not yet handled. This needs to be done at
some point.
2012-07-11 18:36:21 -07:00
Mitchell Hashimoto e7bed7c2ff Raise an exception if an invalid tar file is added. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto a35f6a175d Exception when you attempt to add a box when a V1 box conflicts. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto 9e33d16ca1 Adding a box that already exists should result in an exception. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto 9cb0015b6e Test that an added box provider must match expected. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto c2151681ec Box collection can add a new box. This is the happy path only. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto e647afc7d2 Add logging statements to the box upgrade process. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto ffd5ac5af4 BoxCollection can now upgrade V1 boxes to V2 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto 2eaa850853 Box2 reads the metadata.json file. 2012-07-11 18:36:21 -07:00
Mitchell Hashimoto cd6c60775c Use the V1 box helper for a test. 2012-07-11 18:36:20 -07:00
Mitchell Hashimoto 4386ff9887 BoxCollection#all returns all boxes, including V1 boxes 2012-07-11 18:36:20 -07:00
Mitchell Hashimoto 9d1924811e Box collection can detect V1 boxes and throws an exception
The exception notifies the caller that the box needs to be upgraded. The
upgrade process is not yet done but is coming ina  future commit.
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto a6d7bd48fd Find boxes with new on-disk structure.
The box collection can now find new-style boxes with providers and
return proper Box objects. In the future, we'll also have to implement
upgrading old style ones as well.
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto 42826356ad Basic "Box2" implementation.
This is the beginning of the new box internals. The basic idea is that
the new box has a new field: provider. The provider will describe what
provider that box was built with and what provider it is made to work
with.
2012-07-11 18:36:20 -07:00
Mitchell Hashimoto 933b0b3101 Clarify that the warning will be removed when official version is
released
2012-07-11 18:34:36 -07:00
Mitchell Hashimoto 2995b6439d Interrupt when asking to destroy a VM should exit. [GH-1017] 2012-07-11 18:33:28 -07:00
Mitchell Hashimoto a34801588c Handle the case where ctrl-D is pressed on input. 2012-07-11 18:30:37 -07:00
Mitchell Hashimoto e92fbb4d33 Add backwards incompatibility warning. 2012-07-11 18:28:08 -07:00
Mitchell Hashimoto 25800c752a Merge pull request #1015 from jamtur01/updatedpuppetcommands
This commit has three minor changes to the Puppet provisioners
2012-07-11 11:04:53 -07:00
James Turnbull 97420a990a This commit has three minor changes to the Puppet provisioners:
* Renamed the run_puppet_client method in the puppet provisioner
to clarify it's function running Puppet in apply mode from the
command line.

* Renamed the run_puppet_client method in the puppet server provisioner
to clarify the agent is being run.

* Changed the Puppet server provisioner to use the more standard Git-style
command line structure. The puppetd binary has been deprecated in favour of
puppet with the agent flag.
2012-07-11 13:59:20 -04:00
Mitchell Hashimoto 61621369d2 Catch Net::SSH::Disconnect when connecting to SSH
This error was experienced by @pearkes. It is thrown when the remote end
unexpectedly closes the remote end. This is usually caused by SSH not
being able to properly setup the connection.
2012-07-04 08:26:09 -10:00
Mitchell Hashimoto 639a6a72ed Don't set the gateway for host only, this sometimes causes internet
breakge
2012-06-29 12:05:42 -07:00
Mitchell Hashimoto ef265ab3ba Disable read timeout for HTTP downloader 2012-06-28 21:28:40 -07:00
Mitchell Hashimoto 627066c986 Point to TemplateRenderer properly in Chef provisioner base 2012-06-28 08:29:48 -07:00
Mitchell Hashimoto 5bc0fa1dff Default the IO.select result to empty array to avoid nil errors 2012-06-28 08:22:06 -07:00
Mitchell Hashimoto 0b9173efd9 Handle case that `writers` is nil on IO.select in subprocess
This can happen when IO.select timeout is reached when we're listening
for writers.
2012-06-27 13:54:05 -07:00