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,333 @@
1
+ # Use these commands to access the legacy REST API for Scale test (Studio Scale).
2
+ require 'mu/api/scale'
3
+ class Mu
4
+ class Command
5
+ class Cmd_scale < Command
6
+
7
+ attr_accessor :host, :username, :password, :api
8
+
9
+ # outputs help for this command
10
+ def cmd_help argv
11
+ help
12
+ end
13
+
14
+ # configures the scale json object
15
+ # * argv = command-line arguments, requires a params (-p) and params value (-pv) argument, such as -p volume -pv 100
16
+ def cmd_configure argv
17
+ setup argv
18
+ param = @hash['params']
19
+ value = @hash['param_value']
20
+ response = @api.configure(param, value)
21
+ msg response
22
+ return response
23
+ end
24
+
25
+ # starts a scale test
26
+ # * argv = command-line arguments, requires a scale json object to have been configured
27
+ def cmd_start argv
28
+ setup argv
29
+ response = @api.start
30
+ msg response
31
+ return response
32
+ end
33
+
34
+ # verifies a scale test
35
+ # * argv = command-line arguments, requires a scale json object to have been configured
36
+ def cmd_verify argv
37
+ setup argv
38
+ response = @api.verify
39
+ msg response
40
+ return response
41
+ end
42
+
43
+ # updates a running scale test (valid only if the test is running with no pattern)
44
+ # * argv = command-line arguments, requires a json params object (-p) such as '{ "volume": 100 }'
45
+ def cmd_update argv
46
+ setup argv
47
+ params = @hash['params']
48
+ response = @api.update(params)
49
+ msg response
50
+ return response
51
+ end
52
+
53
+ # returns status from a scale test
54
+ # * argv = command-line arguments
55
+ def cmd_status argv
56
+ setup argv
57
+ response = @api.status
58
+ msg response
59
+ return response
60
+ end
61
+
62
+ # returns an array of currently reserved scale engines
63
+ # * argv = command-line arguments
64
+ def cmd_list argv
65
+ setup argv
66
+ response = @api.list
67
+ msg response
68
+ return response
69
+ end
70
+
71
+ # returns scale engine configuration information
72
+ # * argv = command-line arguments
73
+ def cmd_about argv
74
+ setup argv
75
+ response = @api.about
76
+ msg response
77
+ return response
78
+ end
79
+
80
+ # returns a packet capture file from scale verify
81
+ # * argv = command-line arguments, requires a scale engine id (-b) and the pcap filename (-f) argument
82
+ def cmd_pcap argv
83
+ setup argv
84
+ bot_id = @hash['bot_id']
85
+ file = @hash['filename']
86
+ response = @api.pcap(bot_id, file)
87
+ msg response
88
+ return response
89
+ end
90
+
91
+ # returns the status of all reserved scale engines
92
+ # * argv = command-line arguments
93
+ def cmd_statuses argv
94
+ setup argv
95
+ response = @api.statuses
96
+ msg response
97
+ return response
98
+ end
99
+
100
+ # returns scale test data for charting
101
+ # * argv = command-line arguments, requires:
102
+ # * view (-w), which specifies the TIMELINE or CALLGRAPH chart.
103
+ # * zoom (-z), which specifies the zoom level (0 to 1). 1 returns data for 100% of the time range, 0.5 returns data for 50% of the time range, and 0 returns only the last minute of data
104
+ # * position (-p), which must be 0.
105
+ # * scale engine id (-b)
106
+ def cmd_data argv
107
+ setup argv
108
+ begin
109
+ view = @hash['view']
110
+ zoom = @hash['zoom']
111
+ position = @hash['view_position']
112
+ bot_id = @hash['bot_id']
113
+ response = @api.data(view, zoom, position, bot_id)
114
+ rescue => e
115
+ msg e
116
+ end
117
+ msg response
118
+ return response
119
+ end
120
+
121
+ # returns scale test data for charting
122
+ # * argv = command-line arguments, requires:
123
+ # * zoom (z) level
124
+ # * position(-p 0)
125
+ def cmd_pattern argv
126
+ setup argv
127
+ begin
128
+ zoom = @hash['zoom']
129
+ position = @hash['view_position']
130
+ response = @api.pattern(zoom, position)
131
+ rescue => e
132
+ msg e
133
+ end
134
+ msg response
135
+ return response
136
+ end
137
+
138
+ # stops a scale test
139
+ # * argv = command-line arguments
140
+ def cmd_stop argv
141
+ setup argv
142
+ response = @api.stop
143
+ msg response
144
+ return response
145
+ end
146
+
147
+ # releases the currently reserved scale engine
148
+ # * argv = command-line arguments
149
+ def cmd_release argv
150
+ setup argv
151
+ response = @api.release
152
+ msg response
153
+ return response
154
+ end
155
+
156
+ # reserves a scale engine
157
+ # * argv = command-line arguments, require a scale engine id (-b) argument
158
+ def cmd_reserve_scale_engine argv
159
+ setup argv
160
+ bot_id = @hash['bot_id']
161
+ response = @api.reserve_scale_engine(bot_id)
162
+ msg response
163
+ return response
164
+ end
165
+
166
+ # releases a scale engine
167
+ # * argv = command-line arguments, require a scale engine id (-b) argument
168
+ def cmd_release_scale_engine argv
169
+ setup argv
170
+ bot_id = @hash['bot_id']
171
+ response = @api.release_scale_engine(bot_id)
172
+ msg response
173
+ return response
174
+ end
175
+
176
+ # deletes a scale engine
177
+ # * argv = command-line arguments, require a scale engine id (-b) argument
178
+ def cmd_delete_scale_engine argv
179
+ setup argv
180
+ bot_id = @hash['bot_id']
181
+ response = @api.delete_scale_engine(bot_id)
182
+ msg response
183
+ return response
184
+ end
185
+
186
+ private
187
+
188
+ def setup argv
189
+ parse_cli argv
190
+ @host = (@@mu_ip.nil?) ? "127.0.0.1" : @@mu_ip
191
+ @username = (@@mu_admin_user.nil?) ? "admin" : @@mu_admin_user
192
+ @password = (@@mu_admin_pass.nil?) ? "admin" : @@mu_admin_pass
193
+ @api = Scale.new(@host, @username, @password)
194
+ response = @api.session
195
+ msg response
196
+ return response
197
+ end
198
+
199
+ def parse_cli argv
200
+ @hash = {}
201
+ args = Array.new
202
+ while not argv.empty?
203
+ args << argv.shift if argv.first[0,1] != '-'
204
+
205
+ k = argv.shift
206
+
207
+ if [ '-b', '--bot_id' ].member? k
208
+ @hash['bot_id'] = shift(k, argv)
209
+ next
210
+ end
211
+
212
+ if [ '-c', '--config_file' ].member? k
213
+ puts "process -c"
214
+ ENV['SCALE_CONFIG_FILE'] = shift(k, argv)
215
+ next
216
+ end
217
+
218
+ if [ '-f', '--filename' ].member? k
219
+ @hash['filename'] = shift(k, argv)
220
+ next
221
+ end
222
+
223
+ if [ '-h', '--help' ].member? k
224
+ help
225
+ exit
226
+ end
227
+
228
+ if [ '-m', '--mu_string' ].member? k
229
+ mu_string = shift(k, argv)
230
+ if mu_string =~ /(.+?):(.+?)@(.*)/
231
+ @@mu_admin_user = $1
232
+ @@mu_admin_pass = $2
233
+ @@mu_ip = $3
234
+ end
235
+ next
236
+ end
237
+
238
+ if [ '-o', '--output' ].member? k
239
+ $stdout.reopen(shift(k, argv), "w")
240
+ next
241
+ end
242
+
243
+ if [ '-p', '--params' ].member? k
244
+ @hash['params'] = shift(k, argv)
245
+ next
246
+ end
247
+
248
+ if [ '-ps', '--view_position' ].member? k
249
+ @hash['view_position'] = shift(k, argv)
250
+ next
251
+ end
252
+
253
+ if [ '-pv', '--param_value' ].member? k
254
+ @hash['param_value'] = shift(k, argv)
255
+ next
256
+ end
257
+
258
+ if [ '-v', '--verbose' ].member? k
259
+ $log.level = Logger::DEBUG
260
+ next
261
+ end
262
+
263
+ if [ '-w', '--view' ].member? k
264
+ @hash['view'] = shift(k, argv)
265
+ next
266
+ end
267
+
268
+ if [ '-z', '--zoom' ].member? k
269
+ @hash['zoom'] = shift(k, argv)
270
+ next
271
+ end
272
+ end
273
+
274
+ args
275
+ end
276
+
277
+ def help
278
+ helps = [
279
+ { :short => '-b', :long => '--bot_id', :value => '<string>', :help => 'scale engine identifier' },
280
+ { :short => '-c', :long => '--config_file', :value => '<string>', :help => 'change json config_file' },
281
+ { :short => '-f', :long => '--filename', :value => '<string>', :help => 'pcap filename' },
282
+ { :short => '-h', :long => '--help', :value => '', :help => 'help on command line options' },
283
+ { :short => '-m', :long => '--mu_string', :value => '<string>', :help => 'user, password, mu_ip in the form of admin:admin@10.9.8.7' },
284
+ { :short => '-o', :long => '--output', :value => '<string>', :help => 'output logging to this file' },
285
+ { :short => '-p', :long => '--params', :value => '<string>', :help => 'param(s) for configure or update' },
286
+ { :short => '-ps', :long => '--view_position', :value => '<string>', :help => 'view position for data calls' },
287
+ { :short => '-pv', :long => '--param_value', :value => '<string>', :help => 'param value for configure' },
288
+ { :short => '-v', :long => '--verbose', :value => '', :help => 'set Logger::DEBUG level' },
289
+ { :short => '-w', :long => '--view', :value => '<string>', :help => 'view (RUNTIME|CALLGRAPH) for data calls' },
290
+ { :short => '-z', :long => '--zoom', :value => '<string>', :help => 'zoom value for data calls' }
291
+ ]
292
+
293
+ cmds = [
294
+ "mu cmd_scale:about",
295
+ "mu cmd_scale:configure -p <param> -pv <value>",
296
+ "mu cmd_scale:data -w <view> -z <zoom> -ps <position> -b <bot_id>",
297
+ "mu cmd_scale:delete_scale_engine -b <bot_id>",
298
+ "mu cmd_scale:help",
299
+ "mu cmd_scale:list",
300
+ "mu cmd_scale:pattern -z <zoom> -ps <position> ",
301
+ "mu cmd_scale:pcap -b <bot_id> -f <filename>",
302
+ "mu cmd_scale:release",
303
+ "mu cmd_scale:release_scale_engine -b <bot_id>",
304
+ "mu cmd_scale:reserve_scale_engine -b <bot_id>",
305
+ "mu cmd_scale:session (a.k.a. /new)", # new
306
+ "mu cmd_scale:start",
307
+ "mu cmd_scale:status",
308
+ "mu cmd_scale:statuses",
309
+ "mu cmd_scale:stop",
310
+ "mu cmd_scale:update -p <params>",
311
+ "mu cmd_scale:verify"
312
+ ]
313
+
314
+ max_long_size = helps.inject(0) { |memo, obj| [ obj[:long].size, memo ].max }
315
+ max_value_size = helps.inject(0) { |memo, obj| [ obj[:value].size, memo ].max }
316
+ puts
317
+ puts "Usage: mu cmd_scale <options>"
318
+ puts
319
+ helps.each do |h|
320
+ puts "%-*s %*s %-*s %s" % [max_long_size, h[:long], 2, h[:short], max_value_size, h[:value], h[:help]]
321
+ end
322
+ puts
323
+ puts "Available Commands"
324
+ puts
325
+ cmds.each do | c |
326
+ puts c
327
+ end
328
+ puts
329
+ end
330
+
331
+ end
332
+ end
333
+ end
@@ -0,0 +1,127 @@
1
+ # Api methods to access the Mu System System page
2
+ # Use these commands to restart system services or to get status details for the Mu system
3
+ require 'mu/api/system'
4
+ class Mu
5
+ class Command
6
+ class Cmd_system < Command
7
+
8
+ attr_accessor :host, :username, :password, :api
9
+
10
+ # outputs help for this command
11
+ # * argv = command-line arguments
12
+ def cmd_help argv
13
+ help
14
+ end
15
+
16
+ # restarts the Mu system services (this does not reboot the appliance)
17
+ # * argv = command-line arguments
18
+ def cmd_restart argv
19
+ setup argv
20
+ response = @api.restart
21
+ msg response
22
+ return response
23
+ end
24
+
25
+ # gets the complete System status page
26
+ # * argv = command-line arguments
27
+ def cmd_status argv
28
+ setup argv
29
+ response = @api.status
30
+ msg response
31
+ return response
32
+ end
33
+
34
+ # gets additional system status information, imncluding hard drive, model and serial data
35
+ # * argv = command-line arguments
36
+ def cmd_status2 argv
37
+ setup argv
38
+ response = @api.status2
39
+ msg response
40
+ return response
41
+ end
42
+
43
+ private
44
+
45
+ def setup argv
46
+ parse_cli argv
47
+ @host = (@@mu_ip.nil?) ? "127.0.0.1" : @@mu_ip
48
+ @username = (@@mu_admin_user.nil?) ? "admin" : @@mu_admin_user
49
+ @password = (@@mu_admin_pass.nil?) ? "admin" : @@mu_admin_pass
50
+ @api = System.new(@host, @username, @password)
51
+ msg "Created System Api object to :#{@host}", Logger::DEBUG
52
+ end
53
+
54
+
55
+ # parses command-line arguments
56
+ def parse_cli argv
57
+ args = Array.new
58
+ while not argv.empty?
59
+ args << argv.shift if argv.first[0,1] != '-'
60
+
61
+ k = argv.shift
62
+
63
+ if [ '-h', '--help' ].member? k
64
+ help
65
+ exit
66
+ end
67
+
68
+ if [ '-m', '--mu_string' ].member? k
69
+ mu_string = shift(k, argv)
70
+ if mu_string =~ /(.+?):(.+?)@(.*)/
71
+ @@mu_admin_user = $1
72
+ @@mu_admin_pass = $2
73
+ @@mu_ip = $3
74
+ end
75
+ next
76
+ end
77
+
78
+ if [ '-o', '--output' ].member? k
79
+ $stdout.reopen(shift(k, argv), "w")
80
+ next
81
+ end
82
+
83
+ if [ '-v', '--verbose' ].member? k
84
+ $log.level = Logger::DEBUG
85
+ next
86
+ end
87
+
88
+ end
89
+
90
+ args
91
+ end
92
+
93
+ # displays command-line help
94
+ def help
95
+ helps = [
96
+ { :short => '-h', :long => '--help', :value => '', :help => 'help on command line options' },
97
+ { :short => '-m', :long => '--mu_string', :value => '<string>', :help => 'user, password, mu_ip in the form of admin:admin@10.9.8.7' },
98
+ { :short => '-o', :long => '--output', :value => '<string>', :help => 'output logging to this file' },
99
+ { :short => '-v', :long => '--verbose', :value => '', :help => 'set Logger::DEBUG level' }
100
+ ]
101
+
102
+ cmds = [
103
+ "mu cmd_system:restart",
104
+ "mu cmd_system:status",
105
+ "mu cmd_system:status2"
106
+ ]
107
+
108
+ max_long_size = helps.inject(0) { |memo, obj| [ obj[:long].size, memo ].max }
109
+ max_value_size = helps.inject(0) { |memo, obj| [ obj[:value].size, memo ].max }
110
+ puts
111
+ puts "Usage: mu cmd_system <options>"
112
+ puts
113
+ helps.each do |h|
114
+ puts "%-*s %*s %-*s %s" % [max_long_size, h[:long], 2, h[:short], max_value_size, h[:value], h[:help]]
115
+ end
116
+ puts
117
+ puts "Available Commands"
118
+ puts
119
+ cmds.each do | c |
120
+ puts c
121
+ end
122
+ puts
123
+ end
124
+
125
+ end
126
+ end # Command
127
+ end # Mu