Re-enable octavia functional tests

This patch re-enables the octavia functional tests for openstacksdk.

This patch fixes a bug in the l7rule l7policy URI parameter.

This patch also fixes the test_inventory functional test that fails if
there are multiple networks in the tenant.

Change-Id: Iacdc92ec78a9ca0ad3a82172f426ed91a4b9023d
This commit is contained in:
Michael Johnson 2018-01-05 14:39:03 -08:00
parent c4e45695e8
commit 56cc254d63
7 changed files with 46 additions and 19 deletions

View File

@ -121,10 +121,35 @@
parent: openstacksdk-functional-devstack-base
description: |
Run openstacksdk functional tests against a master devstack
required-projects:
- openstack/octavia
vars:
devstack_localrc:
Q_SERVICE_PLUGIN_CLASSES: qos
Q_ML2_PLUGIN_EXT_DRIVERS: qos,port_security
DISABLE_AMP_IMAGE_BUILD: True
devstack_local_conf:
post-config:
$OCTAVIA_CONF:
DEFAULT:
debug: True
controller_worker:
amphora_driver: amphora_noop_driver
compute_driver: compute_noop_driver
network_driver: network_noop_driver
certificates:
cert_manager: local_cert_manager
devstack_plugins:
octavia: https://git.openstack.org/openstack/octavia
devstack_services:
octavia: true
o-api: true
o-cw: true
o-hm: true
o-hk: true
neutron-qos: true
tox_environment:
OPENSTACKSDK_HAS_OCTAVIA: 1
- job:
name: openstacksdk-functional-devstack-python3

View File

