vagabond 0.2.0 → 0.2.2

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.
Files changed (73) hide show
  1. data/CHANGELOG.md +18 -0
  2. data/README.md +125 -4
  3. data/bin/vagabond +43 -16
  4. data/lib/vagabond/actions/cluster.rb +66 -0
  5. data/lib/vagabond/actions/create.rb +12 -7
  6. data/lib/vagabond/actions/destroy.rb +69 -15
  7. data/lib/vagabond/actions/init.rb +75 -0
  8. data/lib/vagabond/actions/provision.rb +4 -2
  9. data/lib/vagabond/actions/status.rb +33 -22
  10. data/lib/vagabond/actions/up.rb +8 -1
  11. data/lib/vagabond/bootstraps/server-zero.erb +20 -0
  12. data/lib/vagabond/bootstraps/server.erb +3 -2
  13. data/lib/vagabond/constants.rb +0 -15
  14. data/lib/vagabond/cookbooks/lxc/CHANGELOG.md +16 -0
  15. data/lib/vagabond/cookbooks/lxc/Gemfile +3 -2
  16. data/lib/vagabond/cookbooks/lxc/Gemfile.lock +30 -121
  17. data/lib/vagabond/cookbooks/lxc/README.md +43 -14
  18. data/lib/vagabond/cookbooks/lxc/attributes/default.rb +3 -3
  19. data/lib/vagabond/cookbooks/lxc/files/default/lxc-awesome-ephemeral +499 -0
  20. data/lib/vagabond/cookbooks/lxc/libraries/lxc.rb +223 -58
  21. data/lib/vagabond/cookbooks/lxc/libraries/lxc_file_config.rb +3 -0
  22. data/lib/vagabond/cookbooks/lxc/libraries/monkey.rb +51 -0
  23. data/lib/vagabond/cookbooks/lxc/metadata.rb +6 -5
  24. data/lib/vagabond/cookbooks/lxc/providers/config.rb +9 -16
  25. data/lib/vagabond/cookbooks/lxc/providers/container.rb +241 -229
  26. data/lib/vagabond/cookbooks/lxc/providers/default.rb +57 -0
  27. data/lib/vagabond/cookbooks/lxc/providers/ephemeral.rb +40 -0
  28. data/lib/vagabond/cookbooks/lxc/providers/fstab.rb +13 -54
  29. data/lib/vagabond/cookbooks/lxc/providers/interface.rb +13 -67
  30. data/lib/vagabond/cookbooks/lxc/providers/service.rb +14 -14
  31. data/lib/vagabond/cookbooks/lxc/recipes/default.rb +17 -4
  32. data/lib/vagabond/cookbooks/lxc/recipes/install_dependencies.rb +1 -1
  33. data/lib/vagabond/cookbooks/lxc/resources/config.rb +2 -2
  34. data/lib/vagabond/cookbooks/lxc/resources/container.rb +31 -6
  35. data/lib/vagabond/cookbooks/lxc/resources/default.rb +12 -0
  36. data/lib/vagabond/cookbooks/lxc/resources/ephemeral.rb +13 -0
  37. data/lib/vagabond/cookbooks/lxc/resources/fstab.rb +2 -1
  38. data/lib/vagabond/cookbooks/lxc/resources/interface.rb +6 -3
  39. data/lib/vagabond/cookbooks/lxc/resources/service.rb +1 -1
  40. data/lib/vagabond/cookbooks/lxc/templates/default/file_content.erb +2 -0
  41. data/lib/vagabond/cookbooks/lxc/templates/default/interface.erb +9 -3
  42. data/lib/vagabond/cookbooks/vagabond/README.md +10 -0
  43. data/lib/vagabond/cookbooks/vagabond/attributes/default.rb +1 -0
  44. data/lib/vagabond/cookbooks/vagabond/files/default/lxc-centos +13 -6
  45. data/lib/vagabond/cookbooks/vagabond/metadata.rb +1 -0
  46. data/lib/vagabond/cookbooks/vagabond/recipes/default.rb +46 -4
  47. data/lib/vagabond/cookbooks/vagabond/recipes/zero.rb +9 -0
  48. data/lib/vagabond/errors.rb +23 -0
  49. data/lib/vagabond/helpers.rb +41 -14
  50. data/lib/vagabond/internal_configuration.rb +120 -27
  51. data/lib/vagabond/kitchen.rb +143 -63
  52. data/lib/vagabond/knife.rb +8 -5
  53. data/lib/vagabond/layout.rb +16 -0
  54. data/lib/vagabond/monkey/kitchen_config.rb +23 -0
  55. data/lib/vagabond/server.rb +79 -63
  56. data/lib/vagabond/spec.rb +345 -0
  57. data/lib/vagabond/uploader.rb +30 -0
  58. data/lib/vagabond/uploader/berkshelf.rb +53 -0
  59. data/lib/vagabond/uploader/knife.rb +24 -0
  60. data/lib/vagabond/uploader/librarian.rb +31 -0
  61. data/lib/vagabond/vagabond.rb +30 -11
  62. data/lib/vagabond/vagabondfile.rb +40 -5
  63. data/lib/vagabond/version.rb +1 -1
  64. data/vagabond.gemspec +5 -2
  65. metadata +75 -15
  66. data/lib/vagabond/cookbooks/lxc/resources/#container.rb# +0 -28
  67. data/lib/vagabond/cookbooks/lxc/test/kitchen/Kitchenfile +0 -7
  68. data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/metadata.rb +0 -2
  69. data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/centos_lxc.rb +0 -0
  70. data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/chef-bootstrap.rb +0 -0
  71. data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_files.rb +0 -0
  72. data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_templates.rb +0 -0
  73. data/lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/ubuntu_lxc.rb +0 -0
