Adds L7 policy and rule support
Adds L7 policy and L7 rule managers to F5 shim driver. Adds additional L7 tests to shim driver test. Change-Id: I638706b46a13639e2482a992124fa39112a55983 Closes-Bug: #1704211
This commit is contained in:
parent
f32a0ec5bd
commit
4e2f6a81d8
@ -1,4 +1,4 @@
|
|||||||
# Copyright 2016 F5 Networks Inc.
|
# Copyright 2016-2017 F5 Networks Inc.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@ -14,11 +14,13 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
import f5lbaasdriver
|
import f5lbaasdriver
|
||||||
|
from f5lbaasdriver.v2.bigip.driver_v2 import F5DriverV2
|
||||||
|
|
||||||
from neutron_lbaas.drivers import driver_base
|
|
||||||
from oslo_log import log as logging
|
from oslo_log import log as logging
|
||||||
|
|
||||||
VERSION = "0.1.1"
|
from neutron_lbaas.drivers import driver_base
|
||||||
|
|
||||||
|
VERSION = "1.0.0"
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@ -36,11 +38,21 @@ class F5LBaaSV2Driver(driver_base.LoadBalancerBaseDriver):
|
|||||||
self.pool = PoolManager(self)
|
self.pool = PoolManager(self)
|
||||||
self.member = MemberManager(self)
|
self.member = MemberManager(self)
|
||||||
self.health_monitor = HealthMonitorManager(self)
|
self.health_monitor = HealthMonitorManager(self)
|
||||||
|
self.l7policy = L7PolicyManager(self)
|
||||||
|
self.l7rule = L7RuleManager(self)
|
||||||
|
|
||||||
|
if not env:
|
||||||
|
msg = "F5LBaaSV2Driver cannot be intialized because the "\
|
||||||
|
"environment is not defined. To set the environment, edit "\
|
||||||
|
"neutron_lbaas.conf and append the environment name to the "\
|
||||||
|
"service_provider class name."
|
||||||
|
LOG.debug(msg)
|
||||||
|
raise UndefinedEnvironment(msg)
|
||||||
|
|
||||||
LOG.debug("F5LBaaSV2Driver: initializing, version=%s, impl=%s, env=%s"
|
LOG.debug("F5LBaaSV2Driver: initializing, version=%s, impl=%s, env=%s"
|
||||||
% (VERSION, f5lbaasdriver.__version__, env))
|
% (VERSION, f5lbaasdriver.__version__, env))
|
||||||
|
|
||||||
self.f5 = f5lbaasdriver.v2.bigip.driver_v2.F5DriverV2(plugin, env)
|
self.f5 = F5DriverV2(plugin, env)
|
||||||
|
|
||||||
|
|
||||||
class F5LBaaSV2DriverTest(F5LBaaSV2Driver):
|
class F5LBaaSV2DriverTest(F5LBaaSV2Driver):
|
||||||
@ -128,3 +140,27 @@ class HealthMonitorManager(driver_base.BaseHealthMonitorManager):
|
|||||||
|
|
||||||
def delete(self, context, health_monitor):
|
def delete(self, context, health_monitor):
|
||||||
self.driver.f5.healthmonitor.delete(context, health_monitor)
|
self.driver.f5.healthmonitor.delete(context, health_monitor)
|
||||||
|
|
||||||
|
|
||||||
|
class L7PolicyManager(driver_base.BaseL7PolicyManager):
|
||||||
|
|
||||||
|
def create(self, context, l7policy):
|
||||||
|
self.driver.f5.l7policy.create(context, l7policy)
|
||||||
|
|
||||||
|
def update(self, context, old_l7policy, l7policy):
|
||||||
|
self.driver.f5.l7policy.update(context, old_l7policy, l7policy)
|
||||||
|
|
||||||
|
def delete(self, context, l7policy):
|
||||||
|
self.driver.f5.l7policy.delete(context, l7policy)
|
||||||
|
|
||||||
|
|
||||||
|
class L7RuleManager(driver_base.BaseL7RuleManager):
|
||||||
|
|
||||||
|
def create(self, context, l7rule):
|
||||||
|
self.driver.f5.l7rule.create(context, l7rule)
|
||||||
|
|
||||||
|
def update(self, context, old_l7rule, l7rule):
|
||||||
|
self.driver.f5.l7rule.update(context, old_l7rule, l7rule)
|
||||||
|
|
||||||
|
def delete(self, context, l7rule):
|
||||||
|
self.driver.f5.l7rule.delete(context, l7rule)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright 2016 F5 Networks Inc.
|
# Copyright 2016-2017 F5 Networks Inc.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@ -13,15 +13,17 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
import mock
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import mock
|
from neutron_lbaas.tests.unit.db.loadbalancer import test_db_loadbalancerv2
|
||||||
from neutron_lib import context
|
from neutron_lib import context
|
||||||
|
|
||||||
from neutron_lbaas.tests.unit.db.loadbalancer import test_db_loadbalancerv2
|
|
||||||
|
|
||||||
with mock.patch.dict(
|
with mock.patch.dict(
|
||||||
sys.modules, {'f5lbaasdriver': mock.Mock(__version__="0.1.1")}):
|
sys.modules, {'f5lbaasdriver': mock.Mock(__version__="1.0.0"),
|
||||||
|
'f5lbaasdriver.v2': mock.Mock(),
|
||||||
|
'f5lbaasdriver.v2.bigip': mock.Mock(),
|
||||||
|
'f5lbaasdriver.v2.bigip.driver_v2': mock.Mock()}):
|
||||||
from neutron_lbaas.drivers.f5 import driver_v2
|
from neutron_lbaas.drivers.f5 import driver_v2
|
||||||
|
|
||||||
|
|
||||||
@ -117,3 +119,15 @@ class TestF5DriverV2(test_db_loadbalancerv2.LbaasPluginDbTestCase):
|
|||||||
self.driver.health_monitor,
|
self.driver.health_monitor,
|
||||||
FakeModel("hm-01"),
|
FakeModel("hm-01"),
|
||||||
self.driver.f5.healthmonitor)
|
self.driver.f5.healthmonitor)
|
||||||
|
|
||||||
|
def test_l7policy(self):
|
||||||
|
DriverTest(self,
|
||||||
|
self.driver.l7policy,
|
||||||
|
FakeModel("l7policy-01"),
|
||||||
|
self.driver.f5.l7policy)
|
||||||
|
|
||||||
|
def test_l7rule(self):
|
||||||
|
DriverTest(self,
|
||||||
|
self.driver.l7rule,
|
||||||
|
FakeModel("l7rule-01"),
|
||||||
|
self.driver.f5.l7rule)
|
||||||
|
Loading…
Reference in New Issue
Block a user