1
2
3 from starcluster import config
4 from starcluster import optcomplete
5 from starcluster.logger import log
6
7 from base import CmdBase
11 """
12 Base class for all completer classes
13 """
14 _cfg = None
15
19
20 @property
24
27 """
28 Returns a list of all cluster names as completion options
29 """
39
42 """
43 Returns a list of all node names as completion options
44 """
46 try:
47 cm = self.cm
48 clusters = cm.get_cluster_security_groups()
49 compl_list = [cm.get_tag_from_sg(sg.name) for sg in clusters]
50 max_num_nodes = 0
51 for scluster in clusters:
52 num_instances = len(scluster.instances())
53 if num_instances > max_num_nodes:
54 max_num_nodes = num_instances
55 compl_list.extend(['master'])
56 compl_list.extend([str(i) for i in range(0, num_instances)])
57 compl_list.extend(["node%03d" % i \
58 for i in range(1, num_instances)])
59 return optcomplete.ListCompleter(compl_list)
60 except Exception, e:
61 print e
62 log.error('something went wrong fix me: %s' % e)
63
66 """
67 Returns a list of all registered image ids as completion options
68 """
76
79 """
80 Returns a list of all instance ids as completion options
81 """
82 show_dns_names = False
83
93
96 """
97 Returns a list of all volume ids as completion options
98 """
105