@@ -0,0 +1,31 @@
1
+ require 'vagabond/uploader/knife'
2
+
3
+ module Vagabond
4
+ class Uploader
5
+ class Librarian < Knife
6
+
7
+ def initialize(*args)
8
+ super
9
+ unless(options[:cheffile])
10
+ raise ArgumentError.new "Option 'cheffile' is required!"
11
+ end
12
+ unless(File.exists?(options[:cheffile]))
13
+ raise ArgumentError.new "Option 'cheffile' is not a valid path!"
14
+ end
15
+ end
16
+
17
+ def prepare
18
+ com = "librarian-chef install --path=#{store}"
19
+ debug(com)
20
+ cmd = Mixlib::ShellOut.new(com,
21
+ :live_stream => options[:debug],
22
+ :cwd => File.dirname(options[:cheffile])
23
+ )
24
+ cmd.run_command
25
+ cmd.error!
26
+ options[:cookbook_paths] = [store]
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -1,8 +1,9 @@
1
1
  require 'thor'
2
2
  require 'chef/knife/core/ui'
3
+ require 'vagabond/uploader'
3
4
  require File.join(File.dirname(__FILE__), 'cookbooks/lxc/libraries/lxc.rb')
4
5
 
5
- %w(vagabondfile internal_configuration helpers).each do |dep|
6
+ %w(constants errors vagabondfile internal_configuration helpers).each do |dep|
6
7
  require "vagabond/#{dep}"
7
8
  end
8
9
 
@@ -78,6 +79,7 @@ module Vagabond
78
79
  # Creates an instance
79
80
  def initialize(*args)
80
81
  super
82
+ @threads = Mash.new
81
83
  @mappings_key = :mappings
82
84
  end
83
85
 
@@ -113,7 +115,7 @@ module Vagabond
113
115
  setup_ui
114
116
  ui.info "#{ui.color('Vagabond:', :yellow, :bold)} - Advocating idleness and work-shyness"
115
117
  ui.info " #{ui.color('Version:', :blue)} - #{VERSION.version} (#{VERSION.codename})"
116
- exit EXIT_CODES[:success]
118
+ exit
117
119
  end
118
120
 
119
121
  def execute
@@ -125,18 +127,20 @@ module Vagabond
125
127
  @name = name
126
128
  @options = options.dup
127
129
  if(args.last.is_a?(Hash))
128
- _ui = args.delete(:ui)
130
+ _ui = args.last.delete(:ui)
129
131
  @options.merge!(args.last)
130
132
  end
