mu 5.7.2.3

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 (117) hide show
  1. data/Mu_Gem.html +1591 -0
  2. data/bin/mu +11 -0
  3. data/lib/mu.rb +65 -0
  4. data/lib/mu/api/ddt.rb +233 -0
  5. data/lib/mu/api/homepage.rb +54 -0
  6. data/lib/mu/api/muapi.rb +231 -0
  7. data/lib/mu/api/netconfig.rb +233 -0
  8. data/lib/mu/api/scale.rb +199 -0
  9. data/lib/mu/api/system.rb +40 -0
  10. data/lib/mu/client.rb +31 -0
  11. data/lib/mu/command.rb +28 -0
  12. data/lib/mu/command/api.rb +95 -0
  13. data/lib/mu/command/cmd_appid.rb +486 -0
  14. data/lib/mu/command/cmd_cli.rb +151 -0
  15. data/lib/mu/command/cmd_ddt.rb +449 -0
  16. data/lib/mu/command/cmd_homepage.rb +146 -0
  17. data/lib/mu/command/cmd_muapi.rb +361 -0
  18. data/lib/mu/command/cmd_netconfig.rb +262 -0
  19. data/lib/mu/command/cmd_runscale.rb +533 -0
  20. data/lib/mu/command/cmd_runscenario.rb +258 -0
  21. data/lib/mu/command/cmd_runverify.rb +336 -0
  22. data/lib/mu/command/cmd_scale.rb +333 -0
  23. data/lib/mu/command/cmd_system.rb +127 -0
  24. data/lib/mu/command/curl.rb +246 -0
  25. data/lib/mu/command/help.rb +29 -0
  26. data/lib/mu/curl/error.rb +54 -0
  27. data/lib/mu/curl/verify.rb +137 -0
  28. data/lib/mu/helper.rb +55 -0
  29. data/lib/mu/http_helper.rb +232 -0
  30. data/rdoc/classes/Mu.html +305 -0
  31. data/rdoc/classes/Mu/Client.html +265 -0
  32. data/rdoc/classes/Mu/Command.html +208 -0
  33. data/rdoc/classes/Mu/Command/API.html +524 -0
  34. data/rdoc/classes/Mu/Command/Cmd_appid.html +934 -0
  35. data/rdoc/classes/Mu/Command/Cmd_cli.html +515 -0
  36. data/rdoc/classes/Mu/Command/Cmd_ddt.html +1169 -0
  37. data/rdoc/classes/Mu/Command/Cmd_homepage.html +489 -0
  38. data/rdoc/classes/Mu/Command/Cmd_muapi.html +968 -0
  39. data/rdoc/classes/Mu/Command/Cmd_netconfig.html +743 -0
  40. data/rdoc/classes/Mu/Command/Cmd_runscale.html +970 -0
  41. data/rdoc/classes/Mu/Command/Cmd_runscenario.html +530 -0
  42. data/rdoc/classes/Mu/Command/Cmd_runverify.html +621 -0
  43. data/rdoc/classes/Mu/Command/Cmd_scale.html +939 -0
  44. data/rdoc/classes/Mu/Command/Cmd_system.html +426 -0
  45. data/rdoc/classes/Mu/Command/Curl.html +524 -0
  46. data/rdoc/classes/Mu/Command/Help.html +166 -0
  47. data/rdoc/classes/Mu/Curl.html +116 -0
  48. data/rdoc/classes/Mu/Curl/Error.html +157 -0
  49. data/rdoc/classes/Mu/Curl/Error/Authorize.html +178 -0
  50. data/rdoc/classes/Mu/Curl/Error/Connect.html +149 -0
  51. data/rdoc/classes/Mu/Curl/Error/DNS.html +113 -0
  52. data/rdoc/classes/Mu/Curl/Error/Region.html +160 -0
  53. data/rdoc/classes/Mu/Curl/Error/Status.html +149 -0
  54. data/rdoc/classes/Mu/Curl/Error/Timeout.html +149 -0
  55. data/rdoc/classes/Mu/Curl/Verify.html +282 -0
  56. data/rdoc/classes/Mu/Curl/Verify/Request.html +227 -0
  57. data/rdoc/classes/Mu/Curl/Verify/Response.html +187 -0
  58. data/rdoc/classes/Mu/Curl/Verify/Result.html +188 -0
  59. data/rdoc/classes/Mu/Ddt.html +914 -0
  60. data/rdoc/classes/Mu/Helper.html +308 -0
  61. data/rdoc/classes/Mu/Homepage.html +377 -0
  62. data/rdoc/classes/Mu/HttpHelper.html +639 -0
  63. data/rdoc/classes/Mu/Muapi.html +816 -0
  64. data/rdoc/classes/Mu/Netconfig.html +781 -0
  65. data/rdoc/classes/Mu/Scale.html +832 -0
  66. data/rdoc/classes/Mu/System.html +281 -0
  67. data/rdoc/classes/Object.html +148 -0
  68. data/rdoc/classes/TCTestMu.html +1793 -0
  69. data/rdoc/classes/Test.html +107 -0
  70. data/rdoc/classes/Test/Unit.html +107 -0
  71. data/rdoc/classes/Test/Unit/TestCase.html +113 -0
  72. data/rdoc/created.rid +1 -0
  73. data/rdoc/files/lib/mu/api/ddt_rb.html +101 -0
  74. data/rdoc/files/lib/mu/api/homepage_rb.html +101 -0
  75. data/rdoc/files/lib/mu/api/muapi_rb.html +101 -0
  76. data/rdoc/files/lib/mu/api/netconfig_rb.html +101 -0
  77. data/rdoc/files/lib/mu/api/scale_rb.html +101 -0
  78. data/rdoc/files/lib/mu/api/system_rb.html +101 -0
  79. data/rdoc/files/lib/mu/client_rb.html +101 -0
  80. data/rdoc/files/lib/mu/command/api_rb.html +101 -0
  81. data/rdoc/files/lib/mu/command/cmd_appid_rb.html +119 -0
  82. data/rdoc/files/lib/mu/command/cmd_cli_rb.html +108 -0
  83. data/rdoc/files/lib/mu/command/cmd_ddt_rb.html +117 -0
  84. data/rdoc/files/lib/mu/command/cmd_homepage_rb.html +115 -0
  85. data/rdoc/files/lib/mu/command/cmd_muapi_rb.html +116 -0
  86. data/rdoc/files/lib/mu/command/cmd_netconfig_rb.html +116 -0
  87. data/rdoc/files/lib/mu/command/cmd_runscale_rb.html +119 -0
  88. data/rdoc/files/lib/mu/command/cmd_runscenario_rb.html +115 -0
  89. data/rdoc/files/lib/mu/command/cmd_runverify_rb.html +117 -0
  90. data/rdoc/files/lib/mu/command/cmd_scale_rb.html +115 -0
  91. data/rdoc/files/lib/mu/command/cmd_system_rb.html +116 -0
  92. data/rdoc/files/lib/mu/command/curl_rb.html +101 -0
  93. data/rdoc/files/lib/mu/command/help_rb.html +101 -0
  94. data/rdoc/files/lib/mu/command_rb.html +107 -0
  95. data/rdoc/files/lib/mu/curl/error_rb.html +101 -0
  96. data/rdoc/files/lib/mu/curl/verify_rb.html +101 -0
  97. data/rdoc/files/lib/mu/helper_rb.html +101 -0
  98. data/rdoc/files/lib/mu/http_helper_rb.html +101 -0
  99. data/rdoc/files/lib/mu_rb.html +121 -0
  100. data/rdoc/files/test/helper_rb.html +112 -0
  101. data/rdoc/files/test/tc_test_mu_rb.html +111 -0
  102. data/rdoc/fr_class_index.html +68 -0
  103. data/rdoc/fr_file_index.html +55 -0
  104. data/rdoc/fr_method_index.html +374 -0
  105. data/rdoc/index.html +24 -0
  106. data/rdoc/rdoc-style.css +208 -0
  107. data/test/data/app_id_stats.csv +1 -0
  108. data/test/data/data_cgi.msl +94 -0
  109. data/test/data/data_cgi.xml +322 -0
  110. data/test/data/default_test.csv +3 -0
  111. data/test/data/ftp_with_channel.xml +1643 -0
  112. data/test/data/irc.xml +3837 -0
  113. data/test/data/scale_configuration.json +25 -0
  114. data/test/data/test_data_cgi_error.xml +35 -0
  115. data/test/helper.rb +18 -0
  116. data/test/tc_test_mu.rb +716 -0
  117. metadata +322 -0
