| """ |
| Copyright 2015 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/xoMg>, |
| 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/>. |
| """ |
| """ |
| This file provide the data |
| lanqinglong@huawei.com |
| """ |
| import json |
| |
| |
| class NetworkData: |
| |
| def __init__( self ): |
| self.id = '' |
| self.state = 'ACTIVE' |
| self.name = 'onosfw-1' |
| self.physicalNetwork = 'none' |
| self.admin_state_up = True |
| self.tenant_id = '' |
| self.routerExternal = False |
| self.type = 'LOCAL' |
| self.segmentationID = '6' |
| self.shared = False |
| |
| def DictoJson( self ): |
| |
| if self.id == '' or self.tenant_id == '': |
| print 'Id and tenant id is necessary!' |
| |
| Dicdata = {} |
| if self.id != '': |
| Dicdata[ 'id' ] = self.id |
| if self.state != '': |
| Dicdata[ 'status' ] = self.state |
| if self.name != '': |
| Dicdata[ 'name' ] = self.name |
| if self.physicalNetwork != '': |
| Dicdata[ 'provider:physical_network' ] = self.physicalNetwork |
| if self.admin_state_up != '': |
| Dicdata[ 'admin_state_up' ] = self.admin_state_up |
| if self.tenant_id != '': |
| Dicdata[ 'tenant_id' ] = self.tenant_id |
| if self.routerExternal != '': |
| Dicdata[ 'router:external' ] = self.routerExternal |
| if self.type != '': |
| Dicdata[ 'provider:network_type' ] = self.type |
| if self.segmentationID != '': |
| Dicdata[ 'provider:segmentation_id' ] = self.segmentationID |
| if self.shared != '': |
| Dicdata[ 'shared' ] = self.shared |
| |
| Dicdata = { 'network': Dicdata } |
| |
| return json.dumps( Dicdata, indent=4 ) |
| |
| def Ordered( self, obj ): |
| |
| if isinstance( obj, dict ): |
| return sorted( ( k, self.Ordered( v ) ) for k, v in obj.items() ) |
| if isinstance( obj, list ): |
| return sorted( self.Ordered( x ) for x in obj ) |
| else: |
| return obj |
| |
| def JsonCompare( self, SourceData, DestiData, FirstPara, SecondPara ): |
| |
| try: |
| SourceCompareDataDic = json.loads( SourceData ) |
| DestiCompareDataDic = json.loads( DestiData ) |
| except ValueError: |
| print "SourceData or DestData is not JSON Type!" |
| return False |
| |
| try: |
| Socom = SourceCompareDataDic[ FirstPara ][ SecondPara ] |
| Decom = DestiCompareDataDic[ FirstPara ][ SecondPara ] |
| except KeyError as error: |
| print "Key error ,This key is not found:%s" % error |
| return False |
| |
| if str( Socom ).lower() == str( Decom ).lower(): |
| return True |
| else: |
| print "Source Compare data:" + FirstPara + "." + SecondPara + "=" + str( Socom ) |
| print "Dest Compare data: " + FirstPara + "." + SecondPara + "=" + str( Decom ) |
| return False |
| |
| |
| class SubnetData( NetworkData ): |
| |
| def __init__( self ): |
| self.id = '' |
| self.tenant_id = '' |
| self.network_id = '' |
| self.nexthop = '192.168.1.1' |
| self.destination = '192.168.1.1/24' |
| self.start = '192.168.2.2' |
| self.end = '192.168.2.254' |
| self.ipv6_address_mode = 'DHCPV6_STATELESS' |
| self.ipv6_ra_mode = 'DHCPV6_STATELESS' |
| self.cidr = '192.168.1.1/24' |
| self.enable_dhcp = True |
| self.dns_nameservers = 'aaa' |
| self.gateway_ip = '192.168.2.1' |
| self.ip_version = '4' |
| self.shared = False |
| self.name = 'demo-subnet' |
| |
| def DictoJson( self ): |
| if self.id == '' or self.tenant_id == '': |
| print 'Id and tenant id is necessary!' |
| |
| Dicdata = {} |
| host_routesdata = [] |
| host_routesdata.append( { 'nexthop': self.nexthop, 'destination': self.destination } ) |
| allocation_pools = [] |
| allocation_pools.append( { 'start': self.start, 'end': self.end } ) |
| |
| if self.id != '': |
| Dicdata[ 'id' ] = self.id |
| if self.network_id != '': |
| Dicdata[ 'network_id' ] = self.network_id |
| if self.name != '': |
| Dicdata[ 'name' ] = self.name |
| if self.nexthop != '': |
| Dicdata[ 'host_routes' ] = host_routesdata |
| if self.tenant_id != '': |
| Dicdata[ 'tenant_id' ] = self.tenant_id |
| if self.start != '': |
| Dicdata[ 'allocation_pools' ] = allocation_pools |
| if self.shared != '': |
| Dicdata[ 'shared' ] = self.shared |
| if self.ipv6_address_mode != '': |
| Dicdata[ 'ipv6_address_mode' ] = self.ipv6_address_mode |
| if self.ipv6_ra_mode != '': |
| Dicdata[ 'ipv6_ra_mode' ] = self.ipv6_ra_mode |
| if self.cidr != '': |
| Dicdata[ 'cidr' ] = self.cidr |
| if self.enable_dhcp != '': |
| Dicdata[ 'enable_dhcp' ] = self.enable_dhcp |
| if self.dns_nameservers != '': |
| Dicdata[ 'dns_nameservers' ] = self.dns_nameservers |
| if self.gateway_ip != '': |
| Dicdata[ 'gateway_ip' ] = self.gateway_ip |
| if self.ip_version != '': |
| Dicdata[ 'ip_version' ] = self.ip_version |
| |
| Dicdata = { 'subnet': Dicdata } |
| |
| return json.dumps( Dicdata, indent=4 ) |
| |
| |
| class VirtualPortData( NetworkData ): |
| |
| def __init__( self ): |
| self.id = '' |
| self.state = 'ACTIVE' |
| self.bindingHostId = 'fa:16:3e:76:8e:88' |
| self.allowedAddressPairs = [ { 'mac_address': 'fa:16:3e:76:8e:88', 'ip_address': '192.168.1.1' } ] |
| self.deviceOwner = 'none' |
| self.fixedIp = [] |
| self.securityGroups = [ { 'securityGroup': 'asd' } ] |
| self.adminStateUp = True |
| self.network_id = '' |
| self.tenant_id = '' |
| self.subnet_id = '' |
| self.bindingvifDetails = 'port_filter' |
| self.bindingvnicType = 'normal' |
| self.bindingvifType = 'ovs' |
| self.macAddress = 'fa:16:3e:76:8e:88' |
| self.deviceId = 'a08aa' |
| self.name = 'u' |
| |
| def DictoJson( self ): |
| if self.id == '' or self.tenant_id == ' ' or \ |
| self.network_id == '' or self.subnet_id == '': |
| print 'Id/tenant id/networkid/subnetId is necessary!' |
| |
| Dicdata = {} |
| fixedIp = [] |
| fixedIp.append( { 'subnet_id': self.subnet_id, 'ip_address': '192.168.1.4' } ) |
| allocation_pools = [] |
| |
| if self.id != '': |
| Dicdata[ 'id' ] = self.id |
| if self.state != '': |
| Dicdata[ 'status' ] = self.state |
| if self.bindingHostId != '': |
| Dicdata[ 'binding:host_id' ] = self.bindingHostId |
| if self.allowedAddressPairs != '': |
| Dicdata[ 'allowed_address_pairs' ] = self.allowedAddressPairs |
| if self.deviceOwner != '': |
| Dicdata[ 'device_owner' ] = self.deviceOwner |
| if self.securityGroups != '': |
| Dicdata[ 'security_groups' ] = self.securityGroups |
| if self.adminStateUp != '': |
| Dicdata[ 'admin_state_up' ] = self.adminStateUp |
| if self.network_id != '': |
| Dicdata[ 'network_id' ] = self.network_id |
| if self.tenant_id != '': |
| Dicdata[ 'tenant_id' ] = self.tenant_id |
| if self.bindingvifDetails != '': |
| Dicdata[ 'binding:vif_details' ] = self.bindingvifDetails |
| if self.bindingvnicType != '': |
| Dicdata[ 'binding:vnic_type' ] = self.bindingvnicType |
| if self.bindingvifType != '': |
| Dicdata[ 'binding:vif_type' ] = self.bindingvifType |
| if self.macAddress != '': |
| Dicdata[ 'mac_address' ] = self.macAddress |
| if self.deviceId != '': |
| Dicdata[ 'device_id' ] = self.deviceId |
| if self.name != '': |
| Dicdata[ 'name' ] = self.name |
| |
| Dicdata[ 'fixed_ips' ] = fixedIp |
| Dicdata = { 'port': Dicdata } |
| |
| return json.dumps( Dicdata, indent=4 ) |