133
+ @leftover_args = args
131
134
  setup_ui(_ui)
132
135
  load_configurations
133
- validate!
136
+ validate! unless action == 'cluster' # TODO -> allow action
137
+ # method to check for validation run
134
138
  end
135
139
 
136
140
  def name_required!
137
141
  unless(name)
138
142
  ui.fatal "Node name is required!"
139
- exit EXIT_CODES[:missing_node_name]
143
+ raise VagabondError::MissingNodeName.new
140
144
  end
141
145
  end
142
146
 
@@ -150,9 +154,10 @@ module Vagabond
150
154
  end
151
155
 
152
156
  def load_configurations
153
- @vagabondfile = Vagabondfile.new(options[:vagabond_file])
157
+ @vagabondfile = Vagabondfile.new(options[:vagabond_file], :allow_missing)
154
158
  options[:sudo] = sudo
155
159
  options[:disable_solo] = true if @action.to_s == 'status' && lxc_installed?
160
+ Chef::Log.init('/dev/null') unless options[:debug]
156
161
  Lxc.use_sudo = @vagabondfile[:sudo].nil? ? true : @vagabondfile[:sudo]
157
162
  @internal_config = InternalConfiguration.new(@vagabondfile, ui, options)
158
163
  @config = @vagabondfile[:boxes][name]
@@ -162,10 +167,12 @@ module Vagabond
162
167
  srv_name = @internal_config[:mappings][:server]
163
168
  srv = Lxc.new(srv_name) if srv_name
164
169
  if(srv_name && srv.running?)
165
- options[:knife_opts] = " --server-url https://#{srv.container_ip(10, true)}"
170
+ proto = @vagabondfile[:local_chef_server][:zero] ? 'http' : 'https'
171
+ options[:knife_opts] = " --server-url #{proto}://#{srv.container_ip(10, true)}"
166
172
  else
167
- ui.warn 'Local chef server is not currently running!' unless @action.to_sym == :status
168
- options[:knife_opts] = ' --server-url https://no-local-server'
173
+ unless(@action.to_sym == :status || name.to_s =='server')
174
+ ui.warn 'Local chef server is not currently running!' unless @action.to_sym == :status
175
+ end
169
176
  end
170
177
  end
171
178
  end
@@ -175,12 +182,12 @@ module Vagabond
175
182
  if(name.to_s == 'server')
176
183
  ui.fatal "RESERVED node name supplied: #{ui.color(name, :red)}"
177
184
  ui.info ui.color(" -> Try: vagabond server #{@action}", :cyan)
178
- exit EXIT_CODES[:reserved_name]
185
+ raise VagabondError::ReservedName.new(name)
179
186
  end
180
187
  if(name && config.nil? && !options[:disable_name_validate])
181
188
  ui.fatal "Invalid node name supplied: #{ui.color(name, :red)}"
182
189
  ui.info ui.color(" -> Available: #{vagabondfile[:nodes].keys.sort.join(', ')}", :cyan)
183
- exit EXIT_CODES[:invalid_name]
190
+ raise VagabondError::InvalidName.new(name)
184
191
  end
185
192
  end
186
193
 
@@ -202,5 +209,17 @@ module Vagabond
202
209
  def lxc_installed?
203
210
  system('which lxc-info > /dev/null')
204
211
  end
212
+
213
+ def wait_for_completion(type=nil)
214
+ if(type)
215
+ Array(@threads[:type]).map(&:join)
216
+ else
217
+ @threads.values.map do |threads|
218
+ threads.each do |thread_set|
219
+ Array(thread_set).map(&:join)
220
+ end
221
+ end
222
+ end
223
+ end
205
224
  end
206
225
  end
@@ -6,6 +6,7 @@ module Vagabond
6
6
  attr_reader :path
7
7
  attr_reader :config
8
8
 
9
+ DEFAULT_KEYS = %w(boxes mappings test_mappings spec_mappings local_chef_server)
9
10
  ALIASES = Mash.new(:boxes => :nodes, :nodes => :boxes)
10
11
 
11
12
  def initialize(path=nil, *args)
@@ -15,6 +16,9 @@ module Vagabond
15
16
  end
