corl 0.5.11 → 0.5.12

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.
@@ -1,41 +1,41 @@
1
1
 
2
2
  module Nucleon
3
3
  module Action
4
- module Cloud
4
+ module Network
5
5
  class Inspect < Nucleon.plugin_class(:nucleon, :cloud_action)
6
-
6
+
7
7
  #-----------------------------------------------------------------------------
8
8
  # Info
9
-
9
+
10
10
  def self.describe
11
- super(:cloud, :inspect, 955)
11
+ super(:network, :inspect, 955)
12
12
  end
13
-
13
+
14
14
  #-----------------------------------------------------------------------------
15
15
  # Settings
16
-
16
+
17
17
  def configure
18
18
  super do
19
19
  codes :configuration_parse_failed
20
-
20
+
21
21
  register_array :elements
22
22
  register_translator :format, :json
23
23
  end
24
24
  end
25
-
25
+
26
26
  #---
27
-
27
+
28
28
  def ignore
29
29
  node_ignore
30
30
  end
31
-
31
+
32
32
  def arguments
33
33
  [ :elements ]
34
34
  end
35
-
35
+
36
36
  #-----------------------------------------------------------------------------
37
37
  # Operations
38
-
38
+
39
39
  def execute
40
40
  super do |node|
41
41
  ensure_network do
@@ -1,44 +1,44 @@
1
1
 
2
2
  module Nucleon
3
3
  module Action
4
- module Cloud
4
+ module Network
5
5
  class Machines < Nucleon.plugin_class(:nucleon, :cloud_action)
6
-
6
+
7
7
  #-----------------------------------------------------------------------------
8
8
  # Info
9
-
9
+
10
10
  def self.describe
11
- super(:cloud, :machines, 860)
11
+ super(:network, :machines, 860)
12
12
  end
13
13
 
14
14
  #-----------------------------------------------------------------------------
15
15
  # Settings
16
-
16
+
17
17
  def configure
18
18
  super do
19
19
  codes :node_load_failure,
20
20
  :machine_load_failure
21
21
  end
22
22
  end
23
-
23
+
24
24
  def node_config
25
25
  super
26
26
  config[:node_provider].default = nil
27
27
  end
28
-
28
+
29
29
  #---
30
-
30
+
31
31
  def ignore
32
32
  node_ignore - [ :node_provider ]
33
33
  end
34
-
34
+
35
35
  def arguments
36
36
  [ :node_provider ]
37
37
  end
38
-
38
+
39
39
  #-----------------------------------------------------------------------------
40
40
  # Operations
41
-
41
+
42
42
  def execute
43
43
  super do |local_node|
44
44
  ensure_network do
@@ -47,7 +47,7 @@ class Machines < Nucleon.plugin_class(:nucleon, :cloud_action)
47
47
  machine_types.each do |machine_type|
48
48
  prefixed_message(:info, ' ', node.render_machine_type(machine_type), { :i18n => false, :prefix => false })
49
49
  end
50
-
50
+
51
51
  myself.result = machine_types
52
52
  success('results', { :machines => machine_types.length }) if machine_types.length > 1
53
53
  else
@@ -1,56 +1,56 @@
1
1
 
2
2
  module Nucleon
3
3
  module Action
4
- module Cloud
4
+ module Network
5
5
  class Regions < Nucleon.plugin_class(:nucleon, :cloud_action)
6
-
6
+
7
7
  #-----------------------------------------------------------------------------
8
8
  # Info
9
-
9
+
10
10
  def self.describe
11
- super(:cloud, :regions, 855)
11
+ super(:network, :regions, 855)
12
12
  end
13
13
 
14
14
  #-----------------------------------------------------------------------------
15
15
  # Settings
16
-
16
+
17
17
  def configure
18
18
  super do
19
19
  codes :node_load_failure,
20
20
  :region_load_failure
21
- end
21
+ end
22
22
  end
23
-
23
+
24
24
  def node_config
25
25
  super
26
26
  config[:node_provider].default = nil
27
27
  end
28
-
28
+
29
29
  #---
