puppet_generator 0.5.4
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/.gitignore +17 -0
- data/.rdebugrc +7 -0
- data/.rspec +2 -0
- data/.simplecov +8 -0
- data/.travis.yml +6 -0
- data/.yardopts +5 -0
- data/CONTRIBUTING.md +8 -0
- data/Gemfile +34 -0
- data/LICENSE.md +22 -0
- data/README.DEVELOPER.md +11 -0
- data/README.md +477 -0
- data/Rakefile +3 -0
- data/TODO.md +2 -0
- data/bin/ppgen +16 -0
- data/cucumber.yml +2 -0
- data/features/generate_file_definition.feature +357 -0
- data/features/generate_module_directories.feature +36 -0
- data/features/generate_package_definition.feature +206 -0
- data/features/generate_role_definitions.feature +64 -0
- data/features/generate_user_definition.feature +193 -0
- data/features/list.feature +22 -0
- data/features/log_actions.feature +93 -0
- data/features/step_definitions.rb +3 -0
- data/features/support/env.rb +7 -0
- data/features/tasks.feature +25 -0
- data/gemfiles/Gemfile.default +34 -0
- data/gemfiles/Gemfile.travis +17 -0
- data/lib/puppet_generator/actions/copy_files_to_module_directory.rb +23 -0
- data/lib/puppet_generator/actions/null.rb +9 -0
- data/lib/puppet_generator/api.rb +108 -0
- data/lib/puppet_generator/definition.rb +10 -0
- data/lib/puppet_generator/entry_converters/file.rb +9 -0
- data/lib/puppet_generator/entry_converters/package.rb +9 -0
- data/lib/puppet_generator/entry_converters/role.rb +9 -0
- data/lib/puppet_generator/entry_converters/user.rb +9 -0
- data/lib/puppet_generator/exceptions.rb +104 -0
- data/lib/puppet_generator/export_filters/build_role_includes_for_directory.rb +35 -0
- data/lib/puppet_generator/export_filters/filesystem_attributes.rb +57 -0
- data/lib/puppet_generator/export_filters/null.rb +9 -0
- data/lib/puppet_generator/exporters/directory.rb +23 -0
- data/lib/puppet_generator/exporters/file.rb +17 -0
- data/lib/puppet_generator/exporters/stdout.rb +16 -0
- data/lib/puppet_generator/import_filters/null.rb +9 -0
- data/lib/puppet_generator/import_filters/passwd.rb +22 -0
- data/lib/puppet_generator/import_filters/yaml.rb +20 -0
- data/lib/puppet_generator/importers/directory.rb +21 -0
- data/lib/puppet_generator/importers/file.rb +17 -0
- data/lib/puppet_generator/importers/stdin.rb +16 -0
- data/lib/puppet_generator/logger.rb +62 -0
- data/lib/puppet_generator/main.rb +36 -0
- data/lib/puppet_generator/middleware/apply_export_filters.rb +33 -0
- data/lib/puppet_generator/middleware/check_for_empty_source.rb +16 -0
- data/lib/puppet_generator/middleware/configure_logging.rb +30 -0
- data/lib/puppet_generator/middleware/create_module_directories.rb +42 -0
- data/lib/puppet_generator/middleware/create_output.rb +46 -0
- data/lib/puppet_generator/middleware/create_puppet_object_from_entry.rb +24 -0
- data/lib/puppet_generator/middleware/enable_debugging_libraries.rb +15 -0
- data/lib/puppet_generator/middleware/execute_actions.rb +34 -0
- data/lib/puppet_generator/middleware/filter_imported_data.rb +22 -0
- data/lib/puppet_generator/middleware/handle_errors.rb +62 -0
- data/lib/puppet_generator/middleware/output_debug_information_for_models.rb +21 -0
- data/lib/puppet_generator/middleware/read_input.rb +27 -0
- data/lib/puppet_generator/models/action.rb +36 -0
- data/lib/puppet_generator/models/base.rb +115 -0
- data/lib/puppet_generator/models/class_based_model.rb +56 -0
- data/lib/puppet_generator/models/entry_converter.rb +39 -0
- data/lib/puppet_generator/models/error_message.rb +60 -0
- data/lib/puppet_generator/models/export_filter.rb +44 -0
- data/lib/puppet_generator/models/exporter.rb +51 -0
- data/lib/puppet_generator/models/filesystem_based_model.rb +63 -0
- data/lib/puppet_generator/models/import_filter.rb +44 -0
- data/lib/puppet_generator/models/importer.rb +52 -0
- data/lib/puppet_generator/models/logger.rb +11 -0
- data/lib/puppet_generator/models/template.rb +120 -0
- data/lib/puppet_generator/puppet_helper.rb +19 -0
- data/lib/puppet_generator/puppet_objects/file.rb +29 -0
- data/lib/puppet_generator/puppet_objects/package.rb +24 -0
- data/lib/puppet_generator/puppet_objects/role.rb +27 -0
- data/lib/puppet_generator/puppet_objects/user.rb +27 -0
- data/lib/puppet_generator/setup/bare.rb +25 -0
- data/lib/puppet_generator/setup/default_actions.rb +9 -0
- data/lib/puppet_generator/setup/default_entry_converter.rb +8 -0
- data/lib/puppet_generator/setup/default_error_messages.rb +10 -0
- data/lib/puppet_generator/setup/default_export_filter.rb +9 -0
- data/lib/puppet_generator/setup/default_exporter.rb +11 -0
- data/lib/puppet_generator/setup/default_import_filter.rb +10 -0
- data/lib/puppet_generator/setup/default_importer.rb +10 -0
- data/lib/puppet_generator/setup/file.rb +29 -0
- data/lib/puppet_generator/setup/module.rb +22 -0
- data/lib/puppet_generator/setup/package.rb +27 -0
- data/lib/puppet_generator/setup/role.rb +28 -0
- data/lib/puppet_generator/setup/user.rb +27 -0
- data/lib/puppet_generator/task.rb +39 -0
- data/lib/puppet_generator/ui/commandline_parser_helper.rb +31 -0
- data/lib/puppet_generator/ui/create.rb +59 -0
- data/lib/puppet_generator/ui/runner.rb +23 -0
- data/lib/puppet_generator/ui/tasks.rb +16 -0
- data/lib/puppet_generator/version.rb +4 -0
- data/lib/puppet_generator.rb +79 -0
- data/puppet_generator.gemspec +35 -0
- data/rakefiles/default.rake +3 -0
- data/rakefiles/travis.rake +3 -0
- data/script/console +8 -0
- data/script/terminal +16 -0
- data/spec/examples/actions/missing_method.rb +7 -0
- data/spec/examples/apply_export_filters/file.txt +0 -0
- data/spec/examples/entry_converters/missing_method.rb +7 -0
- data/spec/examples/execute_actions/file.txt +0 -0
- data/spec/examples/export_filter/invalid_filter_1.rb +8 -0
- data/spec/examples/export_filter/invalid_filter_2.rb +7 -0
- data/spec/examples/export_filter/missing_method.rb +7 -0
- data/spec/examples/exporter/missing_method.rb +7 -0
- data/spec/examples/exporter/test.d/.gitkeep +0 -0
- data/spec/examples/exporter/test_file.txt +1 -0
- data/spec/examples/import_filter/forbidden_keyword.rb +0 -0
- data/spec/examples/import_filter/invalid_filter_1.rb +8 -0
- data/spec/examples/import_filter/invalid_filter_2.rb +7 -0
- data/spec/examples/import_filter/missing_method.rb +7 -0
- data/spec/examples/importer/missing_method.rb +7 -0
- data/spec/examples/importer/test.d/.gitkeep +0 -0
- data/spec/examples/importer/test_file.txt +1 -0
- data/spec/examples/templates/invalid_template.pp.erb +1 -0
- data/spec/examples/templates/missing_method.rb +7 -0
- data/spec/export_filters/build_role_includes_for_directory_spec.rb +39 -0
- data/spec/middleware/apply_export_filters_spec.rb +45 -0
- data/spec/middleware/execute_actions_spec.rb +44 -0
- data/spec/middleware/handle_errors_spec.rb +12 -0
- data/spec/models/action_spec.rb +37 -0
- data/spec/models/entry_converter_spec.rb +59 -0
- data/spec/models/error_message_spec.rb +78 -0
- data/spec/models/export_filter_spec.rb +36 -0
- data/spec/models/exporter_spec.rb +71 -0
- data/spec/models/import_filter_spec.rb +33 -0
- data/spec/models/importer_spec.rb +66 -0
- data/spec/models/template_spec.rb +47 -0
- data/spec/puppet_generator_spec.rb +7 -0
- data/spec/setup/role_spec.rb +22 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/support/filesystem_helper.rb +12 -0
- data/spec/support/libraries.rb +10 -0
- data/spec/support/rspec_configuration.rb +5 -0
- data/templates/puppet/many_per_file/file.pp.erb +16 -0
- data/templates/puppet/many_per_file/package.pp.erb +10 -0
- data/templates/puppet/many_per_file/role.pp.erb +7 -0
- data/templates/puppet/many_per_file/user.pp.erb +23 -0
- data/templates/puppet/one_per_file/file.pp.erb +14 -0
- data/templates/puppet/one_per_file/package.pp.erb +8 -0
- data/templates/puppet/one_per_file/role.pp.erb +5 -0
- data/templates/puppet/one_per_file/user.pp.erb +21 -0
- metadata +374 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Models::ErrorMessage do
|
|
4
|
+
|
|
5
|
+
before(:each) {
|
|
6
|
+
Models::ErrorMessage.reset
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
it "supports equality" do
|
|
10
|
+
m1 = Models::ErrorMessage.new(:name1, 1, 'Text')
|
|
11
|
+
m2 = Models::ErrorMessage.new(:name1, 1, 'text233')
|
|
12
|
+
|
|
13
|
+
expect(m1).to eq(m2)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "supports not equality" do
|
|
17
|
+
m1 = Models::ErrorMessage.new(:name1, 1, 'Text')
|
|
18
|
+
m2 = Models::ErrorMessage.new(:name2, 2, 'text233')
|
|
19
|
+
|
|
20
|
+
expect(m1).not_to eq(m2)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "is possible to find a message" do
|
|
24
|
+
m1 = Models::ErrorMessage.new(:name1, 1, 'Text')
|
|
25
|
+
Models::ErrorMessage.register m1
|
|
26
|
+
|
|
27
|
+
m_found = Models::ErrorMessage.find(:name1)
|
|
28
|
+
expect(m_found).to eq(m1)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "returns nil if message can not be found" do
|
|
32
|
+
m_found = Models::ErrorMessage.find(:unknown)
|
|
33
|
+
expect(m_found).to eq(nil)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "is possible to define a preambel for all error messages" do
|
|
37
|
+
Models::ErrorMessage.preambel = "test\n\n"
|
|
38
|
+
m1 = Models::ErrorMessage.create(:name1, 1, 'Text')
|
|
39
|
+
expect(m1.text).to eq("test\n\nText")
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "is possible to define a preambel for a single error messages" do
|
|
43
|
+
m1 = Models::ErrorMessage.create(:name1, 1, 'Text')
|
|
44
|
+
m1.preambel = "test123\n\n"
|
|
45
|
+
|
|
46
|
+
expect(m1.text).to eq("test123\n\nText")
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "returns only the instance preambel if both are defined" do
|
|
50
|
+
m1 = Models::ErrorMessage.create(:name1, 1, 'Text')
|
|
51
|
+
Models::ErrorMessage.preambel = "from class\n\n"
|
|
52
|
+
|
|
53
|
+
m1.preambel = "from instance\n\n"
|
|
54
|
+
|
|
55
|
+
expect(m1.text).to eq("from instance\n\nText")
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "is possible to define a postscript for all error messages" do
|
|
59
|
+
Models::ErrorMessage.postscript = "\n\npostscript"
|
|
60
|
+
m1 = Models::ErrorMessage.create(:name1, 1, 'Text')
|
|
61
|
+
expect(m1.text).to eq("Text\n\npostscript")
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it "is possible to define a postscript for a single error messages" do
|
|
65
|
+
m1 = Models::ErrorMessage.create(:name1, 1, 'Text')
|
|
66
|
+
m1.postscript = "\n\npostscript"
|
|
67
|
+
expect(m1.text).to eq("Text\n\npostscript")
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it "returns only the instance postscript if both are defined" do
|
|
71
|
+
m1 = Models::ErrorMessage.create(:name1, 1, 'Text')
|
|
72
|
+
Models::ErrorMessage.postscript = "\n\npostscript from class"
|
|
73
|
+
m1.postscript = "\n\npostscript from instance"
|
|
74
|
+
|
|
75
|
+
expect(m1.text).to eq("Text\n\npostscript from instance")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Models::ExportFilter do
|
|
4
|
+
|
|
5
|
+
it "finds all available filter" do
|
|
6
|
+
Models::ExportFilter.init
|
|
7
|
+
filter = Models::ExportFilter.find(:null)
|
|
8
|
+
expect(filter.name).to eq(:null)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "raises an error if an export filter is invalid: missing method \"convert\"" do
|
|
12
|
+
test_class = Class.new( Models::ExportFilter ) do
|
|
13
|
+
|
|
14
|
+
def self.library_name
|
|
15
|
+
"PuppetGenerator"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.model_name
|
|
19
|
+
"ExportFilter"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def self.path_to_instances
|
|
23
|
+
File.join( examples_dir, 'export_filter', 'missing_method.rb' )
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.require_path(name)
|
|
27
|
+
File.join( examples_dir, 'export_filter', 'missing_method' )
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
expect {
|
|
32
|
+
test_class.init
|
|
33
|
+
}.to raise_error Exceptions::InvalidExportFilter
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Models::Exporter do
|
|
4
|
+
before(:each) do
|
|
5
|
+
Models::Exporter.clear
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "finds all available exporters" do
|
|
9
|
+
Models::Exporter.init
|
|
10
|
+
filter = Models::Exporter.find(:file)
|
|
11
|
+
expect(filter.name).to eq(:file)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "finds all default exporters" do
|
|
15
|
+
Models::Exporter.init
|
|
16
|
+
Setup::DefaultExporter.use
|
|
17
|
+
|
|
18
|
+
filters = Models::Exporter.find_all(enabled: true)
|
|
19
|
+
expect(filters.size).to eq(3)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "raises an error if an exporter is invalid: missing method \"write\"" do
|
|
23
|
+
test_class = Class.new( Models::Exporter ) do
|
|
24
|
+
|
|
25
|
+
def self.library_name
|
|
26
|
+
"PuppetGenerator"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.model_name
|
|
30
|
+
"Exporter"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.path_to_instances
|
|
34
|
+
File.join( examples_dir, 'exporter', 'missing_method.rb' )
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.require_path(name)
|
|
38
|
+
File.join( examples_dir, 'exporter', 'missing_method' )
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
expect {
|
|
43
|
+
test_class.init
|
|
44
|
+
}.to raise_error Exceptions::InvalidExporter
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "finds an exporter for a file" do
|
|
48
|
+
Models::Exporter.init
|
|
49
|
+
|
|
50
|
+
expected_result = Models::Exporter.find( :file )
|
|
51
|
+
result = Models::Exporter.find( writes_to: 'file:' + File.join(examples_dir, 'exporter', 'test_file.txt' ) )
|
|
52
|
+
expect(result).to eq(expected_result)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "finds an exporter for a directory" do
|
|
56
|
+
Models::Exporter.init
|
|
57
|
+
|
|
58
|
+
expected_result = Models::Exporter.find( :directory )
|
|
59
|
+
result = Models::Exporter.find( writes_to: 'dir:' + File.join(examples_dir, 'exporter', 'test.d' ) )
|
|
60
|
+
expect(result).to eq(expected_result)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "finds an exporter for stdout" do
|
|
64
|
+
Models::Exporter.init
|
|
65
|
+
|
|
66
|
+
expected_result = Models::Exporter.find( :stdout )
|
|
67
|
+
result = Models::Exporter.find( writes_to: 'stdout' )
|
|
68
|
+
expect(result).to eq(expected_result)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Models::ImportFilter do
|
|
4
|
+
before(:each) do
|
|
5
|
+
Models::ImportFilter.clear
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "raises an error if an import filter is invalid: missing method \"convert\"" do
|
|
9
|
+
test_class = Class.new( Models::ImportFilter ) do
|
|
10
|
+
|
|
11
|
+
def self.library_name
|
|
12
|
+
"PuppetGenerator"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.model_name
|
|
16
|
+
"ImportFilter"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.path_to_instances
|
|
20
|
+
File.join( examples_dir, 'import_filter', 'missing_method.rb' )
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.require_path(name)
|
|
24
|
+
File.join( examples_dir, 'import_filter', 'missing_method' )
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
expect {
|
|
29
|
+
test_class.init
|
|
30
|
+
}.to raise_error Exceptions::InvalidImportFilter
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Models::Importer do
|
|
4
|
+
before(:each) do
|
|
5
|
+
Models::Importer.clear
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "raises an error if an importer is invalid: missing method \"read\"" do
|
|
9
|
+
test_class = Class.new( Models::Importer ) do
|
|
10
|
+
|
|
11
|
+
def self.library_name
|
|
12
|
+
"PuppetGenerator"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.model_name
|
|
16
|
+
"Importer"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.path_to_instances
|
|
20
|
+
File.join( examples_dir, 'importer', 'missing_method.rb' )
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.require_path(name)
|
|
24
|
+
File.join( examples_dir, 'importer', 'missing_method' )
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
expect {
|
|
29
|
+
test_class.init
|
|
30
|
+
}.to raise_error Exceptions::InvalidImporter
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "finds an importer for a file" do
|
|
34
|
+
Models::Importer.init
|
|
35
|
+
|
|
36
|
+
expected_result = Models::Importer.find( :file )
|
|
37
|
+
result = Models::Importer.find( reads_from: File.join(examples_dir, 'importer', 'test_file.txt' ) )
|
|
38
|
+
expect(result).to eq(expected_result)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "finds an importer for a directory" do
|
|
42
|
+
Models::Importer.init
|
|
43
|
+
|
|
44
|
+
expected_result = Models::Importer.find( :directory )
|
|
45
|
+
result = Models::Importer.find( reads_from: File.join(examples_dir, 'importer', 'test.d' ) )
|
|
46
|
+
expect(result).to eq(expected_result)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "finds an importer for stdin" do
|
|
50
|
+
Models::Importer.init
|
|
51
|
+
|
|
52
|
+
expected_result = Models::Importer.find( :stdin )
|
|
53
|
+
result = Models::Importer.find( reads_from: 'stdin' )
|
|
54
|
+
expect(result).to eq(expected_result)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "reads from file" do
|
|
58
|
+
Models::Importer.init
|
|
59
|
+
|
|
60
|
+
importer = Models::Importer.find( :file )
|
|
61
|
+
result = importer.read(File.join(examples_dir, 'importer', 'test_file.txt' ))
|
|
62
|
+
expect(result).to eq([ 'asdf' ] )
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe Models::Template do
|
|
5
|
+
|
|
6
|
+
before(:each) {
|
|
7
|
+
Models::Template.clear
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
it "loads all available templates on init" do
|
|
11
|
+
Models::Template.init
|
|
12
|
+
result = Models::Template.find( name: :package, is_suitable_for: :directory )
|
|
13
|
+
expect(result.name).to eq(:package)
|
|
14
|
+
|
|
15
|
+
result = Models::Template.find( name: :package, is_suitable_for: :file )
|
|
16
|
+
expect(result.name).to eq(:package)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "raises an error if a template is invalid: missing method \"render\"" do
|
|
20
|
+
test_class = Class.new( Models::Template ) do
|
|
21
|
+
|
|
22
|
+
def self.library_name
|
|
23
|
+
"PuppetGenerator"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.model_name
|
|
27
|
+
"Template"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.create_tags(path)
|
|
31
|
+
[ :many_per_file ]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.path_to_instances
|
|
35
|
+
File.join( examples_dir, 'templates', 'invalid_template.pp.erb' )
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
test_class.init
|
|
41
|
+
|
|
42
|
+
expect {
|
|
43
|
+
test_class.first.render( [ :asdf ] )
|
|
44
|
+
}.to raise_error Exceptions::InvalidTemplate
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
describe Setup::Role do
|
|
2
|
+
before(:each) do
|
|
3
|
+
Models::ImportFilter.clear
|
|
4
|
+
Models::Template.clear
|
|
5
|
+
Models::Action.clear
|
|
6
|
+
Models::Importer.clear
|
|
7
|
+
Models::ExportFilter.clear
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "enables default values" do
|
|
11
|
+
|
|
12
|
+
s = Setup::Role.new( HashWithIndifferentAccess.new )
|
|
13
|
+
s.setup_environment
|
|
14
|
+
|
|
15
|
+
expect(Models::ImportFilter.find_all(enabled: true).size).to eq(2)
|
|
16
|
+
expect(Models::Template.find_all(enabled: true).size).to eq(2)
|
|
17
|
+
expect(Models::Action.find_all(enabled: true).size).to eq(1)
|
|
18
|
+
expect(Models::Importer.find_all(enabled: true).size).to eq(3)
|
|
19
|
+
expect(Models::ExportFilter.find_all(enabled: true).size).to eq(2)
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#encoding: utf-8
|
|
2
|
+
$LOAD_PATH << File.expand_path( '../../lib', __FILE__ )
|
|
3
|
+
|
|
4
|
+
Dir.glob( File.expand_path( '../support/*.rb', __FILE__ ) ).each { |f| require f }
|
|
5
|
+
|
|
6
|
+
require 'puppet_generator'
|
|
7
|
+
include PuppetGenerator
|
|
8
|
+
|
|
9
|
+
#FeduxOrg::Stdlib.logger.mode = :debug
|
|
10
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
def examples_dir
|
|
2
|
+
File.expand_path( '../../examples', __FILE__ )
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
require 'fedux_org/stdlib/filesystem'
|
|
6
|
+
include FeduxOrg::Stdlib::Filesystem
|
|
7
|
+
|
|
8
|
+
def root_directory
|
|
9
|
+
File.expand_path( '../../../', __FILE__ )
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
create_working_directory
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
class <%= @items.first.module_name %>::<%= @items.first.class_name %> {
|
|
2
|
+
<% @items.each do |item| %>
|
|
3
|
+
file {'<%= item.path %>':
|
|
4
|
+
ensure => <%= item.type %>,
|
|
5
|
+
<% if item.source %>
|
|
6
|
+
source => '<%= item.source %>',
|
|
7
|
+
<% end %>
|
|
8
|
+
<% if item.owner %>
|
|
9
|
+
owner => '<%= item.owner %>',
|
|
10
|
+
<% end %>
|
|
11
|
+
<% if item.mode %>
|
|
12
|
+
mode => '<%= item.mode %>',
|
|
13
|
+
<% end %>
|
|
14
|
+
}
|
|
15
|
+
<% end %>
|
|
16
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
class <%= @items.first.module_name %>::<%= @items.first.class_name %> {
|
|
2
|
+
<% @items.each do |item| %>
|
|
3
|
+
user {'<%= item.name %>':
|
|
4
|
+
ensure => present,
|
|
5
|
+
managehome => true,
|
|
6
|
+
<% if item.provider %>
|
|
7
|
+
provider => '<%= item.provider %>',
|
|
8
|
+
<% end %>
|
|
9
|
+
<% if item.userid %>
|
|
10
|
+
uid => '<%= item.userid %>',
|
|
11
|
+
<% end %>
|
|
12
|
+
<% if item.groupid %>
|
|
13
|
+
gid => '<%= item.groupid %>',
|
|
14
|
+
<% end %>
|
|
15
|
+
<% if item.homedir %>
|
|
16
|
+
home => '<%= item.homedir %>',
|
|
17
|
+
<% end %>
|
|
18
|
+
<% if item.shell %>
|
|
19
|
+
shell => '<%= item.shell %>',
|
|
20
|
+
<% end %>
|
|
21
|
+
}
|
|
22
|
+
<% end %>
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class <%= @item.module_name %>::<%= @item.name %> {
|
|
2
|
+
file {'<%= @item.path %>':
|
|
3
|
+
ensure => <%= @item.type %>,
|
|
4
|
+
<% if @item.source %>
|
|
5
|
+
source => '<%= @item.source %>',
|
|
6
|
+
<% end %>
|
|
7
|
+
<% if @item.owner %>
|
|
8
|
+
owner => '<%= @item.owner %>',
|
|
9
|
+
<% end %>
|
|
10
|
+
<% if @item.mode %>
|
|
11
|
+
mode => '<%= @item.mode %>',
|
|
12
|
+
<% end %>
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class <%= @item.module_name %>::<%= @item.name %> {
|
|
2
|
+
user {'<%= @item.name %>':
|
|
3
|
+
ensure => present,
|
|
4
|
+
managehome => true,
|
|
5
|
+
<% if @item.provider %>
|
|
6
|
+
provider => '<%= @item.provider %>',
|
|
7
|
+
<% end %>
|
|
8
|
+
<% if @item.userid %>
|
|
9
|
+
uid => '<%= @item.userid %>',
|
|
10
|
+
<% end %>
|
|
11
|
+
<% if @item.groupid %>
|
|
12
|
+
gid => '<%= @item.groupid %>',
|
|
13
|
+
<% end %>
|
|
14
|
+
<% if @item.homedir %>
|
|
15
|
+
home => '<%= @item.homedir %>',
|
|
16
|
+
<% end %>
|
|
17
|
+
<% if @item.shell %>
|
|
18
|
+
shell => '<%= @item.shell %>',
|
|
19
|
+
<% end %>
|
|
20
|
+
}
|
|
21
|
+
}
|