minionizer 0.0.1 → 0.1.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.
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minionizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan S. Garvin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-23 00:00:00.000000000 Z
11
+ date: 2014-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '4.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '4.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: net-ssh
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '2.9'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '2.9'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: fakefs
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.5'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.5'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mocha
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '1.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.3'
69
83
  description: Minionizer aims to be a light weight server provisioning tool without
70
84
  bloat or steep learning curves.
71
85
  email:
@@ -75,14 +89,21 @@ executables:
75
89
  extensions: []
76
90
  extra_rdoc_files: []
77
91
  files:
92
+ - ".coveralls.yml"
78
93
  - ".gitignore"
94
+ - ".travis.yml"
79
95
  - Gemfile
80
96
  - Gemfile.lock
81
97
  - README.md
82
98
  - Rakefile
83
99
  - bin/minionize
84
100
  - lib/core/file_injection.rb
101
+ - lib/core/folder_creation.rb
102
+ - lib/core/public_ssh_key_injection.rb
103
+ - lib/core/task_template.rb
104
+ - lib/core/user_creation.rb
85
105
  - lib/minionizer.rb
106
+ - lib/minionizer/command_execution.rb
86
107
  - lib/minionizer/configuration.rb
87
108
  - lib/minionizer/minion.rb
88
109
  - lib/minionizer/minionization.rb
@@ -91,9 +112,15 @@ files:
91
112
  - lib/minionizer/version.rb
92
113
  - minionizer.gemspec
93
114
  - test/Vagrantfile
94
- - test/integration/acceptance_test.rb
115
+ - test/integration/core_library_test.rb
116
+ - test/role_template.rb.erb
95
117
  - test/test_helper.rb
96
118
  - test/unit/lib/core/file_injection_test.rb
119
+ - test/unit/lib/core/folder_creation_test.rb
120
+ - test/unit/lib/core/public_ssh_key_injection_test.rb
121
+ - test/unit/lib/core/task_template_test.rb
122
+ - test/unit/lib/core/user_creation_test.rb
123
+ - test/unit/lib/minionizer/command_execution_test.rb
97
124
  - test/unit/lib/minionizer/configuration_test.rb
98
125
  - test/unit/lib/minionizer/minion_test.rb
99
126
  - test/unit/lib/minionizer/minionization_test.rb
@@ -124,9 +151,15 @@ specification_version: 4
124
151
  summary: Simple server provisioning and management.
125
152
  test_files:
126
153
  - test/Vagrantfile
127
- - test/integration/acceptance_test.rb
154
+ - test/integration/core_library_test.rb
155
+ - test/role_template.rb.erb
128
156
  - test/test_helper.rb
129
157
  - test/unit/lib/core/file_injection_test.rb
158
+ - test/unit/lib/core/folder_creation_test.rb
159
+ - test/unit/lib/core/public_ssh_key_injection_test.rb
160
+ - test/unit/lib/core/task_template_test.rb
161
+ - test/unit/lib/core/user_creation_test.rb
162
+ - test/unit/lib/minionizer/command_execution_test.rb
130
163
  - test/unit/lib/minionizer/configuration_test.rb
131
164
  - test/unit/lib/minionizer/minion_test.rb
132
165
  - test/unit/lib/minionizer/minionization_test.rb
@@ -1,82 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Minionizer
4
- class VictoryLap < StandardError; end
5
- class MinionTestFailure < StandardError; end
6
- class AcceptanceTest < MiniTest::Unit::TestCase
7
-
8
- describe 'acceptance testing' do
9
- let(:fqdn) { '192.168.49.181' }
10
- let (:username) { 'vagrant' }
11
- let (:password) { 'vagrant' }
12
- let(:credentials) {{ 'username' => username, 'password' => password }}
13
- let(:session) { Session.new(fqdn, credentials) }
14
- let(:minionization) { Minionization.new([fqdn], Configuration.instance) }
15
- let(:minions) {{ fqdn => { 'ssh' => credentials, 'roles' => ['minion_test'] } }}
16
-
17
- before do
18
- skip unless minion_available?
19
- roll_back_to_blank_snapshot
20
- Configuration.instance.instance_variable_set(:@minions, nil)
21
- write_file('config/minions.yml', minions.to_yaml)
22
- write_file('roles/minion_test.rb', TEST_ROLE)
23
- write_file(INJECTION_SOURCE, 'FooBar')
24
- end
25
-
26
- describe 'setting up a server' do
27
- it 'exercises from start to finish' do
28
- begin
29
- without_fakefs do
30
- refute(File.exists?(synced_path_to_injected_file))
31
- end
32
- assert_raises(VictoryLap) do
33
- minionization.call
34
- end
35
- without_fakefs do
36
- assert(File.exists?(synced_path_to_injected_file))
37
- end
38
- ensure
39
- without_fakefs do
40
- File.delete(synced_path_to_injected_file)
41
- end
42
- end
43
- end
44
- end
45
-
46
- #######
47
- private
48
- #######
49
-
50
- def without_fakefs
51
- FakeFS.deactivate!
52
- yield
53
- ensure
54
- FakeFS.activate!
55
- end
56
-
57
- def synced_path_to_injected_file
58
- @synced_path_to_injected_file ||= File.expand_path("../../#{INJECTION_SOURCE}", __FILE__)
59
- end
60
- end
61
- end
62
- end
63
-
64
- INJECTION_SOURCE = 'foobar.txt'
65
- INJECTION_TARGET = "/vagrant/#{INJECTION_SOURCE}"
66
- TEST_ROLE = <<-endofstring
67
- class MinionTest < Minionizer::RoleTemplate
68
-
69
- def call
70
- if hostname == 'precise32'
71
- Minionizer::FileInjection.new(session).inject('#{INJECTION_SOURCE}','#{INJECTION_TARGET}')
72
- raise Minionizer::VictoryLap.new('Shazam!')
73
- else
74
- raise Minionizer::MinionTestFailure.new("Whawhawhaaaa... \#{hostname}")
75
- end
76
- end
77
-
78
- def hostname
79
- @hostname ||= session.exec(:hostname)
80
- end
81
- end
82
- endofstring