corl 0.4.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.
Files changed (132) hide show
  1. data/.document +5 -0
  2. data/.gitmodules +4 -0
  3. data/Gemfile +24 -0
  4. data/Gemfile.lock +123 -0
  5. data/LICENSE.txt +674 -0
  6. data/README.rdoc +27 -0
  7. data/Rakefile +78 -0
  8. data/VERSION +1 -0
  9. data/bin/corl +55 -0
  10. data/corl.gemspec +228 -0
  11. data/lib/corl/action/add.rb +69 -0
  12. data/lib/corl/action/bootstrap.rb +83 -0
  13. data/lib/corl/action/clone.rb +40 -0
  14. data/lib/corl/action/create.rb +55 -0
  15. data/lib/corl/action/exec.rb +41 -0
  16. data/lib/corl/action/extract.rb +49 -0
  17. data/lib/corl/action/image.rb +30 -0
  18. data/lib/corl/action/images.rb +55 -0
  19. data/lib/corl/action/lookup.rb +35 -0
  20. data/lib/corl/action/machines.rb +51 -0
  21. data/lib/corl/action/provision.rb +37 -0
  22. data/lib/corl/action/remove.rb +51 -0
  23. data/lib/corl/action/save.rb +53 -0
  24. data/lib/corl/action/seed.rb +115 -0
  25. data/lib/corl/action/spawn.rb +75 -0
  26. data/lib/corl/action/start.rb +37 -0
  27. data/lib/corl/action/stop.rb +30 -0
  28. data/lib/corl/action/update.rb +37 -0
  29. data/lib/corl/command/shell.rb +164 -0
  30. data/lib/corl/configuration/file.rb +386 -0
  31. data/lib/corl/event/puppet.rb +90 -0
  32. data/lib/corl/event/regex.rb +52 -0
  33. data/lib/corl/extension/puppetloader.rb +24 -0
  34. data/lib/corl/machine/fog.rb +310 -0
  35. data/lib/corl/machine/physical.rb +161 -0
  36. data/lib/corl/network/default.rb +26 -0
  37. data/lib/corl/node/aws.rb +90 -0
  38. data/lib/corl/node/fog.rb +198 -0
  39. data/lib/corl/node/google.rb +115 -0
  40. data/lib/corl/node/local.rb +26 -0
  41. data/lib/corl/node/rackspace.rb +89 -0
  42. data/lib/corl/project/git.rb +465 -0
  43. data/lib/corl/project/github.rb +108 -0
  44. data/lib/corl/provisioner/puppetnode/resource.rb +245 -0
  45. data/lib/corl/provisioner/puppetnode/resource_group.rb +205 -0
  46. data/lib/corl/provisioner/puppetnode.rb +407 -0
  47. data/lib/corl/template/environment.rb +73 -0
  48. data/lib/corl/template/json.rb +16 -0
  49. data/lib/corl/template/wrapper.rb +16 -0
  50. data/lib/corl/template/yaml.rb +16 -0
  51. data/lib/corl/translator/json.rb +27 -0
  52. data/lib/corl/translator/yaml.rb +27 -0
  53. data/lib/corl.rb +173 -0
  54. data/lib/corl_core/codes.rb +107 -0
  55. data/lib/corl_core/config/collection.rb +57 -0
  56. data/lib/corl_core/config/options.rb +70 -0
  57. data/lib/corl_core/config.rb +337 -0
  58. data/lib/corl_core/core.rb +59 -0
  59. data/lib/corl_core/corl.rb +254 -0
  60. data/lib/corl_core/errors.rb +84 -0
  61. data/lib/corl_core/facade.rb +126 -0
  62. data/lib/corl_core/gems.rb +72 -0
  63. data/lib/corl_core/manager.rb +425 -0
  64. data/lib/corl_core/mixin/action/commit.rb +58 -0
  65. data/lib/corl_core/mixin/action/keypair.rb +105 -0
  66. data/lib/corl_core/mixin/action/node.rb +129 -0
  67. data/lib/corl_core/mixin/action/project.rb +53 -0
  68. data/lib/corl_core/mixin/action/push.rb +52 -0
  69. data/lib/corl_core/mixin/config/collection.rb +53 -0
  70. data/lib/corl_core/mixin/config/ops.rb +53 -0
  71. data/lib/corl_core/mixin/config/options.rb +39 -0
  72. data/lib/corl_core/mixin/lookup.rb +196 -0
  73. data/lib/corl_core/mixin/macro/object_interface.rb +361 -0
  74. data/lib/corl_core/mixin/macro/plugin_interface.rb +380 -0
  75. data/lib/corl_core/mixin/settings.rb +46 -0
  76. data/lib/corl_core/mixin/sub_config.rb +148 -0
  77. data/lib/corl_core/mod/hash.rb +29 -0
  78. data/lib/corl_core/mod/hiera_backend.rb +63 -0
  79. data/lib/corl_core/plugin/action.rb +381 -0
  80. data/lib/corl_core/plugin/base.rb +374 -0
  81. data/lib/corl_core/plugin/command.rb +98 -0
  82. data/lib/corl_core/plugin/configuration.rb +177 -0
  83. data/lib/corl_core/plugin/event.rb +53 -0
  84. data/lib/corl_core/plugin/extension.rb +12 -0
  85. data/lib/corl_core/plugin/machine.rb +266 -0
  86. data/lib/corl_core/plugin/network.rb +359 -0
  87. data/lib/corl_core/plugin/node.rb +904 -0
  88. data/lib/corl_core/plugin/project.rb +927 -0
  89. data/lib/corl_core/plugin/provisioner.rb +51 -0
  90. data/lib/corl_core/plugin/template.rb +80 -0
  91. data/lib/corl_core/plugin/translator.rb +38 -0
  92. data/lib/corl_core/util/cli.rb +352 -0
  93. data/lib/corl_core/util/data.rb +404 -0
  94. data/lib/corl_core/util/disk.rb +114 -0
  95. data/lib/corl_core/util/git.rb +47 -0
  96. data/lib/corl_core/util/interface.rb +319 -0
  97. data/lib/corl_core/util/liquid.rb +17 -0
  98. data/lib/corl_core/util/package.rb +93 -0
  99. data/lib/corl_core/util/shell.rb +239 -0
  100. data/lib/corl_core/util/ssh.rb +286 -0
  101. data/lib/facter/corl_config_ready.rb +13 -0
  102. data/lib/facter/corl_exists.rb +15 -0
  103. data/lib/facter/corl_network.rb +17 -0
  104. data/lib/hiera/corl_logger.rb +18 -0
  105. data/lib/puppet/indirector/corl.rb +27 -0
  106. data/lib/puppet/indirector/data_binding/corl.rb +6 -0
  107. data/lib/puppet/parser/functions/config_initialized.rb +26 -0
  108. data/lib/puppet/parser/functions/corl_include.rb +44 -0
  109. data/lib/puppet/parser/functions/corl_resources.rb +58 -0
  110. data/lib/puppet/parser/functions/deep_merge.rb +21 -0
  111. data/lib/puppet/parser/functions/ensure.rb +29 -0
  112. data/lib/puppet/parser/functions/file_exists.rb +19 -0
  113. data/lib/puppet/parser/functions/global_array.rb +35 -0
  114. data/lib/puppet/parser/functions/global_hash.rb +35 -0
  115. data/lib/puppet/parser/functions/global_options.rb +23 -0
  116. data/lib/puppet/parser/functions/global_param.rb +43 -0
  117. data/lib/puppet/parser/functions/interpolate.rb +26 -0
  118. data/lib/puppet/parser/functions/is_false.rb +21 -0
  119. data/lib/puppet/parser/functions/is_true.rb +21 -0
  120. data/lib/puppet/parser/functions/module_array.rb +38 -0
  121. data/lib/puppet/parser/functions/module_hash.rb +38 -0
  122. data/lib/puppet/parser/functions/module_options.rb +23 -0
  123. data/lib/puppet/parser/functions/module_param.rb +48 -0
  124. data/lib/puppet/parser/functions/name.rb +21 -0
  125. data/lib/puppet/parser/functions/render.rb +33 -0
  126. data/lib/puppet/parser/functions/value.rb +21 -0
  127. data/locales/en.yml +232 -0
  128. data/spec/corl_core/interface_spec.rb +489 -0
  129. data/spec/corl_mock_input.rb +29 -0
  130. data/spec/corl_test_kernel.rb +22 -0
  131. data/spec/spec_helper.rb +15 -0
  132. metadata +406 -0
