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");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -14,11 +14,13 @@
|
|||
#
|
||||
|
||||
import f5lbaasdriver
|
||||
from f5lbaasdriver.v2.bigip.driver_v2 import F5DriverV2
|
||||
|
||||
from neutron_lbaas.drivers import driver_base
|
||||
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__)
|
||||
|
||||
|
||||
|
@ -36,11 +38,21 @@ class F5LBaaSV2Driver(driver_base.LoadBalancerBaseDriver):
|
|||
self.pool = PoolManager(self)
|
||||
self.member = MemberManager(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"
|
||||
% (VERSION, f5lbaasdriver.__version__, env))
|
||||
|
||||
self.f5 = f5lbaasdriver.v2.bigip.driver_v2.F5DriverV2(plugin, env)
|
||||
self.f5 = F5DriverV2(plugin, env)
|
||||
|
||||
|
||||
class F5LBaaSV2DriverTest(F5LBaaSV2Driver):
|
||||
|
@ -128,3 +140,27 @@ class HealthMonitorManager(driver_base.BaseHealthMonitorManager):
|
|||
|
||||
def delete(self, 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");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -13,15 +13,17 @@
|
|||
# limitations under the License.
|
||||
#
|
||||
|
||||
import mock
|
||||
import sys
|
||||
|
||||
import mock
|
||||
from neutron_lbaas.tests.unit.db.loadbalancer import test_db_loadbalancerv2
|
||||
from neutron_lib import context
|
||||
|
||||
from neutron_lbaas.tests.unit.db.loadbalancer import test_db_loadbalancerv2
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
@ -117,3 +119,15 @@ class TestF5DriverV2(test_db_loadbalancerv2.LbaasPluginDbTestCase):
|
|||
self.driver.health_monitor,
|
||||
FakeModel("hm-01"),
|
||||
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