@ -570,7 +570,7 @@ class Proxy(proxy2.BaseProxy):
:rtype: :class:`~openstack.load_balancer.v2.l7_rule.L7Rule`
"""
l7policyobj = self._get_resource(_l7policy.L7Policy, l7_policy)
return self._create(_l7rule.L7Rule, l7_policy_id=l7policyobj.id,
return self._create(_l7rule.L7Rule, l7policy_id=l7policyobj.id,
**attrs)
def delete_l7_rule(self, l7rule, l7_policy, ignore_missing=True):
@ -592,7 +592,7 @@ class Proxy(proxy2.BaseProxy):
"""
l7policyobj = self._get_resource(_l7policy.L7Policy, l7_policy)
self._delete(_l7rule.L7Rule, l7rule, ignore_missing=ignore_missing,
l7_policy_id=l7policyobj.id)
l7policy_id=l7policyobj.id)
def find_l7_rule(self, name_or_id, l7_policy, ignore_missing=True):
"""Find a single l7rule
@ -613,7 +613,7 @@ class Proxy(proxy2.BaseProxy):
l7policyobj = self._get_resource(_l7policy.L7Policy, l7_policy)
return self._find(_l7rule.L7Rule, name_or_id,
ignore_missing=ignore_missing,
l7_policy_id=l7policyobj.id)
l7policy_id=l7policyobj.id)
def get_l7_rule(self, l7rule, l7_policy):
"""Get a single l7rule
@ -631,7 +631,7 @@ class Proxy(proxy2.BaseProxy):
"""
l7policyobj = self._get_resource(_l7policy.L7Policy, l7_policy)
return self._get(_l7rule.L7Rule, l7rule,
l7_policy_id=l7policyobj.id)
l7policy_id=l7policyobj.id)
def l7_rules(self, l7_policy, **query):
"""Return a generator of l7rules
@ -647,7 +647,7 @@ class Proxy(proxy2.BaseProxy):
"""
l7policyobj = self._get_resource(_l7policy.L7Policy, l7_policy)
return self._list(_l7rule.L7Rule, paginated=True,
l7_policy_id=l7policyobj.id, **query)
l7policy_id=l7policyobj.id, **query)
def update_l7_rule(self, l7rule, l7_policy, **attrs):
"""Update a l7rule
@ -666,4 +666,4 @@ class Proxy(proxy2.BaseProxy):
"""
l7policyobj = self._get_resource(_l7policy.L7Policy, l7_policy)
return self._update(_l7rule.L7Rule, l7rule,
l7_policy_id=l7policyobj.id, **attrs)
l7policy_id=l7policyobj.id, **attrs)

View File

@ -17,7 +17,7 @@ from openstack import resource2 as resource
class L7Rule(resource.Resource):
resource_key = 'rule'
resources_key = 'rules'
base_path = '/v2.0/lbaas/l7policies/%(l7_policy_id)s/rules'
base_path = '/v2.0/lbaas/l7policies/%(l7policy_id)s/rules'
service = lb_service.LoadBalancerService()
# capabilities
@ -28,9 +28,10 @@ class L7Rule(resource.Resource):
allow_delete = True
_query_mapping = resource.QueryParameters(
'compare_type', 'created_at', 'invert', 'key', 'l7_policy_id',
'project_id', 'provisioning_status', 'type', 'updated_at',
'rule_value', 'operating_status', is_admin_state_up='admin_state_up',
'compare_type', 'created_at', 'invert', 'key', 'project_id',
'provisioning_status', 'type', 'updated_at', 'rule_value',
'operating_status', is_admin_state_up='admin_state_up',
l7_policy_id='l7policy_id',
)
#: Properties
@ -46,7 +47,7 @@ class L7Rule(resource.Resource):
#: The key to use for the comparison.
key = resource.Body('key')
#: The ID of the associated l7 policy
l7_policy_id = resource.URI('l7_policy_id')
l7_policy_id = resource.URI('l7policy_id')
#: The operating status of this l7rule
operating_status = resource.Body('operating_status')
#: The ID of the project this l7policy is associated with.

View File

@ -34,6 +34,7 @@ class TestDevstack(base.BaseFunctionalTestCase):
('heat', dict(env='HEAT', service='orchestration')),
('magnum', dict(env='MAGNUM', service='container-infra')),
('neutron', dict(env='NEUTRON', service='network')),
('octavia', dict(env='OCTAVIA', service='load-balancer')),
('swift', dict(env='SWIFT', service='object-store')),
]

View File

@ -40,7 +40,7 @@ class TestInventory(base.BaseFunctionalTestCase):
self.addCleanup(self._cleanup_server)
server = self.operator_cloud.create_server(
name=self.server_name, image=self.image, flavor=self.flavor,
wait=True, auto_ip=True)
wait=True, auto_ip=True, network='public')
self.server_id = server['id']
def _cleanup_server(self):

View File

@ -38,7 +38,7 @@ class TestL7Rule(testtools.TestCase):
test_l7rule = l7_rule.L7Rule()
self.assertEqual('rule', test_l7rule.resource_key)
self.assertEqual('rules', test_l7rule.resources_key)
self.assertEqual('/v2.0/lbaas/l7policies/%(l7_policy_id)s/rules',
self.assertEqual('/v2.0/lbaas/l7policies/%(l7policy_id)s/rules',
test_l7rule.base_path)
self.assertEqual('load-balancer', test_l7rule.service.service_type)
self.assertTrue(test_l7rule.allow_create)

View File

@ -203,33 +203,33 @@ class TestLoadBalancerProxy(test_proxy_base2.TestProxyBase):
l7_rule.L7Rule,
paginated=True,
method_kwargs={'l7_policy': self.L7_POLICY_ID},
expected_kwargs={'l7_policy_id': self.L7_POLICY_ID})
expected_kwargs={'l7policy_id': self.L7_POLICY_ID})
def test_l7_rule_get(self):
self.verify_get(self.proxy.get_l7_rule,
l7_rule.L7Rule,
method_kwargs={'l7_policy': self.L7_POLICY_ID},
expected_kwargs={'l7_policy_id': self.L7_POLICY_ID})
expected_kwargs={'l7policy_id': self.L7_POLICY_ID})
def test_l7_rule_create(self):
self.verify_create(self.proxy.create_l7_rule,
l7_rule.L7Rule,
method_kwargs={'l7_policy': self.L7_POLICY_ID},
expected_kwargs={'l7_policy_id': self.L7_POLICY_ID})
expected_kwargs={'l7policy_id': self.L7_POLICY_ID})
def test_l7_rule_delete(self):
self.verify_delete(self.proxy.delete_l7_rule,
l7_rule.L7Rule,
True,
method_kwargs={'l7_policy': self.L7_POLICY_ID},
expected_kwargs={'l7_policy_id': self.L7_POLICY_ID})
expected_kwargs={'l7policy_id': self.L7_POLICY_ID})
def test_l7_rule_find(self):
self._verify2('openstack.proxy2.BaseProxy._find',
self.proxy.find_l7_rule,
method_args=["RULE", self.L7_POLICY_ID],
expected_args=[l7_rule.L7Rule, "RULE"],
expected_kwargs={"l7_policy_id": self.L7_POLICY_ID,
expected_kwargs={"l7policy_id": self.L7_POLICY_ID,
"ignore_missing": True})
def test_l7_rule_update(self):
@ -237,4 +237,4 @@ class TestLoadBalancerProxy(test_proxy_base2.TestProxyBase):
self.proxy.update_l7_rule,
method_args=["RULE", self.L7_POLICY_ID],
expected_args=[l7_rule.L7Rule, "RULE"],
expected_kwargs={"l7_policy_id": self.L7_POLICY_ID})
expected_kwargs={"l7policy_id": self.L7_POLICY_ID})