zenoss_client 0.5.4 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|