vagrant-fabric 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/vagrant-fabric/config.rb +32 -16
- data/lib/vagrant-fabric/provisioner.rb +15 -2
- data/lib/vagrant-fabric/version.rb +1 -1
- data/vagrant-fabric.gemspec +1 -1
- metadata +3 -3
@@ -5,12 +5,18 @@ module VagrantPlugins
|
|
5
5
|
attr_accessor :fabric_path
|
6
6
|
attr_accessor :python_path
|
7
7
|
attr_accessor :tasks
|
8
|
+
attr_accessor :remote
|
9
|
+
attr_accessor :remote_install
|
10
|
+
attr_accessor :remote_password
|
8
11
|
|
9
12
|
def initialize
|
10
13
|
@fabfile_path = UNSET_VALUE
|
11
|
-
@fabric_path
|
12
|
-
@python_path
|
13
|
-
@tasks
|
14
|
+
@fabric_path = UNSET_VALUE
|
15
|
+
@python_path = UNSET_VALUE
|
16
|
+
@tasks = UNSET_VALUE
|
17
|
+
@remote = UNSET_VALUE
|
18
|
+
@remote_install = UNSET_VALUE
|
19
|
+
@remote_password = UNSET_VALUE
|
14
20
|
end
|
15
21
|
|
16
22
|
def finalize!
|
@@ -18,6 +24,9 @@ module VagrantPlugins
|
|
18
24
|
@fabric_path = "fab" if @fabric_path == UNSET_VALUE
|
19
25
|
@python_path = "python" if @python_path == UNSET_VALUE
|
20
26
|
@tasks = [] if @tasks == UNSET_VALUE
|
27
|
+
@remote = false if @remote == UNSET_VALUE
|
28
|
+
@remote_install = false if @remote_install == UNSET_VALUE
|
29
|
+
@remote_password = "vagrant" if @remote_password == UNSET_VALUE
|
21
30
|
end
|
22
31
|
|
23
32
|
def execute(command)
|
@@ -34,26 +43,33 @@ module VagrantPlugins
|
|
34
43
|
end
|
35
44
|
|
36
45
|
def validate(env)
|
37
|
-
|
46
|
+
if not @remote == true
|
47
|
+
errors = _detected_errors
|
38
48
|
|
39
|
-
|
49
|
+
errors << "fabfile does not exist." if not File.exist?(fabfile_path)
|
40
50
|
|
41
|
-
|
42
|
-
output = execute(command)
|
43
|
-
errors << "fabric command does not exist." if not output
|
51
|
+
install_fabric if @remote == true and @install == true
|
44
52
|
|
45
|
-
|
46
|
-
|
47
|
-
|
53
|
+
command = "#{fabric_path} -V"
|
54
|
+
output = execute(command)
|
55
|
+
errors << "fabric command does not exist." if not output
|
48
56
|
|
49
|
-
|
50
|
-
task = task.split(':').first
|
51
|
-
command = "#{fabric_path} -f #{fabfile_path} -d #{task}"
|
57
|
+
command = "#{fabric_path} -f #{fabfile_path} -l"
|
52
58
|
output = execute(command)
|
53
|
-
errors << "#{
|
59
|
+
errors << "#{fabfile_path} could not recognize by fabric." if not $?.success?
|
60
|
+
|
61
|
+
for task in tasks
|
62
|
+
task = task.split(':').first
|
63
|
+
command = "#{fabric_path} -f #{fabfile_path} -d #{task}"
|
64
|
+
output = execute(command)
|
65
|
+
errors << "#{task} task does not exist." if not $?.success?
|
66
|
+
end
|
67
|
+
|
68
|
+
{"fabric provisioner" => errors}
|
54
69
|
end
|
70
|
+
end
|
55
71
|
|
56
|
-
|
72
|
+
def install_fabric()
|
57
73
|
end
|
58
74
|
end
|
59
75
|
end
|
@@ -2,12 +2,25 @@ module VagrantPlugins
|
|
2
2
|
module Fabric
|
3
3
|
class Provisioner < Vagrant.plugin("2", :provisioner)
|
4
4
|
def provision
|
5
|
-
ssh_info = machine.ssh_info
|
5
|
+
ssh_info = @machine.ssh_info
|
6
6
|
user = ssh_info[:username]
|
7
7
|
host = ssh_info[:host]
|
8
8
|
port = ssh_info[:port]
|
9
9
|
private_key = ssh_info[:private_key_path]
|
10
|
-
|
10
|
+
if config.remote == false
|
11
|
+
system "#{config.fabric_path} -f #{config.fabfile_path} " +
|
12
|
+
"-i #{private_key} --user=#{user} --hosts=#{host} " +
|
13
|
+
"--port=#{port} #{config.tasks.join(' ')}"
|
14
|
+
else
|
15
|
+
if config.install
|
16
|
+
@machine.communicate.sudo("pip install fabric")
|
17
|
+
@machine.env.ui.info "Finished to install fabric library your VM."
|
18
|
+
end
|
19
|
+
@machine.communicate.execute("#{config.fabric_path} -f #{config.fabfile_path} " +
|
20
|
+
"--user=#{user} --hosts=127.0.0.1 --password=#{config.remote_password} " +
|
21
|
+
"#{config.tasks.join(' ')}")
|
22
|
+
@machine.env.ui.info"Finished to execute tasks of fabric."
|
23
|
+
end
|
11
24
|
end
|
12
25
|
end
|
13
26
|
end
|
data/vagrant-fabric.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = VagrantPlugins::Fabric::VERSION
|
9
9
|
spec.platform = Gem::Platform::RUBY
|
10
10
|
spec.authors = ["Takahiro Fujiwara"]
|
11
|
-
spec.email = ["
|
11
|
+
spec.email = ["email@wuta.li"]
|
12
12
|
spec.homepage = "http://blog.wuta.li"
|
13
13
|
spec.description = "Enables Vagrant to provision with python fabric script."
|
14
14
|
spec.summary = "Enables Vagrant to provision with python fabric script."
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-fabric
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -45,7 +45,7 @@ dependencies:
|
|
45
45
|
version: '0'
|
46
46
|
description: Enables Vagrant to provision with python fabric script.
|
47
47
|
email:
|
48
|
-
-
|
48
|
+
- email@wuta.li
|
49
49
|
executables: []
|
50
50
|
extensions: []
|
51
51
|
extra_rdoc_files: []
|