This is summary of gap analysis done on Marvin tests that touch the virtual router functionality.

Networking in CloudStack is feature rich and flexible. Networks can be composed with flexible set of services. Network can be deployed in many different models. Here is the listing of some of the dimensions in which networks and functionality can be deployed/used.

Network (only VR) supported services

VR service capabilities

Network offering

Networking isolated Type:

Zone type:

Network model

Network life cycle

Router life cycle

Network Garbage collection

Redundant routers

VR split network service other network elements

Upgrade

Component tests

test_acl_isolatednetwork.py: test access control on network

test_acl_isolatednetwork_delete.py: test access control on delete network

test_acl_sharednetwork.py: Test cases for access control for Vm deployment in Shared Network with scope all,account and Domain

test_acl_sharednetwork_deployVM-impersonation.py: Test cases for deploying Virtual Machine using impersonation (passing account and domainId parameters) for shared network

test_add_remove_network.py: tests for Add Remove Network to VM

test_advancedsg_networks.py: tests for networks in advanced zone with security groups

test_egress_fw_rules.py: Egress Firewall component tests

 test_haproxy.py: HAProxy tests

test_ip_reservation.py: test for guest IP reservations

 test_lb_secondary_ip.py:  tests for Load balancing rules for secondary IP

test_multiple_ip_ranges.py: test related to multiple public IP ranges

test_multiple_ips_per_nic.py: Multiple IPs per NIC feature

test_network_offering.py

test_redundent_router (test_redundant_router_cleanups.py, test_redundant_router_services.py, test_redundant_router_upgrades.py)

test_routers.py: test VR general functionality

test_security_groups.py: secuirty group tests

test_shared_networks.py: shared network tests

test_vpc.py: tests for VPC functionality

test_vpc_network.py: tests for VPC network functionality

 test_vpc_network_lbrules.py: tests for VPC network functionality - Load Balancing Rules

test_vpc_network_pfrules.py tests for VPC network functionality - Port Forwarding Rules.

test_vpc_network_staticnatrule.py: tests for VPC network functionality - static nat Rules.

test_vpc_offerings.py: test for VPC offerings

test_vpc_routers.py: tests for VPC - Router Operations

test_vpc_vm_life_cycle.py: test for operation on VM in VPC network

test_vpc_vms_deployment.py: tests VM deployment in VPC network functionality

test_vpn_service.py: tests for VPN service

test_vpn_users.py:tests for VPN users

Smoke Tests

Smoke:test_vpc_vpn.py

Smoke:test_vpc_vpn.py

Smoke:test_vpc_vpn.py

Smoke: test_routers_network_ops.py

Smoke:test_routers_iptables_default_policy

Smoke:test_routers.py

Smoke:test_router_dhcphosts.py

Smoke: test_guest_vlan_range.py

Smoke: test_internal_lb.py

Smoke: test_loadbalance.py

Smoke: test_multipleips_per_nic.py

Smoke: test_network.py

Smoke: test_networkacl.py

Smoke: test_nic.py

Smoke: test_non_contiguous_vlans.py

Smoke: test_password_server.py


Smoke: test_portable_publicip.py

Smoke: test_privategw_acl.py

Smoke: test_public_ip_range.py

High-level Automation Analysis

 

S.no FeaturesAvailability in Regression suite
 ISOLATED VR 
1Egress Firewall RulesSanity cases Automated
2Network Services :  DHCP , DNS , Static Nat , Source Nat , Port ForwardingSanity cases Automated
3Persistent NetworksSanity cases Automated
4Firewall and LoadBalancerSanity cases Automated
5Password Reset ServiceManual Testing Required
6User Data ServicesManual Testing Required
7Reset SSh Key pairManual Testing Required
8Network Update on  RVR - CIDR , Network Offerings changeManual Testing Required
9Network Update on Isolated VR's - CIDR , NW Offerings changeSanity cases Automated
10Redundant Virtual RoutersSanity cases Automated
 VPC / VPN 
11VPCSanity cases Automated
12VPC RVRManual Testing Required
13Inter Vlan RoutingManual Testing Required
14Access ListsSanity cases Automated
15Static routes / Private GatewaySanity cases Automated
16Remote access VPN on VPCManual Testing Required
17Site - Site VPNSanity cases Automated
18Remote Access VPNSanity cases Automated
19VPN UsersManual Testing Required
 Basic / Miscellaneous 
20VR + external devices side by sideSanity cases Automated
21Service Monitoring tool in VRManual Testing Required
22Shared NetworkSanity cases Automated - very basic
23Advance Zone using Pvlan Manual Testing Required
24Manual VR Operations - Stop , start , Destroy ( DomR Testing )Manual Testing Required
25Security Groups in Basic ZoneManual Testing Required
26Virtual Router UpgradesManual Testing Required


