You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.1 KiB
57 lines
2.1 KiB
# Copyright 2018 Red Hat, Inc. |
|
# All Rights Reserved. |
|
# |
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may |
|
# not use this file except in compliance with the License. You may obtain |
|
# a copy of the License at |
|
# |
|
# http://www.apache.org/licenses/LICENSE-2.0 |
|
# |
|
# Unless required by applicable law or agreed to in writing, software |
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
|
# License for the specific language governing permissions and limitations |
|
# under the License. |
|
|
|
from config_tempest.services.base import VersionedService |
|
import json |
|
|
|
|
|
class LoadBalancerService(VersionedService): |
|
def set_versions(self): |
|
super(LoadBalancerService, self).set_versions(top_level=False) |
|
|
|
def set_default_tempest_options(self, conf): |
|
conf.set('load_balancer', 'enable_security_groups', 'True') |
|
conf.set('load_balancer', 'admin_role', 'admin') |
|
conf.set('load_balancer', 'RBAC_test_type', 'owner_or_admin') |
|
conf.set('network-feature-enabled', 'port_security', 'True') |
|
|
|
@staticmethod |
|
def get_service_type(): |
|
return ['load-balancer'] |
|
|
|
@staticmethod |
|
def get_codename(): |
|
return 'octavia' |
|
|
|
def list_drivers(self): |
|
"""List lbaas drivers""" |
|
body = self.do_get(self.service_url + '/v2/lbaas/providers') |
|
body = json.loads(body) |
|
names = [ |
|
'{p[name]}:{p[description]}'.format(p=i) for i in body['providers'] |
|
] |
|
return names |
|
|
|
def post_configuration(self, conf, is_service): |
|
if not conf.has_option('auth', 'tempest_roles') \ |
|
or conf.get('auth', 'tempest_roles') in ['', None]: |
|
conf.set('load_balancer', 'member_role', 'member') |
|
else: |
|
conf.set('load_balancer', 'member_role', |
|
conf.get('auth', 'tempest_roles').split(',')[0]) |
|
conf.set('load_balancer', 'region', conf.get('identity', 'region')) |
|
conf.set('load_balancer', |
|
'enabled_provider_drivers', |
|
','.join(self.list_drivers()))
|
|
|