jamie 0.1.0.alpha14 → 0.1.0.alpha15

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/Rakefile CHANGED
@@ -7,7 +7,6 @@ Cane::RakeTask.new do |cane|
7
7
  cane.abc_exclude = %w(
8
8
  Jamie::RakeTasks#define
9
9
  Jamie::ThorTasks#define
10
- Jamie::Vagrant.define_vagrant_vm
11
10
  Jamie::CLI#pry_prompts
12
11
  )
13
12
  cane.style_exclude = %w(
data/bin/jamie CHANGED
@@ -1,6 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
  # -*- encoding: utf-8 -*-
3
3
 
4
+ # Trap interrupts to quit cleanly. See
5
+ # https://twitter.com/mitchellh/status/283014103189053442
6
+ Signal.trap("INT") { exit 1 }
7
+
4
8
  $:.unshift File.join(File.dirname(__FILE__), %w{.. lib})
5
9
  require 'jamie/cli'
6
10
 
@@ -21,7 +21,6 @@ Gem::Specification.new do |gem|
21
21
  gem.add_dependency 'net-ssh'
22
22
  gem.add_dependency 'net-scp'
23
23
  gem.add_dependency 'mixlib-shellout'
24
- gem.add_dependency 'vagrant', '~> 1.0.5'
25
24
 
26
25
  gem.add_development_dependency 'yard'
27
26
  gem.add_development_dependency 'maruku'
@@ -9,6 +9,7 @@ require 'mixlib/shellout'
9
9
  require 'net/https'
10
10
  require 'net/scp'
11
11
  require 'net/ssh'
12
+ require 'pathname'
12
13
  require 'socket'
13
14
  require 'stringio'
14
15
  require 'yaml'
@@ -834,7 +835,7 @@ module Jamie
834
835
  end
835
836
 
836
837
  def prepare_chef_home(ssh_args)
837
- ssh(ssh_args, "sudo rm -rf #{chef_home} && mkdir -p #{chef_home}")
838
+ ssh(ssh_args, "sudo rm -rf #{chef_home} && mkdir -p #{chef_home}/cache")
838
839
  end
839
840
 
840
841
  def upload_chef_data(ssh_args, instance)
@@ -190,7 +190,7 @@ module Jamie
190
190
  run_list = cookbook_name ? "recipe[#{cookbook_name}]" : nil
191
191
  attributes = cookbook_name ? { cookbook_name => nil } : nil
192
192
 
193
- { 'default_driver' => 'vagrant',
193
+ { 'driver_plugin' => 'vagrant',
194
194
  'platforms' => platforms,
195
195
  'suites' => [
196
196
  { 'name' => 'standard',
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Jamie
4
4
 
5
- VERSION = "0.1.0.alpha14"
5
+ VERSION = "0.1.0.alpha15"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jamie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.alpha14
4
+ version: 0.1.0.alpha15
5
5
  prerelease: 6
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: 2012-12-22 00:00:00.000000000 Z
12
+ date: 2012-12-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -75,22 +75,6 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: vagrant
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: 1.0.5
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: 1.0.5
94
78
  - !ruby/object:Gem::Dependency
95
79
  name: yard
96
80
  requirement: !ruby/object:Gem::Requirement
@@ -174,10 +158,8 @@ files:
174
158
  - jamie.gemspec
175
159
  - lib/jamie.rb
176
160
  - lib/jamie/cli.rb
177
- - lib/jamie/driver/vagrant.rb
178
161
  - lib/jamie/rake_tasks.rb
179
162
  - lib/jamie/thor_tasks.rb
180
- - lib/jamie/vagrant.rb
181
163
  - lib/jamie/version.rb
182
164
  - lib/vendor/hash_recursive_merge.rb
183
165
  - templates/plugin/driver.rb.erb
@@ -201,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
183
  version: '0'
202
184
  segments:
203
185
  - 0
204
- hash: 168460114090032110
186
+ hash: 2338100729257258503
205
187
  required_rubygems_version: !ruby/object:Gem::Requirement
206
188
  none: false
207
189
  requirements:
@@ -1,39 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require 'jamie'
4
-
5
- module Jamie
6
-
7
- module Driver
8
-
9
- # Vagrant driver for Jamie. It communicates to Vagrant via the CLI.
10
- class Vagrant < Jamie::Driver::SSHBase
11
-
12
- default_config 'memory', '256'
13
-
14
- def perform_create(instance, state)
15
- state['name'] = instance.name
16
- run_command "vagrant up #{state['name']} --no-provision"
17
- end
18
-
19
- def perform_converge(instance, state)
20
- run_command "vagrant provision #{state['name']}"
21
- end
22
-
23
- def perform_destroy(instance, state)
24
- run_command "vagrant destroy #{state['name']} -f"
25
- state.delete('name')
26
- end
27
-
28
- protected
29
-
30
- def generate_ssh_args(state)
31
- Array(state['name'])
32
- end
33
-
34
- def ssh(ssh_args, cmd)
35
- run_command %{vagrant ssh #{ssh_args.first} --command '#{cmd}'}
36
- end
37
- end
38
- end
39
- end
@@ -1,57 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- require 'forwardable'
4
- require 'vagrant'
5
-
6
- require 'jamie'
7
-
8
- module Jamie
9
-
10
- module Vagrant
11
-
12
- # A Vagrant confiuration class which wraps a Jamie::Config instance.
13
- class Config < ::Vagrant::Config::Base
14
- extend Forwardable
15
-
16
- def_delegators :@config, :suites, :suites=, :platforms, :platforms=,
17
- :instances, :yaml_file, :yaml_file=, :log_level, :log_level=,
18
- :test_base_path, :test_base_path=, :yaml_data
19
-
20
- def initialize
21
- @config = Jamie::Config.new
22
- end
23
- end
24
-
25
- # Defines all Vagrant virtual machines, one for each instance.
26
- #
27
- # @param config [Vagrant::Config::Top] Vagrant top level config object
28
- def self.define_vms(config)
29
- config.jamie.instances.each do |instance|
30
- define_vagrant_vm(config, instance)
31
- end
32
- end
33
-
34
- private
35
-
36
- def self.define_vagrant_vm(config, instance)
37
- driver = instance.platform.driver
38
-
39
- config.vm.define instance.name do |c|
40
- c.vm.box = driver['box']
41
- c.vm.box_url = driver['box_url'] if driver['box_url']
42
- c.vm.host_name = "#{instance.name}.vagrantup.com"
43
- c.vm.customize ["modifyvm", :id, "--memory", driver['memory']]
44
-
45
- c.vm.provision :chef_solo do |chef|
46
- chef.log_level = config.jamie.log_level
47
- chef.run_list = instance.run_list
48
- chef.json = instance.attributes
49
- chef.data_bags_path = instance.suite.data_bags_path
50
- chef.roles_path = instance.suite.roles_path
51
- end
52
- end
53
- end
54
- end
55
- end
56
-
57
- Vagrant.config_keys.register(:jamie) { Jamie::Vagrant::Config }