mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
100 lines
4.3 KiB
Python
100 lines
4.3 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.
|
|
|
|
""" Tests for basic VPC Network functionality with Nuage VSP SDN plugin
|
|
"""
|
|
# Import Local Modules
|
|
from nuageTestCase import nuageTestCase
|
|
from marvin.lib.base import Account
|
|
# Import System Modules
|
|
from nose.plugins.attrib import attr
|
|
|
|
|
|
class TestVpcNetworkNuage(nuageTestCase):
|
|
""" Test basic VPC Network functionality with Nuage VSP SDN plugin
|
|
"""
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super(TestVpcNetworkNuage, cls).setUpClass()
|
|
return
|
|
|
|
def setUp(self):
|
|
# Create an account
|
|
self.account = Account.create(self.api_client,
|
|
self.test_data["account"],
|
|
admin=True,
|
|
domainid=self.domain.id
|
|
)
|
|
self.cleanup = [self.account]
|
|
return
|
|
|
|
@attr(tags=["advanced", "nuagevsp"], required_hardware="false")
|
|
def test_nuage_vpc_network(self):
|
|
""" Test Basic VPC Network Functionality with Nuage VSP SDN plugin
|
|
"""
|
|
|
|
# 1. Create Nuage VSP VPC offering, check if it is successfully created and enabled.
|
|
# 2. Create a VPC with Nuage VSP VPC offering, check if it is successfully created and enabled.
|
|
# 3. Create Nuage VSP VPC Network offering, check if it is successfully created and enabled.
|
|
# 4. Create an ACL list in the created VPC, and add an ACL item to it.
|
|
# 5. Create a VPC Network with Nuage VSP VPC Network offering and the created ACL list, check if it is
|
|
# successfully created, is in the "Implemented" state, and is added to the VPC VR.
|
|
# 6. Deploy a VM in the created VPC network, check if the VM is successfully deployed and is in the "Running"
|
|
# state.
|
|
# 7. Verify that the created ACL item is successfully implemented in Nuage VSP.
|
|
|
|
# Creating a VPC offering
|
|
self.debug("Creating Nuage VSP VPC offering...")
|
|
vpc_offering = self.create_VpcOffering(self.test_data["nuagevsp"]["vpc_offering"])
|
|
self.validate_VpcOffering(vpc_offering, state="Enabled")
|
|
|
|
# Creating a VPC
|
|
self.debug("Creating a VPC with Nuage VSP VPC offering...")
|
|
vpc = self.create_Vpc(vpc_offering, cidr='10.1.0.0/16')
|
|
self.validate_Vpc(vpc, state="Enabled")
|
|
|
|
# Creating a network offering
|
|
self.debug("Creating Nuage VSP VPC Network offering...")
|
|
network_offering = self.create_NetworkOffering(self.test_data["nuagevsp"]["vpc_network_offering"])
|
|
self.validate_NetworkOffering(network_offering, state="Enabled")
|
|
|
|
# Creating an ACL list
|
|
acl_list = self.create_NetworkAclList(name="acl", description="acl", vpc=vpc)
|
|
|
|
# Creating an ACL item
|
|
acl_item = self.create_NetworkAclRule(self.test_data["ingress_rule"], acl_list=acl_list)
|
|
|
|
# Creating a VPC network in the VPC
|
|
self.debug("Creating a VPC network with Nuage VSP VPC Network offering...")
|
|
vpc_network = self.create_Network(network_offering, vpc=vpc, acl_list=acl_list)
|
|
self.validate_Network(vpc_network, state="Implemented")
|
|
vr = self.get_Router(vpc_network)
|
|
self.check_Router_state(vr, state="Running")
|
|
|
|
# Deploying a VM in the VPC network
|
|
vm = self.create_VM(vpc_network)
|
|
self.check_VM_state(vm, state="Running")
|
|
|
|
# VSD verification
|
|
self.verify_vsp_network(self.domain.id, vpc_network, vpc)
|
|
self.verify_vsp_router(vr)
|
|
self.verify_vsp_vm(vm)
|
|
|
|
# VSD verification for ACL item
|
|
self.verify_vsp_firewall_rule(acl_item)
|