coral_core 0.2.30 → 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 (55) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +2 -8
  3. data/Gemfile.lock +15 -86
  4. data/Rakefile +1 -3
  5. data/VERSION +1 -1
  6. data/coral_core.gemspec +12 -102
  7. metadata +18 -239
  8. data/lib/coral/command/shell.rb +0 -140
  9. data/lib/coral/machine/fog.rb +0 -215
  10. data/lib/coral/network/default.rb +0 -26
  11. data/lib/coral/node/rackspace.rb +0 -23
  12. data/lib/coral_core/config/collection.rb +0 -57
  13. data/lib/coral_core/config/options.rb +0 -70
  14. data/lib/coral_core/config/project.rb +0 -225
  15. data/lib/coral_core/config.rb +0 -329
  16. data/lib/coral_core/core.rb +0 -58
  17. data/lib/coral_core/event/puppet_event.rb +0 -98
  18. data/lib/coral_core/event/regexp_event.rb +0 -55
  19. data/lib/coral_core/event.rb +0 -170
  20. data/lib/coral_core/mixin/config_collection.rb +0 -52
  21. data/lib/coral_core/mixin/config_ops.rb +0 -51
  22. data/lib/coral_core/mixin/config_options.rb +0 -38
  23. data/lib/coral_core/mixin/lookup.rb +0 -211
  24. data/lib/coral_core/mixin/macro/object_interface.rb +0 -292
  25. data/lib/coral_core/mixin/macro/plugin_interface.rb +0 -277
  26. data/lib/coral_core/mixin/settings.rb +0 -46
  27. data/lib/coral_core/mixin/sub_config.rb +0 -208
  28. data/lib/coral_core/mod/hash.rb +0 -29
  29. data/lib/coral_core/mod/hiera_backend.rb +0 -63
  30. data/lib/coral_core/plugin/command.rb +0 -95
  31. data/lib/coral_core/plugin/machine.rb +0 -152
  32. data/lib/coral_core/plugin/network.rb +0 -24
  33. data/lib/coral_core/plugin/node.rb +0 -184
  34. data/lib/coral_core/plugin.rb +0 -261
  35. data/lib/coral_core/plugin_base.rb +0 -147
  36. data/lib/coral_core/repository.rb +0 -553
  37. data/lib/coral_core/resource.rb +0 -243
  38. data/lib/coral_core/template/environment.rb +0 -72
  39. data/lib/coral_core/template/json.rb +0 -13
  40. data/lib/coral_core/template/wrapper.rb +0 -13
  41. data/lib/coral_core/template/yaml.rb +0 -13
  42. data/lib/coral_core/template.rb +0 -92
  43. data/lib/coral_core/util/cli.rb +0 -293
  44. data/lib/coral_core/util/data.rb +0 -389
  45. data/lib/coral_core/util/disk.rb +0 -105
  46. data/lib/coral_core/util/git.rb +0 -40
  47. data/lib/coral_core/util/interface.rb +0 -190
  48. data/lib/coral_core/util/process.rb +0 -43
  49. data/lib/coral_core/util/shell.rb +0 -183
  50. data/lib/coral_core.rb +0 -375
  51. data/locales/en.yml +0 -8
  52. data/spec/coral_core/interface_spec.rb +0 -489
  53. data/spec/coral_mock_input.rb +0 -29
  54. data/spec/coral_test_kernel.rb +0 -22
  55. data/spec/spec_helper.rb +0 -15