30
-
30
+
31
31
  def ignore
32
32
  node_ignore - [ :node_provider ]
33
33
  end
34
-
34
+
35
35
  def arguments
36
36
  [ :node_provider ]
37
37
  end
38
-
38
+
39
39
  #-----------------------------------------------------------------------------
40
40
  # Operations
41
-
41
+
42
42
  def execute
43
43
  super do |local_node|
44
44
  ensure_network do
45
45
  if node = network.test_node(settings[:node_provider])
46
46
  if regions = node.regions
47
- region_info = node.region_info
47
+ region_info = node.region_info
48
48
  max_length = regions.collect {|value| value.length }.sort.pop
49
-
49
+
50
50
  regions.each do |region|
51
51
  prefixed_message(:info, ' ', sprintf("%-#{max_length + 10}s %s", purple(region), yellow(region_info[region.to_sym])), { :i18n => false, :prefix => false })
52
52
  end
53
-
53
+
54
54
  myself.result = regions
55
55
  else
56
56
  myself.status = code.region_load_failure
@@ -1,59 +1,59 @@
1
1
 
2
2
  module Nucleon
3
3
  module Action
4
- module Cloud
4
+ module Network
5
5
  class Remote < CORL.plugin_class(:nucleon, :cloud_action)
6
-
6
+
7
7
  include Mixin::Action::Project
8
8
  include Mixin::Action::Push
9
-
9
+
10
10
  #-----------------------------------------------------------------------------
11
11
  # Info
12
-
12
+
13
13
  def self.describe
14
- super([ :cloud ], :remote, 980)
14
+ super(:network, :remote, 980)
15
15
  end
16
-
16
+
17
17
  #-----------------------------------------------------------------------------
18
18
  # Settings
19
-
19
+
20
20
  def configure
21
21
  super do
22
22
  codes :project_failure, :push_failure
23
-
23
+
24
24
  project_config
25
25
  push_config
26
26
  end
27
27
  end
28
-
28
+
29
29
  #---
30
-
30
+
31
31
  def ignore
32
32
  node_ignore + [ :propogate_push, :pull, :push, :net_remote ]
33
33
  end
34
-
34
+
35
35
  def arguments
36
36
  [ :project_reference ]
37
37
  end
38
-
38
+
39
39
  #-----------------------------------------------------------------------------
40
40
  # Operations
41
-
41
+
42
42
  def execute
43
43
  super do |node|
44
44
  ensure_network do
45
45
  info('start')
46
-
46
+
47
47
  settings[:pull] = false
48
48
  settings[:push] = true
49
-
49
+
50
50
  if project = project_load(network.directory, false, false)
51
51
  provider = settings[:project_provider]
52
-
52
+
53
53
  if settings[:project_reference].match(/^\s*([a-zA-Z0-9_-]+):::(.*)\s*$/)
54
54
  provider = $1
55
55
  end
56
-
56
+
57
57
  Nucleon::Plugin::Project.store_provider(project.directory, provider)
58
58
  myself.status = code.push_failure unless push(project)
59
59
  else
@@ -1,150 +1,150 @@
1
1
 
2
2
  module Nucleon
3
3
  module Action
4
- module Cloud
4
+ module Network
5
5
  class Settings < Nucleon.plugin_class(:nucleon, :cloud_action)
6
-
6
+
7
7
  #-----------------------------------------------------------------------------
8
8
  # Info
9
-
9
+
10
10
  def self.describe
11
- super(:cloud, :settings, 950)
11
+ super(:network, :settings, 950)
12
12
  end
13
-
13
+
14
14
  #-----------------------------------------------------------------------------
15
15
  # Settings
16
-
16
+
17
17
  def configure
18
18
  super do
19
19
  codes :settings_save_failed,
20
20
  :settings_delete_failed
21
-
21
+
22
22
  register_str :group
23
23
  register_str :name
24
24
  register_array :value
25
-
25
+
26
26
  register_bool :array
27
27
  register_bool :delete
28
28
  register_bool :append
29
29
  register_bool :groups
30
-
30
+
31
31
  register_translator :input_format
