bolt 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bolt might be problematic. Click here for more details.

Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/exe/bolt +1 -1
  3. data/lib/bolt.rb +0 -3
  4. data/lib/bolt/cli.rb +66 -32
  5. data/lib/bolt/config.rb +19 -0
  6. data/lib/bolt/executor.rb +21 -16
  7. data/lib/bolt/node.rb +13 -10
  8. data/lib/bolt/node/errors.rb +22 -0
  9. data/lib/bolt/node/ssh.rb +25 -2
  10. data/lib/bolt/node/winrm.rb +14 -2
  11. data/lib/bolt/node_uri.rb +15 -14
  12. data/lib/bolt/result.rb +22 -0
  13. data/lib/bolt/version.rb +1 -1
  14. data/vendored/puppet/lib/puppet/application/script.rb +7 -1
  15. data/vendored/puppet/lib/puppet/configurer.rb +1 -1
  16. data/vendored/puppet/lib/puppet/defaults.rb +18 -1
  17. data/vendored/puppet/lib/puppet/functions/run_command.rb +5 -2
  18. data/vendored/puppet/lib/puppet/functions/run_script.rb +5 -2
  19. data/vendored/puppet/lib/puppet/functions/run_task.rb +7 -2
  20. data/vendored/puppet/lib/puppet/gettext/config.rb +47 -26
  21. data/vendored/puppet/lib/puppet/graph/relationship_graph.rb +6 -0
  22. data/vendored/puppet/lib/puppet/indirector/node/ldap.rb +19 -3
  23. data/vendored/puppet/lib/puppet/module.rb +8 -7
  24. data/vendored/puppet/lib/puppet/network/http/webrick.rb +1 -0
  25. data/vendored/puppet/lib/puppet/pops/loader/loader_paths.rb +9 -0
  26. data/vendored/puppet/lib/puppet/pops/loader/module_loaders.rb +8 -0
  27. data/vendored/puppet/lib/puppet/pops/types/p_error_type.rb +12 -0
  28. data/vendored/puppet/lib/puppet/pops/types/p_object_type.rb +9 -3
  29. data/vendored/puppet/lib/puppet/pops/types/ruby_generator.rb +65 -24
  30. data/vendored/puppet/lib/puppet/provider/mount.rb +25 -8
  31. data/vendored/puppet/lib/puppet/provider/package/dnf.rb +1 -1
  32. data/vendored/puppet/lib/puppet/provider/package/gem.rb +1 -1
  33. data/vendored/puppet/lib/puppet/provider/package/pkg.rb +3 -0
  34. data/vendored/puppet/lib/puppet/provider/service/launchd.rb +1 -1
  35. data/vendored/puppet/lib/puppet/provider/zfs/zfs.rb +20 -1
  36. data/vendored/puppet/lib/puppet/type/mount.rb +6 -2
  37. data/vendored/puppet/lib/puppet/type/yumrepo.rb +9 -0
  38. data/vendored/puppet/lib/puppet/version.rb +1 -1
  39. data/vendored/puppet/lib/puppet_pal.rb +33 -7
  40. metadata +45 -83
  41. data/.gitignore +0 -33
  42. data/.gitmodules +0 -12
  43. data/.rspec +0 -2
  44. data/.rubocop.yml +0 -61
  45. data/.travis.yml +0 -18
  46. data/CODE_OF_CONDUCT.md +0 -46
  47. data/CONTRIBUTING.md +0 -27
  48. data/Gemfile +0 -9
  49. data/INSTALL.md +0 -70
  50. data/LICENSE +0 -201
  51. data/README.md +0 -353
  52. data/Rakefile +0 -27
  53. data/Vagrantfile +0 -13
  54. data/appveyor.yml +0 -29
  55. data/bolt.gemspec +0 -50
  56. data/docs/writing_tasks_and_plans.pdf +0 -0
  57. data/metadata.json +0 -13
  58. data/tasks/init.json +0 -3
  59. data/tasks/init.rb +0 -44
  60. data/ux/bolt-CLI-spec.md +0 -186
  61. data/vendored/puppet/lib/puppet/external/nagios/grammar.ry +0 -248
  62. data/vendored/puppet/lib/puppet/external/nagios/makefile +0 -9
  63. data/vendored/puppet/lib/puppet/face/help/action.erb +0 -86
  64. data/vendored/puppet/lib/puppet/face/help/face.erb +0 -114
  65. data/vendored/puppet/lib/puppet/face/help/global.erb +0 -16
  66. data/vendored/puppet/lib/puppet/face/help/man.erb +0 -152
  67. data/vendored/puppet/lib/puppet/generate/templates/type/pcore.erb +0 -42
  68. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.fixtures.yml.erb +0 -7
  69. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.gitignore +0 -18
  70. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.rubocop.yml +0 -42
  71. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.yardopts +0 -1
  72. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +0 -18
  73. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +0 -89
  74. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +0 -32
  75. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +0 -12
  76. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +0 -48
  77. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +0 -1
  78. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +0 -6
  79. data/vendored/puppet/lib/puppet/pops/model/ast.pp +0 -695
  80. data/vendored/puppet/lib/puppet/pops/parser/egrammar.ra +0 -937
  81. data/vendored/puppet/lib/puppet/pops/resource/resource_type_set.pcore +0 -22
  82. data/vendored/puppet/lib/puppet/util/libuser.conf +0 -15
  83. data/vendored/puppet/lib/puppet/vendor/deep_merge/CHANGELOG +0 -45
  84. data/vendored/puppet/lib/puppet/vendor/deep_merge/Gemfile +0 -3
  85. data/vendored/puppet/lib/puppet/vendor/deep_merge/LICENSE +0 -21
  86. data/vendored/puppet/lib/puppet/vendor/deep_merge/PUPPET_README.md +0 -6
  87. data/vendored/puppet/lib/puppet/vendor/deep_merge/README.md +0 -113
  88. data/vendored/puppet/lib/puppet/vendor/deep_merge/Rakefile +0 -19
  89. data/vendored/puppet/lib/puppet/vendor/deep_merge/deep_merge.gemspec +0 -35
  90. data/vendored/puppet/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  91. data/vendored/puppet/lib/puppet/vendor/pathspec/LICENSE +0 -201
  92. data/vendored/puppet/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  93. data/vendored/puppet/lib/puppet/vendor/pathspec/README.md +0 -53
  94. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/locales/config.yaml +0 -21
