mu 5.7.28 → 5.7.29
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/app_id_stats.csv +15 -0
- data/bin/app_id_status.json +6369 -0
- data/bin/scale.json +25 -0
- data/lib/mu/command/cmd_runscale.rb +35 -7
- data/version.rb +1 -1
- metadata +97 -84
data/bin/scale.json
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"hosts": {
|
3
|
+
"host_0": "b1/*",
|
4
|
+
"host_1": "b2/*"
|
5
|
+
},
|
6
|
+
"timeout": 5000,
|
7
|
+
"delay": 0,
|
8
|
+
"volume": 1,
|
9
|
+
"holdConcurrency": true,
|
10
|
+
"limitConcurrency": false,
|
11
|
+
"vectorAddressPairing": false,
|
12
|
+
"musl": "scenario(name: \"scenario\") {\r\r\n hosts {\r\r\n # browser\r\r\n &host_0 = host(type:v4)\r\r\n # www.dicom.com\r\r\n &host_1 = host(type:v4)\r\r\n }\r\r\n steps { \r\r\n xport0 = tcp(src:&host_0, dst:&host_1, dst_port:80)\r\r\n \r\r\n # GET /en HTTP/1.1\r\r\n cs0 = xport0.client_send {\r\r\n \"GET /en HTTP/1.1\\r\\n\"\r\r\n \"Host: www.dicom.com\\r\\n\"\r\r\n \"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17\\r\\n\"\r\r\n \"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\n\"\r\r\n \"Accept-Language: en-us,en;q=0.5\\r\\n\"\r\r\n \"Accept-Encoding: gzip,deflate\\r\\n\"\r\r\n \"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\\r\\n\"\r\r\n \"Keep-Alive: 115\\r\\n\"\r\r\n \"Connection: keep-alive\\r\\n\"\r\r\n \"Cookie: bsuniquevid=1306759634212y8fTfOzhdbTMIS2ROMgWs50PrUE\\r\\n\"\r\r\n \"Content-Length: 0\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n sr0 = cs0.server_receive {\r\r\n }\r\r\n # HTTP/1.1 301 Moved Permanently\r\r\n ss0 = xport0.server_send {\r\r\n \"HTTP/1.1 301 Moved Permanently\\r\\n\"\r\r\n \"Date: Mon, 30 May 2011 12:52:16 GMT\\r\\n\"\r\r\n \"Server: Apache/2\\r\\n\"\r\r\n \"Location: http://www.dicom.com/en/\\r\\n\"\r\r\n \"Vary: Accept-Encoding\\r\\n\"\r\r\n \"Content-Encoding: gzip\\r\\n\"\r\r\n \"Content-Length: 230\\r\\n\"\r\r\n \"Keep-Alive: timeout=10, max=100\\r\\n\"\r\r\n \"Connection: Keep-Alive\\r\\n\"\r\r\n \"Content-Type: text/html; charset=iso-8859-1\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n cr0 = ss0.client_receive {\r\r\n assertions {\r\r\n /HTTP\\/1\\.1 (\\d+)/ == 301\r\r\n }\r\r\n }\r\r\n xport1 = tcp(src:&host_0, dst:&host_1, dst_port:80)\r\r\n \r\r\n # GET /en/ HTTP/1.1\r\r\n cs1 = xport1.client_send {\r\r\n \"GET /en/ HTTP/1.1\\r\\n\"\r\r\n \"Host: www.dicom.com\\r\\n\"\r\r\n \"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17\\r\\n\"\r\r\n \"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\n\"\r\r\n \"Accept-Language: en-us,en;q=0.5\\r\\n\"\r\r\n \"Accept-Encoding: gzip,deflate\\r\\n\"\r\r\n \"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\\r\\n\"\r\r\n \"Keep-Alive: 115\\r\\n\"\r\r\n \"Connection: keep-alive\\r\\n\"\r\r\n \"Cookie: bsuniquevid=1306759634212y8fTfOzhdbTMIS2ROMgWs50PrUE\\r\\n\"\r\r\n \"Content-Length: 0\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n sr1 = cs1.server_receive {\r\r\n }\r\r\n # HTTP/1.1 200 OK\r\r\n ss1 = xport1.server_send {\r\r\n \"HTTP/1.1 200 OK\\r\\n\"\r\r\n \"Date: Mon, 30 May 2011 12:52:16 GMT\\r\\n\"\r\r\n \"Server: Apache/2\\r\\n\"\r\r\n \"Vary: Accept-Encoding\\r\\n\"\r\r\n \"Content-Encoding: gzip\\r\\n\"\r\r\n \"Content-Length: 4820\\r\\n\"\r\r\n \"Keep-Alive: timeout=10, max=99\\r\\n\"\r\r\n \"Connection: Keep-Alive\\r\\n\"\r\r\n \"Content-Type: text/html; charset=UTF-8\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n cr1 = ss1.client_receive {\r\r\n assertions {\r\r\n /HTTP\\/1\\.1 (\\d+)/ == 200\r\r\n }\r\r\n }\r\r\n xport2 = tcp(src:&host_0, dst:&host_1, dst_port:80)\r\r\n \r\r\n # GET /en/products/software.php HTTP/1.1\r\r\n cs2 = xport2.client_send {\r\r\n \"GET /en/products/software.php HTTP/1.1\\r\\n\"\r\r\n \"Host: www.dicom.com\\r\\n\"\r\r\n \"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17\\r\\n\"\r\r\n \"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\n\"\r\r\n \"Accept-Language: en-us,en;q=0.5\\r\\n\"\r\r\n \"Accept-Encoding: gzip,deflate\\r\\n\"\r\r\n \"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\\r\\n\"\r\r\n \"Keep-Alive: 115\\r\\n\"\r\r\n \"Connection: keep-alive\\r\\n\"\r\r\n \"Referer: http://www.dicom.com/en/\\r\\n\"\r\r\n \"Cookie: bsuniquevid=1306759634212y8fTfOzhdbTMIS2ROMgWs50PrUE\\r\\n\"\r\r\n \"Content-Length: 0\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n sr2 = cs2.server_receive {\r\r\n }\r\r\n # HTTP/1.1 200 OK\r\r\n ss2 = xport2.server_send {\r\r\n \"HTTP/1.1 200 OK\\r\\n\"\r\r\n \"Date: Mon, 30 May 2011 12:52:28 GMT\\r\\n\"\r\r\n \"Server: Apache/2\\r\\n\"\r\r\n \"Vary: Accept-Encoding\\r\\n\"\r\r\n \"Content-Encoding: gzip\\r\\n\"\r\r\n \"Content-Length: 2600\\r\\n\"\r\r\n \"Keep-Alive: timeout=10, max=89\\r\\n\"\r\r\n \"Connection: Keep-Alive\\r\\n\"\r\r\n \"Content-Type: text/html; charset=UTF-8\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n cr2 = ss2.client_receive {\r\r\n assertions {\r\r\n /HTTP\\/1\\.1 (\\d+)/ == 200\r\r\n }\r\r\n }\r\r\n xport3 = tcp(src:&host_0, dst:&host_1, dst_port:80)\r\r\n \r\r\n # GET /en/products/software/kofax_express.php HTTP/1.1\r\r\n cs3 = xport3.client_send {\r\r\n \"GET /en/products/software/kofax_express.php HTTP/1.1\\r\\n\"\r\r\n \"Host: www.dicom.com\\r\\n\"\r\r\n \"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17\\r\\n\"\r\r\n \"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\n\"\r\r\n \"Accept-Language: en-us,en;q=0.5\\r\\n\"\r\r\n \"Accept-Encoding: gzip,deflate\\r\\n\"\r\r\n \"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\\r\\n\"\r\r\n \"Keep-Alive: 115\\r\\n\"\r\r\n \"Connection: keep-alive\\r\\n\"\r\r\n \"Referer: http://www.dicom.com/en/products/software.php\\r\\n\"\r\r\n \"Cookie: bsuniquevid=1306759634212y8fTfOzhdbTMIS2ROMgWs50PrUE\\r\\n\"\r\r\n \"Content-Length: 0\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n sr3 = cs3.server_receive {\r\r\n }\r\r\n # HTTP/1.1 200 OK\r\r\n ss3 = xport3.server_send {\r\r\n \"HTTP/1.1 200 OK\\r\\n\"\r\r\n \"Date: Mon, 30 May 2011 12:52:40 GMT\\r\\n\"\r\r\n \"Server: Apache/2\\r\\n\"\r\r\n \"Vary: Accept-Encoding\\r\\n\"\r\r\n \"Content-Encoding: gzip\\r\\n\"\r\r\n \"Content-Length: 3067\\r\\n\"\r\r\n \"Keep-Alive: timeout=10, max=77\\r\\n\"\r\r\n \"Connection: Keep-Alive\\r\\n\"\r\r\n \"Content-Type: text/html; charset=UTF-8\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n cr3 = ss3.client_receive {\r\r\n assertions {\r\r\n /HTTP\\/1\\.1 (\\d+)/ == 200\r\r\n }\r\r\n }\r\r\n xport4 = tcp(src:&host_0, dst:&host_1, dst_port:80)\r\r\n \r\r\n # GET /en/products/software/kofax_express/download.php HTTP/1.1\r\r\n cs4 = xport4.client_send {\r\r\n \"GET /en/products/software/kofax_express/download.php HTTP/1.1\\r\\n\"\r\r\n \"Host: www.dicom.com\\r\\n\"\r\r\n \"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17\\r\\n\"\r\r\n \"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\n\"\r\r\n \"Accept-Language: en-us,en;q=0.5\\r\\n\"\r\r\n \"Accept-Encoding: gzip,deflate\\r\\n\"\r\r\n \"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\\r\\n\"\r\r\n \"Keep-Alive: 115\\r\\n\"\r\r\n \"Connection: keep-alive\\r\\n\"\r\r\n \"Referer: http://www.dicom.com/en/products/software/kofax_express.php\\r\\n\"\r\r\n \"Cookie: bsuniquevid=1306759634212y8fTfOzhdbTMIS2ROMgWs50PrUE\\r\\n\"\r\r\n \"Content-Length: 0\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n sr4 = cs4.server_receive {\r\r\n }\r\r\n # HTTP/1.1 200 OK\r\r\n ss4 = xport4.server_send {\r\r\n \"HTTP/1.1 200 OK\\r\\n\"\r\r\n \"Date: Mon, 30 May 2011 12:52:49 GMT\\r\\n\"\r\r\n \"Server: Apache/2\\r\\n\"\r\r\n \"Vary: Accept-Encoding\\r\\n\"\r\r\n \"Content-Encoding: gzip\\r\\n\"\r\r\n \"Content-Length: 2574\\r\\n\"\r\r\n \"Keep-Alive: timeout=10, max=77\\r\\n\"\r\r\n \"Connection: Keep-Alive\\r\\n\"\r\r\n \"Content-Type: text/html; charset=UTF-8\\r\\n\"\r\r\n \"\\r\\n\"\r\r\n }\r\r\n cr4 = ss4.client_receive {\r\r\n assertions {\r\r\n /HTTP\\/1\\.1 (\\d+)/ == 200\r\r\n }\r\r\n }\r\r\n }\r\r\n}\r\r\n",
|
13
|
+
"csv": "",
|
14
|
+
"pattern": {
|
15
|
+
"iterations": 1,
|
16
|
+
"intervals": [
|
17
|
+
{
|
18
|
+
"iterations": 1,
|
19
|
+
"end": 100,
|
20
|
+
"start": 1,
|
21
|
+
"duration": 20
|
22
|
+
}
|
23
|
+
]
|
24
|
+
}
|
25
|
+
}
|
@@ -41,7 +41,11 @@ class Mu
|
|
41
41
|
msg "no msl files found", Logger::ERROR
|
42
42
|
else
|
43
43
|
files.each do | scenario |
|
44
|
-
|
44
|
+
begin
|
45
|
+
run scenario
|
46
|
+
rescue Exception => e
|
47
|
+
msg "Run failed: #{e}", Logger::ERROR
|
48
|
+
end
|
45
49
|
if @verify_only
|
46
50
|
output_verify_results scenario
|
47
51
|
else
|
@@ -146,6 +150,7 @@ class Mu
|
|
146
150
|
msg "starting #{scenario} ...", Logger::INFO
|
147
151
|
@api.start
|
148
152
|
start_time = Time.now.to_i
|
153
|
+
failed_status = 0
|
149
154
|
while true
|
150
155
|
sleep 5
|
151
156
|
status = @api.status
|
@@ -157,7 +162,10 @@ class Mu
|
|
157
162
|
dump_status(status, scenario)
|
158
163
|
return
|
159
164
|
else
|
160
|
-
|
165
|
+
unless parse_status(status)
|
166
|
+
msg("Exit run loop on status parse error", Logger::ERROR)
|
167
|
+
return
|
168
|
+
end
|
161
169
|
end
|
162
170
|
else # status['status'].nil? ... no bonafide status was returned
|
163
171
|
time_now = Time.now.to_i
|
@@ -166,10 +174,14 @@ class Mu
|
|
166
174
|
break
|
167
175
|
end
|
168
176
|
end
|
177
|
+
else
|
178
|
+
failed_status += 1
|
179
|
+
break if failed_status == 10
|
169
180
|
end
|
170
181
|
end
|
171
182
|
ensure
|
172
183
|
msg "stopping #{scenario} ...", Logger::DEBUG
|
184
|
+
@api.stop
|
173
185
|
end
|
174
186
|
|
175
187
|
def cmd_running?
|
@@ -281,11 +293,15 @@ class Mu
|
|
281
293
|
filename = "app_id_stats.csv"
|
282
294
|
msg "Update stats to: #{File.expand_path(filename)}", Logger::INFO
|
283
295
|
unless File.exists?(filename)
|
284
|
-
heading = "scenario,executed,errors,timeouts,client_tx_bytes,client_tx_msgs,client_rx_bytes,client_rx_msgs,server_tx_bytes,server_tx_msgs,server_rx_bytes,server_rx_msgs"
|
296
|
+
heading = "scenario,executed,errors,timeouts,client_tx_bytes,client_tx_msgs,client_tx_bitrate,client_rx_bytes,client_rx_msgs,client_rx_bitrate,server_tx_bytes,server_tx_msgs,server_tx_bitrate,server_rx_bytes,server_rx_msgs,server_rx_bitrate"
|
285
297
|
File.open(filename, 'a'){|f| f.puts(heading)}
|
286
298
|
end
|
287
|
-
@row =
|
288
|
-
|
299
|
+
@row = [msl_file,@executed,@errors,@timeouts,
|
300
|
+
@client_tx_bytes,@client_tx_msgs,@client_tx_bitrate,
|
301
|
+
@client_rx_bytes,@client_rx_msgs,@client_rx_bitrate,
|
302
|
+
@server_tx_bytes,@server_tx_msgs,@server_tx_bitrate,
|
303
|
+
@server_rx_bytes,@server_rx_msgs,@server_rx_bitrate]
|
304
|
+
File.open(filename, 'a'){|f| f.puts(@row.join(','))}
|
289
305
|
end
|
290
306
|
|
291
307
|
def output_verify_results(msl_file)
|
@@ -344,7 +360,7 @@ class Mu
|
|
344
360
|
@error = status["status"]["error"]
|
345
361
|
@reason = status["status"]["reason"]
|
346
362
|
msg "*** Error = #{@error}, reason = #{@reason} ***"
|
347
|
-
return
|
363
|
+
return false
|
348
364
|
end
|
349
365
|
end
|
350
366
|
|
@@ -366,6 +382,18 @@ class Mu
|
|
366
382
|
@client_tx_msgs = @client["tx"]["msgs"]
|
367
383
|
@client_rx_bytes = @client["rx"]["bytes"]
|
368
384
|
@client_rx_msgs = @client["rx"]["msgs"]
|
385
|
+
|
386
|
+
# Compute bitrates
|
387
|
+
@client_tx_bitrate = @client_rx_bitrate = 0
|
388
|
+
@server_tx_bitrate = @server_rx_bitrate = 0
|
389
|
+
if @duration.to_f > 0
|
390
|
+
@client_tx_bitrate = format_float 2, (@client["tx"]["bytes"] * 8).to_f/@duration.to_f
|
391
|
+
@client_rx_bitrate = format_float 2, (@client["rx"]["bytes"] * 8).to_f/@duration.to_f
|
392
|
+
@server_tx_bitrate = format_float 2, (@server["tx"]["bytes"] * 8).to_f/@duration.to_f
|
393
|
+
@server_tx_bitrate = format_float 2, (@server["rx"]["bytes"] * 8).to_f/@duration.to_f
|
394
|
+
|
395
|
+
end
|
396
|
+
#
|
369
397
|
@scenarios = status["status"]["statistics"]["scenarios"]
|
370
398
|
@scenarios.each do | scenario |
|
371
399
|
@reported_volume = @reported_volume + scenario["volume"]
|
@@ -391,7 +419,7 @@ class Mu
|
|
391
419
|
msg "passed: #{@executed}"
|
392
420
|
msg "errors: #{@errors}"
|
393
421
|
msg "timeouts: #{@timeouts}"
|
394
|
-
msg "client tx
|
422
|
+
msg "client tx bits/sec #{@client_tx_bitrate}"
|
395
423
|
msg "client tx msgs/sec #{format_float(2, @client_tx_msgs.to_f / @duration)}" if @duration.to_i > 0
|
396
424
|
msg "client rx bytes/sec #{format_float(2, @client_rx_bytes.to_f / @duration)}" if @duration.to_i > 0
|
397
425
|
msg "client rx msgs/sec #{format_float(2, @client_rx_msgs.to_f / @duration)}" if @duration.to_i > 0
|
data/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VERSION='5.7.
|
1
|
+
VERSION='5.7.29'
|
metadata
CHANGED
@@ -1,148 +1,161 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mu
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.7.28
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease:
|
5
|
+
version: 5.7.29
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- MuEng
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
date: 2011-06-23 00:00:00 -07:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
15
17
|
name: nokogiri
|
16
|
-
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
20
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
21
24
|
version: 1.4.4
|
22
25
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
26
28
|
name: rest-client
|
27
|
-
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
31
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
32
35
|
version: 1.6.1
|
33
36
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
37
39
|
name: mime-types
|
38
|
-
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
42
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version:
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: "1.16"
|
44
47
|
type: :runtime
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
48
50
|
name: json
|
49
|
-
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
53
|
none: false
|
51
|
-
requirements:
|
52
|
-
- -
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
55
58
|
type: :runtime
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
59
61
|
name: hexy
|
60
|
-
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
64
|
none: false
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
65
68
|
version: 0.1.1
|
66
69
|
type: :runtime
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
70
72
|
name: uuid
|
71
|
-
|
73
|
+
prerelease: false
|
74
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
75
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
76
79
|
version: 2.0.2
|
77
80
|
type: :runtime
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
email:
|
81
|
+
version_requirements: *id006
|
82
|
+
description: |-
|
83
|
+
The Mu gem allows users to include mu libraries within scripts
|
84
|
+
that interact with mu appliance software. The gem also supplies command line interfaces
|
85
|
+
to many of these same libraries
|
86
|
+
email:
|
84
87
|
- info@mudynamics.com
|
85
|
-
executables:
|
88
|
+
executables:
|
86
89
|
- mu
|
87
90
|
extensions: []
|
91
|
+
|
88
92
|
extra_rdoc_files: []
|
89
|
-
|
90
|
-
|
91
|
-
- lib/mu/
|
92
|
-
- lib/mu/http_helper.rb
|
93
|
-
- lib/mu/client.rb
|
94
|
-
- lib/mu/api/netconfig.rb
|
95
|
-
- lib/mu/api/muapi.rb
|
93
|
+
|
94
|
+
files:
|
95
|
+
- lib/mu/api/ddt.rb
|
96
96
|
- lib/mu/api/homepage.rb
|
97
|
-
- lib/mu/api/
|
97
|
+
- lib/mu/api/muapi.rb
|
98
|
+
- lib/mu/api/netconfig.rb
|
98
99
|
- lib/mu/api/scale.rb
|
99
|
-
- lib/mu/api/
|
100
|
-
- lib/mu/
|
101
|
-
- lib/mu/maker.rb
|
102
|
-
- lib/mu/command/cmd_homepage.rb
|
100
|
+
- lib/mu/api/system.rb
|
101
|
+
- lib/mu/client.rb
|
103
102
|
- lib/mu/command/api.rb
|
104
103
|
- lib/mu/command/cmd_ddt.rb
|
105
|
-
- lib/mu/command/
|
106
|
-
- lib/mu/command/curl.rb
|
104
|
+
- lib/mu/command/cmd_homepage.rb
|
107
105
|
- lib/mu/command/cmd_muapi.rb
|
108
|
-
- lib/mu/command/help.rb
|
109
106
|
- lib/mu/command/cmd_musl.rb
|
110
|
-
- lib/mu/command/
|
107
|
+
- lib/mu/command/cmd_netconfig.rb
|
108
|
+
- lib/mu/command/cmd_runanalysis.rb
|
111
109
|
- lib/mu/command/cmd_runscale.rb
|
112
110
|
- lib/mu/command/cmd_runscenario.rb
|
113
|
-
- lib/mu/command/cmd_runanalysis.rb
|
114
|
-
- lib/mu/command/cmd_netconfig.rb
|
115
111
|
- lib/mu/command/cmd_runverify.rb
|
112
|
+
- lib/mu/command/cmd_scale.rb
|
113
|
+
- lib/mu/command/cmd_system.rb
|
114
|
+
- lib/mu/command/curl.rb
|
115
|
+
- lib/mu/command/help.rb
|
116
116
|
- lib/mu/command.rb
|
117
117
|
- lib/mu/curl/error.rb
|
118
118
|
- lib/mu/curl/verify.rb
|
119
|
+
- lib/mu/har.rb
|
120
|
+
- lib/mu/helper.rb
|
121
|
+
- lib/mu/http_helper.rb
|
122
|
+
- lib/mu/maker.rb
|
123
|
+
- lib/mu.rb
|
124
|
+
- bin/app_id_stats.csv
|
125
|
+
- bin/app_id_status.json
|
119
126
|
- bin/mu
|
127
|
+
- bin/scale.json
|
120
128
|
- Mu_Gem.html
|
121
129
|
- version.rb
|
122
130
|
- LICENSE.txt
|
123
131
|
- README.rdoc
|
132
|
+
has_rdoc: true
|
124
133
|
homepage: http://www.mudynamics.com
|
125
134
|
licenses: []
|
135
|
+
|
126
136
|
post_install_message:
|
127
137
|
rdoc_options: []
|
128
|
-
|
138
|
+
|
139
|
+
require_paths:
|
129
140
|
- lib
|
130
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
131
142
|
none: false
|
132
|
-
requirements:
|
133
|
-
- -
|
134
|
-
- !ruby/object:Gem::Version
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
135
146
|
version: 1.8.7
|
136
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
148
|
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version:
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: "0"
|
142
153
|
requirements: []
|
154
|
+
|
143
155
|
rubyforge_project:
|
144
|
-
rubygems_version: 1.
|
156
|
+
rubygems_version: 1.6.2
|
145
157
|
signing_key:
|
146
158
|
specification_version: 3
|
147
159
|
summary: Mu Dynamics General Purpose Library and Command Line Tool
|
148
160
|
test_files: []
|
161
|
+
|