@@ -0,0 +1,43 @@
1
+ #
2
+ # global_param.rb
3
+ #
4
+ # This function performs a lookup for a variable value in various locations
5
+ # following this order
6
+ # - Hiera backend, if present (no prefix)
7
+ # - ::global::default::varname
8
+ # - ::varname
9
+ # - {default parameter}
10
+ #
11
+ module Puppet::Parser::Functions
12
+ newfunction(:global_param, :type => :rvalue, :doc => <<-EOS
13
+ This function performs a lookup for a variable value in various locations following this order:
14
+ - Hiera backend, if present (no prefix)
15
+ - ::global::default::varname
16
+ - ::varname
17
+ - {default parameter}
18
+ If no value is found in the defined sources, it returns an empty string ('')
19
+ EOS
20
+ ) do |args|
21
+
22
+ value = nil
23
+ CORL.run do
24
+ raise(Puppet::ParseError, "global_param(): Define at least the variable name " +
25
+ "given (#{args.size} for 1)") if args.size < 1
26
+
27
+ var_name = args[0]
28
+ default = ( args.size > 1 ? args[1] : '' )
29
+ options = ( args.size > 2 ? args[2] : {} )
30
+
31
+ config = CORL::Config.init_flat(options, [ :param, :global_param ], {
32
+ :hiera_scope => self,
33
+ :puppet_scope => self,
34
+ :search => 'core::default',
35
+ :init_fact => 'hiera_ready',
36
+ :force => true,
37
+ :merge => true
38
+ })
39
+ value = CORL::Config.lookup(var_name, default, config)
40
+ end
41
+ return value
42
+ end
43
+ end
@@ -0,0 +1,26 @@
1
+ #
2
+ # interpolate.rb
3
+ #
4
+ # Interpolate values from one hash to another for configuration injection.
5
+ #
6
+ module Puppet::Parser::Functions
7
+ newfunction(:interpolate, :type => :rvalue, :doc => <<-EOS
8
+ This function interpolates values from one hash to another for configuration injections.
9
+ EOS
10
+ ) do |args|
11
+
12
+ value = nil
13
+ CORL.run do
14
+ raise(Puppet::ParseError, "interpolate(): Define at least a property name with optional source configurations " +
15
+ "given (#{args.size} for 2)") if args.size < 1
16
+
17
+ value = args[0]
18
+ data = ( args.size > 1 ? args[1] : {} )
19
+ options = ( args.size > 2 ? args[2] : {} )
20
+
21
+ config = CORL::Config.init_flat(options, [ :data, :interpolate ])
22
+ value = CORL::Util::Data.interpolate(value, data, config.options)
23
+ end
24
+ return value
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ #
2
+ # is_false.rb
3
+ #
4
+ # Checks whether a given string or boolean value is false.
5
+ #
6
+ module Puppet::Parser::Functions
7
+ newfunction(:is_false, :type => :rvalue, :doc => <<-EOS
8
+ This function checks whether a given value is false.
9
+ EOS
10
+ ) do |args|
11
+
12
+ value = nil
13
+ CORL.run do
14
+ raise(Puppet::ParseError, "is_false(): Must have a value to check; " +
15
+ "given (#{args.size} for 1)") if args.size < 1
16
+
17
+ value = CORL::Util::Data.false?(args[0])
18
+ end
19
+ return value
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ #
2
+ # is_true.rb
3
+ #
4
+ # Checks whether a given string or boolean value is true.
5
+ #
6
+ module Puppet::Parser::Functions
7
+ newfunction(:is_true, :type => :rvalue, :doc => <<-EOS
8
+ This function checks whether a given value is true.
9
+ EOS
10
+ ) do |args|
11
+
12
+ value = nil
13
+ CORL.run do
14
+ raise(Puppet::ParseError, "is_true(): Must have a value to check; " +
15
+ "given (#{args.size} for 1)") if args.size < 1
16
+
17
+ value = CORL::Util::Data.true?(args[0])
18
+ end
19
+ return value
20
+ end
21
+ end
@@ -0,0 +1,38 @@
1
+ #
2
+ # module_array.rb
3
+ #
4
+ module Puppet::Parser::Functions
5
+ newfunction(:module_array, :type => :rvalue, :doc => <<-EOS
6
+ This function performs a lookup for a variable value in various locations:
7
+ See: module_params()
8
+ If no value is found in the defined sources, it returns an empty array ([])
9
+ EOS
10
+ ) do |args|
11
+
12
+ value = nil
13
+ CORL.run do
14
+ raise(Puppet::ParseError, "module_array(): Define at least the variable name " +
15
+ "given (#{args.size} for 1)") if args.size < 1
16
+
17
+ var_name = args[0]
18
+ default_value = ( args.size > 1 ? args[1] : [] )
19
+ options = ( args.size > 2 ? args[2] : {} )
20
+
21
+ module_name = self.source.module_name
22
+ module_var_name = "#{module_name}::#{var_name}"
23
+ default_var_name = "#{module_name}::default::#{var_name}"
24
+
25
+ config = CORL::Config.init(options, [ :param, :module_array ], module_name, {
26
+ :hiera_scope => self,
27
+ :puppet_scope => self,
28
+ :search => 'core::default',
29
+ :search_name => false,
30
+ :init_fact => 'hiera_ready',
31
+ :force => true,
32
+ :merge => true
33
+ })
34
+ value = CORL::Config.lookup_array([ module_var_name, default_var_name ], default, config)
35
+ end
36
+ return value
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ #
2
+ # module_hash.rb
3
+ #
4
+ module Puppet::Parser::Functions
5
+ newfunction(:module_hash, :type => :rvalue, :doc => <<-EOS
6
+ This function performs a lookup for a variable value in various locations:
7
+ See: module_params()
8
+ If no value is found in the defined sources, it returns an empty hash ({})
9
+ EOS
10
+ ) do |args|
11
+
12
+ value = nil
13
+ CORL.run do
14
+ raise(Puppet::ParseError, "module_hash(): Define at least the variable name " +
15
+ "given (#{args.size} for 1)") if args.size < 1
16
+
17
+ var_name = args[0]
18
+ default_value = ( args.size > 1 ? args[1] : {} )
19
+ options = ( args.size > 2 ? args[2] : {} )
20
+
21
+ module_name = self.source.module_name
22
+ module_var_name = "#{module_name}::#{var_name}"
23
+ default_var_name = "#{module_name}::default::#{var_name}"
24
+
25
+ config = CORL::Config.init(options, [ :param, :module_hash ], module_name, {
26
+ :hiera_scope => self,
27
+ :puppet_scope => self,
28
+ :search => 'core::default',
29
+ :search_name => false,
30
+ :init_fact => 'hiera_ready',
31
+ :force => true,
32
+ :merge => true
33
+ })
34
+ value = CORL::Config.lookup_hash([ module_var_name, default_var_name ], default, config)
35
+ end
36
+ return value
37
+ end
38
+ end
@@ -0,0 +1,23 @@
1
+ #
2
+ # module_options.rb
3
+ #
4
+ # This function sets module level default options for other functions.
5
+ #
6
+ module Puppet::Parser::Functions
7
+ newfunction(:module_options, :doc => <<-EOS
8
+ This function sets module level default options for other functions:
9
+ EOS
10
+ ) do |args|
11
+
12
+ CORL.run do
13
+ raise(Puppet::ParseError, "module_options(): Define a context name and at least one option name/value pair: " +
14
+ "given (#{args.size} for 2)") if args.size < 2
15
+
16
+ contexts = args[0]
17
+ options = args[1]
18
+ force = ( args[2] ? true : false )
19
+
20
+ CORL::Config.set_options(CORL::Util::Data.prefix(self.source.module_name, contexts), options, force)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,48 @@
1
+ #
2
+ # module_param.rb
3
+ #
4
+ # This function performs a lookup for a variable value in various locations
5
+ # following this order
6
+ # - Hiera backend, if present (modulename prefix)
7
+ # - ::corl::default::{modulename}::{varname} (configurable!!)
8
+ # - ::{modulename}::default::{varname}
9
+ # - {default parameter}
10
+ #
11
+ module Puppet::Parser::Functions
12
+ newfunction(:module_param, :type => :rvalue, :doc => <<-EOS
13
+ This function performs a lookup for a variable value in various locations following this order:
14
+ - Hiera backend, if present (modulename prefix)
15
+ - ::data::default::{modulename}_{varname} (configurable!!)
16
+ - ::{modulename}::default::{varname}
17
+ - {default parameter}
18
+ If no value is found in the defined sources, it returns an empty string ('')
19
+ EOS
20
+ ) do |args|
21
+
22
+ value = nil
23
+ CORL.run do
24
+ raise(Puppet::ParseError, "module_param(): Define at least the variable name " +
25
+ "given (#{args.size} for 1)") if args.size < 1
26
+
27
+ var_name = args[0]
28
+ default = ( args.size > 1 ? args[1] : '' )
29
+ options = ( args.size > 2 ? args[2] : {} )
30
+
31
+ module_name = self.source.module_name
32
+ module_var_name = "#{module_name}::#{var_name}"
33
+ default_var_name = "#{module_name}::default::#{var_name}"
34
+
35
+ config = CORL::Config.init(options, [ :param, :module_param ], module_name, {
36
+ :hiera_scope => self,
37
+ :puppet_scope => self,
38
+ :search => 'core::default',
39
+ :search_name => false,
40
+ :init_fact => 'hiera_ready',
41
+ :force => true,
42
+ :merge => true
43
+ })
44
+ value = CORL::Config.lookup([ module_var_name, default_var_name ], default, config)
45
+ end
46
+ return value
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ #
2
+ # name.rb
3
+ #
4
+ # Returns a standardized form of a given resource name.
5
+ #
6
+ module Puppet::Parser::Functions
7
+ newfunction(:name, :type => :rvalue, :doc => <<-EOS
8
+ This function returns a standardized form of a given resource name.
9
+ EOS
10
+ ) do |args|
11
+
12
+ name = nil
13
+ CORL.run do
14
+ raise(Puppet::ParseError, "name(): Must have a resource name specified; " +
15
+ "given (#{args.size} for 1)") if args.size < 1
16
+
17
+ name = CORL.provisioner(:puppet).to_name(args[0])
18
+ end
19
+ return name
20
+ end
21
+ end
@@ -0,0 +1,33 @@
1
+ #
2
+ # render.rb
3
+ #
4
+ # Returns the string-ified form of a given value or set of values.
5
+ #
6
+ module Puppet::Parser::Functions
7
+ newfunction(:render, :type => :rvalue, :doc => <<-EOS
8
+ This function returns the string-ified form of a given value.
9
+ EOS
10
+ ) do |args|
11
+
12
+ value = nil
13
+ CORL.run do
14
+ raise(Puppet::ParseError, "render(): Must have a template class name and an optional source value specified; " +
15
+ "given (#{args.size} for 2)") if args.size < 1
16
+
17
+ class_name = args[0]
18
+ data = ( args.size > 1 ? args[1] : {} )
19
+ options = ( args.size > 2 ? args[2] : {} )
20
+
21
+ config = CORL::Config.init_flat(options, [ :data, :render ], {
22
+ :hiera_scope => self,
23
+ :puppet_scope => self,
24
+ :search => 'core::default',
25
+ :init_fact => 'hiera_ready',
26
+ :force => true,
27
+ :merge => true
28
+ })
29
+ value = CORL.template(class_name, config).render(data)
30
+ end
31
+ return value
32
+ end
33
+ end
@@ -0,0 +1,21 @@
1
+ #
2
+ # value.rb
3
+ #
4
+ # Returns the internal form of a given value.
5
+ #
6
+ module Puppet::Parser::Functions
7
+ newfunction(:value, :type => :rvalue, :doc => <<-EOS
8
+ This function returns the internal form of a given value.
9
+ EOS
10
+ ) do |args|
11
+
12
+ value = nil
13
+ CORL.run do
14
+ raise(Puppet::ParseError, "value(): Must have a source value specified; " +
15
+ "given (#{args.size} for 1)") if args.size < 1
16
+
17
+ value = CORL::Util::Data.value(args[0])
18
+ end
19
+ return value
20
+ end
21
+ end
data/locales/en.yml ADDED
@@ -0,0 +1,232 @@
1
+ en:
2
+ corl:
3
+ errors:
4
+ batch_error: |-
5
+ An issue was encountered during batch processing
6
+ core:
7
+ util:
8
+ cli:
9
+ options:
10
+ help: |-
11
+ Display help information for this command
12
+ log_level: |-
13
+ Set the logging level for this execution run
14
+ encoded: |-
15
+ Optional encoded parameter set that contains default action settings (machine use only)
16
+ parse:
17
+ error: |-
18
+ There was a problem with the command arguments given
19
+ batch:
20
+ unexpected_error: |
21
+ There was a problem with batch %{process}: %{message}
22
+ corl_error: |
23
+ There was a problem with batch %{process}: %{message}
24
+ mixins:
25
+ project:
26
+ options:
27
+ provider: |-
28
+ CORL plugin provider to use for this project (default %{default_value})
29
+ reference: |-
30
+ Project URL or reference string to set as primary remote (default %{default_value})
31
+ revision: |-
32
+ Revision or branch to load (default %{default_value})
33
+ commit:
34
+ options:
35
+ commit: |-
36
+ Commit any uncommitted changes (default %{default_value})
37
+ empty: |-
38
+ Allow commits with no changes (default %{default_value})
39
+ message: |-
40
+ Commit message (defaults to auto generated commit information)
41
+ author: |-
42
+ Author of the changes being committed if different from the committer
43
+ propogate: |-
44
+ Propogate commits throughout the project tree (default %{default_value})
45
+ push:
46
+ options:
47
+ push: |-
48
+ Push changes to remote server (default %{default_value})
49
+ propogate: |-
50
+ Propogate pushes to the remote throughout the project tree (default %{default_value})
51
+ remote: |-
52
+ Remote name to push to (default %{default_value})
53
+ revision: |-
54
+ Branch to push (default %{default_value})
55
+ node:
56
+ options:
57
+ parallel: |-
58
+ Enable parallelism of node action execution (default %{default_value})
59
+ net_provider: |-
60
+ CORL network provider to use for managing cloud nodes (default %{default_value})
61
+ node_provider: |-
62
+ Default to using a specific node provider but individual node references can override (default %{default_value})
63
+ nodes: |-
64
+ Optional nodes on which to execute this action
65
+ errors:
66
+ network_provider: |-
67
+ Network plugin provider %{value} is not loaded >> Pick from the following: %{choices}
68
+ node_provider: |-
69
+ Node plugin provider %{value} is not loaded >> Pick from the following: %{choices}
70
+ nodes: |-
71
+ Node reference %{value} failed to parse or provider %{provider} isn't loaded (%{name})
72
+ keypair:
73
+ options:
74
+ private_key: |-
75
+ Optional existing private SSH key to use for SSH communication (new keys are generated by default)
76
+ require_password: |-
77
+ Require and prompt for a password for generated keys (default %{default_value})
78
+ key_type: |-
79
+ Type of SSH key to generate (default %{default_value})
80
+ key_bits: |-
81
+ Strength of generated key encryption in bits (default %{default_value})
82
+ key_comment: |-
83
+ Optional key comment (attached at the end of the public key)
84
+ errors:
85
+ private_key_not_found: |-
86
+ Private key %{value} not found
87
+ private_key_parse_error: |-
88
+ Private key %{value} failed to parse and can not be accepted as a valid private SSH key
89
+ key_type: |-
90
+ SSH key type %{value} not supported >> Pick from the following: %{choices}
91
+ key_bits: |-
92
+ Encryption strength must be greater than %{required} bits (%{value} specified)
93
+ no_password: |-
94
+ Password verification of private key was terminated (verification required to use encrypted SSH keys)
95
+ exec:
96
+ help:
97
+ usage: |-
98
+ Usage
99
+ header: |-
100
+ Available actions
101
+ footer: |-
102
+ For help on any individual action run `corl <action> -h`
103
+ errors:
104
+ missing_argument: |-
105
+ Argument <%{name}> must be specified
106
+ actions:
107
+ extract:
108
+ options:
109
+ path: |-
110
+ Base path in which to extract the encoded data
111
+ encoded: |-
112
+ Encoded data to be extracted into the base path
113
+ errors:
114
+ path: |-
115
+ "Base path for extracted files must be an existing directory"
116
+ encoded: |-
117
+ "Data is either not properly encoded or is empty %{value}"
118
+ create:
119
+ options:
120
+ reference: |-
121
+ Git repository URL of CORL cloud to start project from (default %{default_value})
122
+ revision: |-
123
+ Revision or branch to initialize the project with (default %{default_value})
124
+ path: |-
125
+ Project path (default %{default_value})
126
+ start: |-
127
+ Creating a new CORL cloud at %{path} from %{reference}
128
+ add:
129
+ options:
130
+ sub_reference: |-
131
+ Repository URL of CORL component (module or library) to include in the project
132
+ sub_path: |-
133
+ Subproject path
134
+ editable: |-
135
+ Whether or not this sub project should be added as an editable remote (default %{default_value})
136
+ start: |-
137
+ Adding new subproject from %{sub_reference} at %{sub_path}
138
+ remove:
139
+ options:
140
+ sub_path: |-
141
+ Subproject path
142
+ start: |-
143
+ Removing existing subproject at %{sub_path}
144
+ update:
145
+ start: |-
146
+ Starting update run from provider %{project_provider} (ref: %{reference} rev: %{revision})
147
+ provision: |-
148
+ Running provisioning updates on %{node_name} from node provider %{node_provider}
149
+ save:
150
+ options:
151
+ files: |-
152
+ Optional space separated list of files to save
153
+ start: |-
154
+ Saving project changes with provider %{project_provider} (ref: %{reference} rev: %{revision})
155
+ images:
156
+ options:
157
+ match_case: |-
158
+ Match case on any search terms given when searching for images (default %{default_value})
159
+ require_all: |-
160
+ Require all search terms to be present in image descriptions to be included (default %{default_value})
161
+ provider: |-
162
+ Node provider to retrieve images for
163
+ search: |-
164
+ Optional array of search terms to filter image results
165
+ start: |-
166
+ Retrieving a list of defined images from %{node_provider}
167
+ results: |-
168
+ Total of %{images} images found
169
+ machines:
170
+ options:
171
+ node_provider: |-
172
+ Node provider to retrieve machine types
173
+ start: |-
174
+ Retrieving a list of available machines from %{node_provider}
175
+ results: |-
176
+ Total of %{machines} machine types found
177
+ spawn:
178
+ options:
179
+ parallel: |-
180
+ Enable or disable parallelism of node creation (default %{default_value})
181
+ seed: |-
182
+ CORL project reference with cloud project to seed new machines with (default %{default_value})
183
+ region: |-
184
+ Machine provider region in which to create the machines (defaults to first defined in provider)
185
+ machine_type: |-
186
+ Provider ID of machine type to create (defaults to first defined in provider - usually smallest)
187
+ provider: |-
188
+ Create machines with this node provider
189
+ image: |-
190
+ Provider ID of operating system image on which to initialize the new machines
191
+ hostnames: |-
192
+ Hostnames of machines to create on provider infrastructure
193
+ start: |-
194
+ Spawning new machines on %{provider}
195
+ bootstrap:
196
+ options:
197
+ bootstrap_path: |-
198
+ Bootstrap script top level local directory (default %{default_value})
199
+ bootstrap_init: |-
200
+ Gateway bootstrap script within the bootstrap project directory (default %{default_value})
201
+ bootstrap_glob: |-
202
+ Path glob to use in searching bootstrap scripts for remote execution (default %{default_value})
203
+ auth_files: |-
204
+ Any additional authorization or state files to pass to the node during bootstrap (relative to local home)
205
+ home_env_var: |-
206
+ Home directory environment variable on remote server (default %{default_value})
207
+ home: |-
208
+ Specified home directory on remote server (default %{default_value})
209
+ bootstrap_nodes: |-
210
+ Node references to bootstrap
211
+ errors:
212
+ bootstrap_path: |-
213
+ Bootstrap path must be an existing directory
214
+ auth_files: |-
215
+ Authorization file %{value} does not exist on the local system
216
+ bootstrap_nodes: |-
217
+ Provider %{node_provider} node %{name} is not a valid node to bootstrap (%{value} given)
218
+ start: |-
219
+ Starting bootstrap of machine %{hostname} (%{id})
220
+ success: |-
221
+ Machine %{hostname} (%{id}) successfully bootstrapped
222
+ exec:
223
+ options:
224
+ command: |-
225
+ Command line executable and arguments to execute on machine
226
+ seed:
227
+ options:
228
+ home: |-
229
+ Home directory in which to initialize the deploy SSH keys (default %default_value})
230
+ errors:
231
+ project_reference: |-
232
+ Project reference %{value} failed to parse or provider %{provider} isn't loaded >> Possible providers: %{choices}