bebox 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/Gemfile.lock +11 -1
- data/README.md +1 -0
- data/bebox.gemspec +2 -0
- data/lib/bebox/node.rb +1 -1
- data/lib/bebox/provision.rb +0 -32
- data/lib/bebox/vagrant_helper.rb +6 -4
- data/lib/bebox/version.rb +1 -1
- data/lib/bebox/wizards/environment_wizard.rb +4 -2
- data/lib/bebox/wizards/node_wizard.rb +9 -4
- data/lib/bebox/wizards/profile_wizard.rb +4 -2
- data/lib/bebox/wizards/project_wizard.rb +4 -3
- data/lib/bebox/wizards/provision_wizard.rb +6 -2
- data/lib/bebox/wizards/role_wizard.rb +14 -9
- data/lib/bebox/wizards/wizards_helper.rb +1 -0
- data/spec/environment_spec.rb +35 -18
- data/spec/factories/environment.rb +0 -12
- data/spec/factories/node.rb +0 -6
- data/spec/factories/project.rb +1 -7
- data/spec/fixtures/dot_bebox.test.erb +1 -1
- data/spec/node0.server1.test/prepare_phase_spec.rb +1 -1
- data/spec/node0.server1.test/provision_step_0_spec.rb +1 -1
- data/spec/node0.server1.test/provision_step_1_spec.rb +1 -1
- data/spec/node0.server1.test/provision_step_2_spec.rb +1 -1
- data/spec/node0.server1.test/provision_step_3_spec.rb +1 -1
- data/spec/node_role_spec.rb +7 -1
- data/spec/node_spec.rb +55 -17
- data/spec/ordered_phases_spec.rb +7 -3
- data/spec/pre_prepare_spec.rb +12 -9
- data/spec/pre_provision_steps_spec.rb +1 -1
- data/spec/profile_spec.rb +21 -8
- data/spec/project_spec.rb +54 -48
- data/spec/role_profiles_spec.rb +1 -1
- data/spec/role_spec.rb +40 -7
- data/spec/spec_helper.rb +20 -2
- data/spec/wizards/environment_wizard_spec.rb +33 -0
- data/spec/wizards/node_wizard_spec.rb +110 -0
- data/spec/wizards/profile_wizard_spec.rb +45 -0
- data/spec/wizards/project_wizard_spec.rb +90 -0
- data/spec/wizards/provision_wizard_spec.rb +45 -0
- data/spec/wizards/role_wizard_spec.rb +97 -0
- metadata +37 -4
- data/spec/node_wizard_spec.rb +0 -22
- data/spec/project_wizard_spec.rb +0 -51
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require_relative '../factories/role.rb'
|
4
|
+
require_relative '../factories/profile.rb'
|
5
|
+
|
6
|
+
describe 'Test 03: Bebox::RoleWizard' do
|
7
|
+
|
8
|
+
subject { Bebox::RoleWizard.new }
|
9
|
+
|
10
|
+
let(:role) { build(:role) }
|
11
|
+
let(:profile) { build(:profile) }
|
12
|
+
|
13
|
+
before :each do
|
14
|
+
$stdout.stub(:write)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'checks if a role exists' do
|
18
|
+
output = subject.role_exists?(role.project_root, role.name)
|
19
|
+
expect(output).to eq(false)
|
20
|
+
end
|
21
|
+
|
22
|
+
context '00: role not exist' do
|
23
|
+
|
24
|
+
before :each do
|
25
|
+
subject.stub(:role_exists?) { false }
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'creates a new role with wizard' do
|
29
|
+
Bebox::Role.any_instance.stub(:create) { true }
|
30
|
+
output = subject.create_new_role(role.project_root, role.name)
|
31
|
+
expect(output).to eq(true)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'can not removes a role if not exist any role' do
|
35
|
+
Bebox::Role.stub(:list) {[]}
|
36
|
+
output = subject.remove_role(role.project_root)
|
37
|
+
expect(output).to eq(nil)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context '01: role exist' do
|
42
|
+
|
43
|
+
before :each do
|
44
|
+
subject.stub(:role_exists?) { true }
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'removes a role with wizard' do
|
48
|
+
Bebox::Role.stub(:list) {[role.name]}
|
49
|
+
Bebox::Role.any_instance.stub(:remove) { true }
|
50
|
+
$stdin.stub(:gets).and_return('1', 'y')
|
51
|
+
output = subject.remove_role(role.project_root)
|
52
|
+
expect(output).to eq(true)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context '02: role and profile exist' do
|
57
|
+
|
58
|
+
before :each do
|
59
|
+
subject.stub(:role_exists?) { true }
|
60
|
+
Bebox::Profile.stub(:list) {[profile.relative_path]}
|
61
|
+
Bebox::Role.stub(:list) {[role.name]}
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'adds a profile to a role with wizard' do
|
65
|
+
Bebox::Role.stub(:profile_in_role?) { false }
|
66
|
+
Bebox::Role.stub(:add_profile) { true }
|
67
|
+
$stdin.stub(:gets).and_return(role.name, profile.relative_path)
|
68
|
+
output = subject.add_profile(role.project_root)
|
69
|
+
expect(output).to eq(true)
|
70
|
+
end
|
71
|
+
|
72
|
+
context '03: profile included in a role' do
|
73
|
+
|
74
|
+
it 'adds a profile to a role with wizard' do
|
75
|
+
Bebox::Role.stub(:profile_in_role?) { true }
|
76
|
+
$stdin.stub(:gets).and_return(role.name, profile.relative_path)
|
77
|
+
output = subject.add_profile(role.project_root)
|
78
|
+
expect(output).to eq(false)
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'can not remove a profile that not exist in a role with wizard' do
|
82
|
+
Bebox::Role.stub(:profile_in_role?) { false }
|
83
|
+
$stdin.stub(:gets).and_return(role.name, profile.relative_path)
|
84
|
+
output = subject.remove_profile(role.project_root)
|
85
|
+
expect(output).to eq(false)
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'removes a profile from a role with wizard' do
|
89
|
+
Bebox::Role.stub(:profile_in_role?) { true }
|
90
|
+
Bebox::Role.stub(:remove_profile) { true }
|
91
|
+
$stdin.stub(:gets).and_return(role.name, profile.relative_path)
|
92
|
+
output = subject.remove_profile(role.project_root)
|
93
|
+
expect(output).to eq(true)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bebox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Codescrum
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -94,6 +94,34 @@ dependencies:
|
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 4.3.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: codeclimate-test-reporter
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.4.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.4.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.9.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.9.0
|
97
125
|
- !ruby/object:Gem::Dependency
|
98
126
|
name: gli
|
99
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,6 +207,7 @@ extensions: []
|
|
179
207
|
extra_rdoc_files: []
|
180
208
|
files:
|
181
209
|
- ".gitignore"
|
210
|
+
- ".rspec"
|
182
211
|
- Gemfile
|
183
212
|
- Gemfile.lock
|
184
213
|
- LICENSE
|
@@ -384,19 +413,23 @@ files:
|
|
384
413
|
- spec/node0.server1.test/provision_step_3_spec.rb
|
385
414
|
- spec/node_role_spec.rb
|
386
415
|
- spec/node_spec.rb
|
387
|
-
- spec/node_wizard_spec.rb
|
388
416
|
- spec/ordered_phases_spec.rb
|
389
417
|
- spec/pre_prepare_spec.rb
|
390
418
|
- spec/pre_provision_steps_spec.rb
|
391
419
|
- spec/profile_spec.rb
|
392
420
|
- spec/project_spec.rb
|
393
|
-
- spec/project_wizard_spec.rb
|
394
421
|
- spec/puppet_spec_helper.rb
|
395
422
|
- spec/role_profiles_spec.rb
|
396
423
|
- spec/role_spec.rb
|
397
424
|
- spec/spec_helper.rb
|
398
425
|
- spec/support/config_specs.yaml.example
|
399
426
|
- spec/vagrant_spec_helper.rb
|
427
|
+
- spec/wizards/environment_wizard_spec.rb
|
428
|
+
- spec/wizards/node_wizard_spec.rb
|
429
|
+
- spec/wizards/profile_wizard_spec.rb
|
430
|
+
- spec/wizards/project_wizard_spec.rb
|
431
|
+
- spec/wizards/provision_wizard_spec.rb
|
432
|
+
- spec/wizards/role_wizard_spec.rb
|
400
433
|
homepage: http://www.codescrum.com
|
401
434
|
licenses:
|
402
435
|
- MIT
|
data/spec/node_wizard_spec.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require_relative '../spec/factories/node.rb'
|
4
|
-
|
5
|
-
describe 'Test 03: Manage nodes with the wizard' do
|
6
|
-
|
7
|
-
subject { Bebox::NodeWizard.new }
|
8
|
-
|
9
|
-
let(:project_root) { "#{Dir.pwd}/tmp/bebox-pname" }
|
10
|
-
let(:environment) { "vagrant" }
|
11
|
-
let(:node_hostname) { "node_0.server1.test" }
|
12
|
-
let(:node_ip) { YAML.load_file('spec/support/config_specs.yaml')['test_ip'] }
|
13
|
-
|
14
|
-
it 'should check node existence' do
|
15
|
-
output = subject.node_exists?(project_root, environment, node_hostname)
|
16
|
-
expect(output).to eq(false)
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'the ip should be free' do
|
20
|
-
expect(subject.free_ip?(node_ip)).to eq(true)
|
21
|
-
end
|
22
|
-
end
|
data/spec/project_wizard_spec.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
# require 'vcr'
|
3
|
-
|
4
|
-
require_relative '../spec/factories/project.rb'
|
5
|
-
|
6
|
-
describe 'Test 00: Create a new project with the wizard' do
|
7
|
-
|
8
|
-
describe 'Project data provision' do
|
9
|
-
|
10
|
-
subject { Bebox::ProjectWizard.new }
|
11
|
-
|
12
|
-
let(:project_name) { 'bebox-pname' }
|
13
|
-
let(:parent_path) { "#{Dir.pwd}/tmp" }
|
14
|
-
let(:http_box_uri) {'http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box'}
|
15
|
-
let(:local_box_uri) {"#{Dir.pwd}/spec/fixtures/test_box.box"}
|
16
|
-
let(:bebox_boxes_path) {File.expand_path(Bebox::ProjectWizard::BEBOX_BOXES_PATH)}
|
17
|
-
|
18
|
-
it 'should check project existence' do
|
19
|
-
output = subject.project_exists?(parent_path, project_name)
|
20
|
-
expect(output).to eq(false)
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'should setup the bebox boxes directory' do
|
24
|
-
subject.bebox_boxes_setup
|
25
|
-
expect(Dir.exist?("#{bebox_boxes_path}/tmp")).to eq(true)
|
26
|
-
expect(Dir["#{bebox_boxes_path}/tmp/*"].count).to eq(0)
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'should validate an http box uri' do
|
30
|
-
output = subject.uri_valid?(http_box_uri)
|
31
|
-
expect(output).to eq(true)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should validate a local-file box uri' do
|
35
|
-
output = subject.uri_valid?(local_box_uri)
|
36
|
-
expect(output).to eq(true)
|
37
|
-
end
|
38
|
-
|
39
|
-
# it 'should download an http box' do
|
40
|
-
# VCR.use_cassette('box_download') do
|
41
|
-
# subject.set_box(http_box_uri)
|
42
|
-
# end
|
43
|
-
# expect(File.exist?("#{bebox_boxes_path}/ubuntu-server-12042-x64-vbox4210-nocm.box")).to eq(true)
|
44
|
-
# end
|
45
|
-
|
46
|
-
it 'should link a local file box' do
|
47
|
-
subject.set_box(local_box_uri)
|
48
|
-
expect(File.symlink?("#{bebox_boxes_path}/test_box.box")).to eq(true)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|