puppet-debugger 0.10.3 → 0.11.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.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +16 -74
- data/.rubocop_todo.yml +59 -59
- data/.ruby-version +1 -1
- data/CHANGELOG.md +7 -0
- data/Gemfile +3 -2
- data/lib/plugins/puppet-debugger/input_responders/functions.rb +100 -1
- data/lib/puppet-debugger/cli.rb +1 -2
- data/lib/puppet-debugger/input_responder_plugin.rb +8 -1
- data/lib/puppet-debugger/support.rb +14 -2
- data/lib/puppet-debugger/version.rb +1 -1
- data/puppet-debugger.gemspec +2 -0
- data/spec/fixtures/modules/extlib/.editorconfig +14 -0
- data/spec/fixtures/modules/extlib/.fixtures.yml +3 -0
- data/spec/fixtures/modules/extlib/.github/CONTRIBUTING.md +184 -0
- data/spec/fixtures/modules/extlib/.github/ISSUE_TEMPLATE.md +26 -0
- data/spec/fixtures/modules/extlib/.github/PULL_REQUEST_TEMPLATE.md +20 -0
- data/spec/fixtures/modules/extlib/.gitignore +21 -0
- data/spec/fixtures/modules/extlib/.msync.yml +1 -0
- data/spec/fixtures/modules/extlib/.overcommit.yml +64 -0
- data/spec/fixtures/modules/extlib/.pmtignore +21 -0
- data/spec/fixtures/modules/extlib/.rspec +2 -0
- data/spec/fixtures/modules/extlib/.rspec_parallel +1 -0
- data/spec/fixtures/modules/extlib/.rubocop.yml +545 -0
- data/spec/fixtures/modules/extlib/.sync.yml +12 -0
- data/spec/fixtures/modules/extlib/.travis.yml +47 -0
- data/spec/fixtures/modules/extlib/.yardopts +2 -0
- data/spec/fixtures/modules/extlib/Gemfile +82 -0
- data/spec/fixtures/modules/extlib/Rakefile +82 -0
- data/spec/fixtures/modules/extlib/functions/dir_split.pp +25 -0
- data/spec/fixtures/modules/extlib/functions/file_separator.pp +7 -0
- data/spec/fixtures/modules/extlib/functions/mkdir_p.pp +20 -0
- data/spec/fixtures/modules/extlib/functions/path_join.pp +29 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/cache_data.rb +11 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/default_content.rb +11 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/dump_args.rb +11 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/echo.rb +11 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/cache_data.rb +48 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/default_content.rb +37 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/dump_args.rb +20 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/echo.rb +45 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/has_module.rb +33 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/ip_to_cron.rb +39 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/random_password.rb +63 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/resources_deep_merge.rb +87 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/extlib/sort_by_version.rb +15 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/ip_to_cron.rb +11 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/random_password.rb +11 -0
- data/spec/fixtures/modules/extlib/lib/puppet/functions/resources_deep_merge.rb +11 -0
- data/spec/fixtures/modules/extlib/metadata.json +66 -0
- data/spec/input_responder_plugin_spec.rb +1 -1
- data/spec/input_responders/functions_spec.rb +46 -1
- data/spec/spec_helper.rb +5 -5
- data/spec/support_spec.rb +0 -8
- metadata +69 -4
- data/lib/puppet-debugger/support/functions.rb +0 -72
@@ -0,0 +1,66 @@
|
|
1
|
+
{
|
2
|
+
"name": "puppet-extlib",
|
3
|
+
"version": "3.1.1-rc0",
|
4
|
+
"source": "https://github.com/voxpupuli/puppet-extlib.git",
|
5
|
+
"project_page": "https://github.com/voxpupuli/puppet-extlib",
|
6
|
+
"issues_url": "https://github.com/voxpupuli/puppet-extlib/issues",
|
7
|
+
"author": "Vox Pupuli",
|
8
|
+
"license": "Apache-2.0",
|
9
|
+
"summary": "extlib provides functions out of scope puppetlabs/stdlib",
|
10
|
+
"description": "extlib provides functions out of scope puppetlabs/stdlib",
|
11
|
+
"tags": [
|
12
|
+
"voxpupuli",
|
13
|
+
"extlib",
|
14
|
+
"stdlib"
|
15
|
+
],
|
16
|
+
"requirements": [
|
17
|
+
{
|
18
|
+
"name": "puppet",
|
19
|
+
"version_requirement": ">= 5.5.8 < 7.0.0"
|
20
|
+
}
|
21
|
+
],
|
22
|
+
"dependencies": [
|
23
|
+
{
|
24
|
+
"name": "puppetlabs/stdlib",
|
25
|
+
"version_requirement": ">= 4.6.0 < 6.0.0"
|
26
|
+
}
|
27
|
+
],
|
28
|
+
"operatingsystem_support": [
|
29
|
+
{
|
30
|
+
"operatingsystem": "RedHat",
|
31
|
+
"operatingsystemrelease": [
|
32
|
+
"6",
|
33
|
+
"7"
|
34
|
+
]
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"operatingsystem": "CentOS",
|
38
|
+
"operatingsystemrelease": [
|
39
|
+
"6",
|
40
|
+
"7"
|
41
|
+
]
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"operatingsystem": "Scientific",
|
45
|
+
"operatingsystemrelease": [
|
46
|
+
"6",
|
47
|
+
"7"
|
48
|
+
]
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"operatingsystem": "Debian",
|
52
|
+
"operatingsystemrelease": [
|
53
|
+
"8",
|
54
|
+
"9"
|
55
|
+
]
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"operatingsystem": "Ubuntu",
|
59
|
+
"operatingsystemrelease": [
|
60
|
+
"14.04",
|
61
|
+
"16.04",
|
62
|
+
"18.04"
|
63
|
+
]
|
64
|
+
}
|
65
|
+
]
|
66
|
+
}
|
@@ -29,7 +29,7 @@ describe :input_responder_plugin do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
{scope: Puppet::Parser::Scope, node: Puppet::Node, facts: Puppet::Node::Facts,
|
32
|
-
environment: Puppet::Node::Environment,
|
32
|
+
environment: Puppet::Node::Environment,
|
33
33
|
compiler: Puppet::Parser::Compiler, catalog: Puppet::Resource::Catalog}.each do |name, klass|
|
34
34
|
it "can access #{name}" do
|
35
35
|
expect(plugin.send(name).class).to be klass
|
@@ -4,17 +4,62 @@ require 'puppet-debugger/plugin_test_helper'
|
|
4
4
|
|
5
5
|
describe :functions do
|
6
6
|
include_examples 'plugin_tests'
|
7
|
+
|
7
8
|
let(:input) do
|
8
9
|
"md5('hello')"
|
9
10
|
end
|
11
|
+
|
12
|
+
let(:mod_dir) do
|
13
|
+
File.join(fixtures_dir, 'modules', 'extlib')
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'runs' do
|
17
|
+
expect(plugin.run).to be_a String
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'returns functions' do
|
21
|
+
expect(plugin.function_map).to be_a Hash
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'sorted_list' do
|
25
|
+
expect(plugin.sorted_list).to be_a Array
|
26
|
+
expect(plugin.sorted_list.first).to be_a Hash
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns function names' do
|
30
|
+
expect(plugin.func_list).to be_a Array
|
31
|
+
expect(plugin.func_list.find {|m| m =~ /md5/ }).to eq('md5()')
|
32
|
+
end
|
33
|
+
|
10
34
|
it 'execute md5' do
|
11
35
|
debugger_output = /5d41402abc4b2a76b9719d911017c592/
|
12
|
-
debugger.handle_input(
|
36
|
+
debugger.handle_input("md5('hello')")
|
13
37
|
expect(output.string).to match(debugger_output)
|
14
38
|
end
|
39
|
+
|
15
40
|
it 'execute swapcase' do
|
16
41
|
debugger_output = /HELLO/
|
17
42
|
debugger.handle_input("swapcase('hello')")
|
18
43
|
expect(output.string).to match(debugger_output)
|
19
44
|
end
|
45
|
+
|
46
|
+
it '#function_obj with native function' do
|
47
|
+
expect(plugin.function_obj(File.join(mod_dir, 'functions', 'dir_split.pp'))).to eq(
|
48
|
+
{:file=>File.join(mod_dir, 'functions', 'dir_split.pp'), :mod_name=>"extlib",
|
49
|
+
:full_name=>"extlib::dir_split", :name=>"extlib::dir_split", :namespace=>'extlib',
|
50
|
+
:summary => "Splits the given directory or directories into individual paths."}
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
it '#function_obj ruby v4 without namespace' do
|
55
|
+
expect(plugin.function_obj(File.join(mod_dir,'lib', 'puppet', 'functions', 'echo.rb')))
|
56
|
+
.to eq({:file=>File.join(mod_dir,'lib', 'puppet', 'functions', 'echo.rb'), :mod_name=>"extlib",
|
57
|
+
:full_name=>"echo", :name=>"echo", :namespace=>"", :summary => "DEPRECATED. Use the namespaced function [`extlib::echo`](#extlibecho) instead."})
|
58
|
+
end
|
59
|
+
|
60
|
+
it '#function_obj ruby v4 and namespace' do
|
61
|
+
expect(plugin.function_obj(File.join(mod_dir,'lib', 'puppet', 'functions', 'extlib', 'echo.rb')))
|
62
|
+
.to eq({:file=>File.join(mod_dir, 'lib', 'puppet', 'functions', 'extlib', 'echo.rb'), :mod_name=>"extlib",
|
63
|
+
:full_name=>"extlib::echo", :name=>"extlib::echo", :namespace=>'extlib', :summary => nil})
|
64
|
+
end
|
20
65
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -36,11 +36,11 @@ def stdlib_path
|
|
36
36
|
File.join(Puppet[:basemodulepath].split(':').first, 'stdlib')
|
37
37
|
end
|
38
38
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
#
|
39
|
+
def install_stdlib
|
40
|
+
`bundle exec puppet module install puppetlabs/stdlib` unless File.exists?(stdlib_path)
|
41
|
+
end
|
42
|
+
|
43
|
+
#install_stdlib
|
44
44
|
|
45
45
|
def fixtures_dir
|
46
46
|
File.join(File.dirname(__FILE__), 'fixtures')
|
data/spec/support_spec.rb
CHANGED
@@ -40,14 +40,6 @@ describe 'support' do
|
|
40
40
|
# manifest_file.close
|
41
41
|
end
|
42
42
|
|
43
|
-
context '#function_map' do
|
44
|
-
it 'should list functions' do
|
45
|
-
func = debugger.function_map["#{puppet_version}::hiera"]
|
46
|
-
expect(debugger.function_map).to be_instance_of(Hash)
|
47
|
-
expect(func).to eq(name: 'hiera', parent: puppet_version)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
43
|
it 'should return a puppet version' do
|
52
44
|
expect(puppet_version).to match(/puppet-\d\.\d+.\d/)
|
53
45
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-debugger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Osman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: table_print
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.0
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: pluginator
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,6 +38,20 @@ dependencies:
|
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: 1.5.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rb-readline
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.5.5
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.5.5
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: puppet
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,7 +185,6 @@ files:
|
|
157
185
|
- lib/puppet-debugger/support/environment.rb
|
158
186
|
- lib/puppet-debugger/support/errors.rb
|
159
187
|
- lib/puppet-debugger/support/facts.rb
|
160
|
-
- lib/puppet-debugger/support/functions.rb
|
161
188
|
- lib/puppet-debugger/support/loader.rb
|
162
189
|
- lib/puppet-debugger/support/node.rb
|
163
190
|
- lib/puppet-debugger/support/scope.rb
|
@@ -170,6 +197,44 @@ files:
|
|
170
197
|
- spec/facts_spec.rb
|
171
198
|
- spec/fixtures/environments/production/manifests/site.pp
|
172
199
|
- spec/fixtures/invalid_node_obj.yaml
|
200
|
+
- spec/fixtures/modules/extlib/.editorconfig
|
201
|
+
- spec/fixtures/modules/extlib/.fixtures.yml
|
202
|
+
- spec/fixtures/modules/extlib/.github/CONTRIBUTING.md
|
203
|
+
- spec/fixtures/modules/extlib/.github/ISSUE_TEMPLATE.md
|
204
|
+
- spec/fixtures/modules/extlib/.github/PULL_REQUEST_TEMPLATE.md
|
205
|
+
- spec/fixtures/modules/extlib/.gitignore
|
206
|
+
- spec/fixtures/modules/extlib/.msync.yml
|
207
|
+
- spec/fixtures/modules/extlib/.overcommit.yml
|
208
|
+
- spec/fixtures/modules/extlib/.pmtignore
|
209
|
+
- spec/fixtures/modules/extlib/.rspec
|
210
|
+
- spec/fixtures/modules/extlib/.rspec_parallel
|
211
|
+
- spec/fixtures/modules/extlib/.rubocop.yml
|
212
|
+
- spec/fixtures/modules/extlib/.sync.yml
|
213
|
+
- spec/fixtures/modules/extlib/.travis.yml
|
214
|
+
- spec/fixtures/modules/extlib/.yardopts
|
215
|
+
- spec/fixtures/modules/extlib/Gemfile
|
216
|
+
- spec/fixtures/modules/extlib/Rakefile
|
217
|
+
- spec/fixtures/modules/extlib/functions/dir_split.pp
|
218
|
+
- spec/fixtures/modules/extlib/functions/file_separator.pp
|
219
|
+
- spec/fixtures/modules/extlib/functions/mkdir_p.pp
|
220
|
+
- spec/fixtures/modules/extlib/functions/path_join.pp
|
221
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/cache_data.rb
|
222
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/default_content.rb
|
223
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/dump_args.rb
|
224
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/echo.rb
|
225
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/cache_data.rb
|
226
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/default_content.rb
|
227
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/dump_args.rb
|
228
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/echo.rb
|
229
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/has_module.rb
|
230
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/ip_to_cron.rb
|
231
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/random_password.rb
|
232
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/resources_deep_merge.rb
|
233
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/extlib/sort_by_version.rb
|
234
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/ip_to_cron.rb
|
235
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/random_password.rb
|
236
|
+
- spec/fixtures/modules/extlib/lib/puppet/functions/resources_deep_merge.rb
|
237
|
+
- spec/fixtures/modules/extlib/metadata.json
|
173
238
|
- spec/fixtures/node_obj.yaml
|
174
239
|
- spec/fixtures/sample_manifest.pp
|
175
240
|
- spec/fixtures/sample_start_debugger.pp
|
@@ -221,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
286
|
- !ruby/object:Gem::Version
|
222
287
|
version: '0'
|
223
288
|
requirements: []
|
224
|
-
rubygems_version: 3.0.
|
289
|
+
rubygems_version: 3.0.3
|
225
290
|
signing_key:
|
226
291
|
specification_version: 4
|
227
292
|
summary: A repl based debugger for the puppet language
|
@@ -1,72 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module PuppetDebugger
|
4
|
-
module Support
|
5
|
-
module Functions
|
6
|
-
# returns a array of function files which is only required
|
7
|
-
# when displaying the function map, puppet will load each function on demand
|
8
|
-
# in the future we may want to utilize the puppet loaders to find these things
|
9
|
-
def function_files
|
10
|
-
search_dirs = lib_dirs.map do |lib_dir|
|
11
|
-
[File.join(lib_dir, 'puppet', 'functions', '**', '*.rb'),
|
12
|
-
File.join(lib_dir, 'functions', '**', '*.rb'),
|
13
|
-
File.join(lib_dir, 'puppet', 'parser', 'functions', '*.rb')]
|
14
|
-
end
|
15
|
-
# add puppet lib directories
|
16
|
-
search_dirs << [File.join(puppet_lib_dir, 'puppet', 'functions', '**', '*.rb'),
|
17
|
-
File.join(puppet_lib_dir, 'puppet', 'parser', 'functions', '*.rb')]
|
18
|
-
Dir.glob(search_dirs.flatten)
|
19
|
-
end
|
20
|
-
|
21
|
-
def data_type_files
|
22
|
-
search_dirs = lib_dirs.map do |lib_dir|
|
23
|
-
[File.join(lib_dir, 'puppet', 'functions', '**', '*.rb'),
|
24
|
-
File.join(lib_dir, 'functions', '**', '*.rb'),
|
25
|
-
File.join(lib_dir, 'puppet', 'parser', 'functions', '*.rb')]
|
26
|
-
end
|
27
|
-
# add puppet lib directories
|
28
|
-
search_dirs << [File.join(puppet_lib_dir, 'puppet', 'functions', '**', '*.rb'),
|
29
|
-
File.join(puppet_lib_dir, 'puppet', 'parser', 'functions', '*.rb')]
|
30
|
-
Dir.glob(search_dirs.flatten)
|
31
|
-
end
|
32
|
-
|
33
|
-
# returns either the module name or puppet version
|
34
|
-
def mod_finder
|
35
|
-
@mod_finder ||= Regexp.new('\/([\w\-\.]+)\/lib')
|
36
|
-
end
|
37
|
-
|
38
|
-
# returns a map of functions
|
39
|
-
def function_map
|
40
|
-
unless @functions
|
41
|
-
do_initialize
|
42
|
-
@functions = {}
|
43
|
-
function_files.each do |file|
|
44
|
-
obj = {}
|
45
|
-
name = File.basename(file, '.rb')
|
46
|
-
obj[:name] = name
|
47
|
-
# return the last matched in cases where rbenv might be involved
|
48
|
-
obj[:parent] = file.scan(mod_finder).flatten.last
|
49
|
-
@functions["#{obj[:parent]}::#{name}"] = obj
|
50
|
-
end
|
51
|
-
end
|
52
|
-
@functions
|
53
|
-
end
|
54
|
-
|
55
|
-
# gather all the lib dirs
|
56
|
-
def lib_dirs(module_dirs = modules_paths)
|
57
|
-
dirs = module_dirs.map do |mod_dir|
|
58
|
-
Dir["#{mod_dir}/*/lib"].entries
|
59
|
-
end.flatten
|
60
|
-
dirs + [puppet_repl_lib_dir]
|
61
|
-
end
|
62
|
-
|
63
|
-
# load all the lib dirs so puppet can find the functions
|
64
|
-
# at this time, this function is not being used
|
65
|
-
def load_lib_dirs(module_dirs = modules_paths)
|
66
|
-
lib_dirs(module_dirs).each do |lib|
|
67
|
-
$LOAD_PATH << lib
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|