16
17
 
17
18
  def [](k)
19
+ if(DEFAULT_KEYS.include?(k.to_s))
20
+ @config[k] ||= Mash.new
21
+ end
18
22
  aliased(k) || @config[k]
19
23
  end
20
24
 
@@ -22,10 +26,10 @@ module Vagabond
22
26
  if(ALIASES.has_key?(k))
23
27
  v = [@config[k], @config[ALIASES[k]]].compact
24
28
  if(v.size > 1)
25
- case v.first.class
29
+ case v.first
26
30
  when Array
27
31
  m = :|
28
- when Hash
32
+ when Hash, Mash
29
33
  m = :merge
30
34
  else
31
35
  m = :+
@@ -37,15 +41,42 @@ module Vagabond
37
41
  end
38
42
  end
39
43
 
40
- def load_configuration!(no_raise = false)
44
+ def load_configuration!(*args)
45
+ unless(args.empty?)
46
+ no_raise = args.first == true
47
+ force_store = args.include?(:force_store_path)
48
+ no_raise ||= force_store
49
+ end
41
50
  if(@path && File.exists?(@path))
42
51
  @config = Mash.new(self.instance_eval(IO.read(@path), @path, 1))
43
- else
52
+ end
53
+ if(!@config || force_store)
44
54
  raise 'No Vagabondfile file found!' unless no_raise
45
- @config = Mash.new
55
+ generate_store_path
56
+ @config = Mash[*DEFAULT_KEYS.map{|k| [k, Mash.new]}.flatten]
46
57
  end
47
58
  end
48
59
 
60
+ def generate_store_path
61
+ @path ||= File.expand_path(File.join(Dir.pwd, 'Vagabondfile'))
62
+ @store_path = File.join('/tmp/vagabond-solos', directory.gsub(%r{[^0-9a-zA-Z]}, '-'), 'Vagabondfile')
63
+ @store_path = File.expand_path(@store_path.gsub('-', '/'))
64
+ FileUtils.mkdir_p(File.dirname(@store_path))
65
+ File.dirname(@store_path)
66
+ end
67
+
68
+ def store_path
69
+ @store_path || @path
70
+ end
71
+
72
+ def directory
73
+ File.dirname(@path)
74
+ end
75
+
76
+ def store_directory
77
+ File.dirname(@store_path || @path)
78
+ end
79
+
49
80
  def discover_path(path)
50
81
  d_path = Dir.glob(File.join(path, 'Vagabondfile')).first
51
82
  unless(d_path)
@@ -55,5 +86,9 @@ module Vagabond
55
86
  end
56
87
  d_path
57
88
  end
89
+
90
+ def local_chef_server?
91
+ self[:local_chef_server] && self[:local_chef_server][:enabled]
92
+ end
58
93
  end
59
94
  end
@@ -6,5 +6,5 @@ module Vagabond
6
6
  super(v)
7
7
  end
8
8
  end
9
- VERSION = Version.new('0.2.0', 'frank the tank')
9
+ VERSION = Version.new('0.2.2', 'drifter')
10
10
  end
@@ -15,7 +15,10 @@ Gem::Specification.new do |s|
15
15
  s.files = Dir['**/*']
16
16
  s.executables = ['vagabond']
17
17
  s.add_dependency 'chef'
18
- s.add_dependency 'librarian'
19
- s.add_dependency 'test-kitchen', '1.0.0.alpha.0'
18
+ s.add_dependency 'librarian-chef'
19
+ s.add_dependency 'test-kitchen', '>= 1.0.0.alpha'
20
20
  s.add_dependency 'thor'
21
+ s.add_dependency 'uuidtools'
22
+ s.add_dependency 'elecksee', '>= 1.0.3'
23
+ s.add_dependency 'serverspec', '>= 0.6.3'
21
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagabond
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
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-03-23 00:00:00.000000000 Z
12
+ date: 2013-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef
@@ -28,7 +28,7 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: librarian
31
+ name: librarian-chef
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
@@ -48,17 +48,17 @@ dependencies:
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - '='
51
+ - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
- version: 1.0.0.alpha.0
53
+ version: 1.0.0.alpha
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - '='
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.0.alpha.0
61
+ version: 1.0.0.alpha
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: thor
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +75,54 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: uuidtools
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: elecksee
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 1.0.3
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 1.0.3
110
+ - !ruby/object:Gem::Dependency
111
+ name: serverspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: 0.6.3
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: 0.6.3
78
126
  description: Vagabonds, lazing about
