import repository from arizona
[raven.git] / lib / ravenlib / platform / platform_sfa.py
1 import os
2 import sys
3
4 # Try to import sfa so that we can work with GIDs. Wrap it inside of try/except
5 # because we still want get_group_names() to work even if sfa libraries are
6 # not installed.
7
8 try:
9    from sfa.trust.gid import GID
10    glo_sfa_available = True
11 except ImportError:
12    glo_sfa_available = False
13    print >> sys.stderr, "Failed to import SFA libraries"
14
15 SLICEGID="/etc/slice.gid"
16 NODEGID="/etc/node.gid"
17
18 def init():
19    if os.path.exists(SLICEGID) and os.path.exists(NODEGID):
20        return True;
21    else:
22        return False;
23
24 def get_slice_names():
25    if not glo_sfa_available:
26        return []
27
28    if os.path.exists(SLICEGID):
29        result = []
30        slice_gid = GID(filename = SLICEGID)
31        hrn = slice_gid.get_hrn()
32        if (hrn!=None):
33            result.append(hrn)
34        return result
35    else:
36        return []
37
38 def get_node_names():
39    if not glo_sfa_available:
40        return []
41
42    if os.path.exists(NODEGID):
43        result = []
44        node_gid = GID(filename = NODEGID)
45        hrn = node_gid.get_hrn()
46        if (hrn!=None):
47            result.append(hrn)
48        return result
49    else:
50        return []
51
52 def get_group_names():
53    # Return the "sfa" group name regardless of whether or not the libaries are
54    # available. Group name implies that this is on an sfa platform, not necessarily
55    # that sfa is usable. (group name may be used by tempest to install sfa)
56    return ["sfa"]
57
58 def get_keys():
59    return []
60