32
32
  register_translator :format, :json
33
33
  end
34
34
  end
35
-
35
+
36
36
  #---
37
-
37
+
38
38
  def ignore
39
39
  node_ignore
40
40
  end
41
-
41
+
42
42
  def arguments
43
43
  [ :group, :name, :value ]
44
44
  end
45
-
45
+
46
46
  #-----------------------------------------------------------------------------
47
47
  # Operations
48
-
48
+
49
49
  def execute
50
50
  super do |node|
51
51
  ensure_network do
52
52
  if settings[:groups]
53
53
  render_groups
54
-
54
+
55
55
  elsif settings[:group].empty?
56
56
  render_settings
57
-
57
+
58
58
  elsif settings[:name].empty?
59
59
  render_settings(settings[:group])
60
-
60
+
61
61
  else
62
62
  name = settings[:name].gsub(/\]$/, '').split(/\]?\[/)
63
-
63
+
64
64
  if settings.get(:delete, false)
65
65
  delete_settings(name)
66
-
66
+
67
67
  elsif ! settings[:value].empty?
68
68
  set_settings(name, settings[:value])
69
-
69
+
70
70
  else
71
- render_settings([ settings[:group], name ])
72
- end
71
+ render_settings([ settings[:group], name ])
72
+ end
73
73
  end
74
74
  end
75
75
  end
76
76
  end
77
-
77
+
78
78
  #-----------------------------------------------------------------------------
79
79
  # Settings operations
80
-
80
+
81
81
  def render_groups
82
82
  groups = network.config.get(:settings).keys
83
-
83
+
84
84
  info('groups')
85
85
  groups.each do |group|
86
86
  info("-> #{green(group)}", { :i18n => false })
87
87
  end
88
88
  end
89
-
89
+
90
90
  #---
91
-
91
+
92
92
  def render_settings(elements = [])
93
93
  format = settings[:format]
94
-
94
+
95
95
  if elements.size > 0
96
96
  myself.result = network.config.get([ :settings, elements ])
97
97
  else
98
98
  myself.result = network.config.get(:settings)
99
99
  end
100
- render result, :format => format
100
+ render result, :format => format
101
101
  end
102
-
102
+
103
103
  #---
104
-
104
+
105
105
  def delete_settings(property)
106
106
  group = settings[:group]
107
- name = parse_property_name(property)
107
+ name = parse_property_name(property)
108
108
  remote_text = remote_message(settings[:net_remote])
109
-
109
+
110
110
  render_options = { :group => blue(group), :name => blue(name), :remote_text => yellow(remote_text) }
111
-
111
+
112
112
  network.config.delete([ :settings, group, property ])
113
-
113
+
114
114
  if network.save({ :remote => settings[:net_remote], :message => "Deleting #{group} setting #{name}", :allow_empty => true })
115
115
  success('delete', render_options)
116
116
  else
117
117
  error('delete', render_options)
118
- myself.status = code.settings_delete_failed
118
+ myself.status = code.settings_delete_failed
119
119
  end
120
120
  end
121
-
121
+
122
122
  #---
123
-
123
+
124
124
  def set_settings(property, values)
125
125
  group = settings[:group]
126
- name = parse_property_name(property)
126
+ name = parse_property_name(property)
127
127
  remote_text = remote_message(settings[:net_remote])
128
-
128
+
129
129
  render_options = { :group => blue(group), :name => blue(name), :remote_text => yellow(remote_text) }
130
-
130
+
131
131
  input_format = settings[:input_format]
