mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# Licensed to the Apache Software Foundation (ASF) under one
 | 
						|
# or more contributor license agreements.  See the NOTICE file
 | 
						|
# distributed with this work for additional information
 | 
						|
# regarding copyright ownership.  The ASF licenses this file
 | 
						|
# to you 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.
 | 
						|
""" test for private vlan isolation
 | 
						|
"""
 | 
						|
#Import Local Modules
 | 
						|
import marvin
 | 
						|
from marvin.cloudstackTestCase import *
 | 
						|
from marvin.cloudstackAPI import *
 | 
						|
from marvin.sshClient import SshClient
 | 
						|
from marvin.lib.utils import *
 | 
						|
from marvin.lib.base import *
 | 
						|
from marvin.lib.common import *
 | 
						|
from nose.plugins.attrib import attr
 | 
						|
import telnetlib
 | 
						|
 | 
						|
#Import System modules
 | 
						|
import time
 | 
						|
_multiprocess_shared_ = True
 | 
						|
 | 
						|
class TestPVLAN(cloudstackTestCase):
 | 
						|
 | 
						|
    zoneId = 1
 | 
						|
    networkOfferingId = 7
 | 
						|
    vlan = 1234
 | 
						|
    isolatedpvlan = 567
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
        self.apiClient = self.testClient.getApiClient()
 | 
						|
 | 
						|
    @attr(tags = ["advanced"], required_hardware="false")
 | 
						|
    def test_create_pvlan_network(self):
 | 
						|
        self.debug("Test create pvlan network")
 | 
						|
        createNetworkCmd = createNetwork.createNetworkCmd()
 | 
						|
        createNetworkCmd.name = "pvlan network"
 | 
						|
        createNetworkCmd.displaytext = "pvlan network"
 | 
						|
        createNetworkCmd.netmask = "255.255.255.0"
 | 
						|
        createNetworkCmd.gateway = "10.10.10.1"
 | 
						|
        createNetworkCmd.startip = "10.10.10.10"
 | 
						|
        createNetworkCmd.gateway = "10.10.10.20"
 | 
						|
        createNetworkCmd.vlan = "1234"
 | 
						|
        createNetworkCmd.isolatedpvlan = "567"
 | 
						|
        createNetworkCmd.zoneid = self.zoneId
 | 
						|
        createNetworkCmd.networkofferingid = self.networkOfferingId
 | 
						|
        createNetworkResponse = self.apiClient.createNetwork(createNetworkCmd)
 | 
						|
        self.networkId = createNetworkResponse.id
 | 
						|
        self.broadcasttype = createNetworkResponse.broadcastdomaintype
 | 
						|
        self.broadcasturi = createNetworkResponse.broadcasturi
 | 
						|
 | 
						|
        self.assertIsNotNone(createNetworkResponse.id, "Network failed to create")
 | 
						|
        self.assertTrue(createNetworkResponse.broadcastdomaintype, "Pvlan")
 | 
						|
        self.assertTrue(createNetworkResponse.broadcasturi, "pvlan://1234-i567")
 | 
						|
 | 
						|
        self.debug("Clean up test pvlan network")
 | 
						|
        deleteNetworkCmd = deleteNetwork.deleteNetworkCmd()
 | 
						|
        deleteNetworkCmd.id = self.networkId;
 | 
						|
        self.apiClient.deleteNetwork(deleteNetworkCmd)
 | 
						|
 | 
						|
        #Test invalid parameter
 | 
						|
 | 
						|
        # CLOUDSTACK-2392: Should not allow create pvlan with ipv6
 | 
						|
        createNetworkCmd.ip6gateway="fc00:1234::1"
 | 
						|
        createNetworkCmd.ip6cidr="fc00:1234::/64"
 | 
						|
        createNetworkCmd.startipv6="fc00:1234::10"
 | 
						|
        createNetworkCmd.endipv6="fc00:1234::20"
 | 
						|
        err = 0
 | 
						|
        with self.assertRaises(Exception):
 | 
						|
            self.apiClient.createNetwork(createNetworkCmd)
 |