From 0a73e43749ed309069d705352db80d5895a4b7a5 Mon Sep 17 00:00:00 2001 From: Max Lincoln Date: Thu, 19 Jun 2014 15:59:05 -0400 Subject: [PATCH] Support setting admin_pass --- Vagrantfile | 1 + lib/vagrant-rackspace/action/create_server.rb | 4 ++++ lib/vagrant-rackspace/config.rb | 7 +++++++ spec/vagrant-rackspace/config_spec.rb | 4 +++- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index 203cf52..be91f9e 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -14,6 +14,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "dummy" config.vm.provider :rackspace do |rs| rs.username = ENV['RAX_USERNAME'] + rs.admin_pass = ENV['VAGRANT_ADMIN_PASS'] rs.api_key = ENV['RAX_API_KEY'] rs.flavor = /1 GB Performance/ rs.image = /Ubuntu/ diff --git a/lib/vagrant-rackspace/action/create_server.rb b/lib/vagrant-rackspace/action/create_server.rb index 5d81daf..d4da37d 100644 --- a/lib/vagrant-rackspace/action/create_server.rb +++ b/lib/vagrant-rackspace/action/create_server.rb @@ -59,6 +59,10 @@ def call(env) :metadata => config.metadata } + if config.admin_pass + options[:password] = config.admin_pass + end + if config.user_data options[:user_data] = File.read(config.user_data) end diff --git a/lib/vagrant-rackspace/config.rb b/lib/vagrant-rackspace/config.rb index 76ad067..ace0ca8 100644 --- a/lib/vagrant-rackspace/config.rb +++ b/lib/vagrant-rackspace/config.rb @@ -112,6 +112,13 @@ class Config < Vagrant.plugin("2", :config) # @return [Array] attr_accessor :rsync_includes + # Password to set for root (on Linux) or Administrator (on Windows) + # A random password will be generated if admin_pass is not set or + # does not meet the password requirements of the operating system. + # + # @return [String] + attr_accessor :admin_pass + # Default Rackspace Cloud Network IDs SERVICE_NET_ID = '11111111-1111-1111-1111-111111111111' PUBLIC_NET_ID = '00000000-0000-0000-0000-000000000000' diff --git a/spec/vagrant-rackspace/config_spec.rb b/spec/vagrant-rackspace/config_spec.rb index 209418e..82c2375 100644 --- a/spec/vagrant-rackspace/config_spec.rb +++ b/spec/vagrant-rackspace/config_spec.rb @@ -24,6 +24,7 @@ its(:disk_config) { should be_nil } its(:networks) { should be_nil } its(:rsync_includes) { should be_nil } + its(:admin_pass) { should be_nil } end describe "overriding defaults" do @@ -37,7 +38,8 @@ :rackconnect, :server_name, :disk_config, - :username].each do |attribute| + :username, + :admin_pass].each do |attribute| it "should not default #{attribute} if overridden" do subject.send("#{attribute}=".to_sym, "foo") subject.finalize!