blob: f8dd0e690ec24eb4fa887e66f6b82034946eb035 [file] [log] [blame]
mccd7e9502019-12-16 22:04:13 +00001// Copyright 2018 Open Networking Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15
16'dm' is a command line wrapper of the test application 'demotest' serving the purpose of device-management API functional testing.
17
18It runs on top of the device-management container and 'demotest' requiring the accessibility of at least 2 separate devices running RedFish servers and can be utilized in either automated or manual testing. Either way, the device-mangement container needs to have been deployed (Please refer to Device Management Deployment Guide).
19
201. Test Automation
21 Test cases utilizing 'dm' are provided in the tests/ sub-directory. They can be executed through either the Makefile or the Robot Framework test suite that are provided.
22
23 a) Makefile
24 At command line, type
25 make test IP1=<ip of 1st device> PORT1=<RF port # of 1st device> IP2=<ip of 2nd device> PORT2=<RF port # of 2nd device>
26
27 b) Robot Framework
28 i) Make and launch 'demotest', which ls located one level up, first.
29 ii) Modify the test suite with the appropriate ip's and port #'s of the RF servers
30 iii) At command line, type
31 robot importer.robot
32
332. Manual testing at command line
34 To build 'dm', at command line, type
35 make
36 To run 'dm', please make and launch 'demotest' first then follow the syntax and examples below.
37
38-------------------------------------------------------------------------------
39register one device
40Example: Set IP 192.168.4.27 port 8888 freq 180
41./dm attach 192.168.4.27:8888:180
42
43-------------------------------------------------------------------------------
44register multiple devices
45Example: Set "IP 192.168.4.27 port 8888 freq 180" and "IP 192.168.4.26 port 8888 freq 120"
46./dm attach 192.168.4.27:8888:180 192.168.4.26:8888:120
47
48-------------------------------------------------------------------------------
49delete devices
50Example: Delete "IP 192.168.4.27" and "IP 192.168.3.34"
51./dm delete 192.168.4.27:8888 192.168.4.26:8888
52
53-------------------------------------------------------------------------------
54Get Current List of Devices monitored
55./dm showdevices
56Sample output: 192.168.4.26:8888 192.168.4.27:8888
57
58-------------------------------------------------------------------------------
59UnSubscribe all events(ResourceAdded/ResourceRemoved/Alert)
60./dm cleardeviceeventlist 192.168.4.27:8888
61
62-------------------------------------------------------------------------------
63Subscribe all events(ResourceAdded/ResourceRemoved/Alert)
64./dm sub 192.168.4.27:8888:add:rm:alert
65
66-------------------------------------------------------------------------------
67Subscribe and unsubscribe an event
68Example:
69Subscribe ResourceAdded event
70./dm sub 192.168.4.27:8888:add
71Subscribe ResourceRemoved event
72./dm sub 192.168.4.27:8888:rm
73Subscribe Alert event
74./dm sub 192.168.4.27:8888:alert
75Unsubscribe ResourceAdded event
76./dm unsub 192.168.4.27:8888:add
77Unsubscribe ResourceRemoved event
78./dm unsub 192.168.4.27:8888:rm
79Unsubscribe Alert event
80./dm unsub 192.168.4.27:8888:alert
81
82-------------------------------------------------------------------------------
83Subscribe an unsupported event
84./dm sub 192.168.4.27:8888:update
85
86-------------------------------------------------------------------------------
87Subscribe to an already subscribed event
88Example:
89./dm sub 192.168.4.27:8888:add
90./dm sub 192.168.4.27:8888:add
91
92-------------------------------------------------------------------------------
93Unsubscribe an unsupported event
94./dm unsub 192.168.4.27:8888:update
95
96-------------------------------------------------------------------------------
97Unsubscribe a supported but not-subscribed event
98Example:
99./dm unsub 192.168.4.27:8888:add:rm:alert
100./dm unsub 192.168.4.27:8888:add
101./dm unsub 192.168.4.27:8888:rm
102./dm unsub 192.168.4.27:8888:alert
103
104-------------------------------------------------------------------------------
105Change polling interval
106Example:
107Set frequecny to 30 seconds
108./dm period 192.168.4.27:8888:30
109
110-------------------------------------------------------------------------------
111Show list of supported event
112./dm showeventlist 192.168.4.27:8888
113
114-------------------------------------------------------------------------------
115Show current events subscribed by device
116showdeviceeventlist 192.168.4.27:8888
117
118-------------------------------------------------------------------------------
119Note: following command can be used to verify the list of events subscribed
120wget --no-check-certificate -qO- https://192.168.4.27:8888/redfish/v1/EventService/Subscriptions | python -m json.tool