fix saltstack breakage introduced in v1.31.0

SaltStack's openstack cloud provider in current production release calls
os_client_config.vendors.get_profile after importing just
os_client_config:
https://github.com/saltstack/salt/blob/v2018.3.0/salt/cloud/clouds/openstack.py#L319
After 5c2eae8f82 vendors module is no
longer imported into os_client_config which results in
AttributeError: 'module' object has no attribute 'vendors'
Importing this manually in __init__.py fixes it, however I wasn't able
to write a working test case — testtools loader loads all submodules
recursively and test runs without throwing exception.
I hope someone more knowledgeable review this change and confirm it
doesn't break this use case anymore.
Thanks in advance.

Change-Id: I5a3cb6096a090c29e257079da7c3d07d5a9b3428
Signed-off-by: Alexander D <maniac@pzskc383.dp.ua>
This commit is contained in:
Alexander D 2018-05-18 02:17:21 +03:00
parent c0bffa60f3
commit 590b1723b5
No known key found for this signature in database
GPG Key ID: 49796925E0B4E6F0
2 changed files with 23 additions and 0 deletions

View File

@ -18,6 +18,7 @@ import pbr.version
from os_client_config import cloud_config
from os_client_config.config import OpenStackConfig # noqa
from os_client_config import vendors # noqa
__version__ = pbr.version.VersionInfo('os_client_config').version_string()

View File

@ -0,0 +1,22 @@
# Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
#
# 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 os_client_config.tests import base
class TestImportVendors(base.TestCase):
def test_get_profile(self):
import os_client_config # noqa
os_client_config.vendors.get_profile(profile_name="dummy")