Package starcluster :: Package commands :: Module completers
[hide private]
[frames] | no frames]

Source Code for Module starcluster.commands.completers

  1  from starcluster import optcomplete 
  2  from starcluster.logger import log 
  3   
  4  from base import CmdBase 
5 6 7 -class Completer(CmdBase):
8 """ 9 Base class for all completer classes 10 """ 11 12 @property
13 - def completer(self):
14 return self._completer()
15
16 17 -class ClusterCompleter(Completer):
18 """ 19 Returns a list of all cluster names as completion options 20 """
21 - def _completer(self):
22 try: 23 cm = self.cm 24 clusters = cm.get_cluster_security_groups() 25 completion_list = [cm.get_tag_from_sg(sg.name) 26 for sg in clusters] 27 return optcomplete.ListCompleter(completion_list) 28 except Exception, e: 29 log.error('something went wrong fix me: %s' % e)
30
31 32 -class NodeCompleter(Completer):
33 """ 34 Returns a list of all node names as completion options 35 """
36 - def _completer(self):
37 try: 38 cm = self.cm 39 clusters = cm.get_cluster_security_groups() 40 compl_list = [cm.get_tag_from_sg(sg.name) for sg in clusters] 41 max_num_nodes = 0 42 for scluster in clusters: 43 num_instances = len(scluster.instances()) 44 if num_instances > max_num_nodes: 45 max_num_nodes = num_instances 46 compl_list.extend(['master']) 47 compl_list.extend([str(i) for i in range(0, num_instances)]) 48 compl_list.extend(["node%03d" % i 49 for i in range(1, num_instances)]) 50 return optcomplete.ListCompleter(compl_list) 51 except Exception, e: 52 print e 53 log.error('something went wrong fix me: %s' % e)
54
55 56 -class ImageCompleter(Completer):
57 """ 58 Returns a list of all registered image ids as completion options 59 """
60 - def _completer(self):
61 try: 62 rimages = self.ec2.registered_images 63 completion_list = [i.id for i in rimages] 64 return optcomplete.ListCompleter(completion_list) 65 except Exception, e: 66 log.error('something went wrong fix me: %s' % e)
67
68 69 -class EBSImageCompleter(Completer):
70 """ 71 Returns a list of all registered EBS image ids as completion options 72 """
73 - def _completer(self):
74 try: 75 rimages = self.ec2.registered_images 76 completion_list = [i.id for i in rimages if 77 i.root_device_type == "ebs"] 78 return optcomplete.ListCompleter(completion_list) 79 except Exception, e: 80 log.error('something went wrong fix me: %s' % e)
81
82 83 -class S3ImageCompleter(Completer):
84 """ 85 Returns a list of all registered S3 image ids as completion options 86 """
87 - def _completer(self):
88 try: 89 rimages = self.ec2.registered_images 90 completion_list = [i.id for i in rimages if 91 i.root_device_type == "instance-store"] 92 return optcomplete.ListCompleter(completion_list) 93 except Exception, e: 94 log.error('something went wrong fix me: %s' % e)
95
96 97 -class InstanceCompleter(Completer):
98 """ 99 Returns a list of all instance ids as completion options 100 """ 101 show_dns_names = False 102
103 - def _completer(self):
104 try: 105 instances = self.ec2.get_all_instances() 106 completion_list = [i.id for i in instances] 107 if self.show_dns_names: 108 completion_list.extend([i.dns_name for i in instances]) 109 return optcomplete.ListCompleter(completion_list) 110 except Exception, e: 111 log.error('something went wrong fix me: %s' % e)
112
113 114 -class VolumeCompleter(Completer):
115 """ 116 Returns a list of all volume ids as completion options 117 """
118 - def _completer(self):
119 try: 120 completion_list = [v.id for v in self.ec2.get_volumes()] 121 return optcomplete.ListCompleter(completion_list) 122 except Exception, e: 123 log.error('something went wrong fix me: %s' % e)
124