admin_module 0.1.4

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 (141) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +14 -0
  5. data/Guardfile +24 -0
  6. data/LICENSE +22 -0
  7. data/README.md +281 -0
  8. data/Rakefile +98 -0
  9. data/admin_module.gemspec +34 -0
  10. data/bin/admin_module +13 -0
  11. data/lib/admin_module.rb +260 -0
  12. data/lib/admin_module/cli.rb +54 -0
  13. data/lib/admin_module/cli/cli_guideline.rb +80 -0
  14. data/lib/admin_module/cli/cli_lock.rb +149 -0
  15. data/lib/admin_module/cli/cli_parameter.rb +66 -0
  16. data/lib/admin_module/cli/cli_task.rb +149 -0
  17. data/lib/admin_module/cli_old.rb +92 -0
  18. data/lib/admin_module/client.rb +146 -0
  19. data/lib/admin_module/command.rb +25 -0
  20. data/lib/admin_module/command/client_access.rb +43 -0
  21. data/lib/admin_module/command/config.rb +310 -0
  22. data/lib/admin_module/command/dc.rb +110 -0
  23. data/lib/admin_module/command/gdl.rb +71 -0
  24. data/lib/admin_module/command/lock.rb +110 -0
  25. data/lib/admin_module/command/ppm.rb +142 -0
  26. data/lib/admin_module/command/rule.rb +77 -0
  27. data/lib/admin_module/command/ruleset.rb +56 -0
  28. data/lib/admin_module/command/snapshot.rb +110 -0
  29. data/lib/admin_module/command/stage.rb +131 -0
  30. data/lib/admin_module/command/task.rb +110 -0
  31. data/lib/admin_module/config_helper.rb +33 -0
  32. data/lib/admin_module/dc.rb +133 -0
  33. data/lib/admin_module/guideline.rb +86 -0
  34. data/lib/admin_module/locks.rb +142 -0
  35. data/lib/admin_module/page_factory.rb +55 -0
  36. data/lib/admin_module/pages.rb +120 -0
  37. data/lib/admin_module/pages/dc_definitions_page.rb +73 -0
  38. data/lib/admin_module/pages/dc_detail_page.rb +187 -0
  39. data/lib/admin_module/pages/guideline_page.rb +35 -0
  40. data/lib/admin_module/pages/guideline_version_page.rb +140 -0
  41. data/lib/admin_module/pages/guidelines_page.rb +59 -0
  42. data/lib/admin_module/pages/guidelines_version_all_page.rb +116 -0
  43. data/lib/admin_module/pages/lock_definition_page.rb +178 -0
  44. data/lib/admin_module/pages/lock_definitions_page.rb +69 -0
  45. data/lib/admin_module/pages/login_page.rb +75 -0
  46. data/lib/admin_module/pages/parameter_page.rb +62 -0
  47. data/lib/admin_module/pages/parameters_page.rb +46 -0
  48. data/lib/admin_module/pages/ppms_page.rb +110 -0
  49. data/lib/admin_module/pages/rule_page.rb +68 -0
  50. data/lib/admin_module/pages/rules_page.rb +74 -0
  51. data/lib/admin_module/pages/ruleset_page.rb +64 -0
  52. data/lib/admin_module/pages/rulesets_page.rb +60 -0
  53. data/lib/admin_module/pages/select_list_syncable.rb +64 -0
  54. data/lib/admin_module/pages/snapshot_definitions_page.rb +73 -0
  55. data/lib/admin_module/pages/snapshot_detail_page.rb +246 -0
  56. data/lib/admin_module/pages/workflow_detail_page.rb +451 -0
  57. data/lib/admin_module/pages/workflow_detail_task_addl_detail_page.rb +172 -0
  58. data/lib/admin_module/pages/workflow_detail_task_mappings_page.rb +163 -0
  59. data/lib/admin_module/pages/workflow_detail_task_screens_page.rb +75 -0
  60. data/lib/admin_module/pages/workflow_details_page.rb +67 -0
  61. data/lib/admin_module/pages/workflow_task_page.rb +107 -0
  62. data/lib/admin_module/pages/workflow_tasks_page.rb +111 -0
  63. data/lib/admin_module/ppms.rb +78 -0
  64. data/lib/admin_module/rake.rb +22 -0
  65. data/lib/admin_module/rake/dc_tasks.rb +185 -0
  66. data/lib/admin_module/rake/deploy_task.rb +59 -0
  67. data/lib/admin_module/rake/gdl_tasks.rb +189 -0
  68. data/lib/admin_module/rake/lock_tasks.rb +189 -0
  69. data/lib/admin_module/rake/parameter_task.rb +86 -0
  70. data/lib/admin_module/rake/ppm_tasks.rb +248 -0
  71. data/lib/admin_module/rake/rule_tasks.rb +157 -0
  72. data/lib/admin_module/rake/snapshot_tasks.rb +223 -0
  73. data/lib/admin_module/rake/stage_tasks.rb +197 -0
  74. data/lib/admin_module/rake/stages_task.rb +197 -0
  75. data/lib/admin_module/rake/task_tasks.rb +189 -0
  76. data/lib/admin_module/rules.rb +50 -0
  77. data/lib/admin_module/rulesets.rb +42 -0
  78. data/lib/admin_module/snapshots.rb +133 -0
  79. data/lib/admin_module/stages.rb +171 -0
  80. data/lib/admin_module/tasks.rb +147 -0
  81. data/lib/admin_module/version.rb +3 -0
  82. data/old_spec/lib/admin_module/cli_configuration_spec.rb +126 -0
  83. data/old_spec/lib/admin_module/cli_create_stage_spec.rb +89 -0
  84. data/old_spec/lib/admin_module/cli_delete_rule_spec.rb +57 -0
  85. data/old_spec/lib/admin_module/cli_deploy_spec.rb +57 -0
  86. data/old_spec/lib/admin_module/cli_export_locks_spec.rb +62 -0
  87. data/old_spec/lib/admin_module/cli_export_stages_spec.rb +62 -0
  88. data/old_spec/lib/admin_module/cli_guidelines_version_all_spec.rb +58 -0
  89. data/old_spec/lib/admin_module/cli_import_locks_spec.rb +153 -0
  90. data/old_spec/lib/admin_module/cli_import_stages_spec.rb +173 -0
  91. data/old_spec/lib/admin_module/cli_modify_locks_spec.rb +128 -0
  92. data/old_spec/lib/admin_module/cli_modify_stages_spec.rb +88 -0
  93. data/old_spec/lib/admin_module/cli_rename_rule_spec.rb +53 -0
  94. data/old_spec/lib/admin_module/cli_rename_ruleset_spec.rb +53 -0
  95. data/old_spec/lib/admin_module/cli_var_spec.rb +41 -0
  96. data/old_spec/lib/admin_module/rake/deploy_task_spec.rb +85 -0
  97. data/old_spec/lib/admin_module/rake/parameter_task_spec.rb +58 -0
  98. data/old_spec/lib/admin_module/rake/rules_task_spec.rb +75 -0
  99. data/spec/data/build/test1.xml +0 -0
  100. data/spec/data/build/test2.xml +1 -0
  101. data/spec/data/import_dcs.yml +31 -0
  102. data/spec/data/import_locks.yml +4 -0
  103. data/spec/data/import_snapshots.yml +35 -0
  104. data/spec/data/import_stages.yml +4 -0
  105. data/spec/data/import_tasks.yml +25 -0
  106. data/spec/data/patch-test.xml +1 -0
  107. data/spec/data/remove_test_del_rule.xml +1 -0
  108. data/spec/data/stages.yml +518 -0
  109. data/spec/data/test_del_rule.xml +1 -0
  110. data/spec/lib/admin_module/admin_module_spec.rb +175 -0
  111. data/spec/lib/admin_module/cli_spec.rb +36 -0
  112. data/spec/lib/admin_module/client_spec.rb +158 -0
  113. data/spec/lib/admin_module/command/config_spec.rb +477 -0
  114. data/spec/lib/admin_module/command/dc_spec.rb +202 -0
  115. data/spec/lib/admin_module/command/gdl_spec.rb +139 -0
  116. data/spec/lib/admin_module/command/lock_spec.rb +207 -0
  117. data/spec/lib/admin_module/command/rule_spec.rb +163 -0
  118. data/spec/lib/admin_module/command/ruleset_spec.rb +124 -0
  119. data/spec/lib/admin_module/command/snapshot_spec.rb +202 -0
  120. data/spec/lib/admin_module/command/stage_spec.rb +259 -0
  121. data/spec/lib/admin_module/command/task_spec.rb +207 -0
  122. data/spec/lib/admin_module/dc_spec.rb +192 -0
  123. data/spec/lib/admin_module/guideline_spec.rb +177 -0
  124. data/spec/lib/admin_module/locks_spec.rb +188 -0
  125. data/spec/lib/admin_module/rules_spec.rb +110 -0
  126. data/spec/lib/admin_module/rulesets_spec.rb +85 -0
  127. data/spec/lib/admin_module/snapshot_spec.rb +192 -0
  128. data/spec/lib/admin_module/stages_spec.rb +179 -0
  129. data/spec/lib/admin_module/tasks_spec.rb +196 -0
  130. data/spec/spec_helper.rb +54 -0
  131. data/spec/support/asserts.rb +13 -0
  132. data/spec/support/data_clearing.rb +28 -0
  133. data/spec/support/dirs.rb +54 -0
  134. data/spec/support/helpers.rb +83 -0
  135. data/spec/support/lock.rb +23 -0
  136. data/spec/support/mocks.rb +213 -0
  137. data/spec/support/snapshot.rb +28 -0
  138. data/spec/support/stage.rb +22 -0
  139. data/spec/support/stage_factory.rb +138 -0
  140. data/spec/support/task.rb +23 -0
  141. metadata +381 -0
