vFW and vDNS support added to azure-plugin
[multicloud/azure.git] / azure / aria / aria-extension-cloudify / src / aria / aria / utils / openclose.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 """
17 Utilities for working with open/close patterns.
18 """
19
20 class OpenClose(object):
21     """
22     Wraps an object that has ``open()`` and ``close()`` methods to support the ``with`` keyword.
23     """
24
25     def __init__(self, wrapped):
26         self.wrapped = wrapped
27
28     def __enter__(self):
29         if hasattr(self.wrapped, 'open'):
30             self.wrapped.open()
31         return self.wrapped
32
33     def __exit__(self, the_type, value, traceback):
34         if hasattr(self.wrapped, 'close'):
35             self.wrapped.close()
36         return False