General Observations

Gaps



S. NoModuleExisting testsCommentsAdditional Marvin test required
1Egress Firewall Rulestest_egress_fw_rules.pyTests sufficiently covers TCP, ICMP protocols for both deny/allow default network offering behaviors.CLOUDSTACK-9487: Egress rules marvin tests for UDP
2Network services

test_network.py

test_routers.py

test_ha_proxy.py

test_load_balancer.py

test_security_groups.py

test_vpn_service.py

test_egress_fw_rules.py

test_reset_ssh_keypair.py

 

Most of the services has test cases except for DNSCLOUDSTACK-9488: marvin tests for DNS
3Persistent Networkstest_persistent_networks.pySufficiently automated 
4Firewall and LoadBalancer Sufficiently automated 
5Password Reset Servicetest_vm_passwdenabled.pycovers password reset of the VM and VM password functionality 
6Reset SSh Key pairtest_reset_ssh_keypair.pySufficiently automated 
7Network Update on  RVR - CIDR , Network Offerings change   
8    
9Network Update on Isolated VR's - CIDR , NW Offerings change Sufficiently automated 
10Redundant Virtual Routers

test_redundant_router_cleanups.py

test_redundant_router_services.py

test_redundant_router_upgrades.py

smoke: test_vpc_redundent.py

Test sufficiently covers RVR fail over scenarios. 
11 VPC Sanity cases

test_vpc.py
test_vpc_network.py
test_vpc_network_pfrules.py
test_vpc_offerings.py
test_vpc_vm_life_cycle.py
test_vpc_distributed_routing_offering.py
test_vpc_network_lbrules.py
test_vpc_network_staticnatrule.py
test_vpc_routers.py -- tests private gateway
test_vpc_vms_deployment.py

Sufficiently covered buy automation 
12VPC RVRtest_vpc_redundant.py

Create a redundant VPC with two networks with two VMs in each network

Create a redundant VPC with 1 Tier, 1 VM, 1 ACL, 1 PF and test Network GC Nics

 

 
13 Inter Vlan Routing  Not sufficiently covered
14 Access Lists test_network.py   
15 Static routes / Private Gateway test_escalations_networks.py  listing pw gateways,  -- No check for traffic flow 
16 Remote access VPN on VPC  
17 Site - Site VPN   
18 Remote Access VPN

 test_escalations_vpncustomergateways.py 

test_vpn_service.py 

 # api test, pagination

# Validate if IPSEC is running on the public, IP by using ike-scan

 
19 VPN Users test_vpn_users.py  VPN remote access user limit tests 

20

 VR + external devices side by side

 test_asa1000v_fw.py

test_bigswitch_bcf.py

  
21Service Monitoring tool in VRNA Not covered

22Shared Network
test_shared_networks.py

Tests:
test_acquire_ip
test_createSharedNetwork_accountSpecific
test_createSharedNetwork_All
test_createSharedNetwork_domainSpecific
test_createSharedNetwork_projectSpecific
test_createSharedNetwork_usedVlan
test_createSharedNetwork_usedVlan2
test_deployVM_isolatedAndShared
test_deployVM_multipleSharedNetwork
test_escalation_ES1621
test_guest_traffic_port_groups_shared_network
test_networkWithsubdomainaccessFalse
test_networkWithsubdomainaccessTrue
test_reboot_router
test_restart_network
test_sharedNetworkOffering_01
test_sharedNetworkOffering_02
test_sharedNetworkOffering_03
test_stop_start_router 

Sufficiently covered buy automation

 
23Advance Zone using Pvlan NA Not covered
24Manual VR Operations - Stop , start , Destroy ( DomR Testing )
test_routers.py in components 
test_routers.py in smoke
Sufficiently covered buy automation 
25Security Groups in Basic Zone
test_security_groups.py

test_01_authorizeIngressRule
test_01_revokeIngressRule
test_ingress_rules_specific_IP_set_non_def_sec_group
test_ingress_rules_specific_IP_set
test_03_stopStartVM_verifyIngressAccess
test_02_revokeIngressRule_AfterDeployVM
test_01_authorizeIngressRule_AfterDeployVM
test_01_dhcpOnlyRouter
test_01_deployVMWithUserData
test_02_delete_security_grp_withoout_running_vm
test_01_delete_security_grp_running_vm
test_03_accessInDefaultSecurityGroup
test_02_listSecurityGroups
test_01_deployVM_InDefaultSecurityGroup

Sufficiently covered buy automation 
26Virtual Router Upgrades  Not covered
27