@@ -0,0 +1,157 @@
1
+ ##############################################################################
2
+ # File:: rule_tasks.rb
3
+ # Purpose:: RuleTasks definition
4
+ #
5
+ # Author:: Jeff McAffee 2014-04-24
6
+ #
7
+ ##############################################################################
8
+
9
+ require 'admin_module'
10
+ require 'rake/dsl_definition'
11
+ require 'rake'
12
+
13
+ module AdminModule::Rake
14
+
15
+ class RuleTasks
16
+ include ::Rake::DSL if defined?(::Rake::DSL)
17
+
18
+ attr_accessor :env
19
+ attr_accessor :name
20
+ attr_accessor :to
21
+ attr_reader :action
22
+ attr_reader :valid_actions
23
+ attr_reader :stop_on_exception
24
+
25
+ def initialize(task_name = 'rule_task', desc = "Modify a guideline rule")
26
+ @valid_actions = ['rename', 'delete']
27
+ @task_name, @desc = task_name, desc
28
+ @stop_on_exception = true
29
+
30
+ yield self if block_given?
31
+
32
+ define_task
33
+ end
34
+
35
+ def define_task #:nodoc:
36
+ desc @desc
37
+ task @task_name, required_args_for_action do |t,args|
38
+ set_vars args
39
+ commit # Call method to perform when invoked.
40
+ end
41
+ end
42
+
43
+ def set_vars args
44
+ args.each do |arg,val|
45
+ instance_variable_set "@#{arg}", val
46
+ end
47
+
48
+ args
49
+ end
50
+
51
+ def action=(task_action)
52
+ raise "action must be one of #{valid_actions.join(', ')}" unless valid_actions.include?(task_action.downcase)
53
+ @action = task_action
54
+ end
55
+
56
+ def stop_on_exception=(do_stop)
57
+ raise ArgumentError, 'Expecting true or false' unless do_stop === true || do_stop === false
58
+ @stop_on_exception = do_stop
59
+ end
60
+
61
+ def commit
62
+ validate_params
63
+
64
+ client = AdminModule::Client.new
65
+ client.env = env
66
+
67
+ if self.respond_to? action
68
+ self.send(action, client)
69
+ return
70
+ else
71
+ raise "Unknown action - #{action}"
72
+ end
73
+
74
+ rescue Exception => e
75
+ raise e if stop_on_exception == true
76
+ ensure
77
+ client.quit unless client.nil?
78
+ end
79
+
80
+ def rename client
81
+ $stdout << client.rules.rename(name, to)
82
+ end
83
+
84
+ def delete client
85
+ $stdout << client.rules.delete(name)
86
+ end
87
+
88
+ def validate_params
89
+ assert_provided env, 'Missing "env"'
90
+ assert_provided action, 'Missing "action"'
91
+
92
+ case action
93
+ when 'rename'
94
+ assert_provided name, 'Missing "name"'
95
+ assert_provided to, 'Missing "to"'
96
+
97
+ when 'delete'
98
+ assert_provided name, 'Missing "name"'
99
+
100
+ end
101
+
102
+ assert_env_is_configured env
103
+ end
104
+
105
+ def assert_provided value, msg
106
+ if value.nil? || value.empty?
107
+ raise msg
108
+ end
109
+ end
110
+
111
+ def assert_env_is_configured arg
112
+ unless AdminModule.configuration.credentials.key? arg
113
+ init_msg = "Have you initialized your config file?\n Try: admin_module config init <filedir>"
114
+ env_msg = "Have you configured your environments?\n Try: admin_module config add env <envname> <url>"
115
+ raise "Unknown environment: #{arg}\n#{init_msg}\n\n#{env_msg}"
116
+ end
117
+ end
118
+
119
+ def required_args_for_action
120
+ args = []
121
+
122
+ case action
123
+ when 'delete'
124
+ args << :name
125
+
126
+ when 'rename'
127
+ args << :name
128
+ args << :to
129
+
130
+ else
131
+ # Noop
132
+ end
133
+
134
+ args
135
+ end
136
+
137
+ class << self
138
+ def install
139
+ new.install
140
+ end
141
+ end
142
+
143
+ def install
144
+ AdminModule.configuration.credentials.keys.each do |e|
145
+ valid_actions.each do |action|
146
+ AdminModule::Rake::RuleTasks.new("am:#{e}:rule:#{action}", "#{action} #{e} rule(s)") do |t|
147
+ t.env = e
148
+ t.action = action
149
+ end
150
+ end
151
+ end
152
+ end
153
+ end # class
154
+ end # module AdminModule::Task
155
+
156
+ AdminModule::Rake::RuleTasks.install
157
+
@@ -0,0 +1,223 @@
1
+ ##############################################################################
2
+ # File:: snapshot_tasks.rb
3
+ # Purpose:: SnapshotTasks definition
4
+ #
5
+ # Author:: Jeff McAffee 2015-04-05
6
+ #
7
+ ##############################################################################
8
+
9
+ require 'admin_module'
10
+ require 'rake/dsl_definition'
11
+ require 'rake'
12
+
13
+ module AdminModule::Rake
14
+ class SnapshotTasks
15
+ include ::Rake::DSL if defined?(::Rake::DSL)
16
+
17
+ attr_accessor :env
18
+ attr_accessor :name
19
+ attr_accessor :to
20
+ attr_accessor :path
21
+ attr_reader :action
22
+ attr_reader :valid_actions
23
+ attr_reader :stop_on_exception
24
+
25
+ def initialize(task_name = 'snapshots_task', desc = "modify snapshot definition(s)")
26
+ @valid_actions = ['import', 'export', 'read', 'list', 'rename']
27
+ @task_name, @desc = task_name, desc
28
+
29
+ @stop_on_exception = true
30
+
31
+ yield self if block_given?
32
+
33
+ define_task
34
+ end
35
+
36
+ def define_task #:nodoc:
37
+ desc @desc
38
+ task(@task_name, required_args_for_action) do |t,args|
39
+ set_vars args
40
+ commit # Call method to perform when invoked.
41
+ end
42
+ end
43
+
44
+ #
45
+ # Add each arg passed to the task, as an instance variable of the task
46
+ #
47
+
48
+ def set_vars args
49
+ args.each do |arg,val|
50
+ instance_variable_set "@#{arg}", val
51
+ end
52
+
53
+ args
54
+ end
55
+
56
+ def action=(task_action)
57
+ raise "action must be one of #{valid_types.join(', ')}" unless valid_actions.include?(task_action.downcase)
58
+ @action = task_action
59
+ end
60
+
61
+ def stop_on_exception=(do_stop)
62
+ raise ArgumentError, 'Expecting true or false' unless do_stop === true || do_stop === false
63
+ @stop_on_exception = do_stop
64
+ end
65
+
66
+ #
67
+ # Execute the task (action)
68
+ #
69
+
70
+ def commit
71
+ validate_params
72
+
73
+ client = AdminModule::Client.new
74
+ client.env = env
75
+
76
+ if self.respond_to? action
77
+ self.send(action, client)
78
+ return
79
+ else
80
+ raise "Unknown action - #{action}"
81
+ end
82
+
83
+ rescue Exception => e
84
+ raise e if stop_on_exception == true
85
+ ensure
86
+ client.quit
87
+ end
88
+
89
+ #
90
+ # Actions
91
+ #
92
+
93
+ def list client
94
+ $stdout << client.snapshots.list.join("\n")
95
+ $stdout << "\n"
96
+ end
97
+
98
+ def read client
99
+ result = {}
100
+ result[name] = client.snapshots.read(name)
101
+ $stdout << result.to_yaml
102
+ end
103
+
104
+ def import client
105
+ $stdout << client.snapshots.import(path)
106
+ end
107
+
108
+ def export client
109
+ $stdout << client.snapshots.export(path)
110
+ end
111
+
112
+ def rename client
113
+ $stdout << client.snapshots.rename(name, to)
114
+ end
115
+
116
+ #
117
+ # Verify we have the needed parameters (arguments) to perform
118
+ # the task action.
119
+ #
120
+
121
+ def validate_params
122
+ assert_provided env, 'Missing "env"'
123
+ assert_provided action, 'Missing "action"'
124
+
125
+ case action
126
+ when 'import'
127
+ assert_provided path, 'Missing "path"'
128
+
129
+ when 'export'
130
+ assert_provided path, 'Missing "path"'
131
+
132
+ when 'read'
133
+ assert_provided name, 'Missing "name"'
134
+
135
+ when 'rename'
136
+ assert_provided name, 'Missing "name"'
137
+ assert_provided to, 'Missing "to"'
138
+
139
+ end
140
+
141
+ assert_env_is_configured env
142
+ end
143
+
144
+ def assert_provided value, msg
145
+ if value.nil? || value.empty?
146
+ raise msg
147
+ end
148
+ end
149
+
150
+ def assert_env_is_configured arg
151
+ unless AdminModule.configuration.credentials.key? arg
152
+ init_msg = "Have you initialized your config file?\n Try: admin_module config init <filedir>"
153
+ env_msg = "Have you configured your environments?\n Try: admin_module config add env <envname> <url>"
154
+ raise "Unknown environment: #{arg}\n#{init_msg}\n\n#{env_msg}"
155
+ end
156
+ end
157
+
158
+ #
159
+ # Define the task args, based on the action.
160
+ # Used when programatically generating the tasks.
161
+ #
162
+
163
+ def required_args_for_action
164
+ args = []
165
+
166
+ case action
167
+ when 'read'
168
+ args << :name
169
+
170
+ when 'rename'
171
+ args << :name
172
+ args << :to
173
+
174
+ when 'import'
175
+ args << :path
176
+
177
+ when 'export'
178
+ args << :path
179
+
180
+ else
181
+ # Noop
182
+ end
183
+
184
+ args
185
+ end
186
+
187
+ #
188
+ # Class method to create an instance of the task generator,
189
+ # and call the instance's install method.
190
+ #
191
+
192
+ class << self
193
+ def install
194
+ new.install
195
+ end
196
+ end
197
+
198
+ #
199
+ # Instance method to generate the tasks;
200
+ # For each environment where we have configured credentials,
201
+ # generate a task for each available action.
202
+ #
203
+
204
+ def install
205
+ AdminModule.configuration.credentials.keys.each do |e|
206
+ valid_actions.each do |action|
207
+ AdminModule::Rake::SnapshotTasks.new("am:#{e}:snapshot:#{action}", "#{action} #{e} snapshot defn(s)") do |t|
208
+ t.env = e
209
+ t.action = action
210
+ end
211
+ end
212
+ end
213
+ end
214
+ end # class
215
+ end # module
216
+
217
+
218
+ #
219
+ # Install (generate) the tasks
220
+ #
221
+
222
+ AdminModule::Rake::SnapshotTasks.install
223
+
@@ -0,0 +1,197 @@
1
+ ##############################################################################
2
+ # File:: stage_tasks.rb
3
+ # Purpose:: StageTasks definition
4
+ #
5
+ # Author:: Jeff McAffee 2015-03-10
6
+ # Copyright:: Copyright (c) 2015, kTech Systems LLC. All rights reserved.
7
+ # Website:: http://ktechsystems.com
8
+ ##############################################################################
9
+
10
+ require 'admin_module'
11
+ require 'rake/dsl_definition'
12
+ require 'rake'
13
+
14
+ module AdminModule::Rake
15
+
16
+ class StageTasks
17
+ include ::Rake::DSL if defined?(::Rake::DSL)
18
+
19
+ attr_accessor :env
20
+ attr_accessor :name
21
+ attr_accessor :to
22
+ attr_accessor :path
23
+ attr_accessor :allow_create
24
+ attr_reader :action
25
+ attr_reader :valid_actions
26
+ attr_reader :stop_on_exception
27
+
28
+ def initialize(task_name = 'stages_task', desc = "Modify a stage or stages")
29
+ @valid_actions = ['import', 'export', 'read', 'list', 'rename', 'delete']
30
+ @task_name, @desc = task_name, desc
31
+
32
+ @stop_on_exception = true
33
+ @allow_create = false
34
+
35
+ yield self if block_given?
36
+
37
+ define_task
38
+ end
39
+
40
+ def define_task #:nodoc:
41
+ desc @desc
42
+ task(@task_name, required_args_for_action) do |t,args|
43
+ set_vars args
44
+ commit # Call method to perform when invoked.
45
+ end
46
+ end
47
+
48
+ def set_vars args
49
+ args.each do |arg,val|
50
+ instance_variable_set "@#{arg}", val
51
+ end
52
+
53
+ args
54
+ end
55
+
56
+ def action=(task_action)
57
+ raise "action must be one of #{valid_types.join(', ')}" unless valid_actions.include?(task_action.downcase)
58
+ @action = task_action
59
+ end
60
+
61
+ def stop_on_exception=(do_stop)
62
+ raise ArgumentError, 'Expecting true or false' unless do_stop === true || do_stop === false
63
+ @stop_on_exception = do_stop
64
+ end
65
+
66
+ def commit
67
+ validate_params
68
+
69
+ client = AdminModule::Client.new
70
+ client.env = env
71
+
72
+ if self.respond_to? action
73
+ self.send(action, client)
74
+ return
75
+ else
76
+ raise "Unknown action - #{action}"
77
+ end
78
+
79
+ rescue Exception => e
80
+ raise e if stop_on_exception == true
81
+ ensure
82
+ client.quit
83
+ end
84
+
85
+ def list client
86
+ $stdout << client.stages.list.join("\n")
87
+ $stdout << "\n"
88
+ end
89
+
90
+ def read client
91
+ result = {}
92
+ result[name] = client.stages.read(name)
93
+ $stdout << result.to_yaml
94
+ end
95
+
96
+ def import client
97
+ $stdout << client.stages.import(path, allow_create)
98
+ end
99
+
100
+ def export client
101
+ $stdout << client.stages.export(path)
102
+ end
103
+
104
+ def rename client
105
+ $stdout << client.stages.rename(name, to)
106
+ end
107
+
108
+ def delete client
109
+ $stdout << client.stages.delete(name)
110
+ end
111
+
112
+ def validate_params
113
+ assert_provided env, 'Missing "env"'
114
+ assert_provided action, 'Missing "action"'
115
+
116
+ case action
117
+ when 'import'
118
+ assert_provided path, 'Missing "path"'
119
+
120
+ when 'export'
121
+ assert_provided path, 'Missing "path"'
122
+
123
+ when 'read'
124
+ assert_provided name, 'Missing "name"'
125
+
126
+ when 'rename'
127
+ assert_provided name, 'Missing "name"'
128
+ assert_provided to, 'Missing "to"'
129
+
130
+ when 'delete'
131
+ assert_provided name, 'Missing "name"'
132
+
133
+ end
134
+
135
+ assert_env_is_configured env
136
+ end
137
+
138
+ def assert_provided value, msg
139
+ if value.nil? || value.empty?
140
+ raise msg
141
+ end
142
+ end
143
+
144
+ def assert_env_is_configured arg
145
+ unless AdminModule.configuration.credentials.key? arg
146
+ init_msg = "Have you initialized your config file?\n Try: admin_module config init <filedir>"
147
+ env_msg = "Have you configured your environments?\n Try: admin_module config add env <envname> <url>"
148
+ raise "Unknown environment: #{arg}\n#{init_msg}\n\n#{env_msg}"
149
+ end
150
+ end
151
+
152
+ def required_args_for_action
153
+ args = []
154
+
155
+ case action
156
+ when 'read','delete'
157
+ args << :name
158
+
159
+ when 'rename'
160
+ args << :name
161
+ args << :to
162
+
163
+ when 'import'
164
+ args << :path
165
+ args << :allow_create
166
+
167
+ when 'export'
168
+ args << :path
169
+
170
+ else
171
+ # Noop
172
+ end
173
+
174
+ args
175
+ end
176
+
177
+ class << self
178
+ def install
179
+ new.install
180
+ end
181
+ end
182
+
183
+ def install
184
+ AdminModule.configuration.credentials.keys.each do |e|
185
+ valid_actions.each do |action|
186
+ AdminModule::Rake::StageTasks.new("am:#{e}:stage:#{action}", "#{action} #{e} stage(s)") do |t|
187
+ t.env = e
188
+ t.action = action
189
+ end
190
+ end
191
+ end
192
+ end
193
+ end # class
194
+ end # module
195
+
196
+ AdminModule::Rake::StageTasks.install
197
+