@@ -0,0 +1,146 @@
1
+ # Api methods to access the Mu System homepage
2
+ require 'mu/api/homepage'
3
+ class Mu
4
+ class Command
5
+ class Cmd_homepage < Command
6
+
7
+ attr_accessor :host, :username, :password, :api
8
+
9
+ # displays command-line help
10
+ # * argv = command-line arguments
11
+ def cmd_help argv
12
+ help
13
+ end
14
+
15
+ # returns all homepage information
16
+ # * argv = command-line arguments
17
+ def cmd_all argv
18
+ setup argv
19
+ response = @api.all
20
+ msg response
21
+ return response
22
+ end
23
+
24
+ # returns recent homepage information
25
+ # * argv = command-line arguments
26
+ def cmd_recent argv
27
+ setup argv
28
+ response = @api.recent
29
+ msg response
30
+ return response
31
+ end
32
+
33
+ # returns homepage status information
34
+ # * argv = command-line arguments
35
+ def cmd_status argv
36
+ setup argv
37
+ response = @api.status
38
+ msg response
39
+ return response
40
+ end
41
+
42
+ # returns the latest test
43
+ # * argv = command-line arguments
44
+ def cmd_latest_test argv
45
+ setup argv
46
+ response = @api.latest_test
47
+ msg response
48
+ return response
49
+ end
50
+
51
+ # returns the queued tests
52
+ # * argv = command-line arguments
53
+ def cmd_queue_test argv
54
+ setup argv
55
+ response = @api.queue_test
56
+ msg response
57
+ return response
58
+ end
59
+
60
+ private
61
+
62
+ def setup argv
63
+ parse_cli argv
64
+ @host = (@@mu_ip.nil?) ? "127.0.0.1" : @@mu_ip
65
+ @username = (@@mu_admin_user.nil?) ? "admin" : @@mu_admin_user
66
+ @password = (@@mu_admin_pass.nil?) ? "admin" : @@mu_admin_pass
67
+ @cookie = ""
68
+ @response = nil
69
+ @api = Homepage.new(@host, @username, @password)
70
+ msg "Created Homepage object to :#{@host}", Logger::DEBUG
71
+ end
72
+
73
+ def parse_cli argv
74
+ @hash = {}
75
+ args = Array.new
76
+ while not argv.empty?
77
+ args << argv.shift if argv.first[0,1] != '-'
78
+
79
+ k = argv.shift
80
+
81
+ if [ '-h', '--help' ].member? k
82
+ help
83
+ exit
84
+ end
85
+
86
+ if [ '-m', '--mu_string' ].member? k
87
+ mu_string = shift(k, argv)
88
+ if mu_string =~ /(.+?):(.+?)@(.*)/
89
+ @@mu_admin_user = $1
90
+ @@mu_admin_pass = $2
91
+ @@mu_ip = $3
92
+ end
93
+ next
94
+ end
95
+
96
+ if [ '-o', '--output' ].member? k
97
+ $stdout.reopen(shift(k, argv), "w")
98
+ next
99
+ end
100
+
101
+ if [ '-v', '--verbose' ].member? k
102
+ $log.level = Logger::DEBUG
103
+ next
104
+ end
105
+ end
106
+
107
+ args
108
+ end
109
+
110
+ def help
111
+ helps = [
112
+ { :short => '-h', :long => '--help', :value => '', :help => 'help on command line options' },
113
+ { :short => '-m', :long => '--mu_string', :value => '<string>', :help => 'user, password, mu_ip in the form of admin:admin@10.9.8.7' },
114
+ { :short => '-o', :long => '--output', :value => '<string>', :help => 'output logging to this file' },
115
+ { :short => '-v', :long => '--verbose', :value => '', :help => 'set Logger::DEBUG level' }
116
+ ]
117
+
118
+ cmds = [
119
+ "mu cmd_homepage:all",
120
+ "mu cmd_homepage:help",
121
+ "mu cmd_homepage:latest_test",
122
+ "mu cmd_homepage:queue_test",
123
+ "mu cmd_homepage:recent",
124
+ "mu cmd_homepage:status",
125
+ ]
126
+
127
+ max_long_size = helps.inject(0) { |memo, obj| [ obj[:long].size, memo ].max }
128
+ max_value_size = helps.inject(0) { |memo, obj| [ obj[:value].size, memo ].max }
129
+ puts
130
+ puts "Usage: mu cmd_homepage:<command> <options>"
131
+ puts
132
+ helps.each do |h|
133
+ puts "%-*s %*s %-*s %s" % [max_long_size, h[:long], 2, h[:short], max_value_size, h[:value], h[:help]]
134
+ end
135
+ puts
136
+ puts "Available Commands"
137
+ puts
138
+ cmds.each do | c |
139
+ puts c
140
+ end
141
+ puts
142
+ end
143
+
144
+ end
145
+ end # Command
146
+ end # Mu
@@ -0,0 +1,361 @@
1
+ # Use these commands to access the legacy REST API for Test Runs (Protocol Mutation, Scenario Mutation, DoS, and PV tests).
2
+
3
+ require 'mu/api/muapi'
4
+ class Mu
5
+ class Command
6
+ class Cmd_muapi < Command
7
+
8
+ attr_accessor :host, :username, :password, :api, :docroot
9
+
10
+ # displays command-line help
11
+ # * argv = command-line arguments
12
+ def cmd_help argv
13
+ help
14
+ end
15
+
16
+ # for any of the possible status values, returns a list of analysis
17
+ # * argv = command-line arguments, requires the status (-s) argument, specifying the values to query, such as 'running' or 'failed'
18
+ def cmd_list_by_status argv
19
+ setup argv
20
+ status = @hash['status']
21
+ response = @api.list_by_status(status)
22
+ if response.is_a?(Array)
23
+ response.each do | r |
24
+ msg r
25
+ end
26
+ else
27
+ msg response
28
+ end
29
+ end
30
+
31
+ # returns the status of a particular analysis
32
+ # * argv = command-line argumentsm require a uuid (-u) argument, specifying a test on the Mu
33
+ def cmd_status argv
34
+ setup argv
35
+ uuid = @hash['uuid']
36
+ response = @api.status(uuid)
37
+ msg response
38
+ return response
39
+ end
40
+
41
+ # runs an analysis, reference is the posted uuid
42
+ # ex: run(1234-1234-1234-1234, "new_name")
43
+ # * argv = command-line arguments, requires a uuid (-u) and an optional name such that each successive run of the same uuid yields a new name
44
+ def cmd_run argv
45
+ setup argv
46
+ uuid = @hash['uuid']
47
+ if @hash['boolean'].nil?
48
+ rename = ""
49
+ else
50
+ rename = @hash['boolean']
51
+ end
52
+ response = @api.run(uuid, rename)
53
+ msg response
54
+ return response
55
+ end
56
+
57
+ # aborts a running analysis. the next queued analysis will start
58
+ # * argv = command-line arguments, requires a uuid (-u) argument specifying the test
59
+ def cmd_stop argv
60
+ setup argv
61
+ uuid = @hash['uuid']
62
+ response = @api.stop(uuid)
63
+ msg response
64
+ return response
65
+ end
66
+
67
+ # pauses a running analysis. Note that any queued analysis will NOT begin
68
+ # * argv = command-line arguments, requires a uuid (-u) argument specifying the test
69
+ def cmd_pause argv
70
+ setup argv
71
+ uuid = @hash['uuid']
72
+ response = @api.pause(uuid)
73
+ msg response
74
+ return response
75
+ end
76
+
77
+ # resumes a paused analysis
78
+ # * argv = command-line arguments, requires a uuid (-u) argument specifying the test
79
+ def cmd_resume argv
80
+ setup argv
81
+ uuid = @hash['uuid']
82
+ response = @api.resume(uuid)
83
+ msg response
84
+ return response
85
+ end
86
+
87
+ # delets an analysis or template of any type
88
+ # * argv = command-line arguments, requires a uuid (-u) argument specifying the test
89
+ def cmd_delete argv
90
+ setup argv
91
+ uuid = @hash['uuid']
92
+ response = @api.delete(uuid)
93
+ msg response
94
+ return response
95
+ end
96
+
97
+ # returns a list of faults (if any) for the analysis
98
+ # * argv = command-line arguments, requires a uuid (-u) argument specifying the test
99
+ def cmd_get_faults argv
100
+ setup argv
101
+ uuid = @hash['uuid']
102
+ response = @api.get_faults(uuid)
103
+ if response.is_a?(Array)
104
+ response.each do | r |
105
+ msg r
106
+ end
107
+ else
108
+ msg response
109
+ end
110
+ return response
111
+ end
112
+
113
+ # returns the name of a test referenced by uuid
114
+ # * argv = command-line arguments, requires a uuid (-u) argument specifying the test
115
+ def cmd_get_name argv
116
+ setup argv
117
+ uuid = @hash['uuid']
118
+ response = @api.get_name(uuid)
119
+ msg response
120
+ return response
121
+ end
122
+
123
+ # returns the types of templates on the Mu
124
+ # * argv = command-line arguments
125
+ def cmd_types argv
126
+ setup argv
127
+ response = @api.types
128
+ msg response
129
+ return response
130
+ end
131
+
132
+ # lists all templates of the given type
133
+ # * argv = command-line arguments, requires a type (-t) argument, such as 'scenario'
134
+ def cmd_list argv
135
+ setup argv
136
+ type = @hash['type']
137
+ response = @api.list(type)
138
+ if response.is_a?(Array)
139
+ response.each do | r |
140
+ msg r
141
+ end
142
+ else
143
+ msg response
144
+ end
145
+ return response
146
+ end
147
+
148
+ # exports a template by type and name
149
+ # * argv = command-line arguments, requires a template type (-t) and template name (-n) argument
150
+ def cmd_export_by_type_and_name argv
151
+ setup argv
152
+ type = @hash['type']
153
+ name = @hash['name']
154
+ response = @api.export_by_type_and_name(type, name)
155
+ msg response
156
+ return response
157
+ end
158
+
159
+ # exports a template by uuid
160
+ # * argv = command-line arguments, requires a template uuid (-u) argument
161
+ def cmd_export_by_uuid argv
162
+ setup argv
163
+ uuid = @hash['uuid']
164
+ response = @api.export_by_uuid(uuid)
165
+ msg response
166
+ return response
167
+ end
168
+
169
+ # archive has a set of three commands that are used to
170
+ # generate and download an archive of all data produced by
171
+ # a particular test
172
+ # ex:
173
+ # * argv = command-line arguments, requires a command (-c) argument
174
+ # * command=run returns the job_id
175
+ # * command=status (called after 'run'), requires the job_id (-u) argument
176
+ # * command=get (called when status returns "Finished"), requires the job_id (-u) argument
177
+ def cmd_archive argv
178
+ setup argv
179
+ command = @hash['command']
180
+ job_id = @hash['uuid']
181
+ response = @api.archive(command, job_id)
182
+ msg response
183
+ return response
184
+ end
185
+
186
+ # backup has a set of three commands that are used to generate,
187
+ # query and retrieve a backup
188
+ # ex:
189
+ # * argv = command-line arguments, requires a command (-c) argument
190
+ # * command=run returns the job_id
191
+ # * command=status (called after 'run')
192
+ # * command=get (called when status returns "Finished"), requires the name (-n) argument
193
+ # * name = backup file name (will be given a .dat extension)
194
+ def cmd_backup argv
195
+ setup argv
196
+ command = @hash['command']
197
+ name = @hash['name']
198
+ response = @api.backup(command, name)
199
+ msg response
200
+ return response
201
+ end
202
+
203
+ # capture has a set of three commands that are used to generate
204
+ # packet captures, poll the status and return the resulting file
205
+ # ex:
206
+ # * argv = command-line arguments, requires a command (-c) argument
207
+ # * command=run returns the job_id
208
+ # * command=status (called after 'run'), requires the job_id (-u) argument
209
+ # * command=get (called when status returns "Finished"), requires the job_id (-u) argument
210
+ # * port = the Mu interface on which to capture packets
211
+ def cmd_capture argv
212
+ setup argv
213
+ command = @hash['command']
214
+ port = @hash['port']
215
+ job_id = @hash['uuid']
216
+ response = @api.capture(command, port, job_id)
217
+ msg response
218
+ return response
219
+ end
220
+
221
+ private
222
+
223
+ def setup argv
224
+ parse_cli argv
225
+ @host = (@@mu_ip.nil?) ? "127.0.0.1" : @@mu_ip
226
+ @username = (@@mu_admin_user.nil?) ? "admin" : @@mu_admin_user
227
+ @password = (@@mu_admin_pass.nil?) ? "admin" : @@mu_admin_pass
228
+ @docroot = "/api/v3"
229
+ @params = nil
230
+ @expected_error = nil
231
+ @api = Muapi.new(@host, @username, @password)
232
+ msg "Created API object to :#{@host}", Logger::DEBUG
233
+ end
234
+
235
+ def parse_cli argv
236
+ args = Array.new
237
+ @hash = Hash.new
238
+ while not argv.empty?
239
+ args << argv.shift if argv.first[0,1] != '-'
240
+
241
+ k = argv.shift
242
+
243
+ if [ '-b', '--boolean' ].member? k
244
+ @hash['boolean'] = shift(k, argv)
245
+ next
246
+ end
247
+
248
+ if [ '-c', '--command' ].member? k
249
+ @hash['command'] = shift(k, argv)
250
+ next
251
+ end
252
+
253
+ if [ '-h', '--help' ].member? k
254
+ help
255
+ exit
256
+ end
257
+
258
+ if [ '-m', '--mu_string' ].member? k
259
+ mu_string = shift(k, argv)
260
+ if mu_string =~ /(.+?):(.+?)@(.*)/
261
+ @@mu_admin_user = $1
262
+ @@mu_admin_pass = $2
263
+ @@mu_ip = $3
264
+ end
265
+ next
266
+ end
267
+
268
+ if [ '-n', '--name' ].member? k
269
+ @hash['name'] = shift(k, argv)
270
+ next
271
+ end
272
+
273
+ if [ '-o', '--output' ].member? k
274
+ $stdout.reopen(shift(k, argv), "w")
275
+ next
276
+ end
277
+
278
+ if [ '-p', '--port' ].member? k
279
+ @hash['port'] = shift(k, argv)
280
+ next
281
+ end
282
+
283
+ if [ '-s', '--status' ].member? k
284
+ @hash['status'] = shift(k, argv)
285
+ next
286
+ end
287
+
288
+ if [ '-t', '--type' ].member? k
289
+ @hash['type'] = shift(k, argv)
290
+ next
291
+ end
292
+
293
+ if [ '-u', '--uuid' ].member? k
294
+ @hash['uuid'] = shift(k, argv)
295
+ next
296
+ end
297
+
298
+ if [ '-v', '--verbose' ].member? k
299
+ $log.level = Logger::DEBUG
300
+ next
301
+ end
302
+ end
303
+
304
+ args
305
+ end
306
+
307
+ def help
308
+ helps = [
309
+ { :short => '-b', :long => '--boolean', :value => '<string>', :help => 'boolean arg' },
310
+ { :short => '-c', :long => '--command', :value => '<string>', :help => 'e.g. run|get|status' },
311
+ { :short => '-h', :long => '--help', :value => '', :help => 'help on command line options' },
312
+ { :short => '-m', :long => '--mu_string', :value => '<string>', :help => 'user, password, mu_ip in the form of admin:admin@10.9.8.7' },
313
+ { :short => '-n', :long => '--name', :value => '<string>', :help => 'name for filtering' },
314
+ { :short => '-o', :long => '--output', :value => '<string>', :help => 'output logging to this file' },
315
+ { :short => '-p', :long => '--port', :value => '<string>', :help => 'port name' },
316
+ { :short => '-s', :long => '--status', :value => '<string>', :help => 'status, running|finished|aborted|queued|failed' },
317
+ { :short => '-t', :long => '--type', :value => '<string>', :help => 'template type' },
318
+ { :short => '-u', :long => '--uuid', :value => '<string>', :help => 'template uuid' },
319
+ { :short => '-v', :long => '--verbose', :value => '', :help => 'set Logger::DEBUG level' }
320
+ ]
321
+
322
+ cmds = [
323
+ "mu cmd_muapi:archive -c <command> -u <uuid>",
324
+ "mu cmd_muapi:backup -c <command> [-n <name>]",
325
+ "mu cmd_muapi:capture -c <command> -p <port> [-u <uuid>]",
326
+ "mu cmd_muapi:delete -u <uuid>",
327
+ "mu cmd_muapi:export_by_type_and_name -t <type> -n <name>",
328
+ "mu cmd_muapi:export_by_uuid -u <uuid>",
329
+ "mu cmd_muapi:get_faults -u <uuid>",
330
+ "mu cmd_muapi:get_name -u <uuid>",
331
+ "mu cmd_muapi:help",
332
+ "mu cmd_muapi:list -t <type>",
333
+ "mu cmd_muapi:list_by_status -s <status>",
334
+ "mu cmd_muapi:pause -u <uuid>",
335
+ "mu cmd_muapi:resume -u <uuid>",
336
+ "mu cmd_muapi:run -u <uuid> [-b rename]",
337
+ "mu cmd_muapi:status -u <uuid>",
338
+ "mu cmd_muapi:stop -u <uuid>",
339
+ "mu cmd_muapi:types",
340
+ ]
341
+
342
+ max_long_size = helps.inject(0) { |memo, obj| [ obj[:long].size, memo ].max }
343
+ max_value_size = helps.inject(0) { |memo, obj| [ obj[:value].size, memo ].max }
344
+ puts
345
+ puts "Usage: mu cmd_muapi <options>"
346
+ puts
347
+ helps.each do |h|
348
+ puts "%-*s %*s %-*s %s" % [max_long_size, h[:long], 2, h[:short], max_value_size, h[:value], h[:help]]
349
+ end
350
+ puts
351
+ puts "Available Commands"
352
+ puts
353
+ cmds.each do | c |
354
+ puts c
355
+ end
356
+ puts
357
+ end
358
+
359
+ end
360
+ end # Command
361
+ end # Mu