mu 5.7.2.3

Sign up to get free protection for your applications and to get access to all the features.
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,233 @@
1
+ class Mu
2
+ class Netconfig
3
+ include Helper
4
+
5
+ attr_accessor :host, :username, :password, :docroot, :element, :response, :config
6
+
7
+ def initialize(host=ENV['MU_IP'], username=ENV['MU_ADMIN_USER'], password=ENV['MU_ADMIN_PASS'])
8
+ @host = host
9
+ @username = username
10
+ @password = password
11
+ @docroot = "/restlet/netconfig/"
12
+ @response = nil
13
+ @http = HttpHelper.new(@host, @username, @password, @docroot)
14
+ @element = "" # sticky variable will hold a default element, the last element specified
15
+ msg "Created Netconfig API object to :#{@host}", Logger::DEBUG
16
+ end
17
+
18
+ # get - with no params, returns the entire netconfig json object
19
+ # * e = the element to retrieve (interfaces|hosts|routes, interfaces/a1 ...)
20
+ def get(e)
21
+ response = @http.get_json(e)
22
+ msg response, Logger::DEBUG
23
+ return response
24
+ end
25
+
26
+ # PUT to modify netconfig element(s) to json values
27
+ # * json = the json string containing the modified values
28
+ # * e = the element to modify (interfaces|hosts|routes)
29
+ def modify(json, e)
30
+ response = do_modify(json, e)
31
+ msg response, Logger::DEBUG
32
+ return response
33
+ =begin
34
+ jstring = json
35
+ @element = e
36
+ unless json.is_a? String
37
+ jstring = JSON.generate json
38
+ end
39
+ response = @http.put_json(e, jstring)
40
+ msg response, Logger::DEBUG
41
+ return response
42
+ =end
43
+ end
44
+
45
+ # POST method to add a network element
46
+ # * json = the json string containing the element values
47
+ # * e = the element to create (interfaces|hosts|routes)
48
+ def create(json, e)
49
+ jstring = json
50
+ unless json.is_a? String
51
+ jstring = JSON.generate json
52
+ end
53
+ response = @http.post_json(e, jstring)
54
+ msg response, Logger::DEBUG
55
+ return response
56
+ end
57
+
58
+ # deletes the specified element
59
+ # * e = the element to delete
60
+ def delete(e)
61
+ response = @http.delete(e)
62
+ msg response, Logger::DEBUG
63
+ return response
64
+ end
65
+
66
+ # updates a network configuration from file
67
+ # * filepath = the path to the json file
68
+ # * clear_existing - boolean determining whether or not existing elements should be cleared
69
+ def restore(filepath=nil,clear_existing=false)
70
+ unless filepath.nil?
71
+ @config = JSON.parse(File.read(filepath))
72
+ end
73
+ @config.each do |c|
74
+ case c.keys[0]
75
+ when "hosts"
76
+ msg "RESTORE HOSTS", Logger::DEBUG
77
+ clear_existing and clear_hosts
78
+ restore_hosts c["hosts"]
79
+ when "routes"
80
+ msg "RESTORE ROUTES", Logger::DEBUG
81
+ clear_existing and clear_routes
82
+ restore_routes c["routes"]
83
+ when "interfaces"
84
+ clear_existing and clear_vlans
85
+ msg "RESTORE INTERFACES", Logger::DEBUG
86
+ restore_interfaces c["interfaces"]
87
+ end
88
+ end
89
+ end
90
+
91
+ # clears the network hosts
92
+ def clear_hosts
93
+ h = get("hosts")
94
+ h["hosts"].each do |h|
95
+ msg "Clear host: #{h['name']}", Logger::DEBUG
96
+ delete("hosts/#{h['name']}")
97
+ end
98
+ end
99
+
100
+ # restores the network hosts to the initial system states
101
+ def restore_hosts(hosts)
102
+ hosts.each do |h|
103
+ msg "create host: #{h['name']}", Logger::DEBUG
104
+ delete "hosts/#{h['name']}" # harmlessly fails when host does not exist
105
+ create(h,"hosts")
106
+ end
107
+ end
108
+
109
+ # use Dns to update host ip addresses.
110
+ # A new Host is added if not present when the name is provided as argument
111
+ # * name = the name of the host to resolve
112
+ def resolve_hosts(name=nil)
113
+ hosts = Array.new
114
+ if name.nil?
115
+ hst = get "hosts"
116
+ hst["hosts"].each {|h| hosts << h["name"]}
117
+ else
118
+ hosts << name
119
+ end
120
+ hosts.each do |h|
121
+ msg "resolve host: #{h}", Logger::DEBUG
122
+ v4_addr = Socket::gethostbyname(h)[3].unpack("CCCC").join(".") rescue nil
123
+ next if v4_addr.nil?
124
+ json = get "hosts/#{h}"
125
+ if json["name"].nil?
126
+ json = {"name" => h, "v4_addr" => v4_addr}
127
+ create json, "hosts"
128
+ else
129
+ json["v4_addr"] = v4_addr
130
+ modify json, "hosts/#{h}"
131
+ end
132
+ end
133
+ end
134
+
135
+ # clears a network interface
136
+ # * interface = the name of the interface to clear
137
+ def clear_interface(interface)
138
+ interface = interface
139
+ json = { "v4_addrs"=>[], "v4_mask"=>"", "v4_dhcp"=>false,
140
+ "v6_global_addrs"=>[], "v6_global_mask"=>""}
141
+ modify json,"interfaces/#{interface}"
142
+ end
143
+
144
+ # clears all network vlans
145
+ def clear_vlans
146
+ i = get "interfaces"
147
+ i["interfaces"].each do |i|
148
+ next if i['vlan'] == ""
149
+ msg "Clear vlan: #{i['name']}", Logger::DEBUG
150
+ delete "interfaces/#{i['name']}"
151
+ end
152
+ end
153
+
154
+ # restores network interfaces to system initial settings
155
+ # * interfaces - the names of the interfaces to restore
156
+ def restore_interfaces(interfaces)
157
+ interfaces.each do |i|
158
+ next if i['name'].include? "eth" # don't do eth0 or eth1
159
+ msg "configure interface: #{i['name']}", Logger::DEBUG
160
+ unless i['vlan'] == ""
161
+ interface,vlan = i['name'].split(".")
162
+ create [{"name"=>interface,"vlan"=>vlan},"interfaces"]
163
+ end
164
+ modify [i,"interfaces/#{i['name']}"]
165
+ end
166
+ end
167
+
168
+ # clears network routes
169
+ def clear_routes
170
+ routes = get "routes"
171
+ routes["routes"].each do |r|
172
+ next if r['readonly'] == true
173
+ msg "Clear route: #{r['dst']}-#{r['gateway']}-#{r['interface_display_name'].downcase}", Logger::DEBUG
174
+ delete "routes/#{r['dst']}-#{r['gateway']}-#{r['interface_display_name'].downcase}"
175
+ end
176
+ end
177
+
178
+ # restores network routes to system initial settings
179
+ def restore_routes(routes)
180
+ routes.each do |r|
181
+ next if r['readonly'] == true
182
+ msg "configure route: #{r['dst']}-#{r['gateway']}-#{r['interface_display_name'].downcase}", Logger::DEBUG
183
+ create r,"routes"
184
+ end
185
+ end
186
+
187
+ # writes the json config to filepath
188
+ # * e = the element to save, or 'all'
189
+ # * filepath - the fully qualified name of the file to save to
190
+ def save(e="all", filepath="config.json")
191
+ json = get e
192
+ File.open(filepath,'w'){|f| f.write(JSON.pretty_generate(json))}
193
+ end
194
+
195
+ private
196
+
197
+ # restclient put was not recgonized as json
198
+ # PUT to modify netconfig element(s) to json values
199
+ def do_modify(json, e)
200
+ jstring = json
201
+ unless json.is_a? String
202
+ jstring = JSON.generate json
203
+ end
204
+ msg jstring, Logger::DEBUG
205
+ uri = URI.parse("https://#{@host}")
206
+ escaped = URI.escape("#{@docroot}#{e}")
207
+ msg "Put: #{uri}#{escaped}", Logger::DEBUG
208
+ http = Net::HTTP.new(uri.host, uri.port)
209
+ http.use_ssl = true
210
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
211
+ http.start do |http|
212
+ req = Net::HTTP::Put.new("#{escaped}",initheader = {"User-Agent" => @username, 'Content-Type' => 'application/json; charset=utf-8'})
213
+ req.body = jstring
214
+ response = http_request(http, req)
215
+ end
216
+ msg response, Logger::DEBUG
217
+ return response
218
+ end
219
+
220
+ def http_request(http, req)
221
+ req.basic_auth(@username, @password)
222
+ response = http.request(req)
223
+ if response.code != "200"
224
+ return "Error status code #{response.code}\n#{response.body}"
225
+ end
226
+ return response.body
227
+ end
228
+
229
+
230
+ end
231
+ end # Mu
232
+
233
+
@@ -0,0 +1,199 @@
1
+ class Mu
2
+ class Scale
3
+ include Helper
4
+
5
+ attr_accessor :host, :username, :password, :docroot, :configuration, :config_file, :uuid
6
+
7
+ def initialize(host=ENV['MU_IP'], username=ENV['MU_ADMIN_USER'], password=ENV['MU_ADMIN_PASS'])
8
+ @host = host
9
+ @username = username
10
+ @password = password
11
+ @docroot = "/api/v5/scale/"
12
+ @uuid = nil
13
+ @http = HttpHelper.new(@host, @username, @password, @docroot)
14
+ @config_file = (ENV['SCALE_CONFIG_FILE'].nil?) ? "scale.json" : ENV['SCALE_CONFIG_FILE']
15
+ if File.readable? @config_file
16
+ msg "reading config file: #{@config_file}", Logger::DEBUG
17
+ @configuration = JSON.parse File.read(@config_file)
18
+ else
19
+ @configuration = {
20
+ "hosts"=> {
21
+ "host_0"=> "a1/*",
22
+ "host_1"=> "a2/*"
23
+ },
24
+ "timeout"=> 5000,
25
+ "delay"=> 0,
26
+ "volume"=> 1,
27
+ "holdConcurrency"=> true,
28
+ "limitConcurrency"=> false,
29
+ "vectorAddressPairing"=> false,
30
+ "musl" => "",
31
+ "csv" => "",
32
+ "pattern" => {}
33
+ }
34
+ end
35
+ @uuid = session
36
+ msg "Created Scale Api session [#{@uuid}] on :#{@host}", Logger::DEBUG
37
+ end
38
+
39
+ # creates a new Studio Scale session, returning the session id
40
+ def session
41
+ uuid = nil
42
+ list = get("list")
43
+ if !list.empty?
44
+ msg list
45
+ uuid = list[0] # return existing session identifier if there is one
46
+ return uuid
47
+ end
48
+ uuid = get "new" # return a new session identifier
49
+ msg "uuid from /new = #{uuid}"
50
+ return uuid
51
+ end
52
+
53
+ # configures a parameter in the class @configuration object
54
+ # * param = the parameter to configure (e.g. volume)
55
+ # * value = the parameter's value ( e.g. 100)
56
+ def configure(param, value)
57
+ if param == "pattern" and value.is_a?(String)
58
+ value = JSON.parse(value)
59
+ end
60
+ @configuration[param] = value
61
+ File.open("scale_configuration.json",'w'){|f| f.write(JSON.pretty_generate(@configuration))}
62
+ end
63
+
64
+ # starts a scale test with the class @configuration object
65
+ def start
66
+ response = post "start", {"request" => @configuration}
67
+ msg response, Logger::DEBUG
68
+ return response
69
+ end
70
+
71
+ # verifies the class @configuration object
72
+ def verify
73
+ response = post "verify", {"request" => @configuration}
74
+ msg response, Logger::DEBUG
75
+ return response
76
+ end
77
+
78
+ # updates a running scale test, as long as the test pattern is 'none'
79
+ # * params = a json object containing the information to update, such as { "volume" : 100 }
80
+ def update(params)
81
+ response = get "update", params
82
+ msg response, Logger::DEBUG
83
+ return response
84
+ end
85
+
86
+ # gets information about the currently running Scale test.
87
+ def status
88
+ response = get "status"
89
+ msg response, Logger::DEBUG
90
+ return response
91
+ end
92
+
93
+ # returns the current Scale Player's session id
94
+ def list
95
+ response = get "list"
96
+ msg response, Logger::DEBUG
97
+ return response
98
+ end
99
+
100
+ # lists information about the the Scale Player and all active and inactive Scale Engines
101
+ def about
102
+ response = get "about"
103
+ msg response, Logger::DEBUG
104
+ return response
105
+ end
106
+
107
+ # returns a packet capture file from scale verify
108
+ # * bot_id = the id of the scale engine
109
+ # * file = the name of the pcap file to retrieve
110
+ def pcap(bot_id, file)
111
+ response = get "pcap", "botId=#{bot_id}&file=#{file}"
112
+ msg response, Logger::DEBUG
113
+ return response
114
+ end
115
+
116
+ # gets the status of all active and inactive Scale engines
117
+ def statuses
118
+ response = get "statuses"
119
+ msg response, Logger::DEBUG
120
+ return response
121
+ end
122
+
123
+ # gets chart data for the Scale test
124
+ # * view = the TIMELINE or CALLGRAPH chart.
125
+ # * zoom = 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
126
+ # * position = 0.
127
+ # * bot_id = the scale engine id
128
+ def data(view='TIMELINE', zoom="0", position="0", bot_id="")
129
+ response = get "data", "view=#{view.upcase}&zoom=#{zoom}&position=#{position}&bot_id=#{bot_id}"
130
+ msg response, Logger::DEBUG
131
+ return response
132
+ end
133
+
134
+ # returns scale test data for charting
135
+ # * command-line args require a zoom level and position(0)
136
+ # * zoom = 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
137
+ # * position = 0.
138
+ def pattern(zoom="0", position="0")
139
+ response = get "pattern", "zoom=#{zoom}&position=#{position}"
140
+ msg response, Logger::DEBUG
141
+ return response
142
+ end
143
+
144
+ # stops a scale test
145
+ def stop
146
+ response = get "stop"
147
+ msg response, Logger::DEBUG
148
+ return response
149
+ end
150
+
151
+ # releases the scale player
152
+ def release
153
+ response = get "release"
154
+ msg response, Logger::DEBUG
155
+ return response
156
+ end
157
+
158
+ # marks the specified Scale Engine as active (will participate in a Scale test
159
+ # * bot_id = the scale engine id
160
+ def reserve_scale_engine(bot_id)
161
+ response = get "reserveScaleEngine", "botId=#{bot_id}"
162
+ msg response, Logger::DEBUG
163
+ return response
164
+ end
165
+
166
+ # marks the specified Scale Engine as inactive (will not participate in a Scale test)
167
+ # * bot_id = the scale engine id
168
+ def release_scale_engine(bot_id)
169
+ response = get "releaseScaleEngine", "botId=#{bot_id}"
170
+ msg response, Logger::DEBUG
171
+ return response
172
+ end
173
+
174
+ # removes a Scale engine from the list of available engines
175
+ # * bot_id = the scale engine id
176
+ def delete_scale_engine(bot_id)
177
+ response = get "deleteScaleEngine", "botId=#{bot_id}"
178
+ msg response, Logger::DEBUG
179
+ return response
180
+ end
181
+
182
+ private
183
+
184
+ def get(e=@element, params=nil)
185
+ element = e
186
+ element << "?uuid=#{@uuid}" unless @uuid.nil?
187
+ element << "&#{params}" unless params.nil?
188
+ return @http.get_json(element)
189
+ end
190
+
191
+ # POST method
192
+ def post(e, json='{}')
193
+ element = e
194
+ element << "?uuid=#{@uuid}"
195
+ @http.post_json(element, JSON.generate(json))
196
+ end
197
+
198
+ end
199
+ end
@@ -0,0 +1,40 @@
1
+ class Mu
2
+ class System
3
+ include Helper
4
+
5
+ attr_accessor :host, :docroot, :username, :password
6
+
7
+ def initialize(host=ENV['MU_IP'], username=ENV['MU_ADMIN_USER'], password=ENV['MU_ADMIN_PASS'])
8
+ @host = host
9
+ @username = username
10
+ @password = password
11
+ @docroot = "/api/v5/system/"
12
+ @cookie = ""
13
+ @response = nil
14
+ @http = HttpHelper.new(@host, @username, @password, @docroot)
15
+ msg "Created System Api object to :#{@host}", Logger::DEBUG
16
+ end
17
+
18
+ # restarts the Mu system
19
+ def restart
20
+ response = @http.get("restart/")
21
+ msg response, Logger::DEBUG
22
+ return response
23
+ end
24
+
25
+ # returns Mu System status
26
+ def status
27
+ response = @http.get("status/")
28
+ msg response, Logger::DEBUG
29
+ return response
30
+ end
31
+
32
+ # returns more Mu System status
33
+ def status2
34
+ response = @http.get("status2/")
35
+ msg response, Logger::DEBUG
36
+ return response
37
+ end
38
+
39
+ end
40
+ end # Mu