Initial commit with fixtures
- add fixtures for hardware and underlay
- add fuel-devops template tcpcloud-default.yaml
* Migration of fixtures is not finished yet
diff --git a/tcp_tests/logger.py b/tcp_tests/logger.py
new file mode 100644
index 0000000..b9d0c5a
--- /dev/null
+++ b/tcp_tests/logger.py
@@ -0,0 +1,73 @@
+# Copyright 2016 Mirantis, Inc.
+#
+# 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.
+import functools
+import logging
+import os
+import traceback
+
+from tcp_tests import settings
+
+if not os.path.exists(settings.LOGS_DIR):
+ os.makedirs(settings.LOGS_DIR)
+
+logging.basicConfig(level=logging.DEBUG,
+ format='%(asctime)s - %(levelname)s %(filename)s:'
+ '%(lineno)d -- %(message)s',
+ filename=os.path.join(settings.LOGS_DIR, 'tests.log'),
+ filemode='w')
+
+console = logging.StreamHandler()
+console.setLevel(logging.INFO)
+formatter = logging.Formatter('%(asctime)s - %(levelname)s %(filename)s:'
+ '%(lineno)d -- %(message)s')
+console.setFormatter(formatter)
+
+logger = logging.getLogger(__name__)
+logger.addHandler(console)
+
+
+# suppress iso8601 and paramiko debug logging
+class NoDebugMessageFilter(logging.Filter):
+ def filter(self, record):
+ return not record.levelno <= logging.DEBUG
+
+logging.getLogger('paramiko.transport').addFilter(NoDebugMessageFilter())
+logging.getLogger('paramiko.hostkeys').addFilter(NoDebugMessageFilter())
+logging.getLogger('iso8601.iso8601').addFilter(NoDebugMessageFilter())
+
+
+def debug(logger):
+ def wrapper(func):
+ @functools.wraps(func)
+ def wrapped(*args, **kwargs):
+ logger.debug(
+ "Calling: {} with args: {} {}".format(
+ func.__name__, args, kwargs
+ )
+ )
+ try:
+ result = func(*args, **kwargs)
+ logger.debug(
+ "Done: {} with result: {}".format(func.__name__, result))
+ except BaseException as e:
+ logger.error(
+ '{func} raised: {exc!r}\n'
+ 'Traceback: {tb!s}'.format(
+ func=func.__name__, exc=e, tb=traceback.format_exc()))
+ raise
+ return result
+ return wrapped
+ return wrapper
+
+logwrap = debug(logger)