corl 0.4.0 → 0.4.1

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 (122) hide show
  1. data/Gemfile +5 -10
  2. data/Gemfile.lock +13 -11
  3. data/README.rdoc +1 -1
  4. data/Rakefile +3 -3
  5. data/VERSION +1 -1
  6. data/bin/corl +2 -54
  7. data/bootstrap/bootstrap.sh +91 -0
  8. data/bootstrap/lib/shell/LICENSE.txt +674 -0
  9. data/bootstrap/lib/shell/command.sh +214 -0
  10. data/bootstrap/lib/shell/filesystem.sh +139 -0
  11. data/bootstrap/lib/shell/load.sh +73 -0
  12. data/bootstrap/lib/shell/os.sh +67 -0
  13. data/bootstrap/lib/shell/script.sh +160 -0
  14. data/bootstrap/lib/shell/starter.sh +64 -0
  15. data/bootstrap/lib/shell/validators.sh +50 -0
  16. data/bootstrap/os/ubuntu/00_base.sh +5 -0
  17. data/bootstrap/os/ubuntu/01_git.sh +5 -0
  18. data/bootstrap/os/ubuntu/05_ruby.sh +7 -0
  19. data/bootstrap/os/ubuntu/06_puppet.sh +38 -0
  20. data/bootstrap/os/ubuntu/10_corl.sh +9 -0
  21. data/corl.gemspec +61 -124
  22. data/lib/{corl → CORL}/action/bootstrap.rb +13 -7
  23. data/lib/CORL/action/exec.rb +39 -0
  24. data/lib/CORL/action/image.rb +31 -0
  25. data/lib/{corl → CORL}/action/images.rb +1 -1
  26. data/lib/CORL/action/lookup.rb +34 -0
  27. data/lib/{corl → CORL}/action/machines.rb +1 -1
  28. data/lib/CORL/action/provision.rb +31 -0
  29. data/lib/{corl → CORL}/action/seed.rb +3 -3
  30. data/lib/{corl → CORL}/action/spawn.rb +2 -2
  31. data/lib/CORL/action/start.rb +31 -0
  32. data/lib/CORL/action/stop.rb +31 -0
  33. data/lib/{corl → CORL}/configuration/file.rb +1 -1
  34. data/lib/{corl → CORL}/event/puppet.rb +1 -1
  35. data/lib/{corl → CORL}/extension/puppetloader.rb +1 -1
  36. data/lib/{corl → CORL}/machine/fog.rb +3 -3
  37. data/lib/{corl → CORL}/machine/physical.rb +2 -2
  38. data/lib/{corl → CORL}/network/default.rb +1 -1
  39. data/lib/{corl → CORL}/node/aws.rb +0 -4
  40. data/lib/{corl → CORL}/node/google.rb +0 -4
  41. data/lib/{corl → CORL}/node/local.rb +1 -1
  42. data/lib/{corl → CORL}/node/rackspace.rb +0 -4
  43. data/lib/{corl → CORL}/provisioner/puppetnode.rb +1 -14
  44. data/lib/{corl → CORL}/provisioner/puppetnode/resource.rb +0 -0
  45. data/lib/{corl → CORL}/provisioner/puppetnode/resource_group.rb +0 -0
  46. data/lib/{corl → CORL}/template/environment.rb +1 -1
  47. data/lib/core/facade.rb +49 -0
  48. data/lib/{corl_core → core}/mixin/action/keypair.rb +10 -10
  49. data/lib/{corl_core → core}/mixin/lookup.rb +0 -0
  50. data/lib/{corl_core → core}/mod/hiera_backend.rb +0 -0
  51. data/lib/{corl_core/mixin/action/node.rb → core/plugin/action.rb} +66 -33
  52. data/lib/{corl_core → core}/plugin/configuration.rb +2 -2
  53. data/lib/{corl/node → core/plugin}/fog.rb +5 -1
  54. data/lib/{corl_core → core}/plugin/machine.rb +2 -2
  55. data/lib/{corl_core → core}/plugin/network.rb +4 -4
  56. data/lib/{corl_core → core}/plugin/node.rb +11 -9
  57. data/lib/{corl_core → core}/plugin/provisioner.rb +2 -2
  58. data/lib/{corl_core → core}/util/ssh.rb +1 -1
  59. data/lib/corl.rb +53 -112
  60. data/lib/puppet/parser/functions/ensure.rb +0 -4
  61. data/locales/en.yml +55 -148
  62. metadata +84 -222
  63. data/lib/corl/action/add.rb +0 -69
  64. data/lib/corl/action/clone.rb +0 -40
  65. data/lib/corl/action/create.rb +0 -55
  66. data/lib/corl/action/exec.rb +0 -41
  67. data/lib/corl/action/extract.rb +0 -49
  68. data/lib/corl/action/image.rb +0 -30
  69. data/lib/corl/action/lookup.rb +0 -35
  70. data/lib/corl/action/provision.rb +0 -37
  71. data/lib/corl/action/remove.rb +0 -51
  72. data/lib/corl/action/save.rb +0 -53
  73. data/lib/corl/action/start.rb +0 -37
  74. data/lib/corl/action/stop.rb +0 -30
  75. data/lib/corl/action/update.rb +0 -37
  76. data/lib/corl/command/shell.rb +0 -164
  77. data/lib/corl/event/regex.rb +0 -52
  78. data/lib/corl/project/git.rb +0 -465
  79. data/lib/corl/project/github.rb +0 -108
  80. data/lib/corl/template/json.rb +0 -16
  81. data/lib/corl/template/wrapper.rb +0 -16
  82. data/lib/corl/template/yaml.rb +0 -16
  83. data/lib/corl/translator/json.rb +0 -27
  84. data/lib/corl/translator/yaml.rb +0 -27
  85. data/lib/corl_core/codes.rb +0 -107
  86. data/lib/corl_core/config.rb +0 -337
  87. data/lib/corl_core/config/collection.rb +0 -57
  88. data/lib/corl_core/config/options.rb +0 -70
  89. data/lib/corl_core/core.rb +0 -59
  90. data/lib/corl_core/corl.rb +0 -254
  91. data/lib/corl_core/errors.rb +0 -84
  92. data/lib/corl_core/facade.rb +0 -126
  93. data/lib/corl_core/gems.rb +0 -72
  94. data/lib/corl_core/manager.rb +0 -425
  95. data/lib/corl_core/mixin/action/commit.rb +0 -58
  96. data/lib/corl_core/mixin/action/project.rb +0 -53
  97. data/lib/corl_core/mixin/action/push.rb +0 -52
  98. data/lib/corl_core/mixin/config/collection.rb +0 -53
  99. data/lib/corl_core/mixin/config/ops.rb +0 -53
  100. data/lib/corl_core/mixin/config/options.rb +0 -39
  101. data/lib/corl_core/mixin/macro/object_interface.rb +0 -361
  102. data/lib/corl_core/mixin/macro/plugin_interface.rb +0 -380
  103. data/lib/corl_core/mixin/settings.rb +0 -46
  104. data/lib/corl_core/mixin/sub_config.rb +0 -148
  105. data/lib/corl_core/mod/hash.rb +0 -29
  106. data/lib/corl_core/plugin/action.rb +0 -381
  107. data/lib/corl_core/plugin/base.rb +0 -374
  108. data/lib/corl_core/plugin/command.rb +0 -98
  109. data/lib/corl_core/plugin/event.rb +0 -53
  110. data/lib/corl_core/plugin/extension.rb +0 -12
  111. data/lib/corl_core/plugin/project.rb +0 -927
  112. data/lib/corl_core/plugin/template.rb +0 -80
  113. data/lib/corl_core/plugin/translator.rb +0 -38
  114. data/lib/corl_core/util/cli.rb +0 -352
  115. data/lib/corl_core/util/data.rb +0 -404
  116. data/lib/corl_core/util/disk.rb +0 -114
  117. data/lib/corl_core/util/git.rb +0 -47
  118. data/lib/corl_core/util/interface.rb +0 -319
  119. data/lib/corl_core/util/liquid.rb +0 -17
  120. data/lib/corl_core/util/package.rb +0 -93
  121. data/lib/corl_core/util/shell.rb +0 -239
  122. data/spec/corl_core/interface_spec.rb +0 -489
