vFW and vDNS support added to azure-plugin
[multicloud/azure.git] / azure / aria / aria-extension-cloudify / src / aria / tests / cli / utils.py
1 # Licensed to the Apache Software Foundation (ASF) under one or more
2 # contributor license agreements.  See the NOTICE file distributed with
3 # this work for additional information regarding copyright ownership.
4 # The ASF licenses this file to You under the Apache License, Version 2.0
5 # (the "License"); you may not use this file except in compliance with
6 # the License.  You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 import logging
17
18 from mock import MagicMock
19
20 from ..mock import models as mock_models
21
22
23 def setup_logger(logger_name,
24                  level=logging.INFO,
25                  handlers=None,
26                  remove_existing_handlers=True,
27                  logger_format=None,
28                  propagate=True):
29     """
30     :param logger_name: Name of the logger.
31     :param level: Level for the logger (not for specific handler).
32     :param handlers: An optional list of handlers (formatter will be
33                      overridden); If None, only a StreamHandler for
34                      sys.stdout will be used.
35     :param remove_existing_handlers: Determines whether to remove existing
36                                      handlers before adding new ones
37     :param logger_format: the format this logger will have.
38     :param propagate: propagate the message the parent logger.
39     :return: A logger instance.
40     :rtype: logging.Logger
41     """
42
43     logger = logging.getLogger(logger_name)
44
45     if remove_existing_handlers:
46         for handler in logger.handlers:
47             logger.removeHandler(handler)
48
49     for handler in handlers:
50         if logger_format:
51             formatter = logging.Formatter(fmt=logger_format)
52             handler.setFormatter(formatter)
53         logger.addHandler(handler)
54
55     logger.setLevel(level)
56     if not propagate:
57         logger.propagate = False
58
59     return logger
60
61
62 class MockStorage(object):
63
64     def __init__(self):
65         self.service_template = MockServiceTemplateStorage()
66         self.service = MockServiceStorage()
67         self.node_template = MockNodeTemplateStorage()
68         self.node = MockNodeStorage()
69
70
71 class MockServiceTemplateStorage(object):
72
73     def __init__(self):
74         self.list = MagicMock(return_value=[mock_models.create_service_template()])
75         self.get_by_name = MagicMock(return_value=mock_models.create_service_template())
76
77
78 class MockServiceStorage(object):
79
80     def __init__(self):
81
82         self.s = mock_models.create_service_with_dependencies()
83
84         self.list = MagicMock(return_value=[self.s])
85         self.create = MagicMock(return_value=self.s)
86         self.get = MagicMock(
87             return_value=mock_models.create_service_with_dependencies(include_node=True))
88         self.get_by_name = MagicMock(return_value=self.s)
89         self.delete = MagicMock()
90
91
92 class MockNodeTemplateStorage(object):
93     def __init__(self):
94         self.get = MagicMock(return_value=mock_models.create_node_template_with_dependencies())
95         self.list = MagicMock(return_value=[mock_models.create_node_template_with_dependencies()])
96
97
98 class MockNodeStorage(object):
99     def __init__(self):
100         self.get = MagicMock(return_value=mock_models.create_node_with_dependencies())
101         self.list = MagicMock(return_value=[mock_models.create_node_with_dependencies()])