mc | cd7e950 | 2019-12-16 22:04:13 +0000 | [diff] [blame] | 1 | // 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 | |
| 18 | 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). |
| 19 | |
| 20 | 1. 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 | |
| 33 | 2. 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 | ------------------------------------------------------------------------------- |
| 39 | register one device |
| 40 | Example: Set IP 192.168.4.27 port 8888 freq 180 |
| 41 | ./dm attach 192.168.4.27:8888:180 |
| 42 | |
| 43 | ------------------------------------------------------------------------------- |
| 44 | register multiple devices |
| 45 | Example: 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 | ------------------------------------------------------------------------------- |
| 49 | delete devices |
| 50 | Example: 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 | ------------------------------------------------------------------------------- |
| 54 | Get Current List of Devices monitored |
| 55 | ./dm showdevices |
| 56 | Sample output: 192.168.4.26:8888 192.168.4.27:8888 |
| 57 | |
| 58 | ------------------------------------------------------------------------------- |
| 59 | UnSubscribe all events(ResourceAdded/ResourceRemoved/Alert) |
| 60 | ./dm cleardeviceeventlist 192.168.4.27:8888 |
| 61 | |
| 62 | ------------------------------------------------------------------------------- |
| 63 | Subscribe all events(ResourceAdded/ResourceRemoved/Alert) |
| 64 | ./dm sub 192.168.4.27:8888:add:rm:alert |
| 65 | |
| 66 | ------------------------------------------------------------------------------- |
| 67 | Subscribe and unsubscribe an event |
| 68 | Example: |
| 69 | Subscribe ResourceAdded event |
| 70 | ./dm sub 192.168.4.27:8888:add |
| 71 | Subscribe ResourceRemoved event |
| 72 | ./dm sub 192.168.4.27:8888:rm |
| 73 | Subscribe Alert event |
| 74 | ./dm sub 192.168.4.27:8888:alert |
| 75 | Unsubscribe ResourceAdded event |
| 76 | ./dm unsub 192.168.4.27:8888:add |
| 77 | Unsubscribe ResourceRemoved event |
| 78 | ./dm unsub 192.168.4.27:8888:rm |
| 79 | Unsubscribe Alert event |
| 80 | ./dm unsub 192.168.4.27:8888:alert |
| 81 | |
| 82 | ------------------------------------------------------------------------------- |
| 83 | Subscribe an unsupported event |
| 84 | ./dm sub 192.168.4.27:8888:update |
| 85 | |
| 86 | ------------------------------------------------------------------------------- |
| 87 | Subscribe to an already subscribed event |
| 88 | Example: |
| 89 | ./dm sub 192.168.4.27:8888:add |
| 90 | ./dm sub 192.168.4.27:8888:add |
| 91 | |
| 92 | ------------------------------------------------------------------------------- |
| 93 | Unsubscribe an unsupported event |
| 94 | ./dm unsub 192.168.4.27:8888:update |
| 95 | |
| 96 | ------------------------------------------------------------------------------- |
| 97 | Unsubscribe a supported but not-subscribed event |
| 98 | Example: |
| 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 | ------------------------------------------------------------------------------- |
| 105 | Change polling interval |
| 106 | Example: |
| 107 | Set frequecny to 30 seconds |
| 108 | ./dm period 192.168.4.27:8888:30 |
| 109 | |
| 110 | ------------------------------------------------------------------------------- |
| 111 | Show list of supported event |
| 112 | ./dm showeventlist 192.168.4.27:8888 |
| 113 | |
| 114 | ------------------------------------------------------------------------------- |
| 115 | Show current events subscribed by device |
| 116 | showdeviceeventlist 192.168.4.27:8888 |
| 117 | |
| 118 | ------------------------------------------------------------------------------- |
| 119 | Note: following command can be used to verify the list of events subscribed |
| 120 | wget --no-check-certificate -qO- https://192.168.4.27:8888/redfish/v1/EventService/Subscriptions | python -m json.tool |