79
127
  email: chrisroberts.code@gmail.com
80
128
  executables:
@@ -83,35 +131,34 @@ extensions: []
83
131
  extra_rdoc_files:
84
132
  - README.md
85
133
  files:
134
+ - lib/vagabond/cookbooks/lxc/files/default/lxc-awesome-ephemeral
86
135
  - lib/vagabond/cookbooks/lxc/files/default/knife_lxc
87
136
  - lib/vagabond/cookbooks/lxc/metadata.rb
88
137
  - lib/vagabond/cookbooks/lxc/templates/default/interface.erb
89
138
  - lib/vagabond/cookbooks/lxc/templates/default/fstab.erb
90
139
  - lib/vagabond/cookbooks/lxc/templates/default/client.rb.erb
140
+ - lib/vagabond/cookbooks/lxc/templates/default/file_content.erb
91
141
  - lib/vagabond/cookbooks/lxc/templates/default/default-lxc.erb
92
- - lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/metadata.rb
93
- - lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_files.rb
94
- - lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/centos_lxc.rb
95
- - lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/lxc_templates.rb
96
- - lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/ubuntu_lxc.rb
97
- - lib/vagabond/cookbooks/lxc/test/kitchen/cookbooks/lxc_test/recipes/chef-bootstrap.rb
98
- - lib/vagabond/cookbooks/lxc/test/kitchen/Kitchenfile
99
142
  - lib/vagabond/cookbooks/lxc/Gemfile
100
143
  - lib/vagabond/cookbooks/lxc/attributes/default.rb
101
144
  - lib/vagabond/cookbooks/lxc/README.md
102
145
  - lib/vagabond/cookbooks/lxc/providers/fstab.rb
146
+ - lib/vagabond/cookbooks/lxc/providers/default.rb
103
147
  - lib/vagabond/cookbooks/lxc/providers/interface.rb
104
148
  - lib/vagabond/cookbooks/lxc/providers/service.rb
105
149
  - lib/vagabond/cookbooks/lxc/providers/config.rb
150
+ - lib/vagabond/cookbooks/lxc/providers/ephemeral.rb
106
151
  - lib/vagabond/cookbooks/lxc/providers/container.rb
152
+ - lib/vagabond/cookbooks/lxc/libraries/monkey.rb
107
153
  - lib/vagabond/cookbooks/lxc/libraries/lxc_file_config.rb
108
154
  - lib/vagabond/cookbooks/lxc/libraries/lxc_expanded_resources.rb
109
155
  - lib/vagabond/cookbooks/lxc/libraries/lxc.rb
110
156
  - lib/vagabond/cookbooks/lxc/resources/fstab.rb
157
+ - lib/vagabond/cookbooks/lxc/resources/default.rb
111
158
  - lib/vagabond/cookbooks/lxc/resources/interface.rb
112
159
  - lib/vagabond/cookbooks/lxc/resources/service.rb
113
160
  - lib/vagabond/cookbooks/lxc/resources/config.rb
114
- - lib/vagabond/cookbooks/lxc/resources/#container.rb#
161
+ - lib/vagabond/cookbooks/lxc/resources/ephemeral.rb
115
162
  - lib/vagabond/cookbooks/lxc/resources/container.rb
116
163
  - lib/vagabond/cookbooks/lxc/CHANGELOG.md
117
164
  - lib/vagabond/cookbooks/lxc/Gemfile.lock
@@ -122,29 +169,42 @@ files:
122
169
  - lib/vagabond/cookbooks/vagabond/files/default/lxc-centos
123
170
  - lib/vagabond/cookbooks/vagabond/metadata.rb
124
171
  - lib/vagabond/cookbooks/vagabond/attributes/default.rb
172
+ - lib/vagabond/cookbooks/vagabond/README.md
125
173
  - lib/vagabond/cookbooks/vagabond/libraries/vagabond.rb
