corl 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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}