@@ -1,140 +0,0 @@
1
-
2
- module Coral
3
- module Command
4
- class Shell < Plugin::Command
5
-
6
- #-----------------------------------------------------------------------------
7
- # Command operations
8
-
9
- def normalize
10
- super
11
- set(:command, executable(self))
12
- end
13
-
14
- #---
15
-
16
- def build(components = {}, overrides = nil, override_key = false)
17
-
18
- command = string(components[:command])
19
- flags = array( components.has_key?(:flags) ? components[:flags] : [] )
20
- data = string_map(hash( components.has_key?(:data) ? components[:data] : {} ))
21
- args = array( components.has_key?(:args) ? components[:args] : [] )
22
- subcommand = hash( components.has_key?(:subcommand) ? components[:subcommand] : {} )
23
-
24
- override_key = command unless override_key
25
- override_key = override_key.to_sym
26
-
27
- command_string = command.dup
28
- subcommand_string = ''
29
-
30
- escape_characters = /[\'\"]+/
31
- escape_replacement = '\"'
32
-
33
- dash_pattern = /^([\-]+)/
34
- assignment_pattern = /\=$/
35
-
36
- # Flags
37
- if overrides && overrides.has_key?(:flags)
38
- if overrides[:flags].is_a?(Hash)
39
- if overrides[:flags].has_key?(override_key)
40
- flags = array(overrides[:flags][override_key])
41
- end
42
- else
43
- flags = array(overrides[:flags])
44
- end
45
- end
46
- flags.each do |flag|
47
- flag = string(flag)
48
- if ! flag.empty?
49
- if flag.match(dash_pattern)
50
- dashes = $1
51
- else
52
- dashes = ( flag.size == 1 ? '-' : '--' )
53
- end
54
- command_string << " #{dashes}#{flag}"
55
- end
56
- end
57
-
58
- # Data
59
- if overrides && overrides.has_key?(:data)
60
- if overrides[:data].has_key?(override_key)
61
- data = hash(overrides[:data][override_key])
62
- else
63
- override = true
64
- overrides[:data].each do |key, value|
65
- if ! value.is_a?(String)
66
- override = false
67
- end
68
- end
69
- data = hash(overrides[:data]) if override
70
- end
71
- end
72
- data.each do |key, value|
73
- key = string(key)
74
- value = string(value).strip.sub(escape_characters, escape_replacement)
75
-
76
- if key.match(dash_pattern)
77
- dashes = $1
78
- else
79
- dashes = ( key.size == 1 ? '-' : '--' )
80
- end
81
- space = ( key.match(assignment_pattern) ? '' : ' ' )
82
-
83
- command_string << " #{dashes}#{key}#{space}'#{value}'"
84
- end
85
-
86
- # Arguments
87
- if overrides && overrides.has_key?(:args)
88
- if overrides[:args].is_a?(Hash)
89
- if overrides[:args].has_key?(override_key)
90
- args = array(overrides[:args][override_key])
91
- end
92
- else
93
- args = array(overrides[:args])
94
- end
95
- end
96
- args.each do |arg|
97
- arg = string(arg).sub(escape_characters, escape_replacement)
98
- command_string << " '#{arg}'"
99
- end
100
-
101
- # Subcommand
102
- subcommand_overrides = ( overrides ? overrides[:subcommand] : nil )
103
- if subcommand && subcommand.is_a?(Hash) && ! subcommand.empty?
104
- subcommand_string = build(subcommand, subcommand_overrides)
105
- end
106
-
107
- return (command_string + ' ' + subcommand_string).strip
108
- end
109
-
110
- #-----------------------------------------------------------------------------
111
-
112
- def exec!(options = {}, overrides = nil)
113
- config = Config.ensure(options)
114
-
115
- config[:ui] = @ui
116
- success = Util::Shell.exec!(build(properties, overrides), config) do |line|
117
- block_given? ? yield(line) : true
118
- end
119
- return success
120
- end
121
-
122
- #-----------------------------------------------------------------------------
123
- # Utilities
124
-
125
- def executable(options)
126
- config = Config.ensure(options)
127
-
128
- if config.get(:coral, false)
129
- return 'vagrant coral ' + config[:coral]
130
-
131
- elsif config.get(:vagrant, false)
132
- return 'vagrant ' + config[:vagrant]
133
-
134
- elsif config.get(:command, false)
135
- return config[:command]
136
- end
137
- end
138
- end
139
- end
140
- end
@@ -1,215 +0,0 @@
1
-
2
- module Coral
3
- module Machine
4
- class Fog < Plugin::Machine
5
-
6
- include Mixin::SubConfig
7
-
8
- #-----------------------------------------------------------------------------
9
- # Machine plugin interface
10
-
11
- def normalize
12
- super
13
- set_connection
14
- end
15
-
16
- #-----------------------------------------------------------------------------
17
- # Checks
18
-
19
- def created?
20
- return server && ! server.state != 'DELETED'
21
- end
22
-
23
- #---
24
-
25
- def running?
26
- return created? && server.ready?
27
- end
28
-
29
- #-----------------------------------------------------------------------------
30
- # Property accessors / modifiers
31
-
32
- def set_connection
33
- set(:compute, Fog::Compute.new(_export))
34
- end
35
- protected :set_connection
36
-
37
- #---
38
-
39
- def compute
40
- return get(:compute)
41
- end
42
-
43
- #---
44
-
45
- def server
46
- return get(:server)
47
- end
48
-
49
- #---
50
-
51
- def name
52
- return ( server ? server.id : '' )
53
- end
54
-
55
- #---
56
-
57
- def name=id
58
- set(:server, compute.servers.get(id)) if id
59
- end
60
-
61
- #---
62
-
63
- def hostname
64
- return server.name if server
65
- return ''
66
- end
67
-
68
- #---
69
-
70
- def state
71
- return server.state if server
72
- return nil
73
- end
74
-
75
- #---
76
-
77
- def public_ip
78
- return server.public_ip_address if server
79
- return nil
80
- end
81
-
82
- #---
83
-
84
- def private_ip
85
- return server.private_ip_address if server
86
- return nil
87
- end
88
-
89
- #---
90
-
91
- def flavors
92
- return compute.flavors if compute
93
- return nil
94
- end
95
-
96
- #---
97
-
98
- def flavor
99
- return server.flavor if server
100
- return nil
101
- end
102
-
103
- #---
104
-
105
- def images
106
- return compute.images if compute
107
- return nil
108
- end
109
-
110
- #---
111
-
112
- def image
113
- return server.image if server
114
- return nil
115
- end
116
-
117
- #-----------------------------------------------------------------------------
118
- # Management
119
-
120
- def create(options = {})
121
- success = super(options)
122
- if success && ! created?
123
- set(:server, compute.servers.bootstrap(options))
124
- end
125
- return success
126
- end
127
-
128
- #---
129
-
130
- def start(options = {})
131
- success = super(options)
132
- if success
133
- unless created?
134
- return create(options)
135
- end
136
- unless running?
137
- server_info = compute.servers.create(options)
138
-
139
- Fog.wait_for do
140
- compute.servers.get(server_info.id).ready? ? true : false
141
- end
142
- @server = compute.servers.get(server_info.id)
143
- end
144
- end
145
- return success
146
- end
147
-
148
- #---
149
-
150
- def stop(options = {})
151
- success = super(options)
152
- if success && running?
153
- if image_id = create_image(name)
154
-
155
- Fog.wait_for do
156
- compute.images.get(image_id).ready? ? true : false
157
- end
158
-
159
- server.destroy
160
- return image_id
161
- end
162
- end
163
- return success
164
- end
165
-
166
- #---
167
-
168
- def reload(options = {})
169
- success = super(options)
170
- if success && created?
171
- # Don't quite know what this should do yet??
172
- return server.reboot(options)
173
- end
174
- return success
175
- end
176
-
177
- #---
178
-
179
- def destroy(options = {})
180
- success = super(options)
181
- if success && created?
182
- return server.destroy(options)
183
- end
184
- return success
185
- end
186
-
187
- #---
188
-
189
- def exec(options = {})
190
- success = super(options)
191
- if success && running?
192
- if commands = options.delete(:commands)
193
- return server.ssh(commands, options)
194
- end
195
- end
196
- return success
197
- end
198
-
199
- #---
200
-
201
- def create_image(name, options = {})
202
- success = super(options)
203
- if success && created?
204
- image = server.create_image(name, options)
205
- return ( image ? image.id : false )
206
- end
207
- return success
208
- end
209
-
210
- #-----------------------------------------------------------------------------
211
- # Utilities
212
-
213
- end
214
- end
215
- end
@@ -1,26 +0,0 @@
1
-
2
- module Coral
3
- module Network
4
- class Default < Plugin::Network
5
-
6
- #-----------------------------------------------------------------------------
7
- # Cloud plugin interface
8
-
9
- def normalize
10
- super
11
- end
12
-
13
- #-----------------------------------------------------------------------------
14
- # Checks
15
-
16
-
17
- #-----------------------------------------------------------------------------
18
- # Property accessors / modifiers
19
-
20
-
21
- #-----------------------------------------------------------------------------
22
- # Coral cloud operations
23
-
24
- end
25
- end
26
- end
@@ -1,23 +0,0 @@
1
-
2
- module Coral
3
- module Node
4
- class Rackspace < Plugin::Node
5
-
6
- #-----------------------------------------------------------------------------
7
- # Node plugin interface
8
-
9
- def normalize
10
- #super
11
- dbg('hello from rackspace node')
12
- end
13
-
14
- #-----------------------------------------------------------------------------
15
- # Checks
16
-
17
-
18
- #-----------------------------------------------------------------------------
19
- # Property accessors / modifiers
20
-
21
- end
22
- end
23
- end
@@ -1,57 +0,0 @@
1
-
2
- module Coral
3
- class Config
4
- class Collection
5
-
6
- #-----------------------------------------------------------------------------
7
- # Property accessor / modifiers
8
-
9
- @@properties = {}
10
-
11
- #---
12
-
13
- def self.all
14
- return @@properties
15
- end
16
-
17
- #---
18
-
19
- def self.get(name)
20
- return @@properties[name.to_sym]
21
- end
22
-
23
- #---
24
-
25
- def self.set(name, value)
26
- @@properties[name.to_sym] = value
27
- end
28
-
29
- #---
30
-
31
- def self.delete(name)
32
- @@properties.delete(name.to_sym)
33
- end
34
-
35
- #---
36
-
37
- def self.clear
38
- @@properties = {}
39
- end
40
-
41
- #---
42
-
43
- def self.save
44
- log_options = Options.get(:coral_log)
45
-
46
- unless Util::Data.empty?(log_options[:config_log])
47
- config_log = log_options[:config_log]
48
-
49
- if log_options[:config_store]
50
- Util::Disk.write(config_log, MultiJson.dump(@@properties, :pretty => true))
51
- Util::Disk.close(config_log)
52
- end
53
- end
54
- end
55
- end
56
- end
57
- end