blob: 9b4169d4d7fabc967424d8dece2a73e01f2fb4cc [file] [log] [blame]
// Copyright 2018-present Open Networking Foundation
// Copyright 2018-present Edgecore Networks Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
'dm' is a command line wrapper of the test application 'demotest' serving the purpose of device-management API functional testing.
It 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).
1. Test Automation
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.
a) Makefile
At command line, type
make test IP1=<ip of 1st device> PORT1=<RF port # of 1st device> IP2=<ip of 2nd device> PORT2=<RF port # of 2nd device>
b) Robot Framework
i) Make and launch 'demotest', which ls located one level up, first.
ii) Modify the test suite with the appropriate ip's and port #'s of the RF servers
iii) At command line, type
robot importer.robot
Note: If ../../voltha-system-tests does not exist, and the tests are run without
the use_mock_redfish variable set, then two harmless warnings will be emitted
due to the missing robot voltha imports. These imports are only required
when use_mock_redfish==True.
2. Manual testing at command line
To build 'dm', at command line, type
make
To run 'dm', please make and launch 'demotest' first then follow the syntax and examples below.
-------------------------------------------------------------------------------
register one device
Example: Set IP 192.168.4.27 port 8888 freq 180
./dm attach 192.168.4.27:8888:180
-------------------------------------------------------------------------------
register multiple devices
Example: Set "IP 192.168.4.27 port 8888 freq 180" and "IP 192.168.4.26 port 8888 freq 120"
./dm attach 192.168.4.27:8888:180 192.168.4.26:8888:120
-------------------------------------------------------------------------------
delete devices
Example: Delete "IP 192.168.4.27" and "IP 192.168.3.34"
./dm delete 192.168.4.27:8888 192.168.4.26:8888
-------------------------------------------------------------------------------
Get Current List of Devices monitored
./dm showdevices
Sample output: 192.168.4.26:8888 192.168.4.27:8888
-------------------------------------------------------------------------------
UnSubscribe all events(ResourceAdded/ResourceRemoved/Alert)
./dm cleardeviceeventlist 192.168.4.27:8888
-------------------------------------------------------------------------------
Subscribe all events(ResourceAdded/ResourceRemoved/Alert)
./dm sub 192.168.4.27:8888:add:rm:alert
-------------------------------------------------------------------------------
Subscribe and unsubscribe an event
Example:
Subscribe ResourceAdded event
./dm sub 192.168.4.27:8888:add
Subscribe ResourceRemoved event
./dm sub 192.168.4.27:8888:rm
Subscribe Alert event
./dm sub 192.168.4.27:8888:alert
Unsubscribe ResourceAdded event
./dm unsub 192.168.4.27:8888:add
Unsubscribe ResourceRemoved event
./dm unsub 192.168.4.27:8888:rm
Unsubscribe Alert event
./dm unsub 192.168.4.27:8888:alert
-------------------------------------------------------------------------------
Subscribe an unsupported event
./dm sub 192.168.4.27:8888:update
-------------------------------------------------------------------------------
Subscribe to an already subscribed event
Example:
./dm sub 192.168.4.27:8888:add
./dm sub 192.168.4.27:8888:add
-------------------------------------------------------------------------------
Unsubscribe an unsupported event
./dm unsub 192.168.4.27:8888:update
-------------------------------------------------------------------------------
Unsubscribe a supported but not-subscribed event
Example:
./dm unsub 192.168.4.27:8888:add:rm:alert
./dm unsub 192.168.4.27:8888:add
./dm unsub 192.168.4.27:8888:rm
./dm unsub 192.168.4.27:8888:alert
-------------------------------------------------------------------------------
Change polling interval
Example:
Set frequecny to 30 seconds
./dm period 192.168.4.27:8888:30
-------------------------------------------------------------------------------
Show list of supported event
./dm showeventlist 192.168.4.27:8888
-------------------------------------------------------------------------------
Show current events subscribed by device
showdeviceeventlist 192.168.4.27:8888
-------------------------------------------------------------------------------
Note: following command can be used to verify the list of events subscribed
wget --no-check-certificate -qO- https://192.168.4.27:8888/redfish/v1/EventService/Subscriptions | python -m json.tool