F5Networks / f5-openstack-agent

The F5 Agent for OpenStack Neutron allows you to deploy BIG-IP services in an OpenStack environment.
http://clouddocs.f5.com/products/openstack/agent/latest
Apache License 2.0
14 stars 38 forks source link

Neutronless test_esd_pools failed #881

Closed ssorenso closed 6 years ago

ssorenso commented 7 years ago
Suggested Label:

Bug

As this is a change in expected functionality for the ESD feature.

Traceback:
bigip = <neutronless.testlib.bigip_client.BigIpClient object at 0x7f05d0eb5890>
services = [{'healthmonitors': [], 'l7policies': [], 'l7policy_rules': [], 'listeners': [], ...}, {'healthmonitors': [], 'l7polic...n_state_up': True, 'connection_limit': -1, 'default_pool_id': None, 'default_tls_container_id': None, ...}], ...}, ...]
icd_config = {'AGENT': '<oslo_config.cfg.GroupAttr object at 0x3b137d0>', 'OVS': '<oslo_config.cfg.GroupAttr object at 0x3ae9410>', 'advertise_mtu': False, 'advertised_tunnel_types': ['vxlan'], ...}
icontrol_driver = <f5_openstack_agent.lbaasv2.drivers.bigip.icontrol_driver.iControlDriver object at 0x7f05d0df3c50>
esd = {'esd_demo_1': {'lbaas_cssl_profile': 'clientssl', 'lbaas_ctcp': 'tcp-mobile-optimized', 'lbaas_fallback_persist': 'so...ys_APM_ExchangeSupport_helper']}, 'esd_demo_3': {'lbaas_ctcp': 'tcp-wan-optimized', 'lbaas_stcp': 'tcp-lan-optimized'}}

    def test_esd_pools(bigip, services, icd_config, icontrol_driver, esd):
        env_prefix = icd_config['environment_prefix']
        service_iter = iter(services)
        validator = ResourceValidator(bigip, env_prefix)

        # create loadbalancer
        # lbaas-loadbalancer-create --name lb1 mgmt_v4_subnet
        service = service_iter.next()
        lb_reader = LoadbalancerReader(service)
        folder = '{0}_{1}'.format(env_prefix, lb_reader.tenant_id())
        icontrol_driver._common_service_handler(service)
        assert bigip.folder_exists(folder)

        # create listener
        # lbaas-listener-create --name l1 --loadbalancer lb1 --protocol HTTP
        # --protocol-port 80
        service = service_iter.next()
        listener = service['listeners'][0]
        icontrol_driver._common_service_handler(service)
        validator.assert_virtual_valid(listener, folder)

        # create pool with session persistence
        # lbaas-pool-create --name p1 --listener l1 --protocol HTTP
        # --lb-algorithm ROUND_ROBIN --session-persistence type=SOURCE_IP
        service = service_iter.next()
        pool = service['pools'][0]
        icontrol_driver._common_service_handler(service)
        validator.assert_pool_valid(pool, folder)

        # apply ESD
        # lbaas-l7policy-create --name esd_demo_1 --listener l1 --action REJECT
        # --description "Override pool session persistence"
        service = service_iter.next()
        icontrol_driver._common_service_handler(service)
>       validator.assert_esd_applied(esd['esd_demo_1'], listener, folder)

../neutronless/esd/test_esd_pools.py:139:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <neutronless.testlib.resource_validator.ResourceValidator object at 0x7f05d0eb51d0>
esd = {'lbaas_cssl_profile': 'clientssl', 'lbaas_ctcp': 'tcp-mobile-optimized', 'lbaas_fallback_persist': 'source_addr', 'lbaas_irule': ['_sys_https_redirect'], ...}
listener = {'admin_state_up': True, 'connection_limit': -1, 'default_pool_id': None, 'default_tls_container_id': None, ...}
folder = 'TEST_041f8b2e7cf04496bf31775419d77394'

    def assert_esd_applied(self, esd, listener, folder):
        # check that vs exists
        listener_name = '{0}_{1}'.format(self.prefix, listener['id'])
        assert self.bigip.resource_exists(
            ResourceType.virtual, listener_name, partition=folder)
        vs = self.bigip.get_resource(
            ResourceType.virtual, listener_name, partition=folder)

        profiles = vs.profiles_s.get_collection()
        policies = vs.policies_s.get_collection()

        if 'lbaas_ctcp' in esd:
>           assert self.is_in_collection(profiles, esd['lbaas_ctcp'])
E           AssertionError

../neutronless/testlib/resource_validator.py:135: AssertionError
Tests:

OpenStack Release

mitaka

Agent Version

mitaka - b096048814d641ff27ddc0be0babf70a6a6d230d

Operating System

Nightly

OpenStack Release

mitaka

Deployment

neutronless (BIG-IP && Agent only)

ssorenso commented 7 years ago

This may be related to #880

ssorenso commented 6 years ago

Updated Sum:

richbrowne commented 6 years ago

Fixed 6c1ced0eee04b8270bb29a03fff64e3fab18ac3f