minionizer 0.0.1 → 0.1.0

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