@@ -1,42 +0,0 @@
1
- ---
2
- AllCops:
3
- DisplayCopNames: true
4
- DisplayStyleGuide: true
5
- Exclude:
6
- - vendor/**/*
7
- - pkg/**/*
8
- - spec/fixtures/**/*
9
-
10
- # Cop's to ignore
11
-
12
- # With this enabled it suggests a change that will break the Gemfile
13
- Lint/AssignmentInCondition:
14
- Enabled: false
15
-
16
- Metrics/LineLength:
17
- Enabled: false
18
-
19
- # This is a good idea, but does not line up the rest of the lines making it
20
- # harder to read
21
- Style/IndentHash:
22
- Enabled: false
23
-
24
- Style/Next:
25
- Enabled: false
26
-
27
- # If enabled, this cop makes it harder to understand the logic
28
- Style/NonNilCheck:
29
- Enabled: false
30
-
31
- Style/TrailingCommaInLiteral:
32
- Enabled: false
33
-
34
- Style/TrailingCommaInArguments:
35
- Enabled: false
36
-
37
- # Cop's that require ruby >= 1.9
38
- Style/HashSyntax:
39
- Enabled: false
40
-
41
- Style/BracesAroundHashParameters:
42
- Enabled: false
@@ -1,18 +0,0 @@
1
- source ENV['GEM_SOURCE'] || 'https://rubygems.org'
2
-
3
- puppetversion = ENV.key?('PUPPET_VERSION') ? ENV['PUPPET_VERSION'] : ['>= 3.3']
4
- gem 'metadata-json-lint'
5
- gem 'puppet', puppetversion
6
- gem 'puppetlabs_spec_helper', '>= 1.2.0'
7
- gem 'puppet-lint', '>= 1.0.0'
8
- gem 'facter', '>= 1.7.0'
9
- gem 'rspec-puppet'
10
-
11
- # rspec must be v2 for ruby 1.8.7
12
- if RUBY_VERSION >= '1.8.7' && RUBY_VERSION < '1.9'
13
- gem 'rspec', '~> 2.0'
14
- gem 'rake', '~> 10.0'
15
- else
16
- # rubocop requires ruby >= 1.9
17
- gem 'rubocop'
18
- end
@@ -1,89 +0,0 @@
1
- # <%= metadata.name %>
2
-
3
- #### Table of Contents
4
-
5
- 1. [Description](#description)
6
- 1. [Setup - The basics of getting started with <%= metadata.name %>](#setup)
7
- * [What <%= metadata.name %> affects](#what-<%= metadata.name %>-affects)
8
- * [Setup requirements](#setup-requirements)
9
- * [Beginning with <%= metadata.name %>](#beginning-with-<%= metadata.name %>)
10
- 1. [Usage - Configuration options and additional functionality](#usage)
11
- 1. [Reference - An under-the-hood peek at what the module is doing and how](#reference)
12
- 1. [Limitations - OS compatibility, etc.](#limitations)
13
- 1. [Development - Guide for contributing to the module](#development)
14
-
15
- ## Description
16
-
17
- Start with a one- or two-sentence summary of what the module does and/or what
18
- problem it solves. This is your 30-second elevator pitch for your module.
19
- Consider including OS/Puppet version it works with.
20
-
21
- You can give more descriptive information in a second paragraph. This paragraph
22
- should answer the questions: "What does this module *do*?" and "Why would I use
23
- it?" If your module has a range of functionality (installation, configuration,
24
- management, etc.), this is the time to mention it.
25
-
26
- ## Setup
27
-
28
- ### What <%= metadata.name %> affects **OPTIONAL**
29
-
30
- If it's obvious what your module touches, you can skip this section. For
31
- example, folks can probably figure out that your mysql_instance module affects
32
- their MySQL instances.
33
-
34
- If there's more that they should know about, though, this is the place to mention:
35
-
36
- * A list of files, packages, services, or operations that the module will alter,
37
- impact, or execute.
38
- * Dependencies that your module automatically installs.
39
- * Warnings or other important notices.
40
-
41
- ### Setup Requirements **OPTIONAL**
42
-
43
- If your module requires anything extra before setting up (pluginsync enabled,
44
- etc.), mention it here.
45
-
46
- If your most recent release breaks compatibility or requires particular steps
47
- for upgrading, you might want to include an additional "Upgrading" section
48
- here.
49
-
50
- ### Beginning with <%= metadata.name %>
51
-
52
- The very basic steps needed for a user to get the module up and running. This
53
- can include setup steps, if necessary, or it can be an example of the most
54
- basic use of the module.
55
-
56
- ## Usage
57
-
58
- This section is where you describe how to customize, configure, and do the
59
- fancy stuff with your module here. It's especially helpful if you include usage
60
- examples and code samples for doing things with your module.
61
-
62
- ## Reference
63
-
64
- Users need a complete list of your module's classes, types, defined types providers, facts, and functions, along with the parameters for each. You can provide this list either via Puppet Strings code comments or as a complete list in this Reference section.
65
-
66
- * If you are using Puppet Strings code comments, this Reference section should include Strings information so that your users know how to access your documentation.
67
-
68
- * If you are not using Puppet Strings, include a list of all of your classes, defined types, and so on, along with their parameters. Each element in this listing should include:
69
-
70
- * The data type, if applicable.
71
- * A description of what the element does.
72
- * Valid values, if the data type doesn't make it obvious.
73
- * Default value, if any.
74
-
75
- ## Limitations
76
-
77
- This is where you list OS compatibility, version compatibility, etc. If there
78
- are Known Issues, you might want to include them under their own heading here.
79
-
80
- ## Development
81
-
82
- Since your module is awesome, other users will want to play with it. Let them
83
- know what the ground rules for contributing are.
84
-
85
- ## Release Notes/Contributors/Etc. **Optional**
86
-
87
- If you aren't using changelog, put your release notes here (though you should
88
- consider using changelog). You can also add any additional sections you feel
89
- are necessary or important to include here. Please use the `## ` header.
@@ -1,32 +0,0 @@
1
- require 'puppetlabs_spec_helper/rake_tasks'
2
- require 'puppet-lint/tasks/puppet-lint'
3
- require 'metadata-json-lint/rake_task'
4
-
5
- if RUBY_VERSION >= '1.9'
6
- require 'rubocop/rake_task'
7
- RuboCop::RakeTask.new
8
- end
9
-
10
- PuppetLint.configuration.send('disable_80chars')
11
- PuppetLint.configuration.relative = true
12
- PuppetLint.configuration.ignore_paths = ['spec/**/*.pp', 'pkg/**/*.pp']
13
-
14
- desc 'Validate manifests, templates, and ruby files'
15
- task :validate do
16
- Dir['manifests/**/*.pp'].each do |manifest|
17
- sh "puppet parser validate --noop #{manifest}"
18
- end
19
- Dir['spec/**/*.rb', 'lib/**/*.rb'].each do |ruby_file|
20
- sh "ruby -c #{ruby_file}" unless ruby_file =~ %r{spec/fixtures}
21
- end
22
- Dir['templates/**/*.erb'].each do |template|
23
- sh "erb -P -x -T '-' #{template} | ruby -c"
24
- end
25
- end
26
-
27
- desc 'Run lint, validate, and spec tests.'
28
- task :test do
29
- [:lint, :validate, :spec].each do |test|
30
- Rake::Task[test].invoke
31
- end
32
- end
@@ -1,12 +0,0 @@
1
- # The baseline for module testing used by Puppet Inc. is that each manifest
2
- # should have a corresponding test manifest that declares that class or defined
3
- # type.
4
- #
5
- # Tests are then run by using puppet apply --noop (to check for compilation
6
- # errors and view a log of events) or by fully applying the test in a virtual
7
- # environment (to compare the resulting system state to the desired state).
8
- #
9
- # Learn more about module testing here:
10
- # https://docs.puppet.com/guides/tests_smoke.html
11
- #
12
- include ::<%= metadata.name %>
@@ -1,48 +0,0 @@
1
- # Class: <%= metadata.name %>
2
- # ===========================
3
- #
4
- # Full description of class <%= metadata.name %> here.
5
- #
6
- # Parameters
7
- # ----------
8
- #
9
- # Document parameters here.
10
- #
11
- # * `sample parameter`
12
- # Explanation of what this parameter affects and what it defaults to.
13
- # e.g. "Specify one or more upstream ntp servers as an array."
14
- #
15
- # Variables
16
- # ----------
17
- #
18
- # Here you should define a list of variables that this module would require.
19
- #
20
- # * `sample variable`
21
- # Explanation of how this variable affects the function of this class and if
22
- # it has a default. e.g. "The parameter enc_ntp_servers must be set by the
23
- # External Node Classifier as a comma separated list of hostnames." (Note,
24
- # global variables should be avoided in favor of class parameters as
25
- # of Puppet 2.6.)
26
- #
27
- # Examples
28
- # --------
29
- #
30
- # @example
31
- # class { '<%= metadata.name %>':
32
- # servers => [ 'pool.ntp.org', 'ntp.local.company.com' ],
33
- # }
34
- #
35
- # Authors
36
- # -------
37
- #
38
- # Author Name <author@domain.com>
39
- #
40
- # Copyright
41
- # ---------
42
- #
43
- # Copyright <%= Time.now.year %> Your name here, unless otherwise noted.
44
- #
45
- class <%= metadata.name %> {
46
-
47
-
48
- }
@@ -1,6 +0,0 @@
1
- require 'spec_helper'
2
- describe '<%= metadata.name %>' do
3
- context 'with default values for all parameters' do
4
- it { should contain_class('<%= metadata.name %>') }
5
- end
6
- end
@@ -1,695 +0,0 @@
1
- type Puppet::AST = TypeSet[{
2
- pcore_version => '1.0.0',
3
- types => {
4
- Locator => Object[{
5
- attributes => {
6
- 'string' => String,
7
- 'file' => String,
8
- 'line_index' => {
9
- type => Optional[Array[Integer]],
10
- value => undef
11
- }
12
- }
13
- }],
14
- PopsObject => Object[{
15
- }],
16
- Positioned => Object[{
17
- parent => PopsObject,
18
- attributes => {
19
- 'locator' => {
20
- type => Locator,
21
- kind => reference
22
- },
23
- 'offset' => Integer,
24
- 'length' => Integer,
25
- 'file' => {
26
- type => String,
27
- kind => derived,
28
- annotations => {
29
- RubyMethod => { 'body' => '@locator.file' }
30
- }
31
- },
32
- 'line' => {
33
- type => Integer,
34
- kind => derived,
35
- annotations => {
36
- RubyMethod => { 'body' => '@locator.line_for_offset(@offset)' }
37
- }
38
- },
39
- 'pos' => {
40
- type => Integer,
41
- kind => derived,
42
- annotations => {
43
- RubyMethod => { 'body' => '@locator.pos_on_line(@offset)' }
44
- }
45
- }
46
- },
47
- equality => []
48
- }],
49
- Expression => Object[{
50
- parent => Positioned
51
- }],
52
- Nop => Object[{
53
- parent => Expression
54
- }],
55
- BinaryExpression => Object[{
56
- parent => Expression,
57
- attributes => {
58
- 'left_expr' => Expression,
59
- 'right_expr' => Expression
60
- }
61
- }],
62
- UnaryExpression => Object[{
63
- parent => Expression,
64
- attributes => {
65
- 'expr' => Expression
66
- }
67
- }],
68
- ParenthesizedExpression => Object[{
69
- parent => UnaryExpression
70
- }],
71
- NotExpression => Object[{
72
- parent => UnaryExpression
73
- }],
74
- UnaryMinusExpression => Object[{
75
- parent => UnaryExpression
76
- }],
77
- UnfoldExpression => Object[{
78
- parent => UnaryExpression
79
- }],
80
- AssignmentExpression => Object[{
81
- parent => BinaryExpression,
82
- attributes => {
83
- 'operator' => Enum['+=', '-=', '=']
84
- }
85
- }],
86
- ArithmeticExpression => Object[{
87
- parent => BinaryExpression,
88
- attributes => {
89
- 'operator' => Enum['%', '*', '+', '-', '/', '<<', '>>']
90
- }
91
- }],
92
- RelationshipExpression => Object[{
93
- parent => BinaryExpression,
94
- attributes => {
95
- 'operator' => Enum['->', '<-', '<~', '~>']
96
- }
97
- }],
98
- AccessExpression => Object[{
99
- parent => Expression,
100
- attributes => {
101
- 'left_expr' => Expression,
102
- 'keys' => {
103
- type => Array[Expression],
104
- value => []
105
- }
106
- }
107
- }],
108
- ComparisonExpression => Object[{
109
- parent => BinaryExpression,
110
- attributes => {
111
- 'operator' => Enum['!=', '<', '<=', '==', '>', '>=']
112
- }
113
- }],
114
- MatchExpression => Object[{
115
- parent => BinaryExpression,
116
- attributes => {
117
- 'operator' => Enum['!~', '=~']
118
- }
119
- }],
120
- InExpression => Object[{
121
- parent => BinaryExpression
122
- }],
123
- BooleanExpression => Object[{
124
- parent => BinaryExpression
125
- }],
126
- AndExpression => Object[{
127
- parent => BooleanExpression
128
- }],
129
- OrExpression => Object[{
130
- parent => BooleanExpression
131
- }],
132
- LiteralList => Object[{
133
- parent => Expression,
134
- attributes => {
135
- 'values' => {
136
- type => Array[Expression],
137
- value => []
138
- }
139
- }
140
- }],
141
- KeyedEntry => Object[{
142
- parent => Positioned,
143
- attributes => {
144
- 'key' => Expression,
145
- 'value' => Expression
146
- }
147
- }],
148
- LiteralHash => Object[{
149
- parent => Expression,
150
- attributes => {
151
- 'entries' => {
152
- type => Array[KeyedEntry],
153
- value => []
154
- }
155
- }
156
- }],
157
- BlockExpression => Object[{
158
- parent => Expression,
159
- attributes => {
160
- 'statements' => {
161
- type => Array[Expression],
162
- value => []
163
- }
164
- }
165
- }],
166
- CaseOption => Object[{
167
- parent => Expression,
168
- attributes => {
169
- 'values' => Array[Expression, 1, default],
170
- 'then_expr' => {
171
- type => Optional[Expression],
172
- value => undef
173
- }
174
- }
175
- }],
176
- CaseExpression => Object[{
177
- parent => Expression,
178
- attributes => {
179
- 'test' => Expression,
180
- 'options' => {
181
- type => Array[CaseOption],
182
- value => []
183
- }
184
- }
185
- }],
186
- QueryExpression => Object[{
187
- parent => Expression,
188
- attributes => {
189
- 'expr' => {
190
- type => Optional[Expression],
191
- value => undef
192
- }
193
- }
194
- }],
195
- ExportedQuery => Object[{
196
- parent => QueryExpression
197
- }],
198
- VirtualQuery => Object[{
199
- parent => QueryExpression
200
- }],
201
- AbstractAttributeOperation => Object[{
202
- parent => Positioned
203
- }],
204
- AttributeOperation => Object[{
205
- parent => AbstractAttributeOperation,
206
- attributes => {
207
- 'attribute_name' => String,
208
- 'operator' => Enum['+>', '=>'],
209
- 'value_expr' => Expression
210
- }
211
- }],
212
- AttributesOperation => Object[{
213
- parent => AbstractAttributeOperation,
214
- attributes => {
215
- 'expr' => Expression
216
- }
217
- }],
218
- CollectExpression => Object[{
219
- parent => Expression,
220
- attributes => {
221
- 'type_expr' => Expression,
222
- 'query' => QueryExpression,
223
- 'operations' => {
224
- type => Array[AbstractAttributeOperation],
225
- value => []
226
- }
227
- }
228
- }],
229
- Parameter => Object[{
230
- parent => Positioned,
231
- attributes => {
232
- 'name' => String,
233
- 'value' => {
234
- type => Optional[Expression],
235
- value => undef
236
- },
237
- 'type_expr' => {
238
- type => Optional[Expression],
239
- value => undef
240
- },
241
- 'captures_rest' => {
242
- type => Optional[Boolean],
243
- value => undef
244
- }
245
- }
246
- }],
247
- Definition => Object[{
248
- parent => Expression
249
- }],
250
- NamedDefinition => Object[{
251
- parent => Definition,
252
- attributes => {
253
- 'name' => String,
254
- 'parameters' => {
255
- type => Array[Parameter],
256
- value => []
257
- },
258
- 'body' => {
259
- type => Optional[Expression],
260
- value => undef
261
- }
262
- }
263
- }],
264
- FunctionDefinition => Object[{
265
- parent => NamedDefinition,
266
- attributes => {
267
- 'return_type' => {
268
- type => Optional[Expression],
269
- value => undef
270
- }
271
- }
272
- }],
273
- ResourceTypeDefinition => Object[{
274
- parent => NamedDefinition
275
- }],
276
- Application => Object[{
277
- parent => NamedDefinition
278
- }],
279
- QRefDefinition => Object[{
280
- parent => Definition,
281
- attributes => {
282
- 'name' => String
283
- }
284
- }],
285
- TypeAlias => Object[{
286
- parent => QRefDefinition,
287
- attributes => {
288
- 'type_expr' => {
289
- type => Optional[Expression],
290
- value => undef
291
- }
292
- }
293
- }],
294
- TypeMapping => Object[{
295
- parent => Definition,
296
- attributes => {
297
- 'type_expr' => {
298
- type => Optional[Expression],
299
- value => undef
300
- },
301
- 'mapping_expr' => {
302
- type => Optional[Expression],
303
- value => undef
304
- }
305
- }
306
- }],
307
- TypeDefinition => Object[{
308
- parent => QRefDefinition,
309
- attributes => {
310
- 'parent' => {
311
- type => Optional[String],
312
- value => undef
313
- },
314
- 'body' => {
315
- type => Optional[Expression],
316
- value => undef
317
- }
318
- }
319
- }],
320
- NodeDefinition => Object[{
321
- parent => Definition,
322
- attributes => {
323
- 'parent' => {
324
- type => Optional[Expression],
325
- value => undef
326
- },
327
- 'host_matches' => Array[Expression, 1, default],
328
- 'body' => {
329
- type => Optional[Expression],
330
- value => undef
331
- }
332
- }
333
- }],
334
- SiteDefinition => Object[{
335
- parent => Definition,
336
- attributes => {
337
- 'body' => {
338
- type => Optional[Expression],
339
- value => undef
340
- }
341
- }
342
- }],
343
- SubLocatedExpression => Object[{
344
- parent => Expression,
345
- attributes => {
346
- 'expr' => Expression,
347
- 'line_offsets' => {
348
- type => Array[Integer],
349
- value => []
350
- },
351
- 'leading_line_count' => {
352
- type => Optional[Integer],
353
- value => undef
354
- },
355
- 'leading_line_offset' => {
356
- type => Optional[Integer],
357
- value => undef
358
- }
359
- }
360
- }],
361
- HeredocExpression => Object[{
362
- parent => Expression,
363
- attributes => {
364
- 'syntax' => {
365
- type => Optional[String],
366
- value => undef
367
- },
368
- 'text_expr' => Expression
369
- }
370
- }],
371
- HostClassDefinition => Object[{
372
- parent => NamedDefinition,
373
- attributes => {
374
- 'parent_class' => {
375
- type => Optional[String],
376
- value => undef
377
- }
378
- }
379
- }],
380
- PlanDefinition => Object[{
381
- parent => FunctionDefinition,
382
- }],
383
- LambdaExpression => Object[{
384
- parent => Expression,
385
- attributes => {
386
- 'parameters' => {
387
- type => Array[Parameter],
388
- value => []
389
- },
390
- 'body' => {
391
- type => Optional[Expression],
392
- value => undef
393
- },
394
- 'return_type' => {
395
- type => Optional[Expression],
396
- value => undef
397
- }
398
- }
399
- }],
400
- IfExpression => Object[{
401
- parent => Expression,
402
- attributes => {
403
- 'test' => Expression,
404
- 'then_expr' => {
405
- type => Optional[Expression],
406
- value => undef
407
- },
408
- 'else_expr' => {
409
- type => Optional[Expression],
410
- value => undef
411
- }
412
- }
413
- }],
414
- UnlessExpression => Object[{
415
- parent => IfExpression
416
- }],
417
- CallExpression => Object[{
418
- parent => Expression,
419
- attributes => {
420
- 'rval_required' => {
421
- type => Boolean,
422
- value => false
423
- },
424
- 'functor_expr' => Expression,
425
- 'arguments' => {
426
- type => Array[Expression],
427
- value => []
428
- },
429
- 'lambda' => {
430
- type => Optional[Expression],
431
- value => undef
432
- }
433
- }
434
- }],
435
- CallFunctionExpression => Object[{
436
- parent => CallExpression
437
- }],
438
- CallNamedFunctionExpression => Object[{
439
- parent => CallExpression
440
- }],
441
- CallMethodExpression => Object[{
442
- parent => CallExpression
443
- }],
444
- Literal => Object[{
445
- parent => Expression
446
- }],
447
- LiteralValue => Object[{
448
- parent => Literal
449
- }],
450
- LiteralRegularExpression => Object[{
451
- parent => LiteralValue,
452
- attributes => {
453
- 'value' => Any,
454
- 'pattern' => String
455
- }
456
- }],
457
- LiteralString => Object[{
458
- parent => LiteralValue,
459
- attributes => {
460
- 'value' => String
461
- }
462
- }],
463
- LiteralNumber => Object[{
464
- parent => LiteralValue
465
- }],
466
- LiteralInteger => Object[{
467
- parent => LiteralNumber,
468
- attributes => {
469
- 'radix' => {
470
- type => Integer,
471
- value => 10
472
- },
473
- 'value' => Integer
474
- }
475
- }],
476
- LiteralFloat => Object[{
477
- parent => LiteralNumber,
478
- attributes => {
479
- 'value' => Float
480
- }
481
- }],
482
- LiteralUndef => Object[{
483
- parent => Literal
484
- }],
485
- LiteralDefault => Object[{
486
- parent => Literal
487
- }],
488
- LiteralBoolean => Object[{
489
- parent => LiteralValue,
490
- attributes => {
491
- 'value' => Boolean
492
- }
493
- }],
494
- TextExpression => Object[{
495
- parent => UnaryExpression
496
- }],
497
- ConcatenatedString => Object[{
498
- parent => Expression,
499
- attributes => {
500
- 'segments' => {
501
- type => Array[Expression],
502
- value => []
503
- }
504
- }
505
- }],
506
- QualifiedName => Object[{
507
- parent => LiteralValue,
508
- attributes => {
509
- 'value' => String
510
- }
511
- }],
512
- ReservedWord => Object[{
513
- parent => LiteralValue,
514
- attributes => {
515
- 'word' => String,
516
- 'future' => {
517
- type => Optional[Boolean],
518
- value => undef
519
- }
520
- }
521
- }],
522
- QualifiedReference => Object[{
523
- parent => LiteralValue,
524
- attributes => {
525
- 'cased_value' => String,
526
- 'value' => {
527
- type => String,
528
- kind => derived,
529
- annotations => {
530
- RubyMethod => { 'body' => '@cased_value.downcase' }
531
- }
532
- }
533
- }
534
- }],
535
- VariableExpression => Object[{
536
- parent => UnaryExpression
537
- }],
538
- EppExpression => Object[{
539
- parent => Expression,
540
- attributes => {
541
- 'parameters_specified' => {
542
- type => Optional[Boolean],
543
- value => undef
544
- },
545
- 'body' => {
546
- type => Optional[Expression],
547
- value => undef
548
- }
549
- }
550
- }],
551
- RenderStringExpression => Object[{
552
- parent => LiteralString
553
- }],
554
- RenderExpression => Object[{
555
- parent => UnaryExpression
556
- }],
557
- ResourceBody => Object[{
558
- parent => Positioned,
559
- attributes => {
560
- 'title' => {
561
- type => Optional[Expression],
562
- value => undef
563
- },
564
- 'operations' => {
565
- type => Array[AbstractAttributeOperation],
566
- value => []
567
- }
568
- }
569
- }],
570
- AbstractResource => Object[{
571
- parent => Expression,
572
- attributes => {
573
- 'form' => {
574
- type => Enum['exported', 'regular', 'virtual'],
575
- value => 'regular'
576
- },
577
- 'virtual' => {
578
- type => Boolean,
579
- kind => derived,
580
- annotations => {
581
- RubyMethod => { 'body' => "@form == 'virtual' || @form == 'exported'" }
582
- }
583
- },
584
- 'exported' => {
585
- type => Boolean,
586
- kind => derived,
587
- annotations => {
588
- RubyMethod => { 'body' => "@form == 'exported'" }
589
- }
590
- }
591
- }
592
- }],
593
- ResourceExpression => Object[{
594
- parent => AbstractResource,
595
- attributes => {
596
- 'type_name' => Expression,
597
- 'bodies' => {
598
- type => Array[ResourceBody],
599
- value => []
600
- }
601
- }
602
- }],
603
- CapabilityMapping => Object[{
604
- parent => Definition,
605
- attributes => {
606
- 'kind' => String,
607
- 'capability' => String,
608
- 'component' => Expression,
609
- 'mappings' => {
610
- type => Array[AbstractAttributeOperation],
611
- value => []
612
- }
613
- }
614
- }],
615
- ResourceDefaultsExpression => Object[{
616
- parent => AbstractResource,
617
- attributes => {
618
- 'type_ref' => {
619
- type => Optional[Expression],
620
- value => undef
621
- },
622
- 'operations' => {
623
- type => Array[AbstractAttributeOperation],
624
- value => []
625
- }
626
- }
627
- }],
628
- ResourceOverrideExpression => Object[{
629
- parent => AbstractResource,
630
- attributes => {
631
- 'resources' => Expression,
632
- 'operations' => {
633
- type => Array[AbstractAttributeOperation],
634
- value => []
635
- }
636
- }
637
- }],
638
- SelectorEntry => Object[{
639
- parent => Positioned,
640
- attributes => {
641
- 'matching_expr' => Expression,
642
- 'value_expr' => Expression
643
- }
644
- }],
645
- SelectorExpression => Object[{
646
- parent => Expression,
647
- attributes => {
648
- 'left_expr' => Expression,
649
- 'selectors' => {
650
- type => Array[SelectorEntry],
651
- value => []
652
- }
653
- }
654
- }],
655
- NamedAccessExpression => Object[{
656
- parent => BinaryExpression
657
- }],
658
- Program => Object[{
659
- parent => PopsObject,
660
- attributes => {
661
- 'body' => {
662
- type => Optional[Expression],
663
- value => undef
664
- },
665
- 'definitions' => {
666
- type => Array[Definition],
667
- kind => reference,
668
- value => []
669
- },
670
- 'source_text' => {
671
- type => String,
672
- kind => derived,
673
- annotations => {
674
- RubyMethod => { 'body' => '@locator.string' }
675
- }
676
- },
677
- 'source_ref' => {
678
- type => String,
679
- kind => derived,
680
- annotations => {
681
- RubyMethod => { 'body' => '@locator.file' }
682
- }
683
- },
684
- 'line_offsets' => {
685
- type => Array[Integer],
686
- kind => derived,
687
- annotations => {
688
- RubyMethod => { 'body' => '@locator.line_index' }
689
- }
690
- },
691
- 'locator' => Locator
692
- }
693
- }]
694
- }
695
- }]