corl 0.4.0 → 0.4.1

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