| """ |
| Copyright 2016 Open Networking Foundation ( ONF ) |
| |
| Please refer questions to either the onos test mailing list at <onos-test@onosproject.org>, |
| the System Testing Plans and Results wiki page at <https://wiki.onosproject.org/x/voMg>, |
| or the System Testing Guide page at <https://wiki.onosproject.org/x/WYQg> |
| |
| TestON is free software: you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation, either version 2 of the License, or |
| ( at your option ) any later version. |
| |
| TestON is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with TestON. If not, see <http://www.gnu.org/licenses/>. |
| """ |
| def addBucket( main, egressPort="" ): |
| """ |
| Description: |
| Create a single bucket which can be added to a Group. |
| Optional: |
| * egressPort: port of egress device |
| Returns: |
| * Returns a Bucket |
| * Returns None in case of error |
| Note: |
| The ip and port option are for the requests input's ip and port |
| of the ONOS node. |
| """ |
| try: |
| |
| bucket = { |
| "treatment": { "instructions": [] } |
| } |
| if egressPort: |
| bucket[ 'treatment' ][ 'instructions' ].append( { |
| "type": "OUTPUT", |
| "port": egressPort } ) |
| return bucket |
| |
| except ( AttributeError, TypeError ): |
| main.log.exception( self.name + ": Object not as expected" ) |
| return None |
| except Exception: |
| main.log.exception( self.name + ": Uncaught exception!" ) |
| main.cleanAndExit() |