126
174
  - lib/vagabond/cookbooks/vagabond/recipes/default.rb
175
+ - lib/vagabond/cookbooks/vagabond/recipes/zero.rb
176
+ - lib/vagabond/errors.rb
127
177
  - lib/vagabond/server.rb
128
178
  - lib/vagabond/kitchen.rb
129
179
  - lib/vagabond/vagabondfile.rb
180
+ - lib/vagabond/bootstraps/server-zero.erb
130
181
  - lib/vagabond/bootstraps/server.erb
131
182
  - lib/vagabond/version.rb
132
183
  - lib/vagabond/knife.rb
184
+ - lib/vagabond/layout.rb
133
185
  - lib/vagabond/vagabond.rb
186
+ - lib/vagabond/monkey/kitchen_config.rb
187
+ - lib/vagabond/uploader/berkshelf.rb
188
+ - lib/vagabond/uploader/knife.rb
189
+ - lib/vagabond/uploader/librarian.rb
134
190
  - lib/vagabond/constants.rb
135
191
  - lib/vagabond/helpers.rb
192
+ - lib/vagabond/spec.rb
136
193
  - lib/vagabond/helpers/cheffile_loader.rb
137
194
  - lib/vagabond/internal_configuration.rb
138
195
  - lib/vagabond/actions/up.rb
139
196
  - lib/vagabond/actions/create.rb
140
197
  - lib/vagabond/actions/provision.rb
141
198
  - lib/vagabond/actions/status.rb
199
+ - lib/vagabond/actions/init.rb
142
200
  - lib/vagabond/actions/start.rb
201
+ - lib/vagabond/actions/cluster.rb
143
202
  - lib/vagabond/actions/thaw.rb
144
203
  - lib/vagabond/actions/rebuild.rb
145
204
  - lib/vagabond/actions/destroy.rb
146
205
  - lib/vagabond/actions/freeze.rb
147
206
  - lib/vagabond/actions/ssh.rb
207
+ - lib/vagabond/uploader.rb
148
208
  - lib/vagabond.rb
149
209
  - README.md
150
210
  - vagabond.gemspec
@@ -1,28 +0,0 @@
1
- actions :create, :delete, :clone
2
- default_action :create
3
-
4
- attribute :base_container, :kind_of => String
5
- attribute :validation_client, :kind_of => String
6
- attribute :validator_pem, :kind_of => String, :default => nil
7
- attribute :server_uri, :kind_of => String
8
- attribute :chef_environment, :kind_of => String, :default => '_default'
9
- attribute :node_name, :kind_of => String
10
- attribute :run_list, :kind_of => Array
11
- attribute :chef_enabled, :kind_of => [TrueClass, FalseClass], :default => false
12
- attribute :chef_retries, :kind_of => Fixnum, :default => 0
13
- attribute :copy_data_bag_secret_file, :kind_of => [TrueClass, FalseClass], :default => false
14
- attribute :data_bag_secret_file, :kind_of => String, :default => Chef::EncryptedDataBagItem::DEFAULT_SECRET_FILE
15
- attribute :default_bridge, :kind_of => String
16
- attribute :static_ip, :kind_of => String
17
- attribute :static_netmask, :kind_of => String, :default => '255.255.255.0'
18
- attribute :static_gateway, :kind_of => String
19
- attribute :default_config, :kind_of => [TrueClass, FalseClass], :default => true
20
- attribute :default_fstab, :kind_of => [TrueClass, FalseClass], :default => true
21
- attribute :container_commands, :kind_of => Array, :default => []
22
- attribute :initialize_commands, :kind_of => Array, :default => []
23
- attribute :new_container, :kind_of => [TrueClass, FalseClass], :default => false
24
- attribute :template, :kind_of => String, :default => 'ubuntu'
25
- attribute :template_opts, :kind_of => Hash, :default => {}
26
- attribute :_lxc
27
- # TODO: We should ultimately have support for all these templates
28
- #attribute :template, :equal_to => %w(busybox debian fedora opensuse sshd ubuntu ubuntu-cloud), :default => 'ubuntu'