vagabond 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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'