From 18499217d02c79eae264e22334b8ff1a2c49de6e Mon Sep 17 00:00:00 2001 From: David Esteves Date: Wed, 7 Jun 2017 12:46:27 +0400 Subject: [PATCH] Add support for attaching Block Storage Volume to the droplet --- README.md | 2 ++ lib/vagrant-digitalocean/actions/create.rb | 3 ++- lib/vagrant-digitalocean/config.rb | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d3c1049..0c236e5 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,8 @@ The following attributes are available to further configure the provider: * A boolean indicating whether to install the DigitalOcean agent for monitoring. It defaults to `false`. - `provider.tags` * A flat array of tag names as strings to apply to the Droplet after it is created. Tag names can either be existing or new tags. +- `provider.volumes` + * A flat array including the unique identifier for each Block Storage volume attached to the Droplet. - `config.vm.synced_folder` * Supports both rsync__args and rsync__exclude, see the [Vagrant Docs](http://docs.vagrantup.com/v2/synced-folders/rsync.html) for more information. rsync__args default to `["--verbose", "--archive", "--delete", "-z", "--copy-links"]` and rsync__exclude defaults to `[".vagrant/"]`. diff --git a/lib/vagrant-digitalocean/actions/create.rb b/lib/vagrant-digitalocean/actions/create.rb index 45c993c..80318c5 100644 --- a/lib/vagrant-digitalocean/actions/create.rb +++ b/lib/vagrant-digitalocean/actions/create.rb @@ -29,7 +29,8 @@ def call(env) :ipv6 => @machine.provider_config.ipv6, :user_data => @machine.provider_config.user_data, :monitoring => @machine.provider_config.monitoring, - :tags => @machine.provider_config.tags + :tags => @machine.provider_config.tags, + :volumes => @machine.provider_config.volumes }.delete_if { |k, v| v.nil? }) # wait for request to complete diff --git a/lib/vagrant-digitalocean/config.rb b/lib/vagrant-digitalocean/config.rb index 26ba50e..eda9e55 100644 --- a/lib/vagrant-digitalocean/config.rb +++ b/lib/vagrant-digitalocean/config.rb @@ -14,6 +14,7 @@ class Config < Vagrant.plugin('2', :config) attr_accessor :user_data attr_accessor :monitoring attr_accessor :tags + attr_accessor :volumes alias_method :setup?, :setup @@ -31,6 +32,7 @@ def initialize @user_data = UNSET_VALUE @monitoring = UNSET_VALUE @tags = UNSET_VALUE + @volumes = UNSET_VALUE end def finalize! @@ -47,6 +49,7 @@ def finalize! @user_data = nil if @user_data == UNSET_VALUE @monitoring = false if @monitoring == UNSET_VALUE @tags = nil if @tags == UNSET_VALUE + @volumes = nil if @volumes == UNSET_VALUE end def validate(machine)