@@ -1,40 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Clone < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Clone action interface
8
-
9
- def normalize
10
- super('corl clone <existing_node_reference> <new_node_reference>')
11
- end
12
-
13
- #-----------------------------------------------------------------------------
14
- # Action operations
15
-
16
- def parse(parser)
17
- parser.option_str(:provider, :rackspace,
18
- '--provider DEFAULT_NODE_PROVIDER',
19
- 'corl.core.actions.start.options.provider'
20
- )
21
- parser.arg_str(:existing_node_reference, nil,
22
- 'corl.core.actions.start.options.existing_node_reference'
23
- )
24
- parser.arg_str(:new_node_reference, nil,
25
- 'corl.core.actions.start.options.new_node_reference'
26
- )
27
- end
28
-
29
- #---
30
-
31
- def execute
32
- super do |node, network, status|
33
- info('corl.core.actions.clone.start')
34
-
35
- status
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,55 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Create < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Create action interface
8
-
9
- def normalize
10
- super('corl create [ <project:::reference> ]')
11
-
12
- codes :project_failure => 20
13
- end
14
-
15
- #-----------------------------------------------------------------------------
16
- # Action operations
17
-
18
- def parse(parser)
19
- network_path = Dir.pwd
20
- network_path = lookup(:corl_network) if CORL.admin?
21
-
22
- parser.option_str(:path, network_path,
23
- '--path PROJECT_DIR',
24
- 'corl.core.actions.create.options.path'
25
- )
26
- parser.option_str(:revision, :master,
27
- '--revision REVISION/BRANCH',
28
- 'corl.core.actions.create.options.revision'
29
- )
30
- parser.arg_str(:reference,
31
- 'github:::coralnexus/puppet-cloud-template',
32
- 'corl.core.actions.create.options.reference'
33
- )
34
- end
35
-
36
- #---
37
-
38
- def execute
39
- super do |node, network, status|
40
- info('corl.core.actions.create.start')
41
-
42
- project = CORL.project(extended_config(:project, {
43
- :create => true,
44
- :directory => settings[:path],
45
- :url => settings[:reference],
46
- :revision => settings[:revision],
47
- :pull => true
48
- }))
49
-
50
- project ? status : code.project_failure
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,41 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Exec < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Seed action interface
8
-
9
- def normalize
10
- super('corl exec <command> [ <args> ... ]')
11
-
12
- codes :network_failure => 20
13
- end
14
-
15
- #-----------------------------------------------------------------------------
16
- # Action operations
17
-
18
- def parse(parser)
19
- parser.arg_array(:command, nil,
20
- 'corl.core.actions.exec.options.command'
21
- )
22
- node_options(parser)
23
- end
24
-
25
- #---
26
-
27
- def execute
28
- super do |node, network, status|
29
- if network && node
30
- command_str = settings[:command].join(' ')
31
- result = node.exec({ :commands => [ command_str ] }).first
32
- status = result[:status]
33
- else
34
- status = code.network_failure
35
- end
36
- status
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,49 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Extract < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Action settings
8
-
9
- def configure
10
- super do
11
- codes :extract_failure
12
-
13
- register :path, :str, nil do |value|
14
- unless File.directory?(value)
15
- warn('corl.actions.extract.errors.path', { :value => value })
16
- next false
17
- end
18
- true
19
- end
20
- register :encoded, :str, nil do |value|
21
- @package = Util::Package.new(value)
22
- if @package.data.export.empty?
23
- warn('corl.actions.extract.errors.encoded', { :value => value })
24
- next false
25
- end
26
- true
27
- end
28
- end
29
- end
30
-
31
- #---
32
-
33
- def arguments
34
- [ :path, :encoded ]
35
- end
36
-
37
- #-----------------------------------------------------------------------------
38
- # Action operations
39
-
40
- def execute
41
- super do |node, network|
42
- unless @package.extract(settings[:path])
43
- myself.status = code.extract_failure
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,30 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Image < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Image action interface
8
-
9
- def normalize
10
- super('corl image')
11
- end
12
-
13
- #-----------------------------------------------------------------------------
14
- # Action operations
15
-
16
- def parse(parser)
17
- end
18
-
19
- #---
20
-
21
- def execute
22
- super do |node, network, status|
23
- info('corl.core.actions.image.start')
24
-
25
- status
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,35 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Lookup < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Lookup action interface
8
-
9
- def normalize
10
- super('corl lookup <property>')
11
- end
12
-
13
- #-----------------------------------------------------------------------------
14
- # Action operations
15
-
16
- def parse(parser)
17
- parser.arg_str(:property, nil,
18
- 'corl.core.actions.create.options.property'
19
- )
20
- end
21
-
22
- #---
23
-
24
- def execute
25
- super do |node, network, status|
26
- property = settings[:property]
27
- value = lookup(property)
28
-
29
- ui.success(sprintf("#{property} = %s", value.inspect))
30
- status
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,37 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Provision < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Provision action interface
8
-
9
- def normalize
10
- super('corl provision [ <project_directory> ]')
11
- end
12
-
13
- #-----------------------------------------------------------------------------
14
- # Action operations
15
-
16
- def parse(parser)
17
- parser.option_str(:provider, nil,
18
- '--provider PROVISIONER_PROVIDER',
19
- 'corl.core.actions.provision.options.provider'
20
- )
21
- parser.arg_str(:directory, :default,
22
- 'corl.core.actions.provision.options.directory'
23
- )
24
- end
25
-
26
- #---
27
-
28
- def execute
29
- super do |node, network, status|
30
- info('corl.core.actions.provision.start')
31
-
32
- status
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,51 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Remove < Plugin::Action
5
-
6
- include Mixin::Action::Project
7
- include Mixin::Action::Push
8
-
9
- #-----------------------------------------------------------------------------
10
- # Remove action interface
11
-
12
- def normalize
13
- super('corl remove <subproject/path>')
14
-
15
- codes :project_failure => 20,
16
- :delete_failure => 21,
17
- :push_failure => 22
18
- end
19
-
20
- #-----------------------------------------------------------------------------
21
- # Action operations
22
-
23
- def parse(parser)
24
- parser.arg_str(:sub_path, nil,
25
- 'corl.core.actions.remove.options.sub_path'
26
- )
27
- project_options(parser, true, true)
28
- push_options(parser, true)
29
- end
30
-
31
- #---
32
-
33
- def execute
34
- super do |node, network, status|
35
- info('corl.core.actions.remove.start')
36
-
37
- if project = project_load(Dir.pwd, false)
38
- if project.delete_subproject(settings[:sub_path])
39
- status = code.push_failure unless push(project)
40
- else
41
- status = code.delete_failure
42
- end
43
- else
44
- status = code.project_failure
45
- end
46
- status
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,53 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Save < Plugin::Action
5
-
6
- include Mixin::Action::Project
7
- include Mixin::Action::Commit
8
- include Mixin::Action::Push
9
-
10
- #-----------------------------------------------------------------------------
11
- # Save action interface
12
-
13
- def normalize
14
- super('corl save [ <file> ... ]')
15
-
16
- codes :project_failure => 20,
17
- :commit_failure => 21,
18
- :push_failure => 22
19
- end
20
-
21
- #-----------------------------------------------------------------------------
22
- # Action operations
23
-
24
- def parse(parser)
25
- parser.arg_array(:files, '.',
26
- 'corl.core.actions.save.options.files'
27
- )
28
- project_options(parser, true, false)
29
- commit_options(parser, false)
30
- push_options(parser, true)
31
- end
32
-
33
- #---
34
-
35
- def execute
36
- super do |node, network, status|
37
- info('corl.core.actions.save.start')
38
-
39
- if project = project_load(Dir.pwd, false)
40
- if commit(project, settings[:files])
41
- status = code.push_failure unless push(project)
42
- else
43
- status = code.commit_failure
44
- end
45
- else
46
- status = code.project_failure
47
- end
48
- status
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,37 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Start < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Start action interface
8
-
9
- def normalize
10
- super('corl start <node_reference>')
11
- end
12
-
13
- #-----------------------------------------------------------------------------
14
- # Action operations
15
-
16
- def parse(parser)
17
- parser.option_str(:provider, :rackspace,
18
- '--provider DEFAULT_NODE_PROVIDER',
19
- 'corl.core.actions.start.options.provider'
20
- )
21
- parser.arg_str(:node_reference, nil,
22
- 'corl.core.actions.start.options.node_reference'
23
- )
24
- end
25
-
26
- #---
27
-
28
- def execute
29
- super do |node, network, status|
30
- info('corl.core.actions.start.start')
31
-
32
- status
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,30 +0,0 @@
1
-
2
- module CORL
3
- module Action
4
- class Stop < Plugin::Action
5
-
6
- #-----------------------------------------------------------------------------
7
- # Stop action interface
8
-
9
- def normalize
10
- super('corl stop')
11
- end
12
-
13
- #-----------------------------------------------------------------------------
14
- # Action operations
15
-
16
- def parse(parser)
17
- end
18
-
19
- #---
20
-
21
- def execute
22
- super do |node, network, status|
23
- info('corl.core.actions.stop.start')
24
-
25
- status
26
- end
27
- end
28
- end
29
- end
30
- end