Package ganeti :: Package utils :: Module tags
[hide private]
[frames] | no frames]

Source Code for Module ganeti.utils.tags

 1  # 
 2  # 
 3   
 4  # Copyright (C) 2015 Google Inc. 
 5  # All rights reserved. 
 6  # 
 7  # Redistribution and use in source and binary forms, with or without 
 8  # modification, are permitted provided that the following conditions are 
 9  # met: 
10  # 
11  # 1. Redistributions of source code must retain the above copyright notice, 
12  # this list of conditions and the following disclaimer. 
13  # 
14  # 2. Redistributions in binary form must reproduce the above copyright 
15  # notice, this list of conditions and the following disclaimer in the 
16  # documentation and/or other materials provided with the distribution. 
17  # 
18  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
19  # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
20  # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
21  # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
22  # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
23  # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
24  # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
25  # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
26  # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
27  # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
28  # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
29   
30  """Utility functions for tag related operations 
31   
32  """ 
33   
34  from ganeti import constants 
35   
36   
37 -def GetExclusionPrefixes(ctags):
38 """Extract the exclusion tag prefixes from the cluster tags 39 40 """ 41 prefixes = set([]) 42 for tag in ctags: 43 if tag.startswith(constants.EX_TAGS_PREFIX): 44 prefixes.add(tag[len(constants.EX_TAGS_PREFIX):]) 45 return prefixes
46 47
48 -def IsGoodTag(prefixes, tag):
49 """Decide if a string is a tag 50 51 @param prefixes: set of prefixes that would indicate 52 the tag being suitable 53 @param tag: the tag in question 54 55 """ 56 for prefix in prefixes: 57 if tag.startswith(prefix): 58 return True 59 return False
60