Merge "Log VM OS version, Sample VNF branch/commit ID"
[yardstick.git] / yardstick / common / import_tools.py
1 # Copyright (c) 2018 Intel Corporation
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 import sys
16
17 from yardstick.common import exceptions
18
19
20 BANNED_MODULES = {'ansible': 'Module with GPLv3 license'}
21
22
23 def decorator_banned_modules(cls):
24     def _class(*args, **kwargs):
25         for module in sys.modules:
26             for banned_module, reason in BANNED_MODULES.items():
27                 if module.startswith(banned_module):
28                     raise exceptions.YardstickBannedModuleImported(
29                         module=banned_module, reason=reason)
30         return cls(*args, **kwargs)
31     return _class