zenoss_client 0.5.4 → 0.6.0
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.
- checksums.yaml +7 -0
- data/.gitignore +3 -1
- data/.travis.yml +9 -0
- data/Gemfile +1 -1
- data/README.textile +6 -1
- data/Rakefile +5 -4
- data/VERSION +1 -1
- data/lib/zenoss.rb +2 -2
- data/lib/zenoss/connection.rb +3 -2
- data/lib/zenoss/jsonapi/events_router.rb +0 -1
- data/lib/zenoss/model/devices/device.rb +9 -0
- data/test/docker/3.2.1/Dockerfile +11 -0
- data/test/docker/3.2.1/remote_start.sh +3 -0
- data/test/docker/3.2.1/start.sh +2 -0
- data/test/docker/4.2.5/Dockerfile +10 -0
- data/test/docker/4.2.5/remote_start.sh +12 -0
- data/test/docker/4.2.5/start.sh +2 -0
- data/test/fixtures/.gitkeep +0 -0
- data/test/fixtures/vcr_cassettes/3_2_1_initial_connection.yml +437 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0001_returns_an_Array_of_devices_when_searched_by_name.yml +85 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0002_returns_device_uptime_when_asked.yml +110 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0003_returns_an_Array_of_events_for_a_device.yml +80 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0004_returns_an_Array_of_historical_events_for_a_device.yml +80 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0005_returns_info_for_a_device_in_the_form_of_a_Hash.yml +251 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0006_returns_an_Array_of_events_for_all_devices.yml +86 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0007_fetches_the_report_tree.yml +181 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0008_fetches_available_report_types_and_returns_a_Hash.yml +82 -0
- data/test/fixtures/vcr_cassettes/3_2_1_test_0009_renames_the_device.yml +151 -0
- data/test/fixtures/vcr_cassettes/4_2_5_initial_connection.yml +594 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0001_returns_an_Array_of_devices_when_searched_by_name.yml +93 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0002_returns_device_uptime_when_asked.yml +114 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0003_returns_an_Array_of_events_for_a_device.yml +99 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0004_returns_an_Array_of_historical_events_for_a_device.yml +99 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0005_returns_info_for_a_device_in_the_form_of_a_Hash.yml +234 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0006_returns_an_Array_of_events_for_all_devices.yml +203 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0007_fetches_the_report_tree.yml +203 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0008_fetches_available_report_types_and_returns_a_Hash.yml +86 -0
- data/test/fixtures/vcr_cassettes/4_2_5_test_0009_renames_the_device.yml +160 -0
- data/test/test_helper.rb +20 -11
- data/test/zenoss_client_test.rb +140 -114
- data/zenoss_client.gemspec +13 -9
- metadata +104 -37
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f8f07405207ee82f6bcaa25d7269cef6efceee00
|
4
|
+
data.tar.gz: 098b6361c48aba30c8167547d57e906fa73c052b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 49f02e82b15399437c4e5f9d4d8b8e4ec719a29af079171b79ce92c106e042b17d901e64bc3598d7f3549354a7b14dd643481fea872ae8c551d874dd7ecb52a7
|
7
|
+
data.tar.gz: 2512bd62eab7f087dbb737b2173b62673b7c740f613342409291a624dc0d02d664d02a9e4238518b6d22601f85f1519219be771fcc6b50696d1785ce792ddb6f
|
data/.gitignore
CHANGED
@@ -12,6 +12,8 @@ spec/reports
|
|
12
12
|
test/tmp
|
13
13
|
test/version_tmp
|
14
14
|
tmp
|
15
|
+
# Gemfile.lock shouldn't be checked in for gems
|
16
|
+
Gemfile.lock
|
15
17
|
|
16
18
|
# YARD artifacts
|
17
19
|
.yardoc
|
@@ -21,4 +23,4 @@ doc/
|
|
21
23
|
|
22
24
|
# Extra's not part of the template
|
23
25
|
.buildpath
|
24
|
-
.project
|
26
|
+
.project
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.textile
CHANGED
@@ -72,7 +72,7 @@ Have fun and let me know what needs to be fixed / added.
|
|
72
72
|
== Testing
|
73
73
|
You can invoke a series of minitest based spec test using the supplied
|
74
74
|
tests and rake task. Simply run the following to kick off the tests
|
75
|
-
@rake test@
|
75
|
+
@bundle exec rake test@
|
76
76
|
|
77
77
|
You should see output similar to the following (The number of tests will
|
78
78
|
of course grow over time):
|
@@ -80,3 +80,8 @@ of course grow over time):
|
|
80
80
|
|
81
81
|
If you get any failures, you should of course address them
|
82
82
|
|
83
|
+
Since the test suite requires a working Zenoss installation to test against,
|
84
|
+
some docker files are provided under test/docker. From a docker host, clone this
|
85
|
+
repo, cd to the appropriate test/docker/ subdirectory, and run @sh start.sh@ to
|
86
|
+
build and start the container. Once the container is running, you should be able
|
87
|
+
to run the tests as described above.
|
data/Rakefile
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake/clean'
|
3
|
-
require '
|
4
|
-
require '
|
3
|
+
require 'rubygems/package_task'
|
4
|
+
require 'rdoc/task'
|
5
5
|
require 'rake/testtask'
|
6
|
+
require 'date'
|
6
7
|
|
7
8
|
CLEAN.include("pkg")
|
8
9
|
CLEAN.include("doc")
|
@@ -33,8 +34,8 @@ GEMSPEC = Gem::Specification.new do |gem|
|
|
33
34
|
gem.add_runtime_dependency 'tzinfo'
|
34
35
|
gem.post_install_message = "See README.rdoc"
|
35
36
|
end
|
36
|
-
|
37
|
-
|
37
|
+
|
38
|
+
Gem::PackageTask.new(GEMSPEC) do |pkg|
|
38
39
|
pkg.need_tar = true
|
39
40
|
end
|
40
41
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/lib/zenoss.rb
CHANGED
@@ -32,8 +32,8 @@ module Zenoss
|
|
32
32
|
|
33
33
|
# initialize a connection to a Zenoss server. This is the same as doing
|
34
34
|
# Zenoss::Connection.new(server,user,pass)
|
35
|
-
def Zenoss.connect(server, user, pass, &block)
|
36
|
-
Connection.new(server,user,pass
|
35
|
+
def Zenoss.connect(server, user, pass, opts = {}, &block)
|
36
|
+
Connection.new(server, user, pass, opts, &block)
|
37
37
|
end
|
38
38
|
|
39
39
|
# Some of the REST methods return Strings that are formated like a Python list.
|
data/lib/zenoss/connection.rb
CHANGED
@@ -31,13 +31,13 @@ module Zenoss
|
|
31
31
|
include Zenoss::JSONAPI::ReportRouter
|
32
32
|
include Zenoss::RESTAPI
|
33
33
|
|
34
|
-
def initialize(url, user, pass, &block)
|
34
|
+
def initialize(url, user, pass, opts = {}, &block)
|
35
35
|
@zenoss_uri = (url.is_a?(URI) ? url : URI.parse(url))
|
36
36
|
@request_number = 1
|
37
37
|
@httpcli = HTTPClient.new
|
38
38
|
@httpcli.receive_timeout = 360 # six minutes should be more that sufficient
|
39
39
|
yield(@httpcli) if block_given?
|
40
|
-
sign_in(user,pass)
|
40
|
+
sign_in(user, pass) unless opts[:no_sign_in]
|
41
41
|
end
|
42
42
|
|
43
43
|
private
|
@@ -54,6 +54,7 @@ module Zenoss
|
|
54
54
|
resp = @httpcli.post login_path, login_parms
|
55
55
|
if(resp.status == 302)
|
56
56
|
login_path = resp.header['Location'].first
|
57
|
+
login_path = "#{@zenoss_uri}/#{login_path}"
|
57
58
|
resp = @httpcli.post login_path, login_parms
|
58
59
|
raise ZenossError, "(HTTP Response #{resp.status}) Could not authenticate to #{@zenoss_uri}" unless resp.status == 200
|
59
60
|
end
|
@@ -202,6 +202,15 @@ module Zenoss
|
|
202
202
|
rest("getSystemNamesString?sep=#{sep}")
|
203
203
|
end
|
204
204
|
|
205
|
+
# Change name of the device
|
206
|
+
def rename_device(new_name)
|
207
|
+
ret = rest("renameDevice?newId=#{new_name}")
|
208
|
+
if ret
|
209
|
+
self.name = new_name
|
210
|
+
end
|
211
|
+
return ret
|
212
|
+
end
|
213
|
+
|
205
214
|
|
206
215
|
private
|
207
216
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
FROM centos:5
|
2
|
+
RUN mkdir /opt/zenoss
|
3
|
+
WORKDIR /opt/zenoss
|
4
|
+
RUN yum -y install mysql-server net-snmp net-snmp-utils gmp \
|
5
|
+
libgomp libgcj liberation-fonts libaio wget
|
6
|
+
RUN wget http://downloads.sourceforge.net/project/zenoss/zenoss-3.2/zenoss-3.2.1/zenoss-3.2.1.el5.x86_64.rpm
|
7
|
+
RUN service mysqld start && mysqladmin -u root password '' && \
|
8
|
+
mysqladmin -u root -h localhost password ''
|
9
|
+
RUN rpm -ivh ./zenoss-3.2.1.el5.x86_64.rpm
|
10
|
+
RUN service zenoss start
|
11
|
+
ADD remote_start.sh ./
|
@@ -0,0 +1,10 @@
|
|
1
|
+
FROM centos:6
|
2
|
+
RUN mkdir /opt/zenoss
|
3
|
+
WORKDIR /opt/zenoss
|
4
|
+
RUN yum -y install wget which
|
5
|
+
ADD https://raw.githubusercontent.com/zenoss/core-autodeploy/4.2.5/core-autodeploy.sh ./
|
6
|
+
ADD https://raw.githubusercontent.com/zenoss/core-autodeploy/4.2.5/secure_zenoss.sh ./
|
7
|
+
ADD https://raw.githubusercontent.com/zenoss/core-autodeploy/4.2.5/zenpack_actions.txt ./
|
8
|
+
RUN chmod +x /core-autodeploy.sh
|
9
|
+
RUN echo -e "\ny\n" | /core-autodeploy.sh
|
10
|
+
ADD remote_start.sh ./
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
service zenoss start &
|
3
|
+
service mysql start &
|
4
|
+
service rabbitmq-server start
|
5
|
+
rabbitmqctl stop_app
|
6
|
+
rabbitmqctl reset
|
7
|
+
rabbitmqctl start_app
|
8
|
+
rabbitmqctl add_vhost "/zenoss"
|
9
|
+
rabbitmqctl add_user zenoss \
|
10
|
+
"$(sed -n 's/amqppassword \(.*\)/\1/p' /opt/zenoss/etc/global.conf)"
|
11
|
+
rabbitmqctl set_permissions -p "/zenoss" zenoss ".*" ".*" ".*"
|
12
|
+
tail -F /opt/zenoss/log/event.log
|
File without changes
|
@@ -0,0 +1,437 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://192.168.56.2:9080/zport/dmd/zport/acl_users/cookieAuthHelper/login
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: __ac_name=admin&__ac_password=zenoss&submitted=true&came_from=http%3A%2F%2F192.168.56.2%3A9080%2Fzport%2Fdmd%2Fzport%2Fdmd
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- HTTPClient/1.0 (2.6.0.1, ruby 2.2.0 (2014-12-25))
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
Date:
|
15
|
+
- Fri, 22 May 2015 12:19:38 GMT
|
16
|
+
Content-Type:
|
17
|
+
- application/x-www-form-urlencoded
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 302
|
21
|
+
message: Moved Temporarily
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- Zope/(2.12.1, python 2.6.2, linux2) ZServer/1.1
|
25
|
+
Date:
|
26
|
+
- Fri, 22 May 2015 12:19:38 GMT
|
27
|
+
Content-Length:
|
28
|
+
- '59'
|
29
|
+
Content-Type:
|
30
|
+
- text/plain; charset=utf-8
|
31
|
+
Location:
|
32
|
+
- http://192.168.56.2:9080/zport/dmd/zport/dmd?submitted=true
|
33
|
+
Set-Cookie:
|
34
|
+
- __ginger_snap="NjE2NDZkNjk2ZTo3YTY1NmU2ZjczNzM%253D"; Path=/
|
35
|
+
body:
|
36
|
+
encoding: UTF-8
|
37
|
+
string: http://192.168.56.2:9080/zport/dmd/zport/dmd?submitted=true
|
38
|
+
http_version:
|
39
|
+
recorded_at: Fri, 22 May 2015 12:19:38 GMT
|
40
|
+
- request:
|
41
|
+
method: post
|
42
|
+
uri: http://192.168.56.2:9080/zport/dmd/http://192.168.56.2:9080/zport/dmd/zport/dmd?submitted=true
|
43
|
+
body:
|
44
|
+
encoding: UTF-8
|
45
|
+
string: __ac_name=admin&__ac_password=zenoss&submitted=true&came_from=http%3A%2F%2F192.168.56.2%3A9080%2Fzport%2Fdmd%2Fzport%2Fdmd
|
46
|
+
headers:
|
47
|
+
User-Agent:
|
48
|
+
- HTTPClient/1.0 (2.6.0.1, ruby 2.2.0 (2014-12-25))
|
49
|
+
Accept:
|
50
|
+
- "*/*"
|
51
|
+
Date:
|
52
|
+
- Fri, 22 May 2015 12:19:38 GMT
|
53
|
+
Content-Type:
|
54
|
+
- application/x-www-form-urlencoded
|
55
|
+
Cookie:
|
56
|
+
- __ginger_snap=NjE2NDZkNjk2ZTo3YTY1NmU2ZjczNzM%253D
|
57
|
+
response:
|
58
|
+
status:
|
59
|
+
code: 200
|
60
|
+
message: OK
|
61
|
+
headers:
|
62
|
+
Server:
|
63
|
+
- Zope/(2.12.1, python 2.6.2, linux2) ZServer/1.1
|
64
|
+
Date:
|
65
|
+
- Fri, 22 May 2015 12:19:38 GMT
|
66
|
+
Content-Length:
|
67
|
+
- '23063'
|
68
|
+
Content-Type:
|
69
|
+
- text/html; charset=utf-8
|
70
|
+
body:
|
71
|
+
encoding: UTF-8
|
72
|
+
string: "\n<html>\n <head>\n<base href=\"http://192.168.56.2:9080/zport/dmd/zport/dmd/\"
|
73
|
+
/>\n\n <title>\n Zenoss:\n \n Dashboard\n\n
|
74
|
+
\ </title>\n <link rel=\"icon\" href=\"/zport/dmd/favicon.ico\"
|
75
|
+
type=\"image/x-icon\" />\n <link rel=\"shortcut icon\" href=\"/zport/dmd/favicon.ico\"
|
76
|
+
type=\"image/x-icon\" />\n <link rel=\"stylesheet\" type=\"text/css\"
|
77
|
+
href=\"/++resource++extjs/resources/css/ext-all.css\" />\n <link rel=\"stylesheet\"
|
78
|
+
type=\"text/css\" href=\"/++resource++extjs/treegrid/treegrid.css\" />\n <link
|
79
|
+
rel=\"stylesheet\" type=\"text/css\" href=\"/++resource++zenui/js/livegrid/resources/css/ext-ux-livegrid.css\"
|
80
|
+
/>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"/++resource++zenui/css/xtheme-zenoss.css\"
|
81
|
+
/>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"/++resource++zenui/css/zenoss.css\"
|
82
|
+
/>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"/++resource++zenui/css/zenui3.css\"
|
83
|
+
/>\n \n<script type=\"text/javascript\">\n function _global_permissions(){\n
|
84
|
+
\ return {\"modify cookie crumblers\": true, \"add ram cache managers\":
|
85
|
+
true, \"reply to item\": true, \"zproperties edit\": true, \"maintenance windows
|
86
|
+
view\": true, \"maintenance windows edit\": true, \"define commands edit\":
|
87
|
+
true, \"add folders\": true, \"set own password\": true, \"add portal content\":
|
88
|
+
true, \"edit user groups\": true, \"review portal content\": true, \"manage
|
89
|
+
relations\": true, \"change cache managers\": true, \"add ofolders\": true,
|
90
|
+
\"create transient objects\": true, \"list undoable changes\": true, \"webdav
|
91
|
+
unlock items\": true, \"view modifications\": true, \"manage portal\": true,
|
92
|
+
\"change bindings\": true, \"delete device\": true, \"access transient objects\":
|
93
|
+
true, \"add dmd objects\": true, \"manage site\": true, \"gensummary\": true,
|
94
|
+
\"add restructuredtext documents\": true, \"zencommon\": true, \"manage transient
|
95
|
+
object container\": true, \"zproperties view\": true, \"request review\":
|
96
|
+
true, \"mail forgotten password\": true, \"change cache settings\": true,
|
97
|
+
\"add page templates\": true, \"change session data manager\": true, \"change
|
98
|
+
external methods\": true, \"managableindex: manage\": true, \"administrators
|
99
|
+
view\": true, \"add external methods\": true, \"define commands view\": true,
|
100
|
+
\"change device production state\": true, \"add site roots\": true, \"add
|
101
|
+
zentablemanager\": true, \"set own properties\": true, \"add plugin registrys\":
|
102
|
+
true, \"webdav lock items\": true, \"add mysqleventmanagers\": true, \"search
|
103
|
+
zcatalog\": true, \"access contents information\": true, \"add browser id
|
104
|
+
manager\": true, \"change dtml documents\": true, \"use mailhost services\":
|
105
|
+
true, \"change dtml methods\": true, \"view history\": true, \"add content
|
106
|
+
type registrys\": true, \"ftp access\": true, \"add vocabularies\": true,
|
107
|
+
\"edit local templates\": true, \"manage groups\": true, \"manage webdav locks\":
|
108
|
+
true, \"add toonerelationships\": true, \"add user folders\": true, \"add
|
109
|
+
cmf caching policy managers\": true, \"add temporary folder\": true, \"add
|
110
|
+
btreefolder2s\": true, \"administrators edit\": true, \"admin device\": true,
|
111
|
+
\"change python scripts\": true, \"change images and files\": true, \"change
|
112
|
+
database methods\": true, \"add python scripts\": true, \"change configuration\":
|
113
|
+
true, \"view\": true, \"access inactive portal content\": true, \"undo changes\":
|
114
|
+
true, \"run commands\": true, \"change admin objects\": true, \"webdav access\":
|
115
|
+
true, \"view management screens\": true, \"add session data manager\": true,
|
116
|
+
\"add mailhost objects\": true, \"add cmf core tools\": true, \"add database
|
117
|
+
methods\": true, \"change network\": true, \"import/export objects\": true,
|
118
|
+
\"manage vocabulary\": true, \"access arbitrary user session data\": true,
|
119
|
+
\"open/close database connections\": true, \"delete objects\": true, \"change
|
120
|
+
settings\": true, \"change page templates\": true, \"change device\": true,
|
121
|
+
\"add portal member\": true, \"change browser id manager\": true, \"manage
|
122
|
+
zcatalog entries\": true, \"send events\": true, \"manage eventmanager\":
|
123
|
+
true, \"access session data\": true, \"copy or move\": true, \"add filesystem
|
124
|
+
directory views\": true, \"add cookie crumblers\": true, \"add virtual host
|
125
|
+
monsters\": true, \"define permissions\": true, \"change event views\": true,
|
126
|
+
\"add tomanycontrelationships\": true, \"add documents, images, and files\":
|
127
|
+
true, \"manage access rules\": true, \"change alerting rules\": true, \"query
|
128
|
+
vocabulary\": true, \"modify portal content\": true, \"edit restructuredtext\":
|
129
|
+
true, \"manage dmd\": true, \"add generic setup tools\": true, \"zenupdate\":
|
130
|
+
true, \"add pluggable index\": true, \"add zcatalogs\": true, \"add portal
|
131
|
+
folders\": true, \"manage device status\": true, \"change local roles\": true,
|
132
|
+
\"add transient object container\": true, \"manage five local sites\": true,
|
133
|
+
\"add tomanyrelationships\": true, \"list portal members\": true, \"edit users\":
|
134
|
+
true, \"manage users\": true, \"change permissions\": true, \"use database
|
135
|
+
methods\": true, \"add accelerated http cache managers\": true, \"manage zcatalogindex
|
136
|
+
entries\": true, \"search for principals\": true, \"log to the event log\":
|
137
|
+
true, \"manage events\": true, \"ofolder: reorder\": true, \"log site errors\":
|
138
|
+
true, \"list folder contents\": true, \"add relationship managers\": true,
|
139
|
+
\"change proxy roles\": true, \"manage properties\": true, \"add zodb mount
|
140
|
+
points\": true, \"manage device\": true};\n }\n</script>\n \n <script
|
141
|
+
type=\"text/javascript\" src=\"/++resource++extjs/adapters/ext/ext-base.js\"></script>\n\n\n<script
|
142
|
+
type=\"text/javascript\">\n\n (function() {\n var ua =
|
143
|
+
navigator.userAgent.toLowerCase();\n if (ua.indexOf(\"firefox/3.6\")
|
144
|
+
> -1) {\n Ext.toArray = function(a, i, j, res) {\n res
|
145
|
+
= [];\n Ext.each(a, function(v) { res.push(v); });\n return
|
146
|
+
res.slice(i || 0, j || res.length);\n }\n }\n })();\n
|
147
|
+
\ \n</script>\n\n<script type=\"text/javascript\" src=\"/++resource++extjs/ext-all.js\"></script>\n\n<script
|
148
|
+
type=\"text/javascript\" src=\"/++resource++zenui/js/livegrid/livegrid-all.js\"></script>\n\n\n<script
|
149
|
+
type=\"text/javascript\" src=\"/++resource++extjs/treegrid/TreeGridSorter.js\"></script>\n<script
|
150
|
+
type=\"text/javascript\" src=\"/++resource++extjs/treegrid/TreeGridColumnResizer.js\"></script>\n<script
|
151
|
+
type=\"text/javascript\" src=\"/++resource++extjs/treegrid/TreeGridNodeUI.js\"></script>\n<script
|
152
|
+
type=\"text/javascript\" src=\"/++resource++extjs/treegrid/TreeGridLoader.js\"></script>\n<script
|
153
|
+
type=\"text/javascript\" src=\"/++resource++extjs/treegrid/TreeGridColumns.js\"></script>\n<script
|
154
|
+
type=\"text/javascript\" src=\"/++resource++extjs/fileuploadfield/FileUploadField.js\"></script>\n<script
|
155
|
+
type=\"text/javascript\" src=\"/++resource++extjs/treegrid/TreeGridLoader.js\"></script>\n<script
|
156
|
+
type=\"text/javascript\" src=\"/++resource++extjs/treegrid/TreeGridColumns.js\"></script>\n<script
|
157
|
+
type=\"text/javascript\" src=\"/++resource++extjs/treegrid/TreeGrid.js\"></script>\n<script
|
158
|
+
type=\"text/javascript\" src=\"extdirect.js\"></script>\n\n<script type=\"text/javascript\"
|
159
|
+
src=\"zenoss-all.js?v=3.2.1\"></script>\n\n<script type=\"text/javascript\"
|
160
|
+
src=\"i18n.js\"></script>\n\n <script></script>\n \n \n
|
161
|
+
\ \n \n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"
|
162
|
+
/>\n <link rel=\"shortcut icon\" href=\"/zport/dmd/favicon.ico\" type=\"image/x-icon\"
|
163
|
+
/>\n <link rel=\"stylesheet\" href=\"yui/reset-fonts-grids/reset-fonts-grids.css\"
|
164
|
+
/>\n <link rel=\"stylesheet\" href=\"yui/base/base-min.css\" />\n <link
|
165
|
+
rel=\"stylesheet\" href=\"/zport/portal_skins/zenoss.css\">\n <!--[if IE
|
166
|
+
7]>\n <link rel=\"stylesheet\" type=\"text/css\" title=\"zenoss\"\n
|
167
|
+
\ href=\"zenoss_ie.css\" >\n <![endif]-->\n <!--[if IE 6]>\n
|
168
|
+
\ <link rel=\"stylesheet\" type=\"text/css\" title=\"zenoss\"\n href=\"zenoss_ie6.css\"
|
169
|
+
>\n <![endif]-->\n <script>\n var DEBUG_MODE = false;\n var
|
170
|
+
VERSION_ID = '321';\n </script>\n <script type=\"text/javascript\" src=\"js/MochiKit.js\"></script>\n
|
171
|
+
\ <script type=\"text/javascript\" language=\"javascript\" src=\"/zport/dmd/yui/yahoo/yahoo-min.js\"></script>\n
|
172
|
+
\ <script type=\"text/javascript\" language=\"javascript\" src=\"/zport/dmd/yui/yuiloader/yuiloader-min.js\"></script>\n
|
173
|
+
\ <script type=\"text/javascript\" src=\"javascript/zenoss-core.js\"></script>\n
|
174
|
+
\ <script>\n var loader = YAHOO.zenoss.getLoader();\n loader.require(['zenossutils']);\n
|
175
|
+
\ loader.insert({onSuccess:function(){\n removeElementAutoCompletes();\n
|
176
|
+
\ applyBrowserSpecificStyles();\n addSelectionBar();\n checkForCollapsed();\n
|
177
|
+
\ connectCheckboxListeners();\n notifyParentOfNewUrl();\n zenPageInit();\n
|
178
|
+
\ }});\n </script>\n\n\n \n<script>\n\nvar submitFormToMethod = function(formname,
|
179
|
+
method) {\n//Basically for use in menu items, to obviate creating dummy forms\n//or
|
180
|
+
menu items that are actually buttons.\n f = document.forms[formname];\n
|
181
|
+
\ f.action = '/zport/dmd/' + method;\n f.submit();\n}\n\nvar goExport =
|
182
|
+
function() {\n var params = {};\n if (eventZenGrid.lastparams['severity'])\n
|
183
|
+
\ params['sev'] = eventZenGrid.lastparams['severity'];\n if (eventZenGrid.lastparams['state'])\n
|
184
|
+
\ params['state'] = eventZenGrid.lastparams['state'];\n if (eventZenGrid.lastparams['filter'])\n
|
185
|
+
\ params['filter'] = eventZenGrid.lastparams['filter'];\n if (eventZenGrid.lastparams['startdate'])\n
|
186
|
+
\ params['startdate'] = eventZenGrid.lastparams['startdate'];\n if
|
187
|
+
(eventZenGrid.lastparams['enddate'])\n params['enddate'] = eventZenGrid.lastparams['enddate'];\n
|
188
|
+
\ if (eventZenGrid.lastparams['orderby'])\n params['orderby'] = eventZenGrid.lastparams['orderby'];\n
|
189
|
+
\ log(keys(params));\n log(queryString(params));\n url = '/zport/dmd/exportEvents?'
|
190
|
+
+ queryString(params);\n parent.location = url;\n}\n\naddLoadEvent(function()
|
191
|
+
{\n\n YAHOO.zenoss.templateFreeURL = '/zport/dmd';\n YAHOO.zenoss.ZENOSS_VERSION
|
192
|
+
= '3.2.1';\n YAHOO.zenoss.ZENOSS_PRODUCT = 'core';\n\n});\n\n\n\n</script>\n\n
|
193
|
+
\ <link rel=\"stylesheet\" href=\"/++resource++zenui/css/backcompat.css\"
|
194
|
+
/>\n\n \n<script type=\"text/javascript\">\n\n Ext.onReady(function(){\n
|
195
|
+
\ Zenoss.env.EVENT_CLASSES = ['/App', '/App/Citrix', '/App/Conn',
|
196
|
+
'/App/Conn/Max', '/App/Email', '/App/Email/Loop', '/App/Failed', '/App/Info',
|
197
|
+
'/App/Install', '/App/Job', '/App/Job/Fail', '/App/Log', '/App/Print', '/App/Reload',
|
198
|
+
'/App/Start', '/App/Stop', '/App/VNC', '/Archive', '/Change', '/Change/Add',
|
199
|
+
'/Change/Add/Blocked', '/Change/Remove', '/Change/Remove/Blocked', '/Change/Set',
|
200
|
+
'/Change/Set/Blocked', '/Cisco', '/Cisco/FW', '/Cluster', '/Cluster/Heartbeat',
|
201
|
+
'/Cmd', '/Cmd/Fail', '/Cmd/Ok', '/Config', '/DB', '/DB/Filemaker', '/Environ',
|
202
|
+
'/HW', '/HW/Backup', '/HW/Backup/Robot', '/HW/Backup/SCSI', '/HW/Backup/Tape
|
203
|
+
Drive', '/HW/Backup/Tape Media', '/HW/Blade', '/HW/Management', '/HW/Memory',
|
204
|
+
'/HW/Network', '/HW/Network/AdapterDown', '/HW/Network/TeamDown', '/HW/Power',
|
205
|
+
'/HW/Power/PowerLoss', '/HW/Power/UPS', '/HW/Power/UPS/SmartBoost', '/HW/Store',
|
206
|
+
'/HW/Store/FiberChannel', '/HW/Temperature', '/HW/Temperature/Fan', '/Heartbeat',
|
207
|
+
'/Ignore', '/Ignore/Win', '/License', '/Net', '/Net/Conflict', '/Net/Dhcp',
|
208
|
+
'/Net/Dhcp/Ack', '/Net/Dhcp/Inform', '/Net/Dhcp/Obtained', '/Net/Dhcp/Request',
|
209
|
+
'/Net/Link', '/Net/NS', '/Net/SpanTree', '/Net/Time', '/OS', '/OS/Pagefile',
|
210
|
+
'/OS/Reboot', '/Perf', '/Perf/CPU', '/Perf/Filesystem', '/Perf/Interface',
|
211
|
+
'/Perf/Memory', '/Perf/Snmp', '/Perf/XmlRpc', '/Security', '/Security/Auth',
|
212
|
+
'/Security/Conn', '/Security/Conn/Close', '/Security/Conn/Open', '/Security/Login',
|
213
|
+
'/Security/Login/BadPass', '/Security/Login/Fail', '/Security/Sudo', '/Security/Virus',
|
214
|
+
'/Status', '/Status/Heartbeat', '/Status/IpService', '/Status/Nagios', '/Status/OSProcess',
|
215
|
+
'/Status/Perf', '/Status/Ping', '/Status/Snmp', '/Status/Update', '/Status/Web',
|
216
|
+
'/Status/WinService', '/Status/Wmi', '/Status/Wmi/Conn', '/Status/XmlRpc',
|
217
|
+
'/Status/zenwinmodeler', '/Storage', '/Storage/Full', '/Storage/SAN', '/Unknown',
|
218
|
+
'/Users', '/Win', '/Win/AD', '/Win/DCOM', '/Win/Exchange', '/Win/NetBios',
|
219
|
+
'/Win/PWMgr', '/Win/SharePoint', '/Win/Shell', '/Win/Userenv', '/Win/WindowsUpdate',
|
220
|
+
'/Win/WindowsUpdate/Failure', '/Win/WindowsUpdate/Pending', '/Win/WindowsUpdate/Success',
|
221
|
+
'/Win/evtsys'];\n })\n \nExt.onReady(function(){Zenoss.env.COLUMN_DEFINITIONS=[\n{\"sortable\":
|
222
|
+
true, \"header\": \"Status\", \"filter\": {\"text\": \"...\", \"xtype\": \"multiselectmenu\",
|
223
|
+
\"source\": [{\"name\": \"New\", \"value\": 0}, {\"name\": \"Acknowledged\",
|
224
|
+
\"value\": 1}, {\"checked\": false, \"name\": \"Suppressed\", \"value\": 2}]},
|
225
|
+
\"width\": 60, \"dataIndex\": \"eventState\", \"id\": \"eventState\", \"renderer\":
|
226
|
+
Zenoss.util.render_status},\n{\"sortable\": true, \"header\": \"Severity\",
|
227
|
+
\"filter\": {\"text\": \"...\", \"xtype\": \"multiselectmenu\", \"source\":
|
228
|
+
[{\"name\": \"Critical\", \"value\": 5}, {\"name\": \"Error\", \"value\":
|
229
|
+
4}, {\"name\": \"Warning\", \"value\": 3}, {\"name\": \"Info\", \"value\":
|
230
|
+
2}, {\"checked\": false, \"name\": \"Debug\", \"value\": 1}, {\"checked\":
|
231
|
+
false, \"name\": \"Clear\", \"value\": 0}]}, \"width\": 60, \"dataIndex\":
|
232
|
+
\"severity\", \"id\": \"severity\", \"renderer\": Zenoss.util.render_severity},\n{\"sortable\":
|
233
|
+
true, \"filter\": {\"xtype\": \"textfield\"}, \"header\": \"Device\", \"dataIndex\":
|
234
|
+
\"device\", \"id\": \"device\", \"renderer\": Zenoss.render.linkFromGrid},\n{\"sortable\":
|
235
|
+
true, \"header\": \"Component\", \"filter\": {\"xtype\": \"textfield\"}, \"width\":
|
236
|
+
80, \"dataIndex\": \"component\", \"id\": \"component\", \"renderer\": Zenoss.render.DeviceComponent},\n{\"sortable\":
|
237
|
+
true, \"header\": \"Event Class\", \"filter\": {\"xtype\": \"textfield\"},
|
238
|
+
\"width\": 80, \"dataIndex\": \"eventClass\", \"id\": \"eventClass\", \"renderer\":
|
239
|
+
Zenoss.render.linkFromGrid},\n{\"filter\": {\"xtype\": \"textfield\"}, \"header\":
|
240
|
+
\"Summary\", \"sortable\": true, \"id\": \"summary\", \"dataIndex\": \"summary\"},\n{\"sortable\":
|
241
|
+
true, \"header\": \"First Seen\", \"filter\": {\"xtype\": \"datefield\", \"format\":
|
242
|
+
\"Y-m-d H:i:s\"}, \"width\": 100, \"dataIndex\": \"firstTime\", \"id\": \"firstTime\",
|
243
|
+
\"renderer\": Ext.util.Format.dateRenderer(Zenoss.date.ISO8601NoYear)},\n{\"sortable\":
|
244
|
+
true, \"header\": \"Last Seen\", \"filter\": {\"xtype\": \"datefield\", \"format\":
|
245
|
+
\"Y-m-d H:i:s\"}, \"width\": 100, \"dataIndex\": \"lastTime\", \"id\": \"lastTime\",
|
246
|
+
\"renderer\": Ext.util.Format.dateRenderer(Zenoss.date.ISO8601NoYear)},\n{\"sortable\":
|
247
|
+
true, \"header\": \"Count\", \"filter\": {\"vtype\": \"numcmp\", \"xtype\":
|
248
|
+
\"textfield\"}, \"width\": 60, \"dataIndex\": \"count\", \"id\": \"count\"}\n];\nZenoss.env.EVENT_AUTO_EXPAND_COLUMN='summary';});\n\n
|
249
|
+
\ Ext.namespace('Zenoss.settings');\n Zenoss.settings.enableLiveSearch
|
250
|
+
= true;\n \n \n</script>\n\n </head>\n\n <body>\n <div
|
251
|
+
id=\"header\">\n <div class=\"bg\">\n <div class=\"bg-leftcap\">\n
|
252
|
+
\ <div class=\"bg-tile\">\n <div
|
253
|
+
class=\"bg-logo\"></div>\n <div id=\"primarynav\">\n
|
254
|
+
\ <ul><li class=\"nav-item-active\">\n<div class=\"sd-left\">\n
|
255
|
+
\ <div class=\"sd-right\">\n <a href=\"/zport/dmd/Dashboard\" target=\"_self\">Dashboard</a>\n
|
256
|
+
\ </div>\n</div>\n</li>\n\n<li class=\"nav-item-inactive\">\n<div class=\"sd-left\">\n
|
257
|
+
\ <div class=\"sd-right\">\n <a href=\"/zport/dmd/Events/evconsole\"
|
258
|
+
target=\"_self\">Events</a>\n </div>\n</div>\n</li>\n\n<li class=\"nav-item-inactive\">\n<div
|
259
|
+
class=\"sd-left\">\n <div class=\"sd-right\">\n <a href=\"/zport/dmd/itinfrastructure\"
|
260
|
+
target=\"_self\">Infrastructure</a>\n </div>\n</div>\n</li>\n\n<li class=\"nav-item-inactive\">\n<div
|
261
|
+
class=\"sd-left\">\n <div class=\"sd-right\">\n <a href=\"/zport/dmd/reports\"
|
262
|
+
target=\"_self\">Reports</a>\n </div>\n</div>\n</li>\n\n<li class=\"nav-item-inactive\">\n<div
|
263
|
+
class=\"sd-left\">\n <div class=\"sd-right\">\n <a href=\"/zport/dmd/editSettings\"
|
264
|
+
target=\"_self\">Advanced</a>\n </div>\n</div>\n</li>\n</ul>\n <div
|
265
|
+
id=\"header-extra\">\n <div id=\"searchbox-container\"></div>\n
|
266
|
+
\ <div id=\"saved-search-container\"></div>\n
|
267
|
+
\ <div id=\"user-link-container\">\n <a\n
|
268
|
+
\ href=\"/zport/dmd/ZenUsers/admin\">\n admin\n
|
269
|
+
\ </a>\n </div>\n
|
270
|
+
\ <div id=\"sign-out-link\">\n <a
|
271
|
+
href=\"/zport/dmd/logoutUser\">sign out</a>\n </div>\n
|
272
|
+
\ <div>\n <div
|
273
|
+
id=\"help-icon-container\">\n <span></span><!--
|
274
|
+
ie needs empty span tags in some versions -->\n <a
|
275
|
+
target=\"_blank\"\n alt=\"Help\"\n href=\"http://www.zenoss.com/help?version=3.2.1\"> </a>\n
|
276
|
+
\ </div>\n </div>\n
|
277
|
+
\ </div>\n </div>\n <div
|
278
|
+
id=\"secondarynav\">\n <ul></ul>\n \n\n
|
279
|
+
\ </div>\n </div>\n </div>\n
|
280
|
+
\ </div>\n </div>\n <div id=\"center\">\n \n
|
281
|
+
\ \n<form name=\"proxy_form\" id=\"proxy_form\"\n style=\"position:absolute;visibility:hidden\"\n
|
282
|
+
\ action=\"/zport/dmd\"></form>\n<form method=\"post\" name=\"proxyForm\"
|
283
|
+
action=\"here/absolute_url\"> \n <input type=\"hidden\" name=\"zenScreenName\"\n
|
284
|
+
\ value=\"Dashboard.pt\" /> \n</form>\n\n \n\n<div id=\"dialog\"
|
285
|
+
class=\"dialog\" style=\"visibility:hidden;position:absolute\"> \n<div id=\"dialog_innercontent\">\n
|
286
|
+
\ \n\n<div style=\"text-align:center\">\n<h2>Loading...</h2>\n<br />\n<img
|
287
|
+
src=\"img/spinning_wheel_throbber.gif\" />\n</div>\n\n\n</div>\n<img id=\"dialog_close\"
|
288
|
+
src=\"/++resource++zenui/img/xtheme-zenoss/window/close-button.png\" class=\"dialog_close\"
|
289
|
+
/>\n</div>\n<script>\nloader = YAHOO.zenoss.getLoader();\nloader.require(['zenossutils']);\nloader.insert({\n
|
290
|
+
\ onSuccess: function(){\n mydialog = new Dialog.Box($('dialog'));\n
|
291
|
+
\ connect('dialog_close','onclick', mydialog.box.hide);\n $('dialog').style.visibility
|
292
|
+
= '';\n }\n});\n</script>\n\n\n \n <div id=\"contentPaneContainer\">\n
|
293
|
+
\ \n<div id=\"portletContainer\"></div>\n<script>\n var start_time
|
294
|
+
= '2015-05-22 12:19:38';\n var state = '';\n if(state) var dashboardState
|
295
|
+
= evalJSON(state);\n</script>\n<script>\nvar server_time = isoTimestamp(start_time).getTime();\nvar
|
296
|
+
updateTime = {\n run: function () {\n server_time += 1000;\n },\n
|
297
|
+
\ interval: 1000\n}\nExt.TaskMgr.start(updateTime);\n\nfunction getServerTimestamp()
|
298
|
+
{\n var server_now = new Date(server_time);\n return toISOTimestamp(server_now);\n}\n\n//
|
299
|
+
Initialization of dashboard portlets\nvar ContainerObject;\nfunction initDashboardPortlets()
|
300
|
+
{\n ContainerObject = new YAHOO.zenoss.portlet.PortletContainer(\n 'portletContainer');\n
|
301
|
+
\ YAHOO.zenoss.globalPortletContainer = ContainerObject;\n if (dashboardState)
|
302
|
+
{\n ContainerObject.restore(dashboardState);\n } else {\n //
|
303
|
+
Create a default dashboard\n ContainerObject.setLayout('2coleq', false);\n
|
304
|
+
\ ContainerObject.restoreDefaults();\n }\n}\nvar loader = YAHOO.zenoss.getLoader();\nloader.require(['portletsource']);\nloader.insert({
|
305
|
+
'onSuccess':initDashboardPortlets });\n\n</script>\n<style>\n .z-bc .z-bc-content-pane
|
306
|
+
{\n background-color: #888;\n }\n</style>\n\n </div>\n \n\n
|
307
|
+
\ </div>\n <div id=\"footer\">\n </div>\n <div
|
308
|
+
id=\"footer_extra\">\n </div>\n\n\n<form id=\"exportform\" method=\"post\"
|
309
|
+
action=\"/zport/dmd/Events/export\">\n <input type=\"hidden\" id=\"export_body\"
|
310
|
+
name=\"body\" />\n</form>\n<script type=\"text/javascript\">\nExt.onReady(function(){\nvar
|
311
|
+
viewport = new Ext.Viewport({\n id: 'viewport',\n layout: 'border',\n
|
312
|
+
\ cls: 'zenui3',\n defaults: {\n 'border': false\n },\n items:
|
313
|
+
[\n new Ext.BoxComponent({\n region: 'north',\n el:
|
314
|
+
'header',\n height: 75,\n id: 'header_panel'\n }),{\n
|
315
|
+
\ id: 'footer_panel',\n region: 'south',\n height:
|
316
|
+
30,\n layout: 'fit',\n el: 'footer',\n items:
|
317
|
+
[\n new Ext.Toolbar({\n border: false,\n
|
318
|
+
\ id: 'footer_bar',\n listeners: {\n
|
319
|
+
\ render: function(bar){\n Ext.get('footer_extra').appendTo(bar.getEl());\n
|
320
|
+
\ }\n }\n })\n ],\n
|
321
|
+
\ border: false\n },{\n id: 'center_panel',\n
|
322
|
+
\ region: 'center',\n el: 'center',\n layout:
|
323
|
+
'fit',\n border: false,\n defaults: {\n 'border':
|
324
|
+
false\n }\n }\n ]\n});\n});\n</script>\n\n\n<script>\n//
|
325
|
+
A little pre-javascript layout hackery to prevent appearance of re-layout.\n//
|
326
|
+
If there are breadcrumbs the tabs pane needs to be bumped up.\nif (Zenoss.env.pageHasBreadCrumbs)
|
327
|
+
{\n try {\n Ext.get('newTabsPane').setStyle({\n top:
|
328
|
+
-23,\n position: 'relative'\n });\n } catch(e) {}\n}\nExt.onReady(function(){\n
|
329
|
+
\ var outerItems = [],\n innerItems = [{\n region: 'center',\n
|
330
|
+
\ autoScroll: true,\n bodyCssClass: 'z-bc-content-pane',\n contentEl:
|
331
|
+
'contentPaneContainer',\n split: true\n }];\n if (Zenoss.env.pageHasTabs)
|
332
|
+
{\n outerItems.push({\n region: 'west',\n width:
|
333
|
+
200,\n bodyCssClass: 'z-bc-tab-pane',\n contentEl: 'newTabsPane',\n
|
334
|
+
\ split: true\n });\n }\n if (Zenoss.env.pageHasBreadCrumbs)
|
335
|
+
{\n innerItems.push({\n region: 'north',\n height:
|
336
|
+
24,\n bodyCssClass: 'z-bc-bread-crumb-pane',\n contentEl:
|
337
|
+
'breadCrumbPane'\n });\n }\n outerItems.push({\n region:
|
338
|
+
'center',\n layout: 'border',\n defaults: {\n border:
|
339
|
+
false\n },\n items: innerItems\n });\n\n // Undo all the
|
340
|
+
pre-layout css\n try {\n Ext.get('contentPaneContainer').setStyle({\n
|
341
|
+
\ marginLeft: 0\n });\n } catch(e) {}\n try {\n Ext.get('newTabsPane').setStyle({\n
|
342
|
+
\ top: 0,\n position: 'static'\n });\n } catch(e)
|
343
|
+
{}\n try {\n Ext.get('breadCrumbPane').setStyle({\n marginLeft:
|
344
|
+
0,\n position: 'static'\n });\n } catch(e) {}\n\n\n Zenoss.util.callWhenReady('center_panel',
|
345
|
+
function(){\n Ext.getCmp('center_panel').add({\n layout:
|
346
|
+
'border',\n id: 'backcompat-layout-panel',\n defaults:
|
347
|
+
{\n border: false\n },\n bodyCssClass:
|
348
|
+
'z-bc', // Zenoss back compat\n items: outerItems\n });\n
|
349
|
+
\ Ext.getCmp('center_panel').doLayout();\n });\n});\n</script>\n\n\n<!--
|
350
|
+
Make sure everything on the page gets laid out -->\n<script type=\"text/javascript\">\n
|
351
|
+
\ Ext.onReady(function(){Ext.getCmp('viewport').doLayout()});\n</script>\n\n\n
|
352
|
+
\ \n\n\n<!-- Load tooltips for this screen -->\n<script type=\"text/javascript\"
|
353
|
+
src=\"tooltips.js\"></script>\n\n<!-- Fields required for history management
|
354
|
+
-->\n<form id=\"history-form\" class=\"x-hidden\" action=\"\">\n <input
|
355
|
+
type=\"hidden\" id=\"x-history-field\" />\n <iframe id=\"x-history-frame\"></iframe>\n</form>\n<script
|
356
|
+
type=\"text/javascript\">\nExt.History.init(function(mgr){\n Ext.History.selectByToken(mgr.getToken());\n});\n</script>\n</body>\n</html>
|
357
|
+
<!-- metal:use-macro=\"context/page_macros/base-new\" -->\n\n\n"
|
358
|
+
http_version:
|
359
|
+
recorded_at: Fri, 22 May 2015 12:19:38 GMT
|
360
|
+
- request:
|
361
|
+
method: post
|
362
|
+
uri: http://192.168.56.2:9080/zport/dmd/zport/dmd/device_router
|
363
|
+
body:
|
364
|
+
encoding: UTF-8
|
365
|
+
string: '[{"action":"DeviceRouter","method":"addDevice","data":[{"deviceName":"UnitTestDevice","deviceClass":"/Devices/Server"}],"type":"rpc","tid":1}]'
|
366
|
+
headers:
|
367
|
+
User-Agent:
|
368
|
+
- HTTPClient/1.0 (2.6.0.1, ruby 2.2.0 (2014-12-25))
|
369
|
+
Accept:
|
370
|
+
- "*/*"
|
371
|
+
Date:
|
372
|
+
- Fri, 22 May 2015 12:19:38 GMT
|
373
|
+
Content-Type:
|
374
|
+
- application/json; charset=utf-8
|
375
|
+
Cookie:
|
376
|
+
- __ginger_snap=NjE2NDZkNjk2ZTo3YTY1NmU2ZjczNzM%253D
|
377
|
+
response:
|
378
|
+
status:
|
379
|
+
code: 200
|
380
|
+
message: OK
|
381
|
+
headers:
|
382
|
+
Server:
|
383
|
+
- Zope/(2.12.1, python 2.6.2, linux2) ZServer/1.1
|
384
|
+
Date:
|
385
|
+
- Fri, 22 May 2015 12:19:38 GMT
|
386
|
+
Content-Length:
|
387
|
+
- '176'
|
388
|
+
Content-Type:
|
389
|
+
- application/json
|
390
|
+
body:
|
391
|
+
encoding: UTF-8
|
392
|
+
string: '{"tid": 1, "action": "DeviceRouter", "type": "rpc", "method": "addDevice",
|
393
|
+
"result": {"success": true, "jobId": "DeviceCreationJobStatus_77b6d227-2f37-4260-a016-0892d66ad838"}}'
|
394
|
+
http_version:
|
395
|
+
recorded_at: Fri, 22 May 2015 12:19:38 GMT
|
396
|
+
- request:
|
397
|
+
method: post
|
398
|
+
uri: http://192.168.56.2:9080/zport/dmd/zport/dmd/device_router
|
399
|
+
body:
|
400
|
+
encoding: UTF-8
|
401
|
+
string: '[{"action":"DeviceRouter","method":"getDevices","data":[{"uid":"/zport/dmd/Devices","params":{"name":"UnitTestDevice"}}],"type":"rpc","tid":2}]'
|
402
|
+
headers:
|
403
|
+
User-Agent:
|
404
|
+
- HTTPClient/1.0 (2.6.0.1, ruby 2.2.0 (2014-12-25))
|
405
|
+
Accept:
|
406
|
+
- "*/*"
|
407
|
+
Date:
|
408
|
+
- Fri, 22 May 2015 12:19:38 GMT
|
409
|
+
Content-Type:
|
410
|
+
- application/json; charset=utf-8
|
411
|
+
Cookie:
|
412
|
+
- __ginger_snap=NjE2NDZkNjk2ZTo3YTY1NmU2ZjczNzM%253D
|
413
|
+
response:
|
414
|
+
status:
|
415
|
+
code: 200
|
416
|
+
message: OK
|
417
|
+
headers:
|
418
|
+
Server:
|
419
|
+
- Zope/(2.12.1, python 2.6.2, linux2) ZServer/1.1
|
420
|
+
Date:
|
421
|
+
- Fri, 22 May 2015 12:19:38 GMT
|
422
|
+
Content-Length:
|
423
|
+
- '576'
|
424
|
+
Content-Type:
|
425
|
+
- application/json
|
426
|
+
body:
|
427
|
+
encoding: UTF-8
|
428
|
+
string: '{"tid": 2, "action": "DeviceRouter", "type": "rpc", "method": "getDevices",
|
429
|
+
"result": {"totalCount": 1, "hash": "1", "success": true, "devices": [{"groups":
|
430
|
+
[], "serialNumber": "", "name": "UnitTestDevice", "collector": "localhost",
|
431
|
+
"osModel": null, "productionState": "Production", "location": null, "priority":
|
432
|
+
"Normal", "hwModel": null, "tagNumber": "", "osManufacturer": null, "systems":
|
433
|
+
[], "hwManufacturer": null, "ipAddress": null, "events": {"info": 0, "debug":
|
434
|
+
0, "critical": 0, "warning": 0, "error": 0}, "uid": "/zport/dmd/Devices/Server/devices/UnitTestDevice"}]}}'
|
435
|
+
http_version:
|
436
|
+
recorded_at: Fri, 22 May 2015 12:19:38 GMT
|
437
|
+
recorded_with: VCR 2.9.3
|