132
-
133
- values.each_with_index do |value, index|
134
- values[index] = render(value, {
135
- :format => input_format,
136
- :silent => true
132
+
133
+ values.each_with_index do |value, index|
134
+ values[index] = render(value, {
135
+ :format => input_format,
136
+ :silent => true
137
137
  }) if input_format
138
138
  values[index] = Util::Data.value(values[index])
139
139
  end
140
-
140
+
141
141
  if settings[:append]
142
142
  if prev_value = network.config.get([ :settings, group, property ])
143
143
  prev_value = array(prev_value)
144
-
144
+
145
145
  values.each do |value|
146
146
  prev_value.push(value)
147
- end
147
+ end
148
148
  values = prev_value
149
149
  end
150
150
  else
@@ -152,17 +152,17 @@ class Settings < Nucleon.plugin_class(:nucleon, :cloud_action)
152
152
  values = array(values)
153
153
  elsif values.size == 1
154
154
  values = values[0]
155
- end
155
+ end
156
156
  end
157
-
158
- myself.result = values
157
+
158
+ myself.result = values
159
159
  network.config.set([ :settings, group, property ], result)
160
-
160
+
161
161
  if network.save({ :remote => settings[:net_remote], :message => "Updating #{group} setting #{name}", :allow_empty => true })
162
162
  success('update', render_options)
163
163
  else
164
164
  error('update', render_options)
165
- myself.status = code.settings_save_failed
165
+ myself.status = code.settings_save_failed
166
166
  end
167
167
  end
168
168
  end
@@ -1,65 +1,65 @@
1
1
 
2
2
  module Nucleon
3
3
  module Action
4
- module Cloud
4
+ module Network
5
5
  class Vagrantfile < CORL.plugin_class(:nucleon, :cloud_action)
6
-
6
+
7
7
  #-----------------------------------------------------------------------------
8
8
  # Info
9
-
9
+
10
10
  def self.describe
11
- super(:cloud, :vagrantfile, 800)
11
+ super(:network, :vagrantfile, 800)
12
12
  end
13
13
 
14
14
  #-----------------------------------------------------------------------------
15
15
  # Settings
16
-
16
+
17
17
  def configure
18
- super do
18
+ super do
19
19
  codes :vagrant_backup_failure,
20
20
  :vagrant_save_failure,
21
21
  :network_save_failure
22
-
22
+
23
23
  register_bool :save
24
24
  end
25
25
  end
26
-
26
+
27
27
  #---
28
-
28
+
29
29
  def ignore
30
30
  node_ignore
31
31
  end
32
-
32
+
33
33
  #-----------------------------------------------------------------------------
34
34
  # Action operations
35
-
35
+
36
36
  def execute
37
37
  super do |node|
38
38
  ensure_network do
39
- generated_vagrantfile_name = File.join(CORL.lib_path, 'core', 'vagrant', 'Vagrantfile')
39
+ generated_vagrantfile_name = File.join(CORL.lib_path, 'core', 'vagrant', 'Vagrantfile')
40
40
  project_vagrantfile_name = File.join(network.directory, 'Vagrantfile')
41
41
  success = true
42
-
42
+
43
43
  corl_vagrantfile = Util::Disk.read(generated_vagrantfile_name)
44
-
44
+
45
45
  if settings[:save]
46
46
  if File.exists?(project_vagrantfile_name)
47
47
  backup_file = "#{project_vagrantfile_name}.backup"
48
-
48
+
49
49
  unless FileUtils.mv(project_vagrantfile_name, backup_file, :force => true)
50
50
  error('file_save', { :file => blue(backup_file) })
51
51
  myself.status = code.vagrant_backup_failure
52
52
  success = false
53
53
  end
54
54
  end
55
-
55
+
56
56
  if success
57
57
  unless Util::Disk.write(project_vagrantfile_name, corl_vagrantfile)
58
58
  error('file_save', { :file => blue(project_vagrantfile_name) })
59
59
  myself.status = code.vagrant_save_failure
60
60
  success = false
61
61
  end
62
-
62
+
63
63
  if success
64
64
  if network.save({ :files => 'Vagrantfile', :remote => settings[:net_remote], :message => "Saving new Vagrantfile.", :allow_empty => true })
65
65
  success('update', { :file => blue('Vagrantfile'), :remote_text => yellow(remote_message(settings[:net_remote])) })
@@ -71,7 +71,7 @@ class Vagrantfile < CORL.plugin_class(:nucleon, :cloud_action)
71
71
  end
72
72
  else
73
73
  puts corl_vagrantfile
74
- end
74
+ end
75
75
  